IT/영어 공부노트

[LLM/RAG] RAG 구현 필요요소(임베딩, 벡터 데이터베이스 비교) 본문

💻 IT/AI

[LLM/RAG] RAG 구현 필요요소(임베딩, 벡터 데이터베이스 비교)

소저어엉 2024. 7. 15. 19:13
반응형

<랭체인으로 LLM 기반의 AI 서비스 개발하기> 책을 읽고 정리한 내용으로, 
개인 공부 목적의 포스팅입니다.

 

~책 보러가기~


RAG 구현 시 필요 요소는 데이터, 임베딩, 벡터 DB이다. 

1. 임베딩이란?

Embedding은 복잡한 데이터를 간단한 형태로 바꾸는 것으로, 컴퓨터가 이해할 수 있도록 정보를 숫자(벡터)로 바꾸는 것 이다. 

 

예를들어

'사과', '바나나', '컴퓨터' 를 [과일, 기술]로 바꾼다면, 

  • '사과' [1.0, 0.0]
  • '바나나' [0.9, 0,1]
  • '컴퓨터' [0.1, 0.9]

 

임베딩을 위해선 임베딩 모델이 필요하다. 


2. 임베딩 모델 예시 

Word2Vec

단어를 컴퓨터가 이해할 수 있는 숫자인 벡터로 변환한다. 

이를 통해 컴퓨터는 단어 사이의 관계를 이해하고, 비슷한 의미를 가진 단어들을 찾을 수 있다. 

 

GloVe(Global Vectors for Word Representation)

단어의 의미를 숫자 벡터로 변환한다. 

전체 텍스트에서 단어들이 얼마나 자주 함께 나타나는지를 보고 벡터로 표현한다. 

 

오픈AI 임베딩 모델

오픈AI에서 제공하는 모델로, 한국어를 지원한다. 

이 때, 벡터로 변환된 내용이 상당히 많은데, 이를 저장해 두기 위해 벡터 데이터베이스가 필요하다. 


3. 벡터 데이터베이스

데이터베이스 특징 장점 단점
파인콘 - 간단한 API
- 빠른 검색 성능
- 클라우드 기반으로 쉬운 확장성
- 높은 가용성 및 보안성
- 제어에 제한이 있을 수 있음
밀버스 - 오픈소스
- 고성능
- 광범위한 AI 애플리케이션 지원
- 무료
-높은 수준의 제어
- 관리와 유지보수 필요
쿼드런트 - 오픈소스
- 고성능
- 유연한 데이터 모델링 및 고급 필터링 기능
- 복잡한 검색 쿼리 가능
- 벡터 및 스칼라 데이터 모두 지원
- 커뮤니티 지원이 제한적
크로마 - LLM을 위한 벡터 데이터베이스 - 텍스트 데이터와 언어 모델에 특화 - 이미지나 오디오 데이터는 미흡
엘라스틱서치 - 널리 사용됨
- 벡터 검색과 텍스트 검색 모두 지원
- 다양한 플러그인 및 통합 옵션 - 벡터 검색에 대해 다른 벡터 데이터베이스 보다 미흡
- 데이터 사이즈가 커지면 리소스 사용량 높음
파이스 - 오픈소스
- 고성능
-무료
- GPU와 결합하여 빠른 검색 기능 제공
- 인덱스에 대한 사전 지식 필요 

4.  프레임워크(랭체인)

랭체인은 언어 모델을 위한 프레임워크로, LLM을 통해 손쉽게 서비스를 개발할 수 있는 도구이다. 

 

 

반응형