Vector
벡터(Vector)는 길이와 방향을 가진 수학적 객체로 정의됩니다. 인공지능(AI) 분야에서 벡터는 데이터의 특성이나 속성을 나타내는 숫자 배열을 의미합니다. 데이터가 복잡할수록 이를 표현하는 벡터의 차원도 더 높아집니다. 머신러닝(ML), 자연어 처리(NLP), 컴퓨터 비전(CV) 등 AI 분야에서는 이러한 데이터를 모델이 처리할 수 있도록 동일한 차원의 벡터로 변환하는데, 이를 임베딩(Embedding) 방식이라고 부릅니다. 텍스트, 이미지, 음성 등 비정형 데이터 역시 임베딩을 통해 벡터로 변환할 수 있으며, 이를 통해 데이터 간의 유사성이나 관계를 더 효과적으로 파악할 수 있습니다.
Embedding
임베딩(Embedding)은 고차원의 데이터를 저차원 공간으로 변환하는 과정으로, 주로 비정형 데이터를 벡터화하는 데 사용됩니다. 임베딩은 복잡한 데이터의 특성을 간결하게 표현하면서도 데이터 간의 유사성이나 관계를 보존하는 것이 목표입니다.
Embedding은 사람이 직접 해석하여 의미를 파악하기는 어렵지만, 서로 다른 embedding 데이터들 간의 거리를 계산하여, 이들 간의 의미적 관계를 파악 할 수 있습니다.
Vector Database
벡터 데이터베이스(Vector Database)는 AI 모델의 "장기 기억 능력의 부재"를 보완하기 위해 나온 데이터베이스입니다. 전통적인 데이터베이스(RDBMS)와는 다르게 Vector DB는 고차원 실수 벡터 인덱스를 효율적으로 저장하는데 특화 되어있습니다.
RDBMS는 입력된 query에 대해 정확히 일치하는 결과를 반환하는 방식으로 동작합니다. 반면, Vector DB는 입력 query에 대한 정확한 일치보다는, query embedding에 대해서 근사 최근접 항목(Approximate Nearest Neighbor, ANN) 검색 알고리즘에 기반하여, 유사도가 가장 높은 결과를 찾아냅니다.
즉, Vector DB는 쿼리와 가장 유사한 벡터를 빠르게 찾아내는 방식으로 데이터를 검색합니다.
이러한 특성 덕분에 벡터 데이터베이스는 대량의 벡터 데이터를 저장하고 검색할 때도 높은 성능을 유지할 수 있습니다. 이는 AI 분야에서 특히 중요한데, 예를 들어 자연어 처리(NLP), 컴퓨터 비전(CV), 추천 시스템, LLM 등에서 대규모 벡터 데이터를 빠르게 검색해야 할 때 필수적인 역할을 합니다.
주요 Vector Databse 비교
Vector DB 이름 | Open-source 사용 유무/(지원 언어) | Metadata Filtering | Managed Cloud Offering | Hybrid Search | Sparse Vectors Support |
Pinecone | X | O | O | X | O |
Chroma | O (Python, JS) | O | X | O | O |
Milvus | O (Python, GO, C++) | O | O | X | X |
- Metadata Filtering : Metadata를 기반으로, 결과 데이터를 구체화하여, 정확성을 높일 수 있습니다.
- Hybrid Search : 키워드 기반 검색인 Lexical Search와 유사도 기반 검색인 Semantic Search의 장점만을 추려 사용한다. 예를 들어, 특정 도메인 용어나 제품 용어가 포함된 쿼리로 검색 하였을때, Lexical Search의 검색결과와 의미론적 임베딩을 통한 유사한 동의어 검색의 경우 및 오타가 포함되더라도 Semantic Search가 벡터 기반으로 가장 유사한 결과를 반환하기 때문에 정확성을 높일 수 있습니다.
- Lexical Search : BM25와 같은 희소 행렬 알고리즘을 통해 키워드 기반 매칭을 진행한다. 특정 도메인 용어 및 단어에 용이하지만 오타 및 동의어에 정확도가 떨어집니다.
- Semantic Search : 키워드가 일치하지 않더라도 의미론적으로 유사한 검색 결과를 반환한다. 정확도는 임베딩 결과에 편차가 큽니다.
'DL > LLM&RAG' 카테고리의 다른 글
한 권으로 LLM 온라인 스터디 1기 Day_5 - GPT, Gemma, Llama3 : 대규모 언어 모델의 진화와 비교 (0) | 2025.01.05 |
---|---|
한 권으로 LLM 온라인 스터디 1기 Day_4 - 파인튜닝의 모든 것 : PEFT와 태스크 적용 사례 (0) | 2025.01.05 |
한 권으로 LLM 온라인 스터디 1기 Day_3 - 멀티헤드 어텐션 & 피드포워드, Blocks (0) | 2025.01.05 |
한 권으로 LLM 온라인 스터디 1기 Day_2 - 기본 언어 모델의 구조 및 언어 모델 구현 (0) | 2025.01.02 |
한 권으로 LLM 온라인 스터디 1기 Day_1 - 런팟"RunPod" 소개 및 활용 (2) | 2024.12.31 |