-
LangChain에 대하여DEV 2023. 12. 3. 12:06
LangChain의 component소개, 테스트 코드, 그리고 LangChain과 관련된 그 외 프로젝트들...
LangChain
- LangChain is a framework for developing applications powered by language models.
- 언어 모델이 API를 통해 호출하는 것뿐 아니라 아래의 기능도 수행할 것이라고 믿는다.
1. 외부 데이터 인식
2. 외부 환경과 상호작용 - Lang + Chain
- LLM에 프롬프트를 채이닝하여 한번에 복잡한 명령을 내릴 수 있는 기능이 핵심인 것 같다.
Component
- Schema, Models, Prompts, Indexes, Memory, Chains, Agents….
Model, Prompts, Output Parsers
- test code
- Model
- hugging face
- AI community, models, datasets..
- https://huggingface.co
Memory
- test code
- LLMs are ‘stateless’
- Each transaction is independent
- ConversationBufferMemory, ConversationBufferWindowMemory, ConversationTokenBufferMemory, ConversationSummaryMemory...
- LLM’s on Documents
- LLM’s can only inspect a few thuousand words at a time
- Vector data memory
- chain_type
- Stuff, Map_reduce, Refine, Map_rerank - Entity memorise
- https://python.langchain.com/en/latest/modules/memory/types/entity_summary_memory.html
Chains
- test code
- LLMChain
- Sequential Chains
- type of chains
- https://python.langchain.com/en/latest/modules/chains/how_to_guides.html
- to combine multiple chains where the output of the one chain is the input of the next chain.
- SimpleSequentialChain
- Single input / output
- SequentialChain
- multiple inputs / outptuts
- Router Chain
- MultiPromptChain
- MultiRetrievalQAChain
Demo app
Mojo
- Python의 고질적인 문제인 느린 실행 속도를 개선하기 위해 제작된 파이썬의 수퍼셋(상위 호환) 언어
- 기존 Python 3.x와 100% 호환
- 기본의 코드를 수정 없이 그대로 속도만 향상
- Mojo 🔥: Programming language for all of AI
PlugIn?
- https://python.langchain.com/en/latest/use_cases/agents/custom_agent_with_plugin_retrieval.html
- https://www.klarna.com/.well-known/ai-plugin.json
More
Short-courses
- Free for a limited time
- https://www.deeplearning.ai/short-courses/
LangCorn
- API server that enables you to serve LangChain models and pipelines with ease, leveraging the power of FastAPI
- https://github.com/msoedov/langcorn
LangFlow
- GUI for LangChain
- https://github.com/logspace-ai/langflow
느낀 점
- LLM을 사용하면서 개발이 필요한 많은 부분이 자동화되고, 단순화될 것으로 보이지만, LLM을 각 서비스, 도메인에 잘 사용하기 위한 영역의 엔지니어링이나 비즈니스 개발영역은 더욱 확장될 것 같다. 현재의 단계가 LLM의 종착점이 아니고 특이점을 지나가는 중간 단계 일 수도 있지만 (= 미래에는 LLM이 더 발달해 LangChain 같은 framework이 필요 없는 단계가 올지도 모르겠지만), 적어도 현재의 단계에는 LLM으로 인해 사라지는 분야보다, 할 수 있는 일들이 오히려 더 많아질 수도 있을 것 같다.
Reference
728x90'DEV' 카테고리의 다른 글
HuggingFace에서 Transformer 모델을 fine-turning 해보자 (0) 2023.12.08 Virtual Thread & Structured Concurrency & Coroutine (0) 2023.12.03 JIT compiler & GraalVM in java (2) 2023.12.03 Spring batch jobScope, stepScope (0) 2023.12.02 Elasticsearch에서의 relation (1) 2023.12.02