랭체인 프로그래밍: 개념과 응용 – 001

학습 목표

랭체인을 사용하여 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은 방대한 양의 텍스트 데이터를 학습하여 인간과 유사한 텍스트를 생성하는 알고리즘입니다.

  • Large (대규모): “Large”는 방대한 양의 학습 데이터와 파라미터(매개변수)를 의미합니다. GPT-3의 경우 1750억 개의 파라미터와 45테라바이트의 데이터를 사용했습니다. 파라미터는 뉴런의 출력과 연결 강도를 제어하는 숫자들입니다.
  • Language Model (언어 모델): 텍스트 입력을 받아 텍스트 출력을 생성하는 신경망 기반 모델입니다. 단어와 문장의 의미를 이해하고, 문맥을 고려하여 일관성 있는 텍스트를 생성합니다. 대부분 영어 데이터로 학습되기 때문에 영어 성능이 다른 언어보다 우수하지만, 다국어 LLM도 존재합니다.
  • Transformer 아키텍처: LLM의 예측 능력은 Transformer 아키텍처라는 신경망 구조에 기반합니다. 이 아키텍처는 문장 내 단어들의 관계를 고려하여 문맥을 이해하고 예측을 수행합니다.
  • Pre-trained LLM: 인터넷, 서적, 신문 등의 방대한 텍스트 데이터를 자가 지도 학습 방식으로 학습한 기본 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를 기반으로 특정 목적에 맞춰 추가 훈련된 모델입니다.

 

About the Author
(주)뉴테크프라임 대표 김현남입니다. 저에 대해 좀 더 알기를 원하시는 분은 아래 링크를 참조하세요. http://www.umlcert.com/kimhn/

Leave a Reply

*