랭체인 프로그래밍: 개념과 응용 – 001
0 Comment
학습 목표
랭체인을 사용하여 LLM 기반 챗봇을 개발합니다.
- 지시에 응답하는 기본 기능에서 출발해서,
- 사전훈련 되지 않아 LLM이 모르는 데이터에 접근할 수 있도록 하는 기능을 추가할 것입니다.
- 챗봇이 복잡한 작업을 계획하고 실행할 수 있도록 하고,
- 챗봇이 사용자의 개입을 받아들이고, 작업 수행 전에 추가 정보를 요청하는 기능을 추가해서 사용자와의 협업을 강화할 것입니다.
- 여기서 한 걸음 더 나아가, 개발된 챗봇을 실제 서비스 환경에 배포하고, 성능을 모니터링하며 지속적으로 개선해 갈 것입니다.
랭체인(LangChain)?
랭체인은 LLM(Large Language Model; 대규모 언어 모델) 기반 애플리케이션 개발을 위한 오픈소스 프레임워크입니다. 랭체인은 파이썬 버전으로 시작해 지금은 자바스크립트/타입스크립트 버전도 지원합니다. 여기서는 파이썬 버전을 사용합니다.
랭체인은 다양한 프롬프팅 기법과 LLM 제공자를 통합하여 개발자들이 쉽게 LLM 애플리케이션을 구축할 수 있도록 돕습니다. 주요 특징은 다음과 같습니다.
- LLM 및 프롬프트 구성 요소 제공: 다양한 LLM 제공자(OpenAI, Anthropic, Google 등)와 프롬프팅 기법(Zero-shot, Chain-of-thought, RAG, Tool-calling, Few-shot 등)을 위한 구성 요소를 제공합니다.
- 추상화(Abstraction)를 통한 사용 편의성 향상: 복잡한 프롬프팅 기법을 간단한 함수와 클래스로 추상화하여 사용 편의성을 높였습니다. 다양한 구성 요소들을 쉽게 조합하여 복잡한 애플리케이션을 구축할 수 있습니다.
- 다양한 서비스 통합: Google Sheets, Wolfram Alpha, Zapier 등 다양한 서비스와의 통합을 제공하여 LLM의 기능을 확장합니다.
- 메모리 기능: 챗봇과 같은 대화형 애플리케이션에서 이전 상호작용을 기억하고 활용할 수 있는 메모리 기능을 제공합니다.
- LangSmith 및 LangServe 제공: LangSmith(AI 워크플로우 디버깅, 테스트, 배포, 모니터링 플랫폼)과 LangServe(LangChain 기반 API 배포 플랫폼)를 함께 제공하여 개발 및 배포 과정을 간소화합니다.
관련 개념 익히기
LLM(Large Language Model)이란?
LLM은 방대한 양의 텍스트 데이터를 학습하여 인간과 유사한 텍스트를 생성하는 알고리즘입니다.
|
기본적인 대규모 언어 모델(base LLMs)은 방대한 데이터셋으로 사전 훈련된 모델입니다.
이를 특정 작업에 맞게 추가 훈련하는 과정을 미세 조정(fine-tuning)이라고 하며, instruction-tuned LLM은 명령어를 이해하고 따르도록 fine-tuning된 모델이고, dialogue-tuned LLM은 대화 능력을 향상시키도록 fine-tuning된 모델입니다. 즉, instruction-tuned LLM과 dialogue-tuned LLM은 모두 fine-tuning LLM의 하위 개념으로, base LLMs를 기반으로 특정 목적에 맞춰 추가 훈련된 모델입니다. |