IT/영어 공부노트
[LLM/RAG] RAG 구현 필요요소(임베딩, 벡터 데이터베이스 비교) 본문
반응형
<랭체인으로 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을 통해 손쉽게 서비스를 개발할 수 있는 도구이다.
반응형