AI를 여행하는 개발자를 위한 안내서 (LLM 개발 스킬트리)
AI(LLM) 기반 애플리케이션 개발을 하고자 하는 경우 참조하실 수 있도록 기술 스택별로 사용할 수 있는 툴/라이브러리/서비스/관련정보를 정리했습니다.
기술 스택의 구분이 모호할 수 있으며, 언급된 툴/라이브러리/서비스가 여러 스택에 해당될 수 있다는 점을 감안하시기 바랍니다.
프로그래밍 언어 | Python – LangChain 및 다양한 툴이 지원하는 언어 – https://www.python.org/ Jupyter Notebook – Python 기반 대화형 개발 환경 – Google colab 을 이용한 온라인 개발/테스트가 매우 편리 – https://colab.research.google.com/ Javascript – 웹 배포가 가능한 장점 – python 다음으로 많은 프로젝트들이 지원하는 언어인듯 |
주요 LLM 모델 | GPT-4 – 제작사: OpenAI – 멀티모달 능력, 높은 추론 능력, 광범위한 지식 – https://openai.com/gpt-4 PaLM 2 – 제작사: Google – 다국어 지원, 코드 생성 능력, 추론 능력 향상 – https://ai.google/discover/palm2/ Gemini – 제작사: Google – 멀티모달 AI, Ultra/Pro/Nano 버전 제공, 고성능 – https://deepmind.google/technologies/gemini/ Claude – 제작사: Anthropic – 긴 컨텍스트 처리, 윤리적 고려사항 반영 – https://www.anthropic.com/index/claude-2 LLaMA – 제작사: Meta (Facebook) – 오픈소스, 다양한 크기(7B, 13B, 70B) – https://ai.meta.com/llama/ BLOOM – 제작사: BigScience – 다국어 지원, 오픈소스, 176B 파라미터 – https://bigscience.huggingface.co/blog/bloom Gopher – 제작사: DeepMind – 280B 파라미터, 다양한 작업에서 높은 성능 – 홈페이지 Jurassic-1 Jumbo – 제작사: AI21 Labs – 178B 파라미터, 다국어 지원 – https://www.ai21.com/blog/announcing-ai21-studio-and-jurassic-1 Megatron-Turing NLG – 제작사: NVIDIA & Microsoft – 특징: 530B 파라미터, 대규모 학습 데이터 – https://developer.nvidia.com/megatron-turing-nlg-530b GPT-NeoX-20B – 제작사: EleutherAI – 오픈소스, 20B 파라미터 – https://github.com/EleutherAI/gpt-neox ERNIE 3.0 Titan – 제작사: Baidu – 중국어 특화, 260B 파라미터 – https://wenxin.baidu.com/wenxin/ernie (중국어) |
LLM 모델 실행 도구 | Ollama – 사전 학습된 LLM 모델들을 쉽게 다운로드하고 실행 – 간단한 API를 통해 LLM과 상호작용 – 모델 관리 및 버전 제어를 지원 – https://ollama.com/download LocalAI – 다양한 LLM을 로컬에서 실행할 수 있는 오픈소스 도구 – https://github.com/go-skynet/LocalAI Msty – ollama 와는 달리 미려한 챗 GUI 를 제공 – 다양한 모델 지원, ollama 연동 가능 – https://msty.app/ llama.cpp – C/C++로 구현된 LLaMA 모델 추론 엔진 – 로컬 CPU에서 LLM 실행 가능 – https://github.com/ggerganov/llama.cpp GPT4All – 로컬에서 실행 가능한 어시스턴트 챗봇, 다양한 오픈소스 LLM 지원 – https://gpt4all.io/ Hugging Face Transformers CLI – 커맨드 라인에서 Hugging Face 모델을 쉽게 실행할 수 있는 도구 – https://huggingface.co/docs/transformers/index Kobold AI – 텍스트 생성 AI를 위한 사용자 친화적 인터페이스 – https://github.com/KoboldAI/KoboldAI-Client OpenLLM – 생산 환경에서 LLM을 미세조정, 서빙, 배포할 수 있는 플랫폼 – https://github.com/bentoml/OpenLLM Fauxpilot – GitHub Copilot의 오픈소스 대안 – 로컬에서 코드 생성 AI 실행 가능 – https://github.com/fauxpilot/fauxpilot vLLM – 빠른 LLM 추론 및 서빙을 위한 라이브러리 – https://github.com/vllm-project/vllm Hugging Face – 다양한 오픈소스 LLM 제공 – https://huggingface.co/transformers/ |
LLM 프레임워크 | LangChain – LLM 애플리케이션 개발을 위한 프레임워크, – Python/javascript 공식 지원 – go/ruby 버전도 있음 – https://www.langchain.com/ LlamaIndex (구 GPT Index) – 대규모 데이터셋에 대한 LLM의 추론을 지원하는 데이터 프레임워크 – https://www.llamaindex.ai/ Haystack – 검색 및 질답 시스템 구축을 위한 end-to-end 프레임워크 – https://haystack.deepset.ai/ Microsoft Semantic Kernel – AI 애플리케이션 개발을 위한 경량 SDK – https://github.com/microsoft/semantic-kernel Embedchain – LLM 기반 챗봇 구축을 위한 프레임워크 – https://github.com/embedchain/embedchain Botpress – 대화형 AI 애플리케이션 개발을 위한 오픈소스 플랫폼 – https://botpress.com/ Autogen – 멀티 에이전트 대화 프레임워크 – https://github.com/microsoft/autogen ExLlamaV2 – LLaMA 모델을 위한 고성능 추론 엔진, CUDA 지원 – https://github.com/turboderp/exllamav2 Vercel AI SDK 특징: LLM을 활용한 AI 기반 스트리밍 애플리케이션 개발을 위한 SDK 홈페이지: https://sdk.vercel.ai/ OpenAI Function Call 특징: OpenAI의 LLM을 사용한 함수 호출 및 도구 사용 프레임워크 홈페이지: https://platform.openai.com/docs/overview |
프롬프트 엔지니어링 | Prompt Engineering Guide: 프롬프트 작성 기법 – https://www.promptingguide.ai/ Prompt Engine – 프롬프트 최적화 및 관리를 위한 오픈소스 도구 – https://github.com/microsoft/prompt-engine LangChain – LLM 애플리케이션 개발을 위한 프레임워크, 프롬프트 템플릿 포함 – https://www.langchain.com/ Promptable – 프롬프트 생성, 테스트, 버전 관리를 위한 협업 플랫폼 – https://promptable.ai/ PromptLayer – 프롬프트 버전 관리, 로깅, 추적을 위한 도구 – https://promptlayer.com/ FLAML (Fast and Lightweight AutoML) – 자동화된 프롬프트 최적화 기능 포함 – https://github.com/microsoft/FLAML Dust – LLM 애플리케이션 개발 및 프롬프트 디자인을 위한 플랫폼 – https://dust.tt/ GPT Index (현재 LlamaIndex로 알려짐) – LLM과 외부 데이터를 연결하는 데 도움을 주는 프레임워크 – https://www.llamaindex.ai/ Prompts.ai – GPT-3 프롬프트 실험 및 최적화를 위한 웹 인터페이스 – https://prompts.ai/ OpenPrompt – 프롬프트 기반 학습을 위한 오픈소스 프레임워크 – https://github.com/thunlp/OpenPrompt Prompt Perfect – AI 기반 프롬프트 최적화 도구 – https://promptperfect.jina.ai/ Anthropic’s Constitutional AI – 윤리적이고 안전한 AI 시스템을 위한 프롬프트 엔지니어링 방법론 – 홈페이지 Brainware – 프롬프트 엔지니어링 및 LLM 오케스트레이션 플랫폼 – https://www.brainware.ai/ Humanloop – LLM 애플리케이션 개발 및 프롬프트 최적화를 위한 플랫폼 – https://humanloop.com/ Prompt Base – 프롬프트 마켓플레이스 및 커뮤니티 – https://promptbase.com/ DreamStudio – Stable Diffusion을 위한 프롬프트 엔지니어링 도구 – https://beta.dreamstudio.ai/ |
데이터 로딩 및 처리 | LangChain Document Loaders – 다양한 형식의 문서 로딩 – 홈페이지 LangChain Wrapper – 다양한 검색 엔진을 위한 Wrapper를 제공 – Google Search, Bing Search, DuckDuckGo, SerpAPI – Custom Search Engine 지원 Pandas – 데이터 처리 라이브러리 – https://pandas.pydata.org/ |
임베딩 및 텍스트 처리 | HuggingFace Embeddings – langchain embeddings – https://huggingface.co/models?sort=trending&search=embedding Sentence Transformers – 텍스트 임베딩 생성 – https://www.sbert.net/ spaCy – 자연어 처리 라이브러리 – https://spacy.io/ |
벡터 데이터베이스 | Pinecone – 벡터 검색 데이터베이스 – https://www.pinecone.io/ Faiss – Facebook AI의 유사성 검색 라이브러리 – https://github.com/facebookresearch/faiss Chroma – 임베딩을 위한 오픈소스 벡터 데이터베이스 – https://www.trychroma.com/ LanceDB – AI 앱을 위한 고성능 벡터 데이터베이스 – 벡터 임베딩을 효율적으로 저장하고 쿼리할 수 있는 SQLite와 유사한 빠른 데이터베이스 – https://lancedb.com/ |
메모리 및 상태 관리 | LangChain Memory – 대화 기록 관리 – https://python.langchain.com/docs/modules/memory/ Redis – 인메모리 데이터 구조 저장소 – https://redis.io/ |
LangChain flow 시각화 | Langchain의 내장 시각화 기능 – Langchain은 일부 구성 요소에 대한 기본적인 시각화 기능 제공 – 간단한 플로우를 빠르게 확인하는 데 유용 – https://langchain.readthedocs.io/en/latest/ LangFlow – LangChain 컴포넌트를 위한 UI 및 플로우 차트 도구 – https://github.com/logspace-ai/langflow Flowise – LangChain 플로우를 위한 드래그 앤 드롭 UI 도구 – https://github.com/FlowiseAI/Flowise |
도구 및 Agent | LangChain Tools – 다양한 외부 도구 통합 – https://python.langchain.com/docs/modules/agents/tools/ LangChain Agents – 자동화된 작업 수행 – https://python.langchain.com/docs/modules/agents/ Composio – AI 에이전트 통합 플랫폼 – 250개 이상의 애플리케이션을 지원하며, GitHub, Jira, Salesforce, Gmail 등 다수의 SaaS 앱 연결 지원 – https://composio.dev/ CopilotKit – 웹 앱에 AI 코파일럿 추가, GitHub Copilot과 같은 기능을 앱에 쉽게 추가 – https://www.copilotkit.ai/ |
다중 Agent Workflow | LangGraph – 언어 모델과 지식 그래프를 결합하여 더욱 강력한 정보 처리 – 상태 머신 개념을 사용하여 복잡한 AI 워크플로우를 그래프 방식으로 쉽게 구축 – https://langchain-ai.github.io/langgraph/ LangGraph JS – 그래프 기반 에이전트 워크플로우 구축 (Javascript) – https://www.langchain.com/langgraph Neo4j – 그래프 데이터베이스의 대표적인 오픈 소스 솔루션 – LangGraph와 같이 지식 그래프를 구축하고 관리 – https://neo4j.com/ |
UI framework | Streamlit – 파이썬 기반, 간단한 문법, 빠른 프로토타이핑 – 학습 곡선이 낮음, 데이터 시각화에 강함 – 복잡한 레이아웃에는 제한적일 수 있음 – https://streamlit.io/ Gradio – 직관적인 인터페이스, 빠른 데모 생성 – 다양한 입력/출력 유형 지원, Hugging Face와의 통합 – 고급 커스터마이징에 제한이 있을 수 있음 – https://gradio.app/ ComfyUI – 노드 기반 이미지 생성 파이프라인 제작 오픈 소스 도구 – Stable Diffusion, ControlNet 등 다양한 모델과 함께 사용 Dash – 반응형 웹 애플리케이션, 풍부한 컴포넌트 – 복잡한 대시보드 생성 가능, 높은 커스터마이징 – 학습 곡선이 상대적으로 높음 – https://dash.plotly.com/ Streamlit IO (Streamlit의 확장) – Streamlit 기반, AI 특화 기능 추가 – AI 워크플로우에 최적화, 사용 편의성 – 아직 개발 중인 단계로 기능이 제한적일 수 있음 – https://www.streamlit.io/generative-ai Panel – 파이썬 기반, 데이터 시각화에 강함 – Jupyter Notebook과의 통합, 다양한 위젯 제공 – AI 특화 기능은 상대적으로 적을 수 있음 – https://panel.holoviz.org/ Voilà – Jupyter Notebook을 웹 애플리케이션으로 변환 – 노트북 기반 개발자에게 친숙, 간단한 사용법 – 복잡한 인터랙션에는 제한적일 수 있음 – https://voila.readthedocs.io/ text-generation-webui LLM을 위한 웹 인터페이스 제공, 다양한 모델 지원 – https://github.com/oobabooga/text-generation-webui Vercel AI SDK – TypeScript로 AI 웹 앱 빌드 – React, Next.js, Vue, SvelteKit 등을 지원하며, 반복적인 설정을 단순화하고 대화형 UI 기반 구축 – https://sdk.vercel.ai/ |
LLM 개발 관리, 디버깅 | LangSmith – 모델 버전 관리, 협업(공유) 기능 – 로깅, 디버깅 – https://smith.langchain.com/ Hugging Face Hub – LangSmith와 마찬가지로 모델 버전 관리, 협업 기능 지원 – Transformers 라이브러리와의 긴밀한 연동 – https://huggingface.co/ |
첨삭이 필요한 항목이 있으면 댓글로 제보 바랍니다!