코딩일기

embedchain, RAG DB 쉽게 업데이트 하는 방법(feat. 유튜브 영상하고도 대화가 가능하다고? 거기다가 배포도 쉽다고?) 본문

Code/딥러닝(NL)

embedchain, RAG DB 쉽게 업데이트 하는 방법(feat. 유튜브 영상하고도 대화가 가능하다고? 거기다가 배포도 쉽다고?)

daje 2023. 12. 15. 10:26
728x90
반응형

오늘 소개해 드릴 재미있는 AI 기술은 embedchain입니다. 실제 사용 예시 코드를 코랩으로 준비하였습니다. 또한, 배포했던 이미지도 함께 스샷으로 찍어두었으니, 다들 직접 실습해보시고, 배포까지 해보시면 좋을 거 같습니다. LLM을 사용하여 RAG(검색 증강 생성) 애플리케이션을 구축하는 방법을 알아보고자 합니다. 지금까지 RAG 애플리케이션은 AI 혁명의 가장 유용한 결과입니다. 아마 내년쯤에는 훨씬 더 큰 발전을 볼 수 있을 것입니다. 한때 prompt engineer가 대세였다면, 이제 RAG engineer가 대세가 되지 않을까 조심스럽게 추측해봅니다.

RAG가 무엇인지 모르시는 분들은 아래 글을 참고해주세요.

Embedchain 장점은 무엇입니까?

우리는 RAG DB를 구축하여도 DB내의 정보가 업데이트가 되기 때문에 RAG용 DB를 지속적으로 업데이트 해야한다는 이슈가 있었습니다. 이건 여간 번거로운 일이 아닙니다. 왜냐하면, 굳이 업데이트가 필요하지 않는 부분까지 모두 업데이트를 해야하기 때문에 시간과 리소스가 낭비되기 때문입니다. 오늘 소개드린 embedchain은 이러한 문제점을 쉽게 해결할 수 있게 도와줍니다. 어떻게 그게 가능할까요? 바로, 이슈가 발생된 데이터만 추가할 수 있도록 add function이 있습니다.

또한, 무엇보다 쉽게 배포할 수 있도록 설계되어 있습니다.

그 외 장점들

  • 다양한 소스의 데이터를 통합하고 색인화합니다.
  • 각 소스에 대한 최적의 데이터 청킹 방법을 결정합니다.
  • RAG 파이프라인을 정기적으로 업데이트되는 데이터 소스와 동기화합니다.
  • 벡터 저장소에 효율적인 데이터 저장소를 구현합니다.
  • 문서 청크에 메타데이터를 포함할지 여부를 결정합니다.
  • 권한 관리를 처리합니다.
  • LLM(대형 언어 모델) 구성.
  • 효과적인 프롬프트를 선택합니다.
  • 적절한 검색 전략을 선택합니다.
  • RAG 파이프라인의 성능을 평가합니다.
  • 무엇보다도 파이프라인을 프로덕션 환경에 배포합니다.

실습 이미지(코랩)

 

배포 이미지

 

Embedchain이란 무엇입니까?

Embedchain은 생산 준비가 완료된 오픈 소스 RAG 프레임워크입니다. 구조화되지 않은 데이터(인터넷 페이지 등)를 로드, 인덱싱, 검색 및 동기화합니다.

Embedchain은 RAG 애플리케이션 생성을 간소화하여 다양한 유형의 비정형 데이터를 관리하기 위한 원활한 프로세스를 제공합니다. 데이터를 관리 가능한 단위로 효율적으로 분할하고, 관련 임베딩을 생성하며, 최적화된 검색을 위해 벡터 데이터베이스에 저장합니다. 다양한 API 제품군을 통해 사용자는 상황에 맞는 정보를 추출하고, 정확한 답변을 찾고, 대화형 채팅 대화에 참여할 수 있으며 모두 자신의 데이터에 맞춰 조정됩니다.

Embedchain은 누구를 위한 것인가요?

Embedchain은 데이터 과학자, 기계 학습 엔지니어와 같은 AI 전문가부터 대학생, 독립 개발자, 취미 활동가를 포함하여 AI 여정을 막 시작한 사람들에 이르기까지 다양한 범위의 사용자를 위해 설계되었습니다. 기본적으로 이는 전문 지식 수준에 관계없이 AI에 관심이 있는 모든 사람을 위한 것입니다.

우리의 API는 사용자 친화적이면서도 적응성이 뛰어나 초보자가 단 4줄의 코드만으로 LLM 기반 애플리케이션을 쉽게 만들 수 있습니다. 동시에 우리는 RAG 파이프라인의 모든 측면에 대해 광범위한 사용자 정의 옵션을 제공합니다. 여기에는 LLM, 벡터 데이터베이스, 로더 및 청커 선택, 검색 전략, 순위 재지정 등이 포함됩니다.

우리 플랫폼의 명확하고 구조화된 추상화 계층은 사용자가 간단한 프로젝트를 만들든, 복잡하고 미묘한 AI 애플리케이션을 만들든 상관없이 특정 요구 사항에 맞게 시스템을 맞춤화할 수 있도록 보장합니다.

어떻게 작동하나요?

Embedchain을 사용하면 다음과 같은 간단한 단계를 통해 RAG 파이프라인에 데이터를 쉽게 추가할 수 있습니다.

  1. 자동 데이터 처리: 자동으로 데이터 유형을 인식하여 로드합니다.
  2. 효율적인 데이터 처리: 시스템은 데이터의 주요 부분에 대한 임베딩을 생성합니다.
  3. 유연한 데이터 저장: 벡터 데이터베이스에서 처리된 데이터를 저장할 위치를 선택할 수 있습니다.

사용자가 채팅, 검색, 쿼리 등 질문을 하면 Embedchain은 응답 프로세스를 단순화합니다.

  1. 쿼리 처리: 사용자의 질문을 임베딩으로 변환합니다.
  2. 문서 검색: 이러한 임베딩은 데이터베이스에서 관련 문서를 찾는 데 사용됩니다.
  3. 답변 생성: 관련 문서는 LLM에서 정확한 답변을 작성하는 데 사용됩니다.

Embedchain을 사용하면 RAG 파이프라인 구축의 복잡성에 대해 걱정할 필요가 없습니다. 모든 종류의 데이터로 애플리케이션을 개발할 수 있는 사용하기 쉬운 인터페이스를 제공합니다.

단점

첫째, 아직 한국어로 된 영상의 경우, 정상적으로 작동하지 않는 이슈가 있습니다.

두번째, 유튜브에서 자막 기능을 제공하지 않는 영상의 경우 작동되지 않습니다.

셋째, web_page dtype의 경우 bs4(beautiful soup)으로 데이터를 불러오기 때문에 bs4가 막혀있는 곳은 아래 이미지처럼 데이터가 로드되지 않는 오류를 볼 수 있습니다.

bs4가 막혀있는 곳은 로드되지 않음

 

 

이처럼 다양한 RAG 서비스가 출시되고 있다. 현 시점에서 우리가 할 수 있는 것이 무엇이고, 어떻게 RAG를 적용해야하는지에 대한 고민이 필요한 시점이라고 생각이 든다. 빠르게 변화되고 있는 현 시점에서 좀 더 좋은 소식과 재미있는 소식을 가져올 수 있도록 노력해보겠습니다.

읽으시면 궁금하신 사항이나 모르시는 사항이 있다면, 댓글 부탁드리고 좋아요! 눌러주세요 ㅠㅠ

다음 컨텐츠는 llmware를 가지고 오겠습니다. 많은 기대, 만관부 부탁드립니다.

감사합니다.

728x90
반응형
Comments