본문 바로가기
📚도서 공부/LangChain으로 구현하는 LLM

2. LLM 응용을 위한 LangChain

by Majestyblue 2024. 4. 15.

1. LangChain이란 무엇인가?

2022년 해리슨 체이스(Harrion Chase)에 개발되었으며 LLM을 기반으로 한 애플리케이션을 구축하기 위한 오픈 소스 파이썬 프레임워크이다. 개발자에게 언어 모델을 외부 데이터 소스 및 서비스에 연결하기 위한 모듈화된, 사용하기 쉬우 ㄴ구성 요소를 제공한다.

 

LangChain은 재사용 가능한 구성 요소와 사전 구성된 체인을 제공하여 복잡한 LLM 응용의 개발을 간소화하였다. 모듈식 아키텍쳐는 LLM과 외부 서비스에 대한 접근을 통합된 인터페이스로 추상화한다. LangChain은 에이전트와 메모리를 통한 대화식 맥락 및 지속성과 같은 고급 상호 작용을 용이하게 하여 챗봇, 외부 데이터 수집 등이 가능해진다.

 

특히 체인, 에이전트, 메모리 및 도구 지원을 통해 개발자는 환경과 더 정교한 방식으로 상호작용하고 개발할 수 있다.

 

LangChain이 개발자에게 제공할 수 있는 주요 이점은 아래와 같다.

  • 유연하고 적응 가능한 LLM 통합을 위한 모듈식 아키텍쳐
  • LLM뿐만 아니라 여러 서비스를 연결할 수 있는 체인 기능
  • 격리된 호출 대신 목표 중심의 에이전트 상호 작용
  • 실행 간의 상태를 유지하기 위한 메모리 및 지속성

 

2. LangChain의 핵심 개념 4가지

랭체인(LangChain)에서의 '체인', '에이전트', '메모리', '도구'는 상호작용하는 시스템을 만들기 위한 핵심 개념이다.

가. 체인

체인은 모듈형 구성 요소를 재사용 가능한 파이프라인으로 조립하는 개념입니다. 이는 모듈성, 결합성, 가독성, 유지보수성, 재사용성, 도구 통합, 생산성을 제공한다. 체인은 하위 모듈을 조합하여 재사용 가능한 논리를 결정한다.

나. 에이전트

에이전트는 사용자 및 환경과 동적으로 상호 작용하는 자율적인 소프트웨어 개체이다. 에이전트는 목표와 작업을 달성하기 위해 행동할 수 있으며, 목표 지향적 실행, 동적 응답, 상태 유지, 견고성, 구성 등의 이점을 제공한다. 에이전트는 환경을 관찰하고 그 관찰을 기반으로 실행할 체인을 결정한다.

다. 메모리

메모리는 체인 또는 에이전트 실행 간에 지속되는 상태를 나타낸다. 이를 통해 대화의 일관성과 관련성이 향상된다. 메모리에 정보를 보존하면 반복적인 정보에 대한 호출 수를 줄이고, API 사용과 비용을 낮추면서도 필요한 컨텍스트를 제공한다. 메모리는 대화형 및 상호 작용형 응용에 핵심적이다.

마. 도구

도구는 에이전트가 DB 및 API와 같은 외부 서비스를 통합할 수 있도록 모듈식 인터페이스를 제공한다. 도구는 기계 번역, 계산, 지도, 날씨, 주식, 슬라이드 생성, 테이블 처리, 지식 그래프, 위키피디아, 온라인 쇼핑 등 다양한 기능을 확장할 수 있다. 도구는 에이전트 논리의 구성 요소로서, 특정 작업을 수행하는 데 필요한 외부 정보나 기능을 제공한다.

 

랭체인의 이러한 개념들은 상호작용하는 시스템을 만들기 위해 서로 보완적으로 작동한다. 체인은 작업의 논리적 흐름을 정의하고, 에이전트는 이를 조합해 목표를 달성하며, 메모리는 이 과정에서의 지속성을 제공하고, 도구는 필요한 외부 데이터나 기능을 통합한다.

 

 

 

3. 핵심 개념 4가지를 이용한 예시 프로젝트

LLM(Large Language Models)을 사용한 예시 프로젝트로는 "개인화된 교육 플랫폼"을 들 수 있다. 이 프로젝트는 LLM을 기반으로 학습자의 이해도, 관심사, 학습 스타일 등을 분석하여 맞춤형 교육 콘텐츠를 제공한다. 이를 통해 학습자는 보다 효과적으로 지식을 습득할 수 있으며, 교육 과정에서의 참여도와 만족도를 높일 수 있다.

가. 체인(Chain)

이 프로젝트에서의 "체인"은 학습자와 LLM 사이의 상호작용을 의미한다. 학습자가 특정 주제에 대한 질문을 하면, LLM은 이에 대한 답변을 제공하고, 학습자의 반응(이해도, 관심도 등)을 바탕으로 다음 콘텐츠를 추천하는 과정이 반복된다. 이러한 체인을 통해 학습자는 점차 맞춤형 학습 경로를 구성할 수 있다.

나. 에이전트(Agent)

이 시스템에서의 "에이전트"는 LLM이다. 에이전트는 학습자의 질문을 이해하고, 적절한 답변을 제공하는 역할을 수행한다. 또한, 학습자의 선호도와 학습 진행 상황을 분석하여 개인화된 학습 콘텐츠를 추천한다.

다. 메모리(Memory)

LLM의 "메모리"는 학습자의 학습 데이터, 질문-답변 이력, 선호도 등의 정보를 저장하는 공간이다. 이 메모리를 통해 LLM은 학습자에 대한 더 깊은 이해를 바탕으로 보다 정확한 맞춤형 교육 콘텐츠를 제공할 수 있다.

라. 도구(Tool)

이 프로젝트에서의 "도구"는 LLM과 연동되는 학습 관리 시스템(LMS), 교육 콘텐츠, 인터페이스 등을 의미한다. 이러한 도구들은 LLM이 학습자에게 맞춤형 교육 경험을 제공하는 데 필요한 기능을 지원한다.