LangChain은 대규모 언어 모델(LLM)을 기반으로 애플리케이션을 구축하기 위한 오픈 소스 프레임워크
LLM은 대량의 데이터로 사전 훈련된 대규모 딥 러닝 모델. 질문에 답하거나 텍스트 기반 프롬프트에서 이미지를 생성하는 등 사용자 쿼리에 대한 응답을 생성
LangChain은 모델이 생성하는 정보와 맞춤화, 정확성 및 관련성을 개선하기 위한 도구와 추상화 기능 제공. 개발자는 LangChain 구성 요소를 사용하여 새 프롬프트 체인을 구축하거나 기존 템플릿을 맞춤화 가능
LangChain이 중요한 이유
- LLM은 일반적인 상황에서 프롬프트에 응답하는 데 탁월하지만, 훈련한 적이 없는 특정 영역에서 성능이 떨어짐
- 이를 위해서 기계 학습 엔지니어가 LLM을 조직의 내부 데이터 소스와 통합하고 프롬프트 엔지니어링을 적용해야 함
- LangChain은 이러한 데이터 응답 애플리케이션을 개발하기 위한 중간 단계를 간소화하여 프롬프트 엔지니어링의 효율성을 높임
LangChain의 장점
언어 모델 용도 변경
- 재훈련이나 미세 조정 없이 LLLM을 분야별 애플리케이션에 맞게 재활용 가능
- 개발 팀은 독점 정보를 참조하여 모델 응답을 보강하는 복잡한 애플리케이션 구축 가능
- RAG 워크플로를 만들 수 있으며 이를 통해 모델 할루시네이션을 줄이고 응답 정확도 향상
AI 개발 간소화
- LangChain은 복잡한 데이터 소스 통합과 프롬프트 세분화를 추상화하여 인공 지능(AI) 개발을 간소화
- 개발자는 시퀀스를 사용자 지정하여 복잡한 애플리케이션 빠르게 구축 가능
개발자 지원
- LangChain은 언어 모델을 외부 데이터 소스와 연결하는 도구를 AI 개발자에게 제공
- LangChain은 오픈 소스이며 활발한 커뮤니티 지원을 받음
LangChain의 작동 방법
체인
- LangChain에 다양한 AI 구성 요소를 유지하며 컨텍스트 인식 응답을 제공한다는 기본 원칙
- 사용자의 쿼리부터 모델의 출력에 이르기까지 일련의 자동화된 작업
체인의 예
- 다른 데이터 소스에 연결
- 고유한 콘텐츠 생성
- 다언어 번역
- 사용자 쿼리에 대답
링크
- 체인은 링크로 이루어져 있음
- 개발자가 서로 연결하며 체인 시퀀스를 형성하는 각 작업을 링크라고 함
- 링크를 사용하여 복잡한 작업을 여러 개의 작은 작업으로 나눌 수 있음
링크의 예
- 사용자 입력 형식 지정
- LLM에 쿼리 전송
- 클라우드 스토리지에서 데이터 검색
- 특정 언어에서 다른 언어로 번역
LangChain의 핵심 구성 요소
LLM 인터페이스
- LangChain은 개발자가 코드에서 LLM을 연결하고 쿼리할 수 있는 API를 제공
- 개발자는 복잡한 코드를 작성하는 대신 간단한 API 호출을 통해 LangChain에서 GPT, Bard, PalM 등의 공개 및 독점 모델과 상호 작용 가능
프롬프트 템플릿
- 개발자가 AI 모델에 대한 쿼리의 형식을 일관되고 정확하게 지정하는데 사용하는 사전 구축된 구조
- 개발자는 챗봇 애플리케이션 또는 퓨샷 학습을 위한 프롬프트 템플릿을 만들거나, 언어 모델에 구체적인 지침 제공 가능
- 다양한 애플리케이션과 언어 모델에 템플릿 재사용 가능
에이전트
- LangChain이 제공하는 도구와 라이브러리를 사용하여 복잡한 애플리케이션을 위해 기존 체인을 구성하고 사용자 지정
- 에이전트는 언어 모델이 쿼리에 응답하는 최상의 시퀀스를 결정하도록 유도하는 특수 체인
- 에이전트를 사용할 때 개발자는 사용자의 입력, 사용 가능한 도구 및 원하는 결과를 얻기 위한 가능한 중간 단계 제공
- 그 다음 언어 모델은 애플리케이션이 수행할 수 있는 현실적인 작업 시퀀스를 반환
검색 모듈
- 언어 모델 응답을 개선하는 정보를 변환하고, 저장하고, 검색하고, 가져오는 다양한 도구를 사용하여 RAG 시스템을 설계
- 개발자는 단어 임베딩을 사용하여 정보의 의미론적 표현을 생성하고 로컬 또는 클라우드 벡터 데이터베이스에 저장
메모리
- LangChain을 사용하며 개발자가 시스템에 메모리 기능을 포함할 수 있음
- 예시) 가장 최근의 대화를 기억하는 간단한 메모리 시스템
- 예시) 과거 메시지를 분석하여 가장 연관성이 높은 결과를 반환하는 복잡한 메모리 구조
콜백
- 개발자가 LangChain 작업의 특정 이벤트를 로깅, 모니터링 및 스트리밍하기 위해 애플리케이션에 추가하는 코드
- 예시) 개발자는 체인이 처음 직접 호출된 시점과 콜백에서 발생한 오류 추적
출처 : https://aws.amazon.com/ko/what-is/langchain/