랭체인(LangChain)은 대규모 언어 모델(LLM)을 기반으로 하는 애플리케이션 개발을 위한 혁신적인 프레임워크입니다. 2022년 해리슨 체이스에 의해 초기 버전이 출시된 이후, 랭체인은 다양한 기능과 통합을 통해 개발자들에게 LLM을 실질적으로 적용할 수 있는 유용한 도구로 자리잡았습니다.
랭체인의 주요 기능 중 하나는 언어 모델과 다양한 외부 도구 간의 통합을 간소화하는 것입니다. 약 657개의 통합 라이브러리를 제공하여, 문서 로더, 데이터 저장소, 텍스트 임베딩과 같은 다양한 구성 요소를 손쉽게 연결할 수 있습니다. 이는 개발자가 LLM을 사용하는 애플리케이션을 설계할 때 발생할 수 있는 복잡성을 줄여줍니다.
또한, 랭체인은 스트리밍, 배치, 비동기 지원 기능을 제공하는 랭체인식 언어(LCEL)를 통해 보다 직관적인 방식으로 체인을 구성할 수 있는 방법을 제시합니다. 이러한 고수준 추상화를 통해 개발자는 복잡한 구현 없이도 다양한 태스크를 빠르게 처리할 수 있습니다.
랭체인은 특히 챗봇이나 개인 비서를 만드는 데 유용합니다. LLM은 기존 커뮤니케이션 채널과 통합되어 사용자의 질문에 기반한 정확한 정보를 제공함으로써, 더욱 개인화된 경험을 사용자에게 제공합니다. 또한, 데이터 증강 기능을 통해 머신러닝에 필요한 합성 데이터 생성 등 다양한 데이터 관련 작업도 지원합니다.
이처럼 발달하는 AI 기술의 배경 속에서 랭체인은 LLM을 효과적으로 활용하여 쉽고 효율적인 서비스 개발을 가능하게 하는 강력한 도구로 부상하고 있습니다.
목차
요약
랭체인의 개요
랭체인 환경 설정
랭체인의 핵심 구성 요소
랭체인 활용 방법
랭체인의 장점과 한계
결론
1. 요약
이 리포트는 인공지능 초보자가 랭체인(LangChain) 프레임워크를 이해하고 효과적으로 활용할 수 있도록 하는 방법을 다룹니다. 랭체인은 대규모 언어 모델(LLM)을 기반으로 애플리케이션 개발을 단순화하고 최적화하는 도구로, 해리슨 체이스(Harrison Chase)가 2022년 발표한 오픈 소스 프로젝트입니다.
리포트는 랭체인의 개념, 주요 기능, 설치 및 환경 설정, 그리고 실제 활용 사례에 대해 자세히 설명합니다. 특히, 파이썬과 자바스크립트를 사용하여 쉽게 애플리케이션을 개발하고 배포할 수 있는 다양한 기능과 모듈을 소개합니다.
주요 기능으로는 모델 I/O, 데이터 연결, 체인, LLM API 키 설정 등이 있으며, 챗봇 개발, 문서 요약, 질의응답 시스템 등 다양한 활용 사례를 제시합니다.
2. 랭체인의 개요
2-1. 랭체인의 정의
랭체인(LangChain)은 대규모 언어 모델(LLM)을 활용하여 애플리케이션 생성을 단순화하도록 설계된 프레임워크입니다. 주로 파이썬과 자바스크립트 프로그래밍 언어를 사용하며, 해리슨 체이스(Harrison Chase)가 2022년 10월 오픈 소스 프로젝트로 발표했습니다.
2-2. 역사와 배경
해리슨 체이스는 로버스트 인텔리전스(Robust Intelligence)에서 근무하던 시절 랭체인을 개발했습니다. 2022년 10월 첫 출시 후, 깃허브의 수백 명의 기여자들의 도움으로 빠르게 성장했습니다. 다양한 유튜브 튜토리얼, 트위터 토론, 디스코드 서버의 활동 등을 통해 랭체인은 인기를 얻었습니다.
2023년 4월에 법인화된 후 벤치마크로부터 1,000만 달러의 초기 투자를 유치하고, 이후 세쿼이아 캐피털로부터 최소 2억 달러의 가치로 2,000만 달러 이상의 자금을 조달했습니다. 2023년 10월에는 배포 도구인 랭서브(LangServe)를 출시했습니다.
2-3. 주요 기능
랭체인은 주로 LLM을 활용한 애플리케이션 개발을 단순화하는 것을 목표로 하며, 다양한 주요 기능을 제공하고 있습니다.
첫째, 랭체인은 오픈 소스 빌딩 블록을 활용해 애플리케이션의 개발을 지원합니다.
둘째, 타사 통합 및 템플릿을 활용해 신속하게 제품을 개발할 수 있습니다.
셋째, LangSmith를 통해 체인을 검사, 모니터링하고 평가하여 최적화할 수 있습니다.
마지막으로, LangServe를 사용하여 어떤 체인이든 API로 변환할 수 있습니다.
사용 사례로는 RAG(검색 보강 생성)를 사용한 질문 응답, 구조화된 출력 추출, 챗봇 등이 있습니다.
3. 랭체인 환경 설정
3-1. 파이썬 및 라이브러리 설치
랭체인을 이용하기 위해서는 우선 파이썬과 관련된 라이브러리를 설치해야 합니다.
다음은 파이썬 3.11을 설치하는 방법입니다.
먼저, Python Software Foundation의 공식 웹사이트에서 파이썬 설치 파일을 다운로드합니다.
설치 과정 중에는 'Add python.exe to PATH' 옵션을 체크하여 경로설정을 자동으로 해줍니다.
설치가 완료된 후, 명령 프롬프트 또는 PowerShell을 열어 아래 명령어를 입력하여 필요한 라이브러리들을 설치합니다:
```shell python3 -m pip install langchain ``` 추가로, 개발환경으로 Visual Studio Code를 사용하는 것이 좋습니다.
Visual Studio Code는 https://code.visualstudio.com/download에서 다운로드할 수 있습니다.
설치 과정 중에는 'Auto Import Completions' 옵션을 체크하여 코드 작성 시 자동완성 기능을 활성화합니다.
3-2. LLM API 키 설정 방법
랭체인을 이용한 애플리케이션 개발을 위해서는 OpenAI의 API 키가 필요합니다.
API 키는 OpenAI의 대시보드 (https://platform.openai.com/docs/overview)에서 발급받을 수 있습니다.
API 키를 발급받은 후에는 환경 변수를 설정하여 사용할 수 있습니다.
Windows에서 PowerShell를 이용하여 환경 변수를 설정하는 방법은 다음과 같습니다:
```shell [System.Environment]::SetEnvironmentVariable('OPENAI_API_KEY', '발급받은 API 키', 'User') ```
설정이 완료되면 아래 명령어로 설정된 값을 확인할 수 있습니다:
```shell echo $env:OPENAI_API_KEY ```
이제 파이썬 코드 내에서 아래와 같이 API 키를 불러와 사용할 수 있습니다:
```python import os os.environ['OPENAI_API_KEY'] = '발급받은 API 키' !pip install openai==1.14.3 langchain==0.1.14 langchain-openai==0.1.1 from langchain_openai import OpenAI llm = OpenAI(model_name='gpt-3.5-turbo-instruct', temperature=0) result = llm.invoke('자기소개를 해주세요.') print(result) ```
위의 예시를 통해 OpenAI API와 연동하여 간단한 텍스트 생성 애플리케이션을 작성할 수 있습니다.
4. 랭체인의 핵심 구성 요소
4-1. 모델 I/O
모델 I/O (Model I/O)는 언어 모델과의 상호 작용을 담당하며, 입력과 출력을 처리합니다. 랭체인은 모든 언어 모델과의 인터페이스할 수 있는 환경을 제공합니다. 예를 들어, 다양한 언어 모델을 통해 텍스트를 생성하고 이를 반환하는 과정을 쉽게 구성할 수 있습니다.
4-2. 데이터 연결
데이터 연결 (Data Connection)은 많은 LLM 애플리케이션이 요구하는 사용자별 데이터를 처리하는 기능을 제공합니다. 이를 통해 랭체인은 애플리케이션별 데이터와 상호 작용하는 인터페이스를 제공하며, 데이터를 로드, 변환, 저장 및 쿼리하기 위한 빌딩 블록을 제공합니다. 대표적으로 검색 보강 생성(RAG)을 사용한 데이터 처리가 가능합니다.
4-3. 체인
체인 (Chain)은 호출의 일련의 순서를 나타내며, LLM(언어 모델), 도구 또는 데이터 전처리 단계에 대한 호출을 정의합니다. 체인 모듈은 애플리케이션의 작업 흐름을 결정하고 실행하는 데 필요한 호출 시퀀스를 정리하고 제어합니다. 이를 통해 복잡한 작업 흐름을 효율적으로 관리할 수 있습니다.
5. 랭체인 활용 방법
5-1. 챗봇 개발
랭체인은 챗봇 개발에 매우 유용한 도구입니다.
챗봇은 사용자의 질문에 적절한 컨텍스트와 정보를 제공하는 역할을 합니다. 랭체인을 이용하면 LLM 서비스를 더욱 쉽게 개발할 수 있습니다.
예를 들어, 랭체인은 ChatOpenAI 라이브러리를 활용하여 OpenAI의 LLM API를 호출할 수 있습니다. 이렇게 구현된 챗봇은 기존의 커뮤니케이션 채널과 워크플로우에 통합하여 더욱 자연스러운 운영이 가능해집니다. 이를 통해 사용자는 챗봇이 제공하는 답변의 정확성과 일관성을 경험할 수 있습니다.
5-2. 문서 요약
랭체인은 문서 요약 작업에도 활용됩니다.
특정 문서나 대량의 텍스트 데이터를 기반으로, 랭체인은 LLM을 이용하여 중요한 정보를 추출하고 요약하는 기능을 제공합니다. 이렇게 요약된 정보는 전문 데이터를 필요로 하는 다른 시스템 또는 사용자에게 유용하게 활용될 수 있습니다.
예를 들어, 대규모 데이터베이스에서 관련 정보를 검색하고 이를 요약하여 제공함으로써 시간과 노력을 절감할 수 있습니다. 이러한 기능은 정보 과잉 시대에 매우 유용하며, 빠르고 정확한 정보 접근을 가능하게 합니다.
5-3. 질의응답 시스템
랭체인은 질의응답 시스템 구축에도 적합한 도구입니다.
사용자의 질의에 맞춰 관련 정보를 빠르게 검색하고 정확한 답변을 제공할 수 있습니다. 특히, 랭체인은 RAG(Retrieval-Augmented Generation) 아키텍처를 통해 LLM과 사용자 데이터를 결합하여 개인화된 답변을 생성할 수 있습니다. 이 아키텍처는 질의응답의 정확도를 높여주며, 기업의 내부 정보까지 활용할 수 있게 해줍니다.
예를 들어, 사용자의 특정 질문에 대해 기업의 데이터베이스에서 관련 정보를 가져와 답변을 제공함으로써 사용자의 요구를 충족할 수 있습니다.
6. 랭체인의 장점과 한계
6-1. 장점
랭체인(LangChain)이란 대규모 언어 모델(LLM)을 활용한 애플리케이션 개발을 용이하게 해주는 혁신적인 프레임워크입니다. 이 프레임워크는 개발자들에게 새로운 가능성을 열어주며, LLM 애플리케이션의 전체 생명주기를 간소화하고 최적화하는 것을 목표로 합니다.
랭체인의 주요 강점은 다음과 같습니다.
1. **LLM 기반 서비스 개발 최적화**
: 랭체인은 개발 단계에서부터 프로덕션 단계, 최종 배포까지 LLM 기반 서비스 구축의 모든 단계를 지원합니다.
2. **핵심 라이브러리**
: - **랭체인 코어 (langchain-core)**: 체인, 에이전트, 데이터 변환기 등을 포함한 기본 구성 요소를 제공합니다.
- **랭체인 표현 언어(LCEL: LangChain Expression Language)**: 병렬화, 폴백, 추적, 배칭, 스트리밍, 비동기 처리, 구성 등의 다양한 기능을 지원합니다.
3. **서드파티 통합**
: - **모델 I/O**: 모델, 프롬프트, 예제 선택기, 출력 파서 등의 I/O 작업을 지원합니다.
- **검색 (Retrieval)**: 데이터 검색 및 로딩, 벡터 저장소, 텍스트 분할기, 임베딩 모델 등을 포함합니다.
- **에이전트 도구 (Agent Tooling)**: 도구 및 툴킷을 제공하여 에이전트의 기능을 강화합니다.
랭체인은 특히 초보자도 쉽게 사용할 수 있도록 설계되어 있으며, 환경 설정에서부터 다양한 활용 사례까지 안내해 줍니다.
6-2. 한계 및 해결 방법(RAG 등)
랭체인에는 여전히 몇 가지 한계점이 존재합니다.
이를 해결하기 위한 다양한 방법이 계속해서 개발되고 있습니다. 아래는 랭체인의 주요 한계와 그 해결 방안입니다.
1. **복잡한 설정과 통합**
: 랭체인은 다양한 라이브러리와 도구를 통합하여 사용해야 하므로 초보자에게는 다소 복잡하게 느껴질 수 있습니다. 이는 지속적인 학습과 커뮤니티 지원을 통해 극복할 수 있습니다.
2. **성능 문제**
: 랭체인의 다양한 기능을 효율적으로 사용하기 위해서는 최적화가 필요합니다. 병렬화(Parallelization), 폴백(Fallbacks), 배칭(Batching), 스트리밍(Streaming), 비동기 처리(Async) 등의 기능을 활용하면 성능을 개선할 수 있습니다.
3. **에이전트의 한계**
: 에이전트가 모든 상황에서 최적의 결정을 내리기 어려울 수 있습니다. 이는 다양한 프롬프트와 모델을 실험하며 학습 데이터와 모델을 지속적으로 개선함으로써 해결할 수 있습니다.
4. **지속적인 업데이트 필요**
: AI 기술과 LLM 모델은 빠르게 발전하고 있습니다. 이에 따라 랭체인도 지속적으로 업데이트되며, 최신 버전을 유지하는 것이 중요합니다. 한계를 극복하기 위한 대표적인 방법 중 하나가 RAG(Recurrent Action Guidance)입니다.
RAG는 의사 결정 과정에서 반복적인 피드백을 통해 성능을 향상시키는 방법입니다. 이를 통해 에이전트의 정확성과 효율성을 높일 수 있습니다. 올거나이즈와 같은 AI 스타트업들은 랭체인을 활용해 다양한 직무별 업무 자동화를 실현하며, 이러한 한계를 극복하고 있습니다.
7. 결론
랭체인은 대규모 언어 모델을 활용한 애플리케이션 개발을 단순화하고 최적화하는 강력한 도구로서, 초보자도 쉽게 사용할 수 있도록 설계되었습니다. 해리슨 체이스가 개발한 이 프레임워크는 LLM 기반 서비스의 개발, 최적화, 배포 등을 지원하며, 이를 통해 더 나은 AI 애플리케이션을 만들 수 있습니다.
주요 기능으로는 모델 I/O, 데이터 연결, 체인, API 변환 도구인 LangServe 등이 있습니다. 하지만, 다양한 라이브러리와 도구를 통합하여 사용해야 하므로 초기 설정이 다소 복잡하며, 성능 문제나 지속적인 업데이트가 필요할 수 있습니다. 이러한 한계는 병렬 처리, 폴백, 비동기 처리 등의 기술과 RAG(Retrieval-Augmented Generation) 아키텍처를 통해 개선될 수 있습니다. 랭체인을 활용하면 차세대 인공지능 서비스의 발전에 큰 기여를 할 수 있으며, 다양한 직무 자동화에도 매우 유용할 것으로 보입니다.
8. 용어집
8-1. 랭체인(LangChain) [프레임워크]
랭체인은 대규모 언어 모델을 기반으로 한 애플리케이션 개발을 위해 설계된 오픈 소스 프레임워크입니다. 해리슨 체이스에 의해 2022년 출시되었으며, 개발자의 삶을 크게 단순화합니다. 랭체인은 특히 데이터 로드, 변환, 저장 및 쿼리와 같은 작업을 용이하게 하며, LLM을 사용하는 애플리케이션 개발의 복잡성을 줄여줍니다.
8-2. 해리슨 체이스(Harrison Chase) [개발자]
해리슨 체이스는 랭체인의 창시자로, 2022년 10월 오픈 소스 프로젝트로 랭체인을 처음 발표했습니다. 체이스는 머신러닝 스타트업 '로버스트 인텔리전스(Robust Intelligence)'에서 근무하다가 랭체인을 개발하기 시작했으며, LLM을 이용한 애플리케이션 개발을 단순화하는 데 큰 기여를 했습니다.
8-3. RAG(Retrieval-Augmented Generation) [기술]
RAG는 LLM의 한계를 극복하기 위해 개발된 아키텍처로, 검색 기능을 보강해 더 정확한 답변을 제공합니다. 랭체인과 RAG를 결합하면 더욱 강력한 AI 애플리케이션을 개발할 수 있습니다.
9. 출처 문서
AI트렌드에 개념 더하기: 랭체인
https://m.woongjin.co.kr/customer/blogView.do?no=21&category2=10&keyword=
2. ChatGPT API 사용-2024-06
https://brunch.co.kr/@topasvga/3872
LLM 서비스 제작에 왜 랭체인이 필요할까? | 원티드
https://www.wanted.co.kr/events/article_240416
랭체인(LangChain)이란 무엇인가? | 인사이트리포트 | 삼성SDS
https://www.samsungsds.com/kr/insights/what-is-langchain.html
랭체인 (LangChain) 이란? LLM 서비스 개발을 위한 혁신적인 프레임워크 | 프롬프트해커 대니
https://www.magicaiprompts.com/docs/langchain/what-is-langchain-innovative-framework-for-llm/
랭체인(LangChain)의 개념과 이해 | 인사이트리포트 | 삼성SDS
https://www.samsungsds.com/kr/insights/the-concept-of-langchain.html
Allganize
https://www.allganize.ai/ko/blog-posts-ko/ms-openai
10분 만에 랭체인(LangChain) 이해하기
https://brunch.co.kr/@ywkim36/147
13. 챗GPT와 랭체인-2024
https://brunch.co.kr/@topasvga/3899
랭체인 - 위키백과, 우리 모두의 백과사전