프로젝트 개발 일지/AI
LangChain 이란?
ballbig
2024. 9. 26. 11:19
728x90
LangChain이란?
- LLM을 기반으로 한 애플리케이션을 구축하기 위한 오픈소스 파이썬 프레임 워크.
- 2022년 해리슨 체이스에 의해 개발되었다.
- 언어 모델을 외부 데이터 소스 및 서비스에 연결하기 위한 모듈화된 요소를 제공해준다.
- 재사용 가능한 구성요소와 사전 구성된 체인을 제공해 복잡한 LLM 응용의 개발을 간소화하는데 도움을 준다.
- 체인, 에이전트, 도구 및 메모리 지원을 통해 외부 환경과 더 정교한 방식으로 상호작용하고 재사용 가능한 응용을 할 수 있게 도와준다.
LangChain 주요 기능
- 체인(Chains) 구성
- LangChain은 다양한 작업을 순차적으로 수행할 수 있는 기능을 제공한다.
- 예를 들어, 먼저 사용자 입력을 처리한 후, 그 결과를 데이터베이스 검색에 사용하고, 마지막으로 결과를 요약하는 일련의 작업을 연결하는 파이프라인으로 조립하는 개념이다.
- 에이전트(Agents)
- LangChain은 특정 작업을 실행하기 위해 모델이 외부 도구(API, 데이터베이스 등)를 사용할 수 있도록 에이전트(Agents)라는 기능을 제공한다.
- 예를 들어, 모델이 질문을 받으면 데이터를 검색하거나 계산을 수행하는 등의 작업을 에이전트를 통해 실행할 수 있다.
- 사용자 및 환경과 시간에 동적으로 상호작용하는 시스템을 만들기 위한 자율적인 소프트웨어 개채
- 에이전트는 체인을 조율해 LLM 확장을 수행한다.
- 즉, 체인이 구성요소를 순서대로 나열하여 재사용 가능한 논리를 정의해주면, 에이전트는 작업을 수행하기 위해 체인을 활용한다.
- 메모리 관리(Memory)
- 체인/에이전트 실행 간에 지속되는 상태를 나타낸다.
- 사용자 입력을 고립된 프롬프트로 처리하는 대신, 각 호출마다 대화형 메모리를 모델에 전달해 일관성을 제공할 수 있다.
- 일반적인 언어 모델은 상태를 기억하지 못하는 특성을 가지고 있지만 LangChain의 메모리 기능을 사용하면 대화형 애플리케이션에서 문맥을 유지하거나, 이전 정보를 기억하여 응답할 수 있도록 도와준다.
- 외부 데이터 소스와의 통합
- LangChain은 데이터베이스, API, 검색 엔진과 같은 외부 데이터 소스와 통합하여 사용할 수 있다. 이를 통해 언어 모델이 실시간 정보나 추가 데이터를 검색하여 더 정확한 결과를 제공할 수 있다.
- 문서 및 지식 기반 통합
- LangChain을 사용하면 문서나 데이터베이스 같은 지식 기반을 모델에 연결할 수 있다. 이를 통해 언어 모델은 기존 지식 기반에서 관련 정보를 찾아서 제공하거나, 질문에 답변하는 데 필요한 문서를 찾아주는 역할을 할 수 있다.
- 프롬프트 템플릿(Prompt Templates)
- LangChain에서는 프롬프트(모델에게 주어지는 입력)를 쉽게 관리할 수 있도록 프롬프트 템플릿 기능을 제공한다. 이를 통해 프롬프트를 동적으로 생성하거나, 특정한 형식으로 구성된 프롬프트를 재사용할 수 있다.
LangChain의 작동 원리
- LangChain 프레임워크는 모듈화된 구성 요소를 제공해 언어 모델을 다른 데이터와 서비스에 연결하는 것을 용이하게 한다.
- 체인은 모듈을 애플리케이션 목표에 맟추며,
- 에이전트는 사용자와의 목표 지향적 상호 작용을 위해 체인을 활용한다. 관찰에 기반해 반복적으로 작업을 실행하며 최적의 논리 체인을 계획하고 대화를 통해 메모리를 유지한다.
LangChain 모듈
- LLM 및 채팅 모델 : GPT와 같은 언어 모델 과의 연결 및 쿼리 제공. 비동기, 스트리밍 및 배치 요청을 지원한다.
- 문서 로더 : 텍스트와 메타데이터가 포함된 문서로 데이터를 로드할 수 있게 해준다.
- 문서 변환기 : 문서를 분할, 결합, 필터링, 번역 등을 통해 조작한다.
- 텍스트 임베딩 : 텍스트의 벡터 표현 생성
- 벡터 저장소 : 임베드된 문서 벡터를 효율적으로 유사성 검색 및 검색을 위해 저장한다.
- 검색기 (Retrievers) : 쿼리에 기반한 문서를 반환하기 위한 일반적인 인터페이스
- 콜백 : 로깅, 모니터링, 스트리밍 등에 훅을 걸어 파이프라인 단계에 참여한다. 체인을 모니터링 하는 데 사용한다.