랭체인(LangChain)을 이용하여 LLM 애플리케이션(문서에 대한 Q&A, 구조화된 데이터 분석, 챗봇, 코드 작성, 요약 등)을 작성할 수 있습니다. 랭체인 사용 사례는 랭체인 사이트에서 확인하실 수 있습니다.
오늘은 랭체인이 무엇인지 간단히 이야기 해보겠습니다.
랭체인(Langchain)이란?
랭체인은 LLM(Large Language Model, 대형 언어 모델)을 사용하여 애플리케이션 생성할 수 있도록 설계된 프레임워크입니다.
랭체인은 누가 만들었나요?
랭체인은 Harrison Chase가 만들었으며 MIT 라이선스에 따른 오픈 소스 프로젝트입니다. 점점 늘어나는 개발자와 기여자 커뮤니티에 의해 유지 관리됩니다.
랭체인은 언제 사용하면 좋은가요?
랭체인은 다음과 같은 애플리케이션을 구축하려는 경우 사용하면 좋습니다.
- LLM 을 잘 활용하고자 하는 경우: 애플리케이션에 텍스트 생성, 번역, 요약 또는 질문 답변과 같은 작업이 포함되어 있는 경우 랭체인을 사용하면 LLM을 더 쉽게 통합할 수 있습니다.
- 모듈성(Modularity)과 유연성(Flexibility)이 요구되는 경우: 랭체인의 모듈식 설계를 통해 다양한 구성 요소를 쉽게 교체하고 다양한 접근 방식을 실험할 수 있습니다.
- 프로덕션 준비 필요한 경우: 랭체인은 프로덕션 환경에서 애플리케이션을 디버깅, 테스트 및 모니터링하기 위한 도구를 제공합니다.
랭체인에서 제공하는 모듈은?
랭체인은 아래 6개의 모듈을 제공하고 있습니다.
- Model I/O
- Retrieval
- Chains
- Agents
- Memory
- Callbacks
Model I/O
랭체인은 모든 언어 모델과 인터페이스할 수 있는 빌딩 블록을 제공합니다.
Retrieval
랭체인은 단순한 것부터 복잡한 것까지 RAG 애플리케이션을 위한 모든 빌딩 블록을 제공합니다. 문서의 이 섹션에서는 retrieval 단계와 관련된 모든 내용을 다룹니다. 이를 위해 여러 핵심 모듈이 포함됩니다.
Agents
에이전트의 핵심 아이디어는 수행할 일련의 작업을 선택하기 위해 언어 모델을 사용하는 것입니다. 체인에서는 일련의 작업이 코드로 하드코딩됩니다. 에이전트에서 언어 모델은 수행할 작업과 순서를 결정하는 추론 엔진으로 사용됩니다.
Chains
체인은 LLM, 도구 또는 데이터 전처리 단계 등 일련의 호출을 나타냅니다. 이를 위해 LCEL(LangChain Expression Language)을 제공합니다.
Memory
대부분의 LLM 응용 프로그램에는 대화형 인터페이스가 있는데, 대화의 필수 구성 요소는 대화 초반에 소개된 정보를 참조할 수 있는 것입니다. 대화 시스템은 과거 메시지의 일부 창에 직접 액세스할 수 있어야 합니다. 더 복잡한 시스템에는 지속적으로 업데이트되는 월드 모델(world model)이 필요하며, 이를 통해 엔터티 및 해당 관계에 대한 정보를 유지하는 것과 같은 작업을 수행할 수 있습니다.
과거 상호작용에 대한 정보를 저장하는 이러한 능력을 Memory 라고 명명하고, 랭체인은 시스템에 Memory 를 추가하기 위한 많은 유틸리티를 제공합니다.
Callbacks
랭체인은 LLM 애플리케이션의 다양한 단계에 연결할 수 있는 콜백 시스템을 제공하는데, 로깅, 모니터링, 스트리밍 등과 같은 작업에 사용될 수 있습니다.
참고사이트
기본적인 개념에 대해 알아보았습니다. 이를 위해 아래 랭체인 웹사이트를 참고하였습니다.
'개발 > LLM' 카테고리의 다른 글
[ChatGPT][Plugin] 데이터 시각화하기 (36) | 2024.02.13 |
---|---|
[ChatGPT][Plugin] PDF 요약 및 번역하기 (4) | 2024.02.12 |
Tree of Thoughts (0) | 2023.10.09 |
ControlNet 이란? (2) | 2023.10.04 |
Diffusion 모델 종류 및 예제 (0) | 2023.10.02 |