반응형
요즘 핫한 AI 관련 정보를 찾아보다가 LangChain이라는 단어가 많이 보여서 찾아보면서 정리했던 내용 입니다.
기초적인 사항이라 처음 접하시는 분들에게 추천합니다.
LangChain이란?
- OpenAI, Cohere, Boolm, Huggingface등 여러 대형 LLM(Large Language Model)을 이용한 개발을 효율적으로 하기 위한 프레임워크
- 공식 사이트
- https://docs.langchain.com/docs/
- (TypeScript버전) https://js.langchain.com
- (python버전) https://python.langchain.com
LangChain 모듈
1. Model I/O
- 다양한 LLM을 동일한 I/F에서 처리하기 위한 빌딩 블록을 제공
- LLMs(Large Language Models)
- 대량의 텍스트 데이터를 자연스러운 언어로 처리하는 모델
- Chat Models
- 내부적으로는 언어 모델을 사용하지만 외부적으로는 채팅 모델에 사용하기 편한 인터페이스를 제공
- Embedding Models
- 텍스트 데이터를 벡터(floats) 형태의 수치로 변경하는 모델
2. Prompt
- 프롬프트 관리, 최적화 및 직렬화 기능, 응답을 생성하기 위한 문장등의 모델에 전달되는 내용
- Prompt Templates
- 형식화되어 있는 지시문
- 템플릿에 임의의 변수가 정의 되어 형식화된 지시문에 따라 동적으로 프롬프트를 생성
- Example Selectors
- 프롬프트에서 상황에 맞는 정보를 예제중에 선택하게 제공
- Output Parser
- LLM의 응답을 구조화 할 수 있게 제공(일반적으로 JSON사용)
3. Retrieval (Data Connection)
- LLM가 외부 데이터 기반으로 답변을 가져올수 있도록 인터페이스 제공
- Document Loaders
- 여러 문서에서 데이터를 가져올수 있게 제공
- Document transformers
- 읽은 데이터 세트를 관리하기 쉬운 단위로 분할 하거나 언어모델의 문장 이해를 돕는 데이터로 가공하는 가능
- 큰 문서를 작게 chunk화 시킴
- Vector Stores
- 텍스트를 임베디드(벡터화) 시킨 데이터를 저장/관리/검색을 지원하는 저장소
- Retievers
- 데이터를 문서화 시켜 LLM와 연동 할수 있게 제공Retrieval (Data connection)
- Document Loaders
3. Memory
- LLM을 이용해 데이터를 저장하고 검색할수 있게 제공
- Chat Message
- 사용자와 AI간의 채팅 데이터를 메모리에 저장
4. Chain
- 체인을 연결하여 응답 처리를 연속적으로 실행할수 있도록 연결하는 기능
- 체인의 최소 단위는 프롬프트와 LLM 기반으로 구성
- LLM Chains
- 가장 일반적인 체인 유형(프롬프트 + LLM)
- Sequential Chain
- 앞 체인의 응답이 다음 체인의 질문이 되는 순차적인 체인 유형
- Router Chain
- 질문에 대해 주제에 맞는 체인별로 라우팅을 하는 체인 유형
- 복잡한 질문에 사용됨
5. Agents
- Agent
- 프롬프트의 내용에 근거해서 어떠한 툴을 이용해서 어떤 LLM으로 어떤 액션을 취해야 하는지 판단해 주는 기능
- Tools
- 에이전트가 외부 리소스에 연결하기 위한 권한, 방법을 제공하기 위한 기능
- Toolkits
- 3~5개의 Tool들을 세트화 시킨 킷
- AgentExecutor
- 에이전트를 호출하고 실행시키기 위한 기능
'Development Memories' 카테고리의 다른 글
M1 / M2 맥북(Macbook)에서 SSH 접속시 알고리즘 키 에러가 발생하는데 어떻게 하나요? (0) | 2023.02.11 |
---|---|
클린코드를 위한 프로그래밍의 기본 법칙 (DRY, KISS, YAGNI) (0) | 2021.05.21 |