벡터 데이터베이스란 무엇인가?#
벡터 데이터베이스는 정보를 숫자로 저장합니다:
벡터 데이터베이스는 데이터를 고차원 벡터로 저장하는 데이터베이스의 일종으로, 이는 특성 또는 속성의 수학적 표현입니다. (source)
이는 빠르고 정확한 유사성 검색을 가능하게 합니다. 벡터 데이터베이스를 사용하면 기존의 데이터베이스 쿼리를 사용하는 대신 의미론적 및 맥락적 의미에 따라 관련 데이터를 검색할 수 있습니다.
단순화된 예#
벡터 데이터베이스는 "n8n은 자체 호스팅할 수 있는 소스 사용 가능 자동화 도구입니다"라는 문장을 저장할 수 있지만, 텍스트로 저장하는 대신 특성을 나타내는 차원 배열(0과 1 사이의 숫자)을 저장합니다. 이는 문장의 각 글자를 숫자로 변환하는 것을 의미하지 않습니다. 대신 벡터 데이터베이스의 벡터가 문장을 설명합니다.
예를 들어 벡터 저장소에서 0.1
은 자동화 도구
를 나타내고, 0.2
는 소스 사용 가능
을 나타내며, 0.3
은 자체 호스팅할 수 있음
을 나타낸다고 가정해 보겠습니다. 다음과 같은 벡터를 가질 수 있습니다:
문장 | 벡터 (차원 배열) |
---|---|
n8n은 자체 호스팅할 수 있는 소스 사용 가능 자동화 도구입니다 | [0.1, 0.2, 0.3] |
Zapier는 자동화 도구입니다 | [0.1] |
Make는 자동화 도구입니다 | [0.1] |
Confluence는 자체 호스팅할 수 있는 위키 도구입니다 | [0.3] |
이 예시는 매우 단순화된 것입니다.
실제로 벡터는 훨씬 더 복잡합니다. 벡터는 수십 차원에서 수천 차원까지 다양할 수 있습니다. 차원은 단일 특성과 일대일 관계를 가지지 않으므로 개별 차원을 단일 개념으로 직접 변환할 수 없습니다. 이 예시는 대략적인 사고 모델을 제공할 뿐, 진정한 기술적 이해를 제공하지 않습니다.
유사성 검색의 힘 시연#
Qdrant는 사용자가 벡터 데이터베이스의 힘을 이해할 수 있도록 벡터 검색 데모를 제공합니다. 음식 발견 데모는 벡터 저장소가 시각적 유사성을 기반으로 이미지를 매칭하는 데 어떻게 도움이 되는지를 보여줍니다.
이 데모는 배달 서비스의 데이터를 사용합니다. 사용자는 요리 사진을 좋아하거나 싫어할 수 있으며, 앱은 그들의 외모에 따라 더 유사한 식사를 추천합니다. 배달 반경 내의 레스토랑에서 결과를 볼 수도 있습니다. (source)
자세한 기술적 내용은 Qdrant demo-food-discovery GitHub 리포지토리를 참조하십시오.
임베딩, 검색기, 텍스트 분할기 및 문서 로더#
벡터 데이터베이스는 기능을 수행하기 위해 다른 도구가 필요합니다:
- 문서 로더 및 텍스트 분할기: 문서 로더는 문서와 데이터를 가져오고, 이를 임베딩 용도로 준비합니다. 문서 로더는 텍스트 분할기를 사용하여 문서를 청크로 분할할 수 있습니다.
- 임베딩: 이는 데이터를(텍스트, 이미지 등)를 벡터로 변환하고 다시 원시 데이터로 변환하는 도구입니다. n8n은 텍스트 임베딩만 지원한다는 점에 유의하십시오.
- 검색기: 검색기는 벡터 데이터베이스에서 문서를 가져옵니다. 벡터를 다시 데이터로 변환하려면 임베딩과 쌍을 이루어야 합니다.