티스토리 뷰
Create Vector Search

벡터 검색 (Vector search)
벡터 검색의 핵심은 임베딩을 준비한 뒤, 벡터 공간을 효율적으로 인덱싱하여 빠른 검색을 가능하게 하는 기술이다. 벡터 사이의 거리를 어떻게 측정할 지, 그리고 벡터 공간에서 어떻게 유사한 벡터를 빠르고 확장 가능하게 찾을 것인지가 주요 과제다.
벡터 거리를 측정하는 방법은 Manhattan Distance, Euclidean Distance, Cosine Distance, Dot Product Similarity or Inner Product 네 가지 방법이 일반적이다. 단, 임베딩 모델 등 여러 요인을 생각하여 적절한 방식을 선택해야 한다.
벡터 거리 측정 방법
- 맨해튼 거리 (Manhattan Distance, L1 거리): 격자 패턴에서의 거리로, 각 좌표 차이의 절대값 합이다.
예: |x₁ - x₂| + |y₁ - y₂| - 유클리드 거리 (Euclidean Distance, L2 거리): 두 점 사이의 최단 직선 거리로, 각 좌표 차이 제곱의 합의 제곱근이다.
예: √((x₁ - x₂)² + (y₁ - y₂)²) - 코사인 거리 (Cosine Distance): 두 벡터 사이의 각도의 코사인 값으로, 방향의 유사성을 측정한다.
예: 1 - (A · B) / (‖A‖‖B‖)
값이 0에 가까울수록 방향이 유사하며, 1이면 완전히 직각(orthogonal)이다. - 점곱 거리 (Dot Product Similarity or Inner Product): 두 벡터의 방향과 크기 모두에 대한 유사성을 나타낸다.
예: A · B = Σ(Aᵢ × Bᵢ)
값이 클수록 두 벡터가 비슷한 방향을 가진다.
각 거리는 벡터 공간에서의 유사성 또는 차이를 판단하는 기준으로 자주 사용된다.
벡터 검색 알고리즘
유사한 벡터를 찾기 위해 사용하는 주된 알고리즘은 완전 탐색 (Brute-Force) 방식과 근사 최근접 이웃 (Approximate Nearest Neighbor, ANN) 기반의 TreeAh 방식이 있다.
- 완전 탐색 (Brute-Force): 모든 벡터와의 거리를 계산하고 정렬하여 가장 가까운 k개의 벡터를 찾기 때문에 정확하지만 비효율적인 방식이다.
- TreeAh: 트리 구조를 활용한 근사 검색 알고리즘으로, 실제 프로덕션 환경에서 사용된다.
ScaNN (Scalable Approximate Nearest Neighbor)
Google에서 개발한 ANN 알고리즘으로 구글 검색, 유튜브 추천 시스템 등 다양한 서비스에 활용된다.
ScaNN의 작동원리는 검색 공간을 축소 (Pruning), 벡터의 크기 압축(데이터 양자화), 비즈니스 로직 통합 등을 통해 벡터 검색 성능을 최적화한다.
- Pruning : 벡터 공간을 계층적으로 분할하고 검색 트리를 구축하여 쿼리와 관련 없는 영역을 제거함
- 데이터 양자화 : 데이터 포인트를 압축하여 저장 공간을 절약하고 인덱싱 속도를 높임
- 비즈니스 로직 통합 : 필터링 등을 통해 검색 범위를 좁혀 관련성 높은 데이터만 검색함
구글에서 제공하는 Vertex AI 벡터 검색은 ScaNN을 사용하여 벡터 검색을 제공한다.
Vector search in action

이번 강의는 주로 Vertex AI를 소개하며, 이 서비스에서 제공하는 벡터 검색을 다룬다.
구글은 Google Cloud를 통해 BigQuery, Vertex AI, 임베딩 API, MLOps 등 여러 서비스를 제공한다. 이때, 코딩 없이 콘솔 UI만 사용할 수도 있고, API나 gcloud 명령어를 통해 검색 프로젝트를 설정하고 사용할 수 있다.
머신러닝 파이프라인 구축하는 데 용이하며, 데이터추출-임베딩 생성-인덱스 구축-배포까지 프로덕션 파이프라인을 빠르게 구축할 수 있다. API와 UI를 통해 사용자는 최소한의 코드와 설정을 통해 해당 기능을 사용할 수 있다.
앞의 강의에서 소개했던 확장이 가능한 Tree-AH 알고리즘과 개발 환경에 유용한 Brute-Force 알고리즘을 선택하여 사용할 수 있다. 벡터 거리 측정 방식 또한, 소개했던 4개의 방식을 지원하므로 데이터 특성에 맞는 검색이 가능한다.
검색 결과는 키워드 기반 검색이 아닌 검색의 의미를 이해하는(semantic) 의미론적 검색을 제공한다.
'스터디&세미나' 카테고리의 다른 글
| [Kafka] 카프카 핵심 가이드 - 1 (1) | 2025.07.01 |
|---|---|
| Vector Search and Embeddings (3) (1) | 2025.05.16 |
| Vector Search and Embeddings (1) (2) | 2025.05.01 |
| 일할맛 세미나 3월 후기: GraphRAG부터 MultiModal RAG까지 (0) | 2025.03.31 |
| 구글 클라우드 자격증 취득 프로그램 (Google Cloud Get Certified) - Data Engineer 신청 (1) (0) | 2025.03.12 |
- Total
- Today
- Yesterday
- Claude
- Encoding
- MongoDB
- rdflib
- 키워드추출
- rdffox
- AWS
- Vue3
- vervel
- 지식그래프
- vscode
- Postgis
- cursorai
- geospy
- vertorsearch
- SPARQL
- LLM
- python
- deepseek
- pdfmathtranslate
- TextRank
- PostgreSQL
- polars
- pandas
- docker
- hadoop
- Kafka
- ChatGPT
- PEFT
- vectorsearch
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |