AI와 관련된 수 많은 오픈소스들이 쏟아지면서 오픈소스 생태계는 그야말로 AI 오픈소스 르네상스를 맞이하고 있습니다. LangChain의 성공을 시작으로 많은 오픈소스들이 나오면서 AI 업계 시스템을 빠르게 메꾸고 있기도 합니다.
여러 계층의 AI의 Stack 별로 인기를 누리고 있는 오픈소스를 한번 살펴보려고 합니다.
Open LLM
생성형 AI의 핵심인 LLM(Large Language Model)은 GPT를 필두로 한 Closed LLM과 Llama 진영의 Open LLM 두 축으로 나뉘는데, Mistral 팀의 모델이 오픈소스 라이선스로 모델을 공개하였고, 뛰어난 성능까지 발휘하여 많은 이들의 관심을 받고 있습니다. Open LLM 은 주로 허깅페이스를 통해 관리하고 제공됩니다.
Mixtral-8x7B-Instruct-v0.1 (Apache-2.0)
https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1
- 전문가 혼합 모델(SMoE)을 채용했습니다.
- Llama 2 70B 모델을 넘어 GPT-3.5 175B 를 앞서는 성능을 보여줍니다.
- 블라인드 챗봇테스트인 챗봇 아레나에서 GPT-4, Claude-2 에 이어 3번째 순위입니다.
Llama-2-7b-chat (Llama 2 Community)
https://huggingface.co/meta-llama/Llama-2-7b-chat
- 월간 활성사용자 7억명 이하인 서비스에서는 상업적으로 사용 가능한 라이선스입니다.
- Llama-2를 파인튜닝한 수 많은 파생 모델이 나와 있습니다.
phi-2 (MIT)
https://huggingface.co/microsoft/phi-2
- MS 에서 공개한 2.7B 파라미터의 경량 모델입니다.
- 상식, 언어 이해, 논리적 추론을 테스트 결과 13B 모델보다 성능이 좋다는 결과를 보였다고 합니다.
LLM 추론 및 서빙
잘 학습된 LLM 을 효과적으로 사용하기 위해서는 빠르고, 컴퓨팅 자원을 효율적으로 관리해줄 수 있는 도구가 필요합니다.
Ollama (MIT)
https://github.com/jmorganca/ollama
- Mac, Linux, Windows 등 로컬환경에서 7B 수준의 LLM 을 직접 실행할 수 있습니다.
- 간단한 명령어만으로 모델을 다운로드하고 실행합니다.
- CLI로 모델을 관리하고, 간단한 채팅이 가능합니다.
- 제공된 API를 통해 여러가지 활용이 가능합니다.
vLLM (Apache-2.0)
https://github.com/vllm-project/vllm
- LLM 추론 및 서빙을 위한 빠르고 사용하기 쉬운 라이브러리입니다.
- 허깅페이스에서 제공되는 모델을 지원합니다.
- 분산처리, 병렬처리, 스트리밍 출력, OpenAI 호환 API 제공합니다.
- Nvidia, AMD GPU 지원합니다.
KServe (Apache-2.0)
https://github.com/kserve/kserve
- Kubernetes 환경에서 구축가능한 ML 모델 추론을 위한 플랫폼입니다.
- 스케일링, 네트워킹, 모니터링 등을 위한 추상화 인터페이스를 제공합니다.
LLM 프록싱
LiteLLM (MIT)
https://github.com/BerriAI/litellm
- 다양한 LLM API 를 통합하고, 프록시를 제공합니다.
- OpenAI 의 API 형식을 따릅니다.
- 사용자별 API 인증 관리를 제공합니다.
One API (MIT)
https://github.com/songquanpeng/one-api
- 표준 OpenAI API 형식을 통해 모든 대형 모델에 즉시 액세스할 수 있도록 합니다.
- 다양한 LLM 을 지원하며, 프록시 서비스도 제공합니다.
- 로드 밸런싱과 다중 배포가 가능하며, 사용자 관리 및 그룹 기능을 제공합니다.
AI Gateway (MIT)
https://github.com/Portkey-AI/gateway
- 하나의 빠르고 친숙한 API로 100개 이상의 LLM에 연결을 제공합니다.
- 작은 사이즈의 설치만으로 빠른 엑세스를 보장합니다.
LLM Monitoring
Great Expectations (Apache-2.0)
https://github.com/great-expectations/great_expectations
- 데이터 팀이 품질 테스트, 문서화 및 프로파일링을 통해 데이터에 대한 공유된 이해를 구축하도록 돕습니다.
- CI/CD 파이프라인과 통합하여 필요한 곳에 정확하게 데이터 품질을 추가할 수 있습니다.
LangFuse (MIT)
https://github.com/langfuse/langfuse
- 오픈 소스 LLM 가시성, 분석, 신속한 관리, 평가, 테스트, 모니터링, 로깅, 추적을 제공합니다.
- 시각적 UI에서 복잡한 로그 및 추적을 탐색하고 디버깅할 수 있습니다.
- 향후 엔터프라이즈 기능이 추가 예정입니다.
Giskard (Apache-2.0, Dual License)
https://github.com/Giskard-AI/giskard
- 편향, 데이터 유출, 허위 상관관계, 환각, 독성, 보안 문제 등 표 형식 모델에서 LLM에 이르기까지 AI 모델의 취약점을 자동으로 탐지할 수 있습니다.
- AI 모델의 취약점을 스캔하고 테스트 스위트를 자동으로 생성하여 ML 모델과 LLM의 품질 보증 프로세스를 지원합니다.
- 배포된 LLM 애플리케이션에서 AI 안전 위험을 감지하는 SaaS 플랫폼을 제공합니다. (프리미엄)
LLM Framework
LangChain (MIT)
https://github.com/langchain-ai/langchain
- 언어 모델로 구동되는 애플리케이션을 개발하기 위한 프레임워크입니다.
- 파이썬 및 Javascript 로 제공하며, 수 많은 라이브러리들을 통합한 추상화 레이어를 제공합니다.
- 구축된 LangChain 을 API 로 배포할 수도 있습니다.
LlamaIndex (MIT)
https://github.com/run-llama/llama_index
- LLM 어플리케이션을 위한 데이터에 특화된 프레임워크입니다.
- 기존 데이터 소스 및 데이터 형식(API, PDF, 문서, SQL 등)을 수집하기 위한 데이터 커넥터를 제공합니다.
- 데이터를 LLM에서 쉽게 사용할 수 있도록 데이터(인덱스, 그래프)를 구조화하는 방법을 제공합니다.
Haystack (Apache-2.0)
https://github.com/deepset-ai/haystack
- 검색 증강 생성(RAG), 문서 검색, 질문 답변, 답변 생성 등 쉬운 구축을 위한 LLM 프레임워크입니다.
- 파이프라인 개념을 기반으로 구축합니다.
Flowise (Apache-2.0)
https://github.com/FlowiseAI/Flowise
- UI를 드래그 앤 드롭하여 맞춤형 LLM 플로우 구축할 수 있습니다.
LangFlow (MIT)
https://github.com/logspace-ai/langflow
- LangChain 파이프라인을 쉽게 실험하고 프로토타이핑할 수 있도록 합니다.
- CLI 를 이용해서 실행하며, Google Cloud Platform(GCP)에 Langflow 배포도 지원합니다.
Spring AI (Apache-2.0)
https://github.com/spring-projects/spring-ai
- Spring Framwork 에서 제공하는 AI 프레임워크 (아직 스냅샷 상태)
- OpenAI 및 MS Azure 기반의 API 연동을 지원하며, 추상화 레이어를 제공
- AI Template 을 이용하여 AI 기능을 보다 쉽고 확장성 있게 구현하는 것이 목표
Data Juicer (Apache-2.0)
https://github.com/alibaba/data-juicer
- Alibaba에서 공개한 오픈소스로 LLM을 위한 원스톱 데이터 처리 시스템입니다.
- 재사용 가능한 20개 이상의 구성 레시피, 50개 이상의 핵심 OP, 풍부한 기능의 전용 툴킷으로 구성된 체계적인 라이브러리를 제공합니다.
- 자동화된 보고서 생성 기능으로 상세한 데이터 분석을 수행하여 데이터 세트를 더 깊이 이해할 수 있습니다.
Prompt
PromptFlow (MIT)
https://github.com/microsoft/promptflow
- 아이디어 구상, 프로토타이핑, 테스트, 평가부터 프로덕션 배포 및 모니터링에 도움을 주는 MS의 오픈소스입니다.
- LLM 기반 AI 애플리케이션의 엔드투엔드 개발 주기를 간소화하도록 설계된 개발 도구 모음입니다.
- VS 확장 기능인 Flow Desgin 도 제공합니다.
NeMo Guardrails (Apache-2.0)
https://github.com/NVIDIA/NeMo-Guardrails
- LLM 기반 대화형 시스템에 프로그래밍 가능한 가드레일을 쉽게 추가할 수 있는 오픈 소스 툴킷입니다.
- LLM을 다른 서비스(툴이라고도 함)에 원활하고 안전하게 연결할 수 있습니다.
- 사전 정의된 대화 경로를 따르도록 LLM을 조정할 수 있으므로 대화 디자인 모범 사례에 따라 상호 작용을 설계하고 표준 운영 절차를 적용할 수 있습니다.
LLM Lingua (MIT)
https://github.com/microsoft/LLMLingua
- MS에서 공개한 오픈소스로 프롬프트 압축을 통한 대규모 언어 모델 추론 향상을 목표로 합니다.
- 잘 훈련된 경량 모델을 이용하여 프롬프트에서 필수적이지 않은 토큰을 사전에 식별하고 제거합니다.
- 이 접근 방식을 사용하면 대규모 언어 모델(LLM)을 사용하여 효율적인 추론을 수행할 수 있으며, 성능 손실을 최소화하면서 최대 20배의 압축을 달성할 수 있습니다.
{guidance} (MIT)
https://github.com/guidance-ai/guidance
- MS에서 공개한 오픈소스로, 기존의 프롬프트 및 체인에 비해 뛰어난 제어와 효율성을 제공합니다.
- 기존 프롬프트를 효율적으로 전달하여, cost 및 응답 시간을 개선합니다.
- {{ }} 템플릿을 기반으로 하는 간단하고 직관적인 구문을 제공합니다.
TypeChat (MIT)
https://github.com/microsoft/TypeChat
- MS에서 공개한 오픈소스로, 자연어 인터페이스를 특정 타입 데이터으로 변환하는 라이브러리입니다.
- 프롬프트 엔지니어링을 스키마 엔지니어링으로 대체합니다.
- 다양한 예제를 통해 사용 방식을 쉽게 이해할 수 있습니다.
MemGPT (Apache-2.0)
https://github.com/cpacker/MemGPT
- LLM의 제한된 컨텍스트 창 내에서 확장된 컨텍스트를 효과적으로 제공하기 위해 LLM의 다양한 메모리 계층을 지능적으로 관리하는 시스템입니다.
- 중요한 정보를 벡터 데이터베이스에 푸시해두었다가 필요한 경우 이를 사용하여 영구적인 대화를 가능하게 합니다.
LLM 평가
OpenAI Evals (MIT)
https://github.com/openai/evals
- OpenAI에서 제공하는 것으로 대규모 언어 모델(LLM) 또는 LLM을 사용하여 구축된 시스템을 평가하기 위한 프레임워크를 제공합니다.
- 데이터를 사용하여 해당 데이터를 공개적으로 노출하지 않고도 워크플로의 일반적인 LLM 패턴을 나타내는 비공개 평가를 구축할 수 있습니다.
UpTrain (Apache-2.0)
https://github.com/uptrain-ai/uptrain
- LLM 애플리케이션을 평가하기 위한 오픈 소스 도구입니다.
- 정확성, 환각, 독성 등의 측면에서 LLM 반응을 확인할 수 있는 사전 구축된 메트릭을 제공합니다.
OpenCompass (Apache-2.0)
https://github.com/open-compass/opencompass
- LLM의 품질과 효과를 쉽게 평가할 수 있습니다.
- 약 40만 개의 질문으로 구성된 70개 이상의 데이터 세트에 대한 모델 평가 체계인 20개 이상의 HuggingFace 및 API 모델을 사전 지원하여 모델의 기능을 5가지 차원에서 종합적으로 평가합니다.
- 표준 또는 대화형 프롬프트 템플릿과 함께 제로 샷, 소수 샷, 연쇄적 평가를 지원하여 다양한 모델의 최대 성능을 쉽게 평가할 수 있습니다.
AI Agent
AutoGPT (MIT)
https://github.com/Significant-Gravitas/AutoGPT
- GitHub Star가 매우 빠르게 증가한 가장 인기있는 AI Agent 오픈소스
- 12월 중순 v0.5.0 업데이트를 통해 프로젝트 구조가 재구성되어 AutoGPT는 /autogpts/autogpt 폴더 하위에 위치합니다.
MetaGPT (MIT)
https://github.com/geekan/MetaGPT
- 한 줄의 요구사항을 입력으로 받아 사용자 스토리/경쟁사 분석/요구사항/데이터 구조/API/문서 등을 출력합니다.
- 내부적으로는 제품 관리자/아키텍트/프로젝트 관리자/엔지니어를 포함합니다.
Javis (MIT)
https://github.com/microsoft/JARVIS
- MS에서 만든 수많은 전문가 모델 에이전트로 구성된 협업 시스템 입니다.
- 작업을 계획하고, 선택된 모델로 작업을 수행한 뒤 응답을 생성합니다.
ChatDEV (Apache-2.0)
https://github.com/OpenBMB/ChatDev
- 다양한 지능형 에이전트를 통해 운영되는 가상 소프트웨어 회사를 구현했습니다.
- 여러 직군들로 구선된 에이전트들이 협업하여 설계, 코딩, 테스트 및 문서화와 같은 작업을 수행합니다.
GPT Pilot (MIT)
https://github.com/Pythagora-io/gpt-pilot
- 개발자와 협업하며, 전체 코드를 작성하고 개선시킬 수 있는 AI 에이전트
- AI가 앱에 대한 대부분의 코드(아마도 95%)를 작성할 수 있지만 나머지 5%의 경우 개발자가 개입하여 전체 코드를 얻어냅니다.
AgentVerse (Apache-2.0)
https://github.com/OpenBMB/AgentVerse
- 다양한 애플리케이션에서 여러 개의 LLM 기반 에이전트를 쉽게 배포할 수 있도록 설계되었습니다.
- 작업 해결과 시뮬레이션이라는 두 가지 프레임워크를 제공합니다.
PR Agent (Apache-2.0)
https://github.com/Codium-ai/pr-agent
- AI 에이전트로 PR을 분석해줍니다.
- PR 제목, 설명, 요약, 레이블 작성뿐만 아니라, PR 리뷰, 댓글 답변, 코드 제안 등의 기능을 제공합니다.
Web UI for LLM
Chatbot UI (MIT)
https://github.com/mckaywrigley/chatbot-ui
- 모두를 위한 오픈 소스 AI 채팅 UI를 제공합니다.
- 2024년 1월 v2.0 이 업데이트 되었습니다.
- 클라우드 LLM 뿐만 아니라 로컬에서 동작하는 LLM 도 지원합니다.
Quivr (Apache-2.0)
https://github.com/StanGirard/quivr
- GPT, Anthropic, VertexAI, Ollama 를 사용하여 문서 (PDF, CSV, ...) 기반으로 채팅을 할 수 있습니다.
- 오프라인 모드 및 링크를 공개할 수도 있으며, 마켓플레이스도 제공합니다.
Langchain-Chatchat (Apache-2.0)
https://github.com/chatchat-space/Langchain-Chatchat
- LangChain을 이용한 Q&A 챗봇 UI를 제공합니다.
- 오픈 소스 LLM 및 임베딩 모델을 기반으로 모든 오픈 소스 모델을 사용하여 오프라인 프라이빗 배포를 달성할 수 있습니다.
LibreChat (MIT)
https://github.com/danny-avila/LibreChat
- ChatGPT 와 유사한 Web 채팅 UI 를 제공합니다.
- 멀티모달 채팅이 가능하며, 다양한 모델을 선택할 수 있습니다.
Next.js AI Chatbot
https://github.com/vercel/ai-chatbot
- Vercel에서 제공하는 Chatbot UI입니다.
- 스트리밍 채텅을 위한 Vercel AI SDK 를 제공합니다.
- Shadcn/ui 를 사용하여 개발되었습니다.
Stable Diffusion web UI (AGPL-3.0)
https://github.com/AUTOMATIC1111/stable-diffusion-webui
- Stable Diffusion을 위한 Gradio 라이브러리를 기반으로 하는 Web UI를 제공합니다.
- 한 번의 클릭으로 설치 및 실행이 가능합니다.
ComfyUI InstantID (Apache-2.0)
https://github.com/huxiuhan/ComfyUI-InstantID
- InstantID는 단일 이미지만으로 인물 식별이 가능한 새로운 이미지를 생성합니다.
- Instant ID 기능을 사용하기 위한 기본 테스트 인터페이스를 제공합니다.
- SD Turbo를 사용가능합니다.
h2o GPT (Apache-2.0)
https://github.com/h2oai/h2ogpt
- 문서를 쿼리하고 요약하거나 로컬 비공개 GPT LLM과 채팅할 수 있습니다.
- 다양한 모델 지원하며, 추론 서버를 지원합니다.
- Linux, Docker, macOS 및 Windows 에서 사용 가능합니다.
Anything LLM (Apache-2.0)
https://github.com/Mintplex-Labs/anything-llm
- 모든 문서, 리소스 또는 콘텐츠를 채팅 중에 모든 LLM이 참조로 사용할 수 있는 컨텍스트로 변환할 수 있는 풀스택 애플리케이션입니다.
- 사용할 LLM 또는 벡터 데이터베이스를 선택할 수 있습니다.
- 다중 사용자 관리 및 권한 관리 기능을 제공합니다.
Productivity
Open Interpreter (AGPL-3.0)
https://github.com/KillianLucas/open-interpreter
- ChatGPT의 Code Interpreter의 기능을 로컬에서 가능하게 해주는 오픈소스입니다.
- CodeLlama를 사용해서 코드가 작성됩니다.
- 실제 로컬환경에서 돌아가며 시스템 명령어도 수행하기 때문에 주의 필요합니다.
Tldraw (Apache-2.0 에서 자체 라이선스로 변경, non-commercial)
https://github.com/tldraw/tldraw
- 캔버스에 그림을 그리면 해당 기능을 AI 로 개발해줍니다.
Screenshot to Code (MIT)
https://github.com/abi/screenshot-to-code
- 웹사이트을 찍어서 올리면 HTML/Tailwind css 로 사이트를 구축합니다.
- GPT-4의 Vision 기능을 이용하여 스크린샷을 분삭하고, 이미지가 필요한 경우 DALL-E 로 생성합니다.
ShellGPT (MIT)
https://github.com/TheR1D/shell_gpt
- 터미널에서 쉘 명령어, 코드 스니펫, 문서 생성에 도움을 줍니다.
- Linux, macOS, Windows를 지원하며 PowerShell, CMD, Bash, Zsh 등과 같은 모든 주요 셸과 호환됩니다.
Pandas AI (MIT)
https://github.com/gventuri/pandas-ai
- 데이터 분석 및 조작 도구인 pandas에 생성적 AI 기능을 추가한 Python 라이브러리입니다.
- 자연어로 데이터에 대해 질문할 수 있습니다.
Continue (Apache-2.0)
https://github.com/continuedev/continue
- VS Code 및 JetBrains용 오픈 소스 Code Copilot 플러그인입니다.
- 채팅을 통해 코드를 작성할 수 있는 IDE 플러그인을 제공합니다.
Sweep (Elastic License - 오픈소스X)
https://github.com/sweepai/sweep
- 버그와 기능 요청을 코드 변경으로 전환하는 AI 주니어 개발자입니다.
- GitHub 이슈를 등록하면, 이슈가 해결된 코드를 자동을 작성하고 PR로 전환됩니다.
- 종속성 그래프, 텍스트 및 벡터 검색을 사용하여 코드베이스를 이해합니다.
https://revf.tistory.com/303
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 1월 23일 오후 12:53
좋아요 ☺️ 😂 😀