랭체인, AI 도구 결합으로 새로운 가능성을 열다!
제 87호 (2024.05.13)
Editor's Comments

랭체인, AI 도구 결합으로 새로운 가능성을 열다!

랭체인(LangChain): LLM과 외부 도구를 엮어 활용하는 방법(87호)

1. 랭체인이 뭔데요?

LLM 혹은 대규모 언어 모델에 관심이 있는 분들이라면 한 번 쯤은 랭체인(LangChain)에 대해 들어본 적이 있을 겁니다. 랭체인은 챗GPT와 거의 같은 시기에 개발자인 해리슨 체이스(Harrison Chase)에 의해 2022년 1월에 오픈 소스 프로젝트로 시작됐는데요, 랭체인을 인터넷에서 검색하면 위의 이미지처럼 앵무새와 사슬 이미지를 확인할 수 있습니다.


앵무새는 언어 모델을 상징적으로 나타내고, 사슬(chain)은 언어 모델과 언어 모델을 활용하는 다양한 도구를 결합한다는 의미로 이와 같이 앵무새와 사슬로 표현된 것입니다. 그럼 이러한 랭체인으로 무엇을 할 수 있을까요? 이름에서 알 수 있듯이 LLM과 외부 도구를 마치 사슬로 엮어 사용할 수 있게 도와줍니다.

위의 그림에서 볼 수 있듯이 2개의 PDF 파일을 올려놓고 ChatGPT나 Claude와 같은 LLM을 사용해 채팅으로 질문하고 답변 받을 수 있죠. 여기까지 보면 많은 분들이 이런 질문을 할 수 있을 거예요. OpenAI의 GPT-4와 차이점이 없는데요?


2. 랭체인이 왜 필요하죠? – 챗GPT와의 차이점

챗GPT와 같은 기존 LLM은 같은 질문을 해도 질문할 때마다 다른 답변을 주기도 하고, 참조 문서를 제공해 주었음에도 불구하고 문서에 없는 내용을 답해주기도 해요. 한마디로 똑똑한 것 같기는 한데 결정적인 순간에 신뢰가 어렵다는 단점이 있죠. 그래서 많은 기업들에서는 챗GPT나 Claude를 이용해 서비스를 만들지 않고 다른 방법으로 문제를 해결하려고 노력해요. 이때 등장하는 개념이 RAG(Retrieval-Augmented Generation)입니다. RAG는 랭체인의 핵심 기술 중 하나로, LLM이 답변을 생성할 때 올바른 최신 정보를 사용하도록 도와줍니다. 용어만 보면 어려울 것 같은데 다음 그림을 보면 좀 더 이해하기 쉬울 거예요.

RAG를 활용한 검색 시스템에서는 이 그림과 같이 질문을 하면 특정 지식 기반 데이터베이스를 뒤져서 적절한 자료를 찾은 뒤 LLM을 활용해 예쁘게 말을 다듬어서 검색 결과를 보여줘요. 궁금한 게 있으면 Google에서 검색한 뒤 결과로 표시되는 여러 페이지나 이미지를 하나하나 클릭해서 확인하며 나의 질문에 맞는 답을 찾았었지만 RAG를 활용한 검색 시스템에서는 네가 이렇게 질문했지? 그럼 이 내용만 살펴봐 하고 친절하게 알려줘요.


한번 예를 들어볼게요.

"스팸김치찌개 만드는 방법"을 Google에서 검색하면 이렇게 결과가 표시돼요.

그런데 RAG 기술을 적용한 Microsoft Bing Search나 Perplexity AI에서는 결과가 이렇게 표시되죠.

Google의 검색 결과와 달리 Bing이나 Perplexity는 사용자의 검색 질문에 대해 웹 페이지의 정보를 활용하여 자연어로 응답을 해주기에 원하는 정보를 좀 더 직관적으로 확인할 수 있습니다. 다시 말해, RAG는 LLM이 답변을 생성할 때 올바른 최신 정보를 사용하도록 도와주는 도구라고 볼 수 있습니다.


그럼, 다시 본론으로 돌아와 볼까요? 랭체인이 왜 필요할까요? 바로, LLM을 활용해 내가 원하는 결과만 얻고 싶기 때문이에요. 이를 위해 RAG를 활용하고요.



3. 랭체인을 이용하려면 어떻게 해야 하나요?

랭체인은 다음과 같이 몇 가지 주요한 요소로 구성되어 있습니다.

  • 모델 입력 출력(Model I/O)는 언어 모델과 상호 작용을 위한 모듈입니다. LLM에 전달할 프롬프트를 생성하고, 답변을 받기 위해 모델 API를 호출하고 답변을 출력하죠.
  • 데이터 연결(data connection)은 다양한 출처에서 문서를 가져온 뒤 문서 내 데이터를 입력 데이터로 변환하여 간단한 형태로 만들고, 이를 벡터 저장소에 저장하여 검색할 수 있게 준비시킵니다.
  • 체인(chain)은 말 그대로 여러 구성 요소를 조합해서 하나의 파이프라인을 구성해 줍니다. 체인은 LLM과 외부 도구를 연결하는 핵심 기능으로, 복잡한 작업을 단순화할 수 있습니다.
  • 메모리(memory)는 대화 과정에서 발생하는 데이터를 저장하는 공간입니다. 모든 대화를 유지할지, 최근 k개의 대화를 유지할지, 대화를 요약해서 유지할지 선택할 수 있습니다.
  • 에이전트/도구(agent/tool)에서 에이전트는 LLM을 이용해서 어떤 작업을 어떤 순서로 수행할지 결정하는 역할을 하는데, 이 작업에 도구를 사용합니다. 에이전트와 도구를 활용하면 챗GPT에 위키피디아나 MS 빙과 같은 외부 서비스를 연결하여 최신 정보를 검색하고 답변하는 어플리케이션을 구현할 수 있습니다.

이러한 요소들로 구성된 랭체인은 여러 가지 방법으로 설치하여 사용할 수 있습니다.


1) 파이썬에서 실행하기

Google Colab이나 아나콘다와 같은 가상환경에서 필수 라이브러리를 설치한 뒤 OpenAI의 API 키를 입력해 구축할 수 있습니다. 이렇게 어려운 방법은 여러분이 원하지 않을 수 있기 때문에 참조할 수 있는 책과 사이트를 알려드리는 것으로 대신하겠습니다.


  • 랭체인 구축 참조 서적

2) LLMOps 서비스 이용하기

Vellum과 같은 서비스를 이용하면 워크플로(workflow) 기반의 랭체인을 구성할 수 있습니다. 다만 Vellum은 무료 이용 기간도 일주일밖에 되지 않고 가입 조건도 번거롭기 때문에 추천하지 않습니다.


3) Flowise로 내 컴퓨터에서 이용하기

Flowise는 무료로 LLM 기반 애플리케이션을 구축할 수 있는 프로그램입니다. 다른 랭체인 구축과는 달리 설치 과정이 단순하고, 다양한 워크플로 예시도 제공해 주기 때문에 바로 이용할 수 있습니다.

저는 집에서 사용하는 컴퓨터에 Flowise를 설치해 놓고선 챗GPT 사용 한도가 넘었을 때 유용하게 사용하고 있는데요, 주로 번역이나 제가 갖고 있는 문서를 정밀하게 검색하고 기존 지식을 고도화할 때 활용하고 있습니다.


마침, 이번 주 5월 14일에 있는 더배러 톡톡 시간에 참여자분들과 함께 직접 Flowise를 설치하고 간단한 설명과 실행까지 해보는 핸즈온 세션도 준비하고 있습니다. 무료로 진행되는 이번 더배러 톡톡을 통해 Flowise 사용자가 많아지고 더 많은 사용 사례가 더배러 내에서 공유되길 기대해 봅니다.


—📝 우아한 세상을 소개하는 지식노동자, 앤드류—

앤드류와 함께하는 Flowise 핸즈온 세션 안내

문과생도 똑똑하게 LLM을 활용할 수 있도록 도와주는 마법의 솔루션, Flowise! 설치부터 간단한 활용법까지 모두 알려드려요! 🥰

🔹 새로운 패러다임 Flowise 소개
🔹 초보자도 쉽게 따라할 수 있는 기초 사용법 및 설정
🔹 친절한 가이드와 꿀팁 대방출

📅 날짜: 2024년 5월 14일(화)
🕒 시간: 오후 10시
📍 장소: 온라인 Zoom(http://zoom.thebetter.today)

랭체인에 대해 배울 수 있는 이번 더배러 톡톡, 놓치지 마세요!
🎯 성장에 진심인 사람들이 모여 어제보다 더 나은 오늘을 만드는 곳

더배러 커뮤니티는 성장에 진심인 사람들이 모여 함께 한걸음씩 나아가는 소수정예 커뮤니티입니다. 자기계발 정보 공유, 독서모임, 세미나 등이 활발히 운영되고 있습니다. 함께 성장하고 싶으시다면 지금 바로 참여하세요!
오늘의 뉴스레터 어떠셨나요?  

더배러(The Better) | newsletter@thebetter.today