LangChain이란 무엇인가요?
watsonx.ai를 만나보세요
숫자와 문자로 이루어진 사슬의 그림
LangChain이란 무엇인가요?

LangChain은 대규모 언어 모델(LLM)을 사용하여 애플리케이션을 개발하기 위한 오픈 소스 오케스트레이션 프레임워크입니다. Python과 JavaScript 기반 라이브러리 모두에서 사용 가능한 LangChain의 도구와 API는 챗봇가상 에이전트와 같은 LLM 기반 애플리케이션을 구축하는 과정을 간소화합니다. 

LangChain은 거의 모든 LLM을 위한 일반 인터페이스 역할을 하며 LLM 애플리케이션을 구축하고 이를 외부 데이터 소스 및 소프트웨어 워크플로와 통합할 수 있는 중앙 집중식 개발 환경을 제공합니다. LangChain의 모듈 기반 접근 방식을 통해 개발자와 데이터 과학자는 코드를 재작성할 필요 없이 다양한 프롬프트와 다른 파운데이션 모델까지 활발하게 비교할 수 있습니다. 이러한 모듈식 환경에서는 여러 LLM을 사용하는 프로그램도 가능합니다. 예를 들어, 하나의 LLM을 사용하여 사용자 쿼리를 해석하고 다른 LLM을 사용하여 응답을 작성하는 애플리케이션이 있습니다. 

2022년 10월 해리슨 체이스(Harrison Chase)가 시작한 LangChain은 빠르게 두각을 나타냈습니다. 2023년 6월 기준, Github에서 가장 빠르게 성장한 단일 오픈 소스 프로젝트가 되었습니다.1 LangChain은 그 다음 달 OpenAI ChatGPT의 기념비적인 출시와 동시에 글로벌 인기의 여파로 매니아들이 생성형 AI에 더 쉽게 접근할 수 있도록 하는데 중요한 역할을 담당했습니다. 

LangChain은 챗봇, 지능형 검색, 질문 답변, 요약 서비스뿐만 아니라 로봇 프로세스 자동화가 가능한 가상 에이전트와 같은 LLM 및 자연어 처리(NLP)에 이르기까지 대부분의 사용 사례를 지원할 수 있습니다.

LLM과 통합

LLM은 독립형 애플리케이션이 아닙니다. LLM은 목적을 달성하기 위해 애플리케이션(경우에 따라 특정 데이터 소스)과 함께 사용해야 하는 사전 학습된 통계 모델입니다.

예를 들어 Chat-GPT는 LLM이 아니라 선택한 버전에 따라 GPT-3.5 또는 GPT-4 언어 모델을 사용하는 챗봇 애플리케이션입니다. 사용자의 입력을 해석하고 자연어 응답을 구성하는 것은 GPT 모델이지만, 무엇보다도 사용자가 입력하고 읽을 수 있는 인터페이스와 챗봇 경험을 제어하는 UX 디자인을 제공하는 것은 애플리케이션입니다. 엔터프라이즈 수준에서도 Chat-GPT가 GPT 모델을 사용하는 유일한 애플리케이션은 아닙니다. Microsoft는 GPT-4를 사용하여 Bing Chat을 지원합니다. 

또한 LLM을 지원하는 모델과 같은 파운데이션 모델은 대규모 데이터 세트에 대해 사전 학습되었지만 전지전능하지는 않습니다. 특정 작업 수행 시 내부 문서나 도메인 전문 지식과 같은 특정 컨텍스트 정보에 액세스 해야 하는 경우 LLM을 해당 외부 데이터 소스에 연결해야 합니다. 단순히 모델이 현재 이벤트에 대한 실시간 인식을 반영하기를 원하더라도 외부 정보가 필요합니다. 모델의 내부 데이터는 사전 학습 기간 동안의 최신 정보만 반영합니다. 

마찬가지로, 특정 생성형 AI 작업이 외부 소프트웨어 워크플로에 액세스해야 하는 경우(예: 가상 에이전트가 Slack과 통합되기를 원하는 경우)에는 LLM을 해당 소프트웨어의 API와 통합하는 방법이 필요합니다. 

이러한 통합은 일반적으로 완전한 수동 코딩을 통해 달성할 수 있지만 LangChain 및 IBM watsonx 플랫폼과 같은 오케스트레이션 프레임워크는 프로세스를 크게 간소화합니다. 또한 코드를 최소한으로 변경하면서 서로 다른 모델을 교체할 수 있기 때문에 결과를 비교하기 위해 서로 다른 LLM으로 시험해 보는 것이 훨씬 더 쉬워집니다.

오픈 소스 @ IBM

블록체인에서 컨테이너, AI, 운영 체제, 그리고 그 사이의 모든 것에 이르기까지 IBM의 개발자들은 새로운 오픈 소스 프로젝트를 개발하는 동시에 코드, 문서 및 지원 자료 등을 지원하여 여러분도 혁신에 동참할 수 있도록 하고 있습니다.

관련 내용

IBM 뉴스레터 구독하기

LangChain은 어떻게 작동하나요?

LangChain의 핵심은 추상화를 사용하여 LLM 애플리케이션의 프로그래밍을 간소화하는 개발 환경입니다. 즉, 하나 이상의 복잡한 프로세스의 모든 구성 단계를 명명된 구성 요소로 캡슐화함으로써 코드를 단순화합니다.

추상화는 일상 생활과 언어에서 흔히 볼 수 있는 요소입니다. 예를 들어, 'π'를 사용하면 무한한 숫자를 쓰지 않고도 원주 길이와 지름의 비율을 나타낼 수 있습니다. 마찬가지로 온도 조절기를 사용하면 복잡한 회로를 이해할 필요 없이 집안의 온도를 제어할 수 있습니다. 온도 조절기 설정에 따라 온도가 어떻게 달라지는지 알기만 하면 됩니다.

LangChain은 기본적으로 Python 및 JavaScript용 추상화 라이브러리로, 언어 모델 작업에 필요한 일반적인 단계와 개념을 나타냅니다. 함수 및 객체 클래스와 같은 이러한 모듈식 구성요소는 생성형 AI 프로그램의 구성 요소 역할을 합니다. 애플리케이션을 만들기 위해 함께 '연결'할 수 있으므로 복잡한 NLP 작업을 실행하는 데 필요한 코드의 양과 세밀한 이해를 줄일 수 있습니다. LangChain의 추상화된 접근 방식은 전문 프로그래머가 애플리케이션을 세밀하게 맞춤화할 수 있는 범위를 제한할 수 있지만 전문가와 초보 사용자 모두 빠르게 실험하고 프로토타입을 제작할 수 있습니다.

언어 모델 가져오기

LangChain에서는 거의 모든 LLM을 사용할 수 있습니다. API 키만 있으면 언어 모델을 LangChain으로 쉽게 가져올 수 있습니다. LLM 클래스는 모든 모델에 표준 인터페이스를 제공하도록 설계되었습니다.

대부분의 LLM 제공업체에서는 API 키를 받으려면 계정을 생성해야 합니다. 이러한 API 중 일부, 특히 OpenAI 또는 Anthropic에서 제공하는 것과 같은 독점적인 비공개 소스 모델용 API에는 관련 비용이 발생할 수 있습니다.

BigScience의 BLOOM, Meta AI의 LLaMa, Google의 Flan-T5와 같은 많은 오픈 소스 모델은 Hugging Face를 통해 액세스할 수 있습니다(ibm.com 외부 링크). IBM watsonxHugging Face와의 파트너십을 통해 엄선된 오픈 소스 모델 제품군도 제공합니다.두 서비스 중 하나에 계정을 생성하면 해당 공급자가 제공하는 모든 모델에 대한 API 키를 생성할 수 있습니다.

LangChain은 기본 제공 파운데이션 모델에만 국한되지 않습니다. CustomLLM 클래스 (ibm.com 외부 링크)를 통해 사용자 지정 LLM 래퍼를 사용할 수 있습니다. 마찬가지로 LangChain 통합 기능이 포함된 IBM watsonx API 및 Python SDK를 사용하여 WatsonxLLM 클래스(및 해당 모델의 특정 프로젝트 ID)를 사용하여 특정 요구 사항에 맞게 이미 학습했거나 미세 조정된 모델을 사용하여 LangChain에 애플리케이션을 구축할 수 있습니다.

데모 살펴보기: watsonx 및 LangChain을 사용하여 언어 모델에 대한 일련의 호출 수행하기
프롬프트 템플릿

프롬프트는 LLM에 제공되는 지침입니다. LLM이 사용자에게 가장 유용한 방식으로 입력 및 구조 출력을 해석하는 데 필요한 컨텍스트를 효과적으로 제공하는 프롬프트 작성의 '기술'을 종종 프롬프트 엔지니어링이라고 합니다. 

LangChain의 PromptTemplate 클래스는 컨텍스트와 쿼리를 수동으로 하드 코딩할 필요 없이 프롬프트의 구성을 공식화합니다. 프롬프트의 중요한 요소도 마찬가지로 input_variables 와 같은 공식 클래스로 입력됩니다. 따라서 프롬프트 템플릿은 컨텍스트, 지침('전문 용어 사용 금지' 등), 응답을 안내하는 일련의 예시('단답형 프롬프트'), 지정된 출력 형식 또는 답변할 표준화된 질문 등을 포함하고 재현할 수 있습니다.  효과적으로 구조화된 프롬프트 템플릿을 저장하고 이름을 지정하여 필요에 따라 쉽게 재사용할 수 있습니다.

이러한 요소는 모두 수동으로 코딩할 수 있지만PromptTemplate 모듈을 사용하면 동명의 체인과 같은 다른 LangChain 기능과의 원활한 통합이 가능합니다.

동영상 보기: 신속한 엔지니어링 및 신속한 튜닝
체인

이름에서 알 수 있듯이 체인은 LangChain 워크플로의 핵심입니다. LLM을 다른 구성 요소와 결합하고 일련의 기능을 실행하여 응용 프로그램을 만듭니다. 

가장 기본적인 체인은 LLMChain입니다. 단순히 모델을 호출하고 해당 모델에 대한 프롬프트 템플릿을 호출합니다. 예를 들어 프롬프트를 'ExamplePrompt'로 저장하고 이를 Flan-T5에 대해 실행한다고 가정해 보겠습니다. 사용자는 langchain.chains에서 LLMChain을 가져올 수 있습니다. 그런 다음 chain_example = LLMChain(llm = flan-t5, prompt = ExamplePrompt)을 정의합니다. 주어진 입력에 대해 체인을 실행하려면 chain_example.run("input")을 호출하기만 하면 됩니다.

한 함수의 출력을 다음 함수의 입력으로 사용하려면 SimpleSequentialChain을 사용할 수 있습니다. 각 기능은 특정 요구 사항에 따라 다른 프롬프트, 다른 도구, 다른 매개 변수 또는 다른 모델을 활용할 수 있습니다. 

인덱스

특정 작업을 달성하려면 LLM은 내부 문서, 이메일 또는 데이터 세트와 같이 교육 데이터 세트에 포함되지 않은 특정 외부 데이터 소스에 액세스해야 합니다. LangChain은 이러한 외부 문서를 통칭하여 '인덱스'라고 합니다.

문서 로더 
LangChain은 타사 애플리케이션을 위한 다양한 문서 로더를 제공합니다.(ibm.com 외부 링크) 이를 통해 File Storage 서비스(Dropbox, Google Drive 및 Microsoft OneDrive 등), 웹 콘텐츠(YouTube, PubMed 또는 특정 URL), 협업 도구(Airtable, Trello, Figma 및 Optom 등), 데이터베이스(Panda, MongoDB 및 Microsoft 등) 등의 소스에서 데이터를 쉽게 가져올 수 있습니다. 

벡터 데이터베이스 
'기존의' 구조화된 데이터베이스와 달리, 벡터 데이터베이스는 데이터 포인트를 벡터 임베딩(고정된 수의 차원을 가진 벡터 형태의 수치 표현)으로 변환하여 표현하며, 종종 비지도 학습 방법을 사용하여 관련 데이터 포인트를 클러스터링합니다. 이렇게 하면 대규모 데이터 세트에 대해서도 대기 시간이 짧은 쿼리를 사용할 수 있으므로 효율성이 크게 향상됩니다. 벡터 임베딩은 또한 각 벡터의 메타데이터를 저장하여 검색 가능성을 더욱 향상시킵니다.

LangChain은 25개 이상의 다양한 임베딩 방법과 50개 이상의 벡터 스토어(클라우드 호스팅 및 로컬 모두)에 대한 통합을 제공합니다. 

텍스트 분할기 
속도를 높이고 계산 부담을 줄이려면 큰 텍스트 문서를 작은 조각으로 분할하는 것이 현명할 때가 많습니다. LangChain의 TextSplitters는 텍스트를 의미론적으로 의미 있는 작은 덩어리로 분할한 다음 선택한 방법과 매개변수를 사용하여 결합할 수 있습니다.

검색 
외부 지식 소스가 연결되면 모델은 필요에 따라 관련 정보를 신속하게 검색하고 통합할 수 있어야 합니다. watsonx와 마찬가지로 LangChain은 검색 증강 생성(RAG)을 제공합니다. 검색 모듈은 문자열 쿼리를 입력으로 받아들이고 문서 목록을 출력으로 반환합니다.

메모리

채팅 기록이 쿼리의 입력으로 사용되지 않는 한, 기본적으로 LLM에는 이전 대화에 대한 장기 기억이 없습니다. LangChain은 시스템에 메모리를 추가하기 위한 간단한 유틸리티로 이 문제를 해결합니다. 여기에는 모든 대화 전체를 보존하는 것부터 지금까지의 대화 요약을 보관하는 것, 가장 최근의 대화 n개를  보존하는 것까지 다양한 옵션이 있습니다.

에이전트

LangChain 에이전트는 주어진 언어 모델을 '추론 엔진'으로 사용하여 어떤 조치를 취할지 결정할 수 있습니다. 에이전트용 체인을 구축할 때 입력할 수 있는 항목은 다음과 같습니다.

  • 활용할 수 있는 도구 목록.
  • 사용자 입력(예: 프롬프트 및 쿼리).
  • 이전에 실행한 모든 관련 단계.
LangChain의 에이전트에 대해 자세히 알아보기

강력한 성능과 다양성에도 불구하고 LLM에는 중요한 한계가 있습니다. 즉, 최신 정보 부족, 분야별 전문 지식 부족 및 수학에 대한 일반적인 어려움 등이 있습니다. 

LangChain 도구(ibm.com 외부 링크)는 LangChain 에이전트가 제공할 수 있는 서비스를 확장하거나 개선하기 위해 실제 정보와 연결할 수 있도록 지원하는 일련의 기능입니다. 중요한 LangChain 도구의 예는 다음과 같습니다.

  • Wolfram Alpha: 강력한 계산 및 데이터 시각화 기능에 대한 액세스를 제공하여 정교한 수학적 기능을 사용할 수 있습니다.

  • Google 검색: Google 검색에 대한 액세스를 제공하여 애플리케이션과 에이전트에 실시간 정보를 제공합니다.

  • OpenWeatherMap: 날씨 정보를 가져옵니다.

  • Wikipedia: Wikipedia 문서에 있는 정보에 효율적으로 액세스할 수 있습니다.

LangSmith

2023년 가을에 출시된 LangSmith는 LangChain을 유명하게 만든 접근 가능한 프로토타이핑 기능과 생산 품질의 LLM 애플리케이션 구축 간의 격차를 해소하는 것을 목표로 합니다.

LangSmith는 모든 모델 호출을 자동으로 추적하여 오류를 발견하고 다양한 모델 구성에서 성능을 테스트하는 기능을 포함하여 애플리케이션을 모니터링, 평가 및 디버깅할 수 있는 도구를 제공합니다. 이러한 가시성은 보다 강력하고 비용 효율적인 애플리케이션을 지원하는 것을 목표로 합니다.

LangChain 시작하기

LangChain은 오픈 소스이며 무료로 사용할 수 있습니다. 소스 코드는 Github에서 다운로드할 수 있습니다. (ibm.com 외부 링크) 

LangChain은 간단한 pip 명령어인  pip install langchain을 사용하여 Python에 설치할 수도 있습니다.  필요한 종속 요소만 설치하는 것이 아니라 모든 LangChain 종속 요소를 설치하려면 pip install langchain[all] 명령을 실행하면 됩니다.

대규모의 LangChain커뮤니티 에코시스템과 docs.langchain.com의 공식 문서에서 수 많은 단계별 튜토리얼을 확인할 수 있습니다. (ibm.com 외부 링크)

LangChain 사용 사례

LangChain으로 만든 애플리케이션은 간단한 질문 답변 및 텍스트 생성 작업부터 LLM을 '추론 엔진'으로 사용하는 보다 복잡한 솔루션에 이르기까지 다양한 사용 사례에 뛰어난 유용성을 제공합니다.

  • 챗봇: 챗봇은 LLM을 가장 직관적으로 활용하는 방법 중 하나입니다. LangChain은 챗봇의 특정 사용을 위한 적절한 컨텍스트를 제공하고 자체 API를 통해 챗봇을 기존 커뮤니케이션 채널과 워크플로에 통합하는 데 사용할 수 있습니다.
  • 요약: 언어 모델은 복잡한 학술 논문 및 녹취록 분석 및 수신 이메일 요약 제공에 이르기까지 다양한 유형의 텍스트를 요약하는 작업을 수행할 수 있습니다.
  • 질문 답변: 특정 문서 또는 전문 지식 기반(예: Wolfram, arXiv 또는 PubMed)을 사용하여 LLM은 스토리지에서 관련 정보를 검색하고 유용한 답변을 명확하게 표현할 수 있습니다. 미세 조정되거나 적절하게 프롬프트가 표시되면 일부 LLM은 외부 정보 없이도 많은 질문에 답할 수 있습니다.
  • 데이터 증강: LLM은 머신러닝에 사용할 합성 데이터를 생성하는 데 사용할 수 있습니다. 예를 들어, 학습 데이터셋의 데이터 포인트와 매우 유사한 추가 데이터 샘플을 생성하도록 LLM을 훈련할 수 있습니다.
  • 가상 에이전트: 적절한 워크플로우와 통합된 LangChain의 에이전트 모듈은 LLM을 사용하여 다음 단계를 자율적으로 결정하고 로봇 프로세스 자동화(RPA)를 사용하여 조치를 취할 수 있습니다.
관련 솔루션
watsonx.ai

생성형 AI, 파운데이션 모델, 머신 러닝 모델을 쉽게 훈련, 검증, 조정 및 배포할 수 있으며 적은 데이터로 짧은 시간 내에 AI 애플리케이션을 구축할 수 있습니다.

watsonx.ai 살펴보기

AI 컨설팅 서비스

AI로 작업하는 방식을 새롭게 상상해 보세요. 20,000여 명의 다양한 글로벌 AI 전문가 팀은 비즈니스 전반에 걸쳐 AI와 자동화를 신속하고 자신 있게 설계하고 확장할 수 있도록 지원하며, 자체 IBM watsonx 기술과 파트너사의 개방형 에코시스템을 통해 윤리와 신뢰를 바탕으로 모든 클라우드에서 모든 AI 모델을 제공할 수 있습니다.

AI 컨설팅 서비스 살펴보기

watsonx.data

watsonx.data는 업계 유일의 오픈, 하이브리드, 거버넌스 데이터 저장소로써, 어디서나 모든 데이터에 대한 분석 및 AI 워크로드를 확장할 수 있습니다.

watsonx.data 살펴보기
LangChain 리소스

LangChain 및 watsonx로 애플리케이션 구축을 시작하는 데 필요한 도구, 팁, 샘플 코드를 확인하세요.

파운데이션 모델 프롬프트 작성을 위한 팁

프롬프트 엔지니어링은 주어진 모델과 매개변수에 가장 효과적인 프롬프트 텍스트를 만드는 프로세스입니다. 그것은 예술과 과학의 결합입니다. 이러한 팁은 대부분의 텍스트 생성 파운데이션 모델을 성공적으로 프롬프트하는 데 도움이 됩니다.

watsonx 및 LangChain을 사용하여 언어 모델 호출

이 노트북에는 watsonx 모델과 LangChain 통합을 사용하여 Simple Sequential Chain을 시연하는 단계와 코드가 포함되어 있습니다. Python에 어느 정도 익숙하면 도움이 됩니다.

Python 초보자 가이드

대수 계산 실행부터 데이터에서 그래픽 출력 생성까지 간단한 프로그래밍 언어를 시작하기 위해 알아야 할 기본 개념을 소개합니다.

다음 단계 안내

AI 빌더를 위한 차세대 엔터프라이즈 스튜디오인 IBM watsonx.ai를 통해 생성형 AI, 파운데이션 모델 및 머신 러닝 기능을 손쉽게 학습, 검증, 조정 및 배포할 수 있으며 일부 데이터만 사용하여 짧은 시간 안에 AI 애플리케이션을 구축할 수 있습니다.

무료 평가판 시작 라이브 데모 예약하기
각주