랭체인, AI 도구 결합으로 새로운 가능성을 열다! 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 소개 🔹 초보자도 쉽게 따라할 수 있는 기초 사용법 및 설정 🔹 친절한 가이드와 꿀팁 대방출
랭체인에 대해 배울 수 있는 이번 더배러 톡톡, 놓치지 마세요! |
|
|
🎯 성장에 진심인 사람들이 모여 어제보다 더 나은 오늘을 만드는 곳
더배러 커뮤니티는 성장에 진심인 사람들이 모여 함께 한걸음씩 나아가는 소수정예 커뮤니티입니다. 자기계발 정보 공유, 독서모임, 세미나 등이 활발히 운영되고 있습니다. 함께 성장하고 싶으시다면 지금 바로 참여하세요! |
|
|
더배러(The Better) | newsletter@thebetter.today
|
|
|
|
|