벡터 데이터베이스(Vector Database)란 무엇인가?
벡터 데이터베이스는 정보를 숫자로 저장합니다: 벡터 데이터베이스는 데이터를 고차원 벡터로 저장하는 데이터베이스의 한 유형으로, 이 벡터는 특성이나 속성을 수학적으로 표현한 것입니다. 이를 통해 빠르고 정확한 유사도 검색이 가능합니다.
벡터 데이터베이스는 정보를 숫자로 저장합니다:
벡터 데이터베이스는 데이터를 고차원 벡터로 저장하는 데이터베이스의 한 유형으로, 이 벡터는 특성이나 속성을 수학적으로 표현한 것입니다. (출처)
이를 통해 빠르고 정확한 유사도 검색이 가능합니다. 벡터 데이터베이스를 사용하면 기존 데이터베이스 쿼리 대신 의미론적(semantic) 및 맥락적(contextual) 의미를 기반으로 관련 데이터를 검색할 수 있습니다.
단순화된 예시#
벡터 데이터베이스는 "n8n is a source-available automation tool that you can self-host"라는 문장을 저장할 수 있지만, 텍스트로 저장하는 대신 해당 문장의 특성을 나타내는 차원 배열(0과 1 사이의 숫자들)로 저장합니다. 이는 문장의 각 글자를 숫자로 변환하는 것이 아닙니다. 대신, 벡터 데이터베이스의 벡터들이 그 문장을 설명합니다.
벡터 스토어에서 0.1이 automation tool을, 0.2가 source available을, 0.3이 can be self-hosted를 나타낸다고 가정하면, 다음과 같은 벡터가 생성될 수 있습니다:
| 문장 | 벡터 (차원 배열) |
|---|---|
| n8n is a source-available automation tool that you can self-host | [0.1, 0.2, 0.3] |
| Zapier is an automation tool | [0.1] |
| Make is an automation tool | [0.1] |
| Confluence is a wiki tool that you can self-host | [0.3] |
실제로 벡터는 훨씬 더 복잡합니다. 벡터는 수십 개에서 수천 개의 차원을 가질 수 있습니다. 차원과 단일 특성 간에 일대일 관계가 없으므로, 개별 차원을 단일 개념으로 직접 번역할 수 없습니다. 이 예시는 정확한 기술적 이해가 아닌 대략적인 개념 모델을 제공합니다.
유사도 검색의 강력함 시연#
Qdrant는 사용자가 벡터 데이터베이스의 강력함을 이해할 수 있도록 벡터 검색 데모를 제공합니다. 음식 발견 데모는 벡터 스토어가 시각적 유사성을 기반으로 이미지를 매칭하는 방법을 보여줍니다.
이 데모는 배달 서비스의 데이터를 사용합니다. 사용자는 음식 사진에 좋아요 또는 싫어요를 표시할 수 있으며, 앱은 외형을 기반으로 더 유사한 음식을 추천합니다. 또한 배달 반경 내 레스토랑의 결과만 보도록 선택할 수도 있습니다. (출처)
전체 기술 세부 사항은 Qdrant demo-food-discovery GitHub 저장소를 참조하십시오.
임베딩(Embeddings), Retrievers, 텍스트 분할기, 문서 로더#
벡터 데이터베이스가 작동하려면 다른 도구들이 필요합니다:
- 문서 로더(Document loaders)와 텍스트 분할기(text splitters): 문서 로더는 문서와 데이터를 가져와서 임베딩을 위해 준비합니다. 문서 로더는 텍스트 분할기를 사용하여 문서를 청크로 나눌 수 있습니다.
- 임베딩(Embeddings): 데이터(텍스트, 이미지 등)를 벡터로 변환하고, 다시 원시 데이터로 변환하는 도구입니다. n8n은 텍스트 임베딩만 지원합니다.
- Retrievers: 벡터 데이터베이스에서 문서를 가져옵니다. 벡터를 다시 데이터로 변환하기 위해 임베딩과 함께 사용해야 합니다.
