본문 바로가기

랭체인(LangChain)의 개념, 이해

zzangdis 2024. 3. 23.

최신 대규모 언어 모델(LLM)의 트렌드를 따라가는 소프트웨어 개발자들은 매일 새로운 AI 관련 소식으로 당황할 수 있습니다. 이는 새로운 오픈 소스 모델이 출시되고 상용 서비스 제공업체들이 매일 중요한 신기능을 발표하는 것과 유사합니다. 이제 LLM은 최신 소프트웨어 스택의 필수 구성 요소로 자리 잡고 있습니다. 그러나 앱 내 오픈 소스 모델을 포함한 오픈AI와 같은 서비스 제공업체가 제공하는 모델 API를 사용하거나 LLM을 기반으로 한 애플리케이션을 구축하려면 프롬프트를 보내고 응답을 기다리는 것 이상의 작업이 필요합니다. 파라미터 조정부터 신속한 확장, 응답 조정까지 개발자가 고려해야 할 많은 요소가 있습니다.


단순 대화 모델인 LLM은 상태를 저장하지 않기 때문에 이전 대화의 컨텍스트를 유지하기 위해서는 개발자가 별도로 관리해야 합니다. 이를 위해 이전 대화 내용을 영구적인 저장소에 보관하여 필요할 때마다 검색하고 불러올 수 있습니다. 이러한 접근 방식은 사용자와의 상호작용을 지속시키며, 이전 대화에서의 정보를 새로운 대화에 적용할 수 있도록 합니다.

또한, 각 사용자와의 상호작용을 구분하기 위해 세션 관리가 중요합니다. 사용자의 세션을 고유하게 식별하여 상태를 유지하고, 필요할 때마다 세션 상태를 복원하여 이전 대화의 컨텍스트를 회복할 수 있습니다.

 



데이터베이스에 저장된 대화 로그나 사용자의 프로필 등을 활용하여 사용자의 관심사나 선호도를 파악하고, 이를 기반으로 보다 개인화된 대화를 제공할 수도 있습니다. 이러한 방법들을 통해 LLM이 보다 자연스럽고 유의미한 대화를 진행할 수 있도록 돕습니다.

또한, 다양한 시나리오에 대응하기 위해 여러 모델을 사용할 수 있습니다. 예를 들어, 감정 분석에 특화된 모델이나 질문 응답 시스템에 특화된 모델 등을 조합하여 사용함으로써 보다 다양한 대화 상황에 유연하게 대응할 수 있습니다. 이러한 모델 간의 통합과 데이터 흐름 관리를 위해서는 적절한 아키텍처와 노력이 필요합니다.

 

 

LLM 앱 구축을 위한 통합 API 계층

LangChain은 LLM과 애플리케이션의 통합을 단순화하고 대부분의 문제를 해결하기 위해 설계된 SDK입니다. 이 SDK는 표준 SQL 구문에 집중하여 백엔드 데이터베이스 구현의 세부 사항을 추상화하는 ODBC 및 JDBC 드라이버와 유사한 개념입니다. LangChain은 간단하고 통합된 API를 제공하며 LLM의 기본 구현 세부 사항을 추상화하여 개발자가 모델 교환을 손쉽게 할 수 있도록 합니다.

 

LangChain은 거의 동시에 Chat GPT와 등장했습니다. 개발자 해리슨 체이스가 LangChain을 처음 선보인 것은 LLM 열풍이 시작된 2022년 10월 말이었습니다. 그 이후 커뮤니티 멤버들이 적극적으로 기여하여 LangChain은 LLM과의 상호작용을 위한 우수한 도구로 성장하였습니다. LangChain은 외부 도구와의 통합을 허용하여 환경을 구축하는 강력한 프레임워크로서 기능합니다.

 

LangChain은 개발자가 대화 모델과의 통합을 간소화하고, 모델을 유연하게 교체하거나 업그레이드할 수 있도록 지원합니다.

 

 

Langchain의 핵심 모듈 4가지

LangChain의 핵심 모듈은 다음과 같습니다:

  1. 데이터베이스 모듈: LangChain과 백엔드 데이터베이스 간의 통합을 담당합니다. 이 모듈은 데이터베이스에 쿼리를 보내고 결과를 반환하는데 사용됩니다. 데이터베이스 모듈은 LangChain의 중심 역할을 하며, 외부 시스템과의 통합을 용이하게 합니다.
  2. API 모듈: LangChain의 핵심 API를 정의하고 구현합니다. 이 모듈은 개발자가 LangChain을 사용하여 쉽게 대화 모델과 상호작용할 수 있도록 합니다. API 모듈은 LangChain의 외부 인터페이스를 제공하여 다른 시스템이나 애플리케이션과의 통신을 지원합니다.
  3. 모델 관리 모듈: 이 모듈은 LangChain에서 사용되는 대화 모델을 관리하고 교체하는 기능을 제공합니다. 새로운 모델을 추가하거나 기존 모델을 업데이트하는 등의 작업을 수행합니다. 모델 관리 모듈은 LangChain의 유연성을 높이고, 다양한 모델을 효율적으로 관리할 수 있도록 돕습니다.
  4. 통합 모듈: 이 모듈은 LangChain의 다른 모듈들을 통합하고, 외부 시스템과의 상호작용을 관리합니다. 통합 모듈은 LangChain의 각 부분이 원활하게 연결되도록 보장하며, 전체 시스템의 효율성을 높이는 역할을 수행합니다.

 

모듈의 동작 방식

• 모델 I/O : LLM과의 상호작용을 처리합니다. 기본적으로 효과적인 프롬프트 생성, 모델 API 호출 및 출력 구문 분석에 도움이 됩니다. 생성 AI의 핵심인 신속한 엔지니어링이 랭체인에서 잘 처리합니다. 모델 I/O 모듈은 LLM 공급자에 의해 공개된 인증, API 파라미터 및 엔드포인트를 추상화합니다. 마지막으로 모델에서 전송되는 응답은 응용 프로그램에서 사용할 수 있는 형식으로 구문 분석할 수 있습니다.


• 데이터 연결 : 데이터 연결 모듈은 LLM 애플리케이션 ETL 파이프라인에 대응합니다. PDF나 Excel 파일 등의 외부 문서가 로드되고 배치 내의 단어 임베딩으로 변환되며 임베딩은 벡터 데이터베이스에 저장되고 마지막으로 쿼리에 의해 검색됩니다. 앞서 언급했듯이, 이것은 Lang 체인의 가장 중요한 구성 요소입니다.


• 체인 : LLM과 상호작용하는 것은 많은 점에서 Unix 파이프라인을 사용하는 것과 비슷합니다. 한 모듈의 출력은 입력으로 다른 모듈로 전송됩니다. 경우에 따라서는 원하는 결과를 얻을 때까지 LLM을 사용하여 응답을 명확히 하고 요약해야 합니다. Langchain의 체인은 빌딩 블록과 LLM을 사용하여 기대되는 반응을 얻는 효율적인 파이프라인을 구축하도록 설계되었습니다. 단일 프롬프트와 LLM으로 구성되는 단순한 체인 외에도 재귀 등의 LLM을 여러 번 호출하여 결과를 얻기 위해 매우 복잡한 체인을 구축하는 것도 가능합니다. 문서를 요약한 후 감정 분석 프롬프트는 복잡한 연쇄의 예입니다.

 

• 메모리 : 기본적으로 LLM은 상태를 저장하지 않지만 정확한 응답에는 컨텍스트가 필요합니다. Langchain의 메모리 모듈은 단기 및 장기 메모리를 모델에 쉽게 추가하는 데 도움이 됩니다. 단기 기억은 간단한 메커니즘으로 대화 기록을 유지합니다. 메시지 로깅은 장기간의 메모리를 활성화하기 위해 Redis 등의 외부 소스에 저장되며, 유지할 수 있습니다.


• 콜백 : Langchain 은 LLM 응용 프로그램의 다양한 단계에 연결할 수 있는 콜백 시스템을 제공합니다. 로깅, 모니터링, 스트리밍 등의 작업에 도움이 됩니다. 파이프라인에서 특정 이벤트가 발생했을 때 호출되는 사용자 지정 콜백 핸들러를 작성할 수 있습니다. Langchain의 기본 콜백으로 모든 스테이지를 쉽게 출력할 수 있으며 콘솔의 STDOUT을 가리킵니다.


• 에이전트 : 에이전트는 랭체인에서 매우 강력한 모듈입니다. LLM은 ReAct 프롬프트 기술이라고 불리는 추론과 액션을 실행할 수 있습니다. Langchain 에이전트는 ReAct 프롬프트 작성을 간소화하고 액션 플랜에서 프롬프트를 추출합니다. Langchain 에이전트의 기본 개념은 LLM을 사용하여 일련의 작업을 선택하는 것입니다.이것은 일종의 역동성 있는 체인입니다. 일련의 조작은 체인(코드)으로 하드 코드되어 있습니다. 언어 모델은 에이전트 내에서 실행할 순서와 액션을 결정하기 위한 추론 엔진으로 사용됩니다.

 

Langchain은 빠르게 발전하고 있는 AI 기반 애플리케이션의 주요 구성 요소 중 하나로 자리 잡고 있습니다. 이러한 생태계의 적극적인 발전으로, Langchain은 다양한 구성 요소를 지원할 수 있게 되었습니다. 오픈 소스와 상용 솔루션 모두를 포함하여 LLM(언어 모델), 벡터 데이터베이스, 데이터 소스, 그리고 임베딩을 지원하는 Langchain은 개발자들에게 필수적인 도구로 자리매김하고 있습니다. 이러한 다양한 기능들은 개발자들이 AI 기술을 활용하여 다양한 애플리케이션을 구축하고 발전시킬 수 있도록 지원하며, Langchain의 역할은 이러한 기술들을 효과적으로 통합하여 개발자들이 더욱 혁신적이고 강력한 솔루션을 만들 수 있도록 돕는 것입니다.

 

랭체인(LangChain)의 개념과 이해
랭체인(LangChain)의 개념과 이해

 

 

 

 

'IT과학' 카테고리의 다른 글

Low-Code 성공을 위한 IT 개입  (0) 2024.03.23
랜섬웨어 침투 이후 할 일 및 협상  (0) 2024.03.23
무료 공개 Database의 선택 방법  (0) 2024.03.23
Edge Computing 구축 방법  (0) 2024.03.23
MySQL Tuning 방법 정리  (0) 2024.03.23

댓글