업계 뉴스레터
전문가가 전하는 최신 AI 트렌드
가장 중요하고 흥미로운 AI 뉴스에 대한 선별된 인사이트를 확인하세요. 주간 Think 뉴스레터를 구독하세요. IBM 개인정보 보호정책을 참조하세요.
구독은 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.
LangChain은 대규모 언어 모델(LLM)을 사용하여 애플리케이션을 개발하기 위한 오픈 소스 오케스트레이션 프레임워크입니다. Python 및 Javascript 기반 라이브러리에서 모두 사용할 수 있으며, LangChain의 툴과 API는 챗봇 및 AI 에이전트와 같은 LLM 기반 애플리케이션을 구축하는 프로세스를 간소화합니다.
LangChain은 거의 모든 LLM을 위한 일반 인터페이스 역할을 하며 LLM 애플리케이션을 구축하고 이를 외부 데이터 소스 및 소프트웨어 워크플로와 통합할 수 있는 중앙 집중식 개발 환경을 제공합니다. LangChain의 모듈 기반 접근 방식을 통해 개발자와 데이터 과학자는 코드를 재작성할 필요 없이 다양한 프롬프트와 다른 파운데이션 모델까지 활발하게 비교할 수 있습니다. 이러한 모듈식 환경에서는 여러 LLM을 사용하는 프로그램도 가능합니다. 예를 들어, 하나의 LLM을 사용하여 사용자 쿼리를 해석하고 다른 LLM을 사용하여 응답을 작성하는 애플리케이션이 있습니다.
2022년 10월 해리슨 체이스(Harrison Chase)가 시작한 LangChain은 빠르게 두각을 나타내었으며, 2023년 6월 기준 Github에서 가장 빠르게 성장한 단일 오픈 소스 프로젝트가 되었습니다.1 LangChain은 그 다음 달 OpenAI ChatGPT의 기념비적인 출시와 동시에 글로벌 인기의 여파로 매니아와 스타트업 들이 생성형 AI에 더 쉽게 접근할 수 있도록 하는데 중요한 역할을 담당했습니다. 이제는 에이전틱 AI의 접근성이 향상되면서 자동화 혁명이 일어나고 있습니다.
LangChain은 챗봇, 지능형 검색, 질문 답변, 요약 서비스뿐만 아니라 로봇 프로세스 자동화가 가능한 AI 에이전트와 같은 LLM 및 자연어 처리(NLP)에 이르기까지 대부분의 사용 사례를 지원할 수 있습니다.
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으로 시험해 보는 것이 훨씬 더 쉬워집니다.
LangChain의 핵심은 추상화를 사용하여 LLM 애플리케이션의 프로그래밍을 간소화하는 개발 환경입니다. 즉, 하나 이상의 복잡한 프로세스의 모든 구성 단계를 명명된 구성 요소로 캡슐화함으로써 코드를 단순화합니다.
추상화는 일상 생활과 언어에서 흔히 볼 수 있는 요소입니다. 예를 들어, 'π'를 사용하면 무한한 숫자를 쓰지 않고도 원주 길이와 지름의 비율을 나타낼 수 있습니다. 마찬가지로 온도 조절기를 사용하면 복잡한 회로를 이해할 필요 없이 집안의 온도를 제어할 수 있습니다. 온도 조절기 설정에 따라 온도가 어떻게 달라지는지 알기만 하면 됩니다.
LangChain은 기본적으로 Python 및 JavaScript용 추상화 라이브러리로, 언어 모델 작업에 필요한 일반적인 단계와 개념을 나타냅니다. 함수 및 객체 클래스와 같은 이러한 모듈식 구성요소는 생성형 AI 프로그램의 구성 요소 역할을 합니다. 애플리케이션을 만들기 위해 함께 '연결'할 수 있으므로 복잡한 NLP 작업을 실행하는 데 필요한 코드의 양과 세밀한 이해를 줄일 수 있습니다. LangChain의 추상화된 접근 방식은 전문 프로그래머가 애플리케이션을 세밀하게 맞춤화할 수 있는 범위를 제한할 수 있지만 전문가와 초보 사용자 모두 빠르게 실험하고 프로토타입을 제작할 수 있습니다.
LangChain에서는 거의 모든 LLM을 사용할 수 있습니다. API 키만 있으면 언어 모델을 LangChain으로 쉽게 가져올 수 있습니다. LLM 클래스는 모든 모델에 표준 인터페이스를 제공하도록 설계되었습니다.
대부분의 LLM 제공업체에서는 API 키를 받으려면 계정을 생성해야 합니다. 이러한 API 중 일부, 특히 OpenAI 또는 Anthropic에서 제공하는 것과 같은 독점적인 비공개 소스 모델용 API에는 관련 비용이 발생할 수 있습니다.
Meta AI의 LLaMa, Deepseek의 Deepseek-LLM, IBM의 Granite, Google의 Flan-T5 같은 많은 오픈 소스 모델을 Hugging Face를 통해 액세스할 수 있습니다. IBM watsonx는 Hugging Face와의 파트너십을 통해 엄선된 오픈 소스 모델 제품군도 제공합니다. 두 서비스 중 하나에 계정을 생성하면 해당 공급자가 제공하는 모든 모델에 대한 API 키를 생성할 수 있습니다.
LangChain은 기본 제공 파운데이션 모델에만 국한되지 않으며, CustomLLM 클래스를 통해 사용자 지정 LLM 래퍼를 사용할 수 있습니다. 마찬가지로 LangChain 통합 기능이 포함된 IBM watsonx API 및 Python SDK를 사용하여 WatsonxLLM 클래스(및 해당 모델의 특정 프로젝트 ID)를 사용하여 특정 요구 사항에 맞게 이미 학습했거나 미세 조정된 모델을 사용하여 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)을 제공합니다. RAG의 검색 모듈은 문자열 쿼리를 입력으로 받아들이고 문서 목록을 아웃풋으로 반환합니다.
LangChain을 사용하면 에이전틱 RAG 시스템을 구축할 수도 있습니다. 기존 애플리케이션에서 LLM에는 응답을 구성할 때 참조할 수 있는 벡터 데이터베이스가 제공됩니다. 반면, 에이전틱 AI 애플리케이션은 데이터 검색만으로 제한되지 않습니다. 에이전틱 RAG는 수학적 계산 해결, 이메일 작성, 데이터 분석 수행 등과 같은 작업을 위한 툴도 보유할 수 있습니다.
채팅 기록이 쿼리를 위한 인풋으로 사용되지 않는 한, 기본적으로 LLM에는 이전 대화에 대한 장기 기억이 없습니다. LangChain은 시스템에 메모리를 추가하기 위한 간단한 유틸리티로 이 문제를 해결합니다. 여기에는 모든 대화 전체를 보존하는 것부터 지금까지의 대화 요약을 보관하는 것, 가장 최근의 대화 n개를 보존하는 것까지 다양한 옵션이 있습니다.
LLM은 강력한 성능과 다양성에도 불구하고 최신 정보 부족, 분야별 전문 지식 부족, 수학에 대한 전반적인 어려움 등 중요한 한계가 있습니다.
LangChain 툴은 LangChain 에이전트가 제공할 수 있는 서비스를 확장하거나 개선하기 위해 실제 정보와 상호 작용할 수 있도록 지원하는 일련의 기능입니다. 사전 구축된 중요한 LangChain 툴의 예는 다음과 같습니다.
Wolfram Alpha: 강력한 계산 및 데이터 시각화 기능에 대한 액세스를 제공하여 정교한 수학적 기능을 사용할 수 있습니다.
Google 검색: Google 검색에 대한 액세스를 제공하여 애플리케이션과 에이전트에 실시간 정보를 제공합니다.
OpenWeatherMap: 날씨 정보를 가져옵니다.
Wikipedia: Wikipedia 문서에 있는 정보에 효율적으로 액세스할 수 있습니다.
업계 뉴스레터
가장 중요하고 흥미로운 AI 뉴스에 대한 선별된 인사이트를 확인하세요. 주간 Think 뉴스레터를 구독하세요. IBM 개인정보 보호정책을 참조하세요.
구독은 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.
LangChain 프레임워크로 에이전트를 구축하면 LLM이 단일 텍스트 응답을 생성하는 데 그치지 않고 의사 결정을 내리고, 툴을 사용하고, 복잡한 작업을 단계별로 완수하게 만들 수 있습니다. LLM만 사용하는 간단한 프롬프트-응답 상호 작용과 달리 LangChain으로 구동되는 에이전트는 생각과 계획을 거쳐 일련의 작업을 실행, 학습하고 적응할 수 있습니다.
LangChain은 AI 에이전트 생성을 위한 확장형 기성 프레임워크를 통해 사용자 경험을 간소화합니다. 그래서 새로운 도구 선택 로직, 추론 루프(예: React 에이전트용), 관찰/행동 추적, 프롬프트 오케스트레이션, 형식 지정을 구축할 필요가 없습니다.
구체적인 LangChain 패키지, 클래스, 방법론은 사용하려는 AI 플랫폼에 따라 다릅니다. LangChain을 사용하여 watsonx.ai 모델과 소통할 수 있는 WatsonxLLM 클래스의 핵심 구성 요소들을 알아봅시다.
툴 호출과 체이닝을 watsonx.ai 모델과 통합하여 AI 에이전트를 구축하는 또 다른 LangChain 클래스는 ChatWatsonx입니다. IBM의 여러 튜토리얼에 등장하는 이 클래스는 반복이 이루어질 때마다 bind_tools 방법론를 사용하여 LLM에 툴 목록을 전달합니다. 여기에는 맞춤형 툴과 사전 구축된 툴이 모두 들어갈 수 있습니다. AI 에이전트 응답을 검색하기 위해서는 호출 방법론을 사용할 수 있습니다. 에이전트가 호출되면 응답의 tool_calls 속성에 각 툴 호출의 이름, 인수, ID, 유형(있는 경우)이 표시됩니다.
LangChain이 개발한LangGraph는 다중 에이전트 오케스트레이션을 지원하는 오픈 소스 AI 에이전트 프레임워크로, 다양한 에이전트가 상호 작용하고 전문화하며 협업하는 에이전틱 워크플로를 개발자가 구축할 수 있도록 지원합니다.
LangGraph의 핵심은 그래프 기반 아키텍처의 힘을 사용하여 AI 에이전트 워크플로의 다양한 구성 요소 간의 복잡한 관계를 모델링하고 관리한다는 것입니다. 휴먼인더루프 모니터링 메커니즘과 API 및 툴 통합 세트가 결합된 LangGraph는 챗봇, 상태 그래프, 기타 에이전트 기반 시스템을 포함한 AI 솔루션과 워크플로를 개발하기 위한 다목적 플랫폼을 제공합니다.
LangGraph 에이전트는 langchain-mcp-adapters 라이브러리를 사용해 MCP(모델 컨텍스트 프로토콜) 서버에 정의된 툴을 사용할 수도 있습니다. mcp 라이브러리는 사용자가 맞춤형 MCP 서버를 구축하도록 지원합니다. 기본적으로 MCP는 AI 에이전트 같은 AI 시스템과 외부 툴이 안전하게 연결될 수 있게 합니다. 따라서 표준 MCP가 주어지면 다양한 LLM을 동일한 툴, 데이터 소스에 연결할 수 있습니다.
2023년 가을에 출시된 LangSmith는 LangChain을 유명하게 만든 접근 가능한 프로토타이핑 기능과 생산 품질의 LLM 애플리케이션 구축 간의 격차를 해소하는 것을 목표로 합니다.
LangSmith는 모든 모델 호출을 자동으로 추적하여 오류를 발견하고 다양한 모델 구성에서 성능을 테스트하는 기능을 포함하여 애플리케이션을 모니터링, 평가 및 디버깅할 수 있는 도구를 제공합니다. LangSmith 사용은 LangChain 에코시스템을 사용하여 구축된 애플리케이션에 국한되지 않습니다. 에이전트 성능 평가에는 LLM-as-a-judge 평가자를 사용했습니다. 이러한 관측 가능성과 주요 지표는 애플리케이션을 더 견고하고 비용 효율적인 방향으로 최적화하는 것을 목표로 합니다.
LangChain은 무료로 사용할 수 있는 오픈 소스입니다. 소스 코드는 Github에서 다운로드할 수 있습니다.
Python에서도 간단한 pip 명령어인 pip install langchain으로 LangChain을 설치할 수 있습니다. 필요한 종속 요소만 설치하는 것이 아니라 모든 LangChain 종속 요소를 설치하려면 pip install langchain[all] 명령을 실행하면 됩니다.
IBM은 LangChain 툴 호출, 에이전틱 RAG, LLM 에이전트 오케스트레이션, 에이전틱 청킹 등 다양한 단계별 튜토리얼을 제공합니다.
LangChain으로 만든 AI 애플리케이션은 간단한 질문 답변 및 텍스트 생성 작업부터 LLM을 '추론 엔진'으로 사용하는 보다 복잡한 솔루션에 이르기까지 다양한 사용 사례에 뛰어난 유용성을 제공합니다.
챗봇은 LLM을 가장 직관적으로 활용하는 방법 중 하나입니다. LangChain은 챗봇의 특정 사용을 위한 적절한 컨텍스트를 제공하고 자체 API를 통해 챗봇을 기존 커뮤니케이션 채널과 워크플로에 통합하는 데 사용할 수 있습니다.
언어 모델은 복잡한 학술 논문 및 녹취록 분석 및 수신 이메일 요약 제공에 이르기까지 다양한 유형의 텍스트를 요약하는 작업을 수행할 수 있습니다.
LLM은 특정 문서 또는 전문 지식 기반(예: Wolfram, arXiv 또는 PubMed)을 사용하여 스토리지에서 관련 정보를 검색하고 유용한 답변을 명확하게 표현할 수 있습니다. 미세 조정되거나 적절하게 프롬프트가 표시되면 일부 LLM은 외부 정보 없이도 많은 질문에 답할 수 있습니다.
적절한 워크플로우와 통합된 LangChain의 에이전트 모듈은 LLM을 사용하여 다음 단계를 자율적으로 결정하고 로봇 프로세스 자동화(RPA)를 사용하여 조치를 취할 수 있습니다.
watsonx 포트폴리오의 IBM 파운데이션 모델 라이브러리에 대해 자세히 알아보고 비즈니스를 위한 생성형 AI를 자신 있게 확장하세요.
업계 최고의 AI 전문성과 솔루션 포트폴리오를 보유한 IBM과 함께 AI를 비즈니스에 활용하세요.
AI 추가를 통해 중요한 워크플로와 운영을 혁신함으로써 경험, 실시간 의사 결정 및 비즈니스 가치를 극대화합니다.