What are: Embeddings? Vector Databases? Vector Search? k-NN? ANN?
Medium
LLM을 활용할 때 추가 Context를 제공하기 위해 RAG를 활용합니다. 이 때
RAG를 텍스트 그대로 저장하지 않고 embedding을 한 후에
vector database에 저장하고.
vector database에서 vector search를 통해 내가 원하는 값과 가장 근사한 vector를 가져와서
LLM의 Context로 넣어주게 됩니다.
embedding, vector store, vector search 모두 대충 뜻인지 알 것 같은데 정확하게 이해하기는 어렵습니다. 그래서 이 내용을 잘 설명한 미디엄 글을 가져왔는데요. 요약하자면
embedding:
목적: 데이터를 AI 처리에 적합한 형태로 변환하여 유사성과 거리의 표현을 강조합니다.
예시: 거의 비어있는 로션 병을 적은 수의 분류된 병으로 압축하는 것과 유사합니다.
기술 설명: 고효율 AI 알고리즘 처리를 위한 고차원 희소 데이터를 저차원 밀집 표현으로 변환합니다.
vector database:
설명: 원본 데이터와 그 벡터화된 형태를 모두 유지하는 저장 솔루션으로, 효율적인 색인 생성 및 검색을 가능하게 합니다.
vector search:
장점: 데이터 임베딩 내의 거리 개념을 활용하여 전통적인 키워드 검색보다 우수한 검색 기능을 제공합니다.
기능: 정확한 일치가 아닌 유사성을 기반으로 검색을 수행하여 "고양이"와 "새끼 고양이"와 같은 관련 콘텐츠를 발견할 수 있도록 합니다.
그리고 vector search에는 아래 두가지 방법을 많이 사용합니다
최근접 이웃 (kNN):
개념: 데이터셋 내에서 주어진 쿼리 포인트에 가장 가까운 데이터 포인트를 식별합니다.
사용: 지정된 쿼리와 가장 유사한 항목을 찾음으로써 검색을 용이하게 합니다.
근사 최근접 이웃 (ANN):
이유: 대규모 데이터셋에 대한 k-NN의 확장성 문제를 속도를 위해 일부 정확성을 희생하면서 해결합니다.
메커니즘: 효율적인 근사 최근접 이웃 검색을 위해 공간을 반복적으로 분할하는 하이퍼플레인 사용과 같은 전략을 적용합니다.
자세한 내용은 아래 글을 참고해주세요!
https://kozyrkov.medium.com/what-are-embeddings-vector-databases-vector-search-k-nn-ann-9eb35f715c94
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 2월 4일 오전 10:57