본문 바로가기
Tech Insights

임베드체인(Embedchain) - Easy 하게 LLM 플랫폼 개발하기

by Kudos IT Daily 2023. 10. 17.
반응형

임베드체인(Embedchain) - Easy 하게 LLM 플랫폼 개발하기

목차

  • Embedchain 소개
  • Embedchain을 활용한 간단한 챗봇 만들기
  • 마치며

 

안녕하세요, 근래에 LLM(Large Language Model)과 관련한 기술, 플랫폼, 비즈니스가 많은 사람들의 이목을 끌고 있습니다. 저 또한 LLM과 관련한 기술을 학습하고자 관련 포스팅을 자주 소개드리고 있는데요. 이전 포스팅에서는 LLM 기반 어플리케이션 개발 시, 개발 속도를 압도적으로 끌어올려줄 수 있는 개발 프레임워크 랭체인(LangChain)에 대해 소개해드렸습니다. 랭체인과 관련한 내용이 궁금하신 분들께서는 LangChain - 초보자를 위한 완벽 가이드를 참고해 주시기 바랍니다.

 

Embedchain 소개

오늘은 지난 랭체인 소개에 이어서 새로운 LLM 개발 프레임워크를 소개해드리고자 포스팅을 작성하게 되었습니다. 이번에 소개해드릴 프레임워크는 Embedchain입니다. 포스팅 내용을 작성하면서 EmbedChain을 잠깐 사용해 본 결과, 정말 간단하게 LLM 기반 플랫폼을 개발할 수 있습니다. 특히, 웹 페이지, PDF, 블로그 포스팅, Youtube 영상까지 쉽게 LLM 모델에 통합해서 개발할 수 있습니다.

 

Embedchain은 웹 페이지, PDF, Youtube, 블로그 게시물 등의 데이터를 로드하고, 데이터를 통해 덩어리(Chunk)를 생성하거나 쪼개는 작업, 데이터 쿼리를 위한 임베딩 생성, 검색 등 다양한 기능을 제공합니다. 오늘은 Embedchain을 활용해서 입력한 데이터를 기반으로 대화를 나누는 챗봇을 만들어볼 텐데요. 해당 챗봇은 대략적으로 아래와 같은 작업들을 수행합니다.

 

데이터 저장

  1. 데이터의 유형을 확인하고 데이터 로드
  2. 유의미한 청크(chunk) 생성
  3. 청크에 대한 임베딩(embedding) 생성
  4. 청크를 벡터 데이터베이스에 저장

쿼리 생성 시

  1. 요청하고자 하는 쿼리에 대한 임베딩 생성
  2. 벡터 데이터베이스에서 쿼리에 대한 유사 문서 찾기
  3. 최종 답변을 얻기 위한 유사 문서를 LLM에 컨텍스트로 전달

 

Embedchain은 위와 같은 작업을 수행할 때, 데이터를 나누거나 청크 생성, 임베딩 생성, 벡터 데이터베이스에 저장하는 작업, 유사 문서 검색 등의 작업을 쉽게 수행할 수 있도록 인터페이스를 제공합니다.

 

Embedchain을 활용한 간단한 챗봇 만들기

지금부터 Embedchain의 기능을 간단한 예제를 통해서 살펴보도록 하겠습니다. 오늘은 google colab을 활용해서 실습을 진행할 예정이며, OpenAI의 LLM 모델을 활용할 예정이기 때문에 OpenAI API Key가 필요합니다. 이제 진행해 보도록 하겠습니다. 우선 아래의 명령어를 통해 embedchain을 설치합니다.

 

!pip install --upgrade embedchain

 

 

설치가 완료되면 아래의 명령을 통해 필요한 라이브러리를 불러오고, OPENAI_API_KEY를 설정해 줍니다. 아래의 "여기에 API Key를 입력해 주세요."에 발급받으신 API 키를 입력하시면 됩니다.

 

import os
from embedchain import App

os.environ["OPENAI_API_KEY"] = "여기에 API Key를 입력해주세요."

 

그리고, App() 함수를 통해 chatbot 객체를 생성하고, chatbot에 입력하고자 하는 데이터를 아래와 같이 입력해 줍니다. 이번 예제에서는 공식 문서의 예제와 유사하게 일론 머스크 위키피디아 URL을 add() 함수를 통해 전달하고 질문 쿼리를 보내보도록 하겠습니다. 

 

chatbot.add("https://en.wikipedia.org/wiki/Elon_Musk", "web_page")
chatbot.query("How many companies does Elon Musk run?")
'''
Elon Musk currently runs multiple companies.
He is the CEO of SpaceX, Tesla, and Neuralink.
He is also involved in other ventures such as The Boring Company
and has previously been involved with SolarCity (now Tesla Energy) and OpenAI.
'''

 

쿼리를 보낸 결과 위와 같은 결과를 얻었습니다(결과를 보기 쉽도록 한 문장을 여러 문장으로 분리한 점 참고해 주세요.). 만약 모델에 다른 데이터를 추가하고 싶을 경우, add() 함수를 통해 추가 데이터를 전달할 수 있습니다. 위의 예제를 통해 볼 수 있듯이 코드 몇 줄만으로 입력한 데이터에 대해 대화를 주고받을 수 있는 어플리케이션을 만들었습니다.

 

마치며

오늘은 랭체인에 이어 LLM 개발 프레임워크인 Embedchain에 대해 소개드렸습니다. 또한, 웹 페이지 정보를 전달하고 전달한 데이터를 활용해서 채팅할 수 있는 간단한 예제를 살펴봤습니다. 예제를 통해서 볼 수 있듯, Embedchain에서는 단 코드 몇 줄을 통해 LLM 모델과 대화를 나눌 수 있는 코드를 작성할 수 있었는데요. 몇몇 커뮤니티 회원은 아직 Embedchain이 배포용으로는 적합하지 않다고 말하기도 하고, 다른 사람들은 Embedchain을 활용해서 훌륭한 프로그램을 개발하기도 합니다. 아직 Embedchain에 대한 경험이 적어 명확하지는 않지만, LLM 개발 프레임워크가 점차 개발되고 발전하면서 LLM 기반의 플랫폼을 만들기 좋은 시대가 오는 것은 확실한 것 같습니다. Embedchian을 조금 더 분석해 보고 더 좋은 정보를 가지고 찾아뵐 수 있도록 하겠습니다. 감사합니다!

 

반응형