콘텐츠로 이동

벡터 데이터베이스란 무엇인가요?#

벡터 데이터베이스는 정보를 숫자로 저장합니다.

벡터 데이터베이스는 데이터를 고차원 벡터로 저장하는 데이터베이스 유형으로, 특징이나 속성을 수학적으로 표현한 것입니다. (출처)

이를 통해 빠르고 정확한 유사성 검색이 가능합니다. 벡터 데이터베이스를 사용하면 기존 데이터베이스 쿼리를 사용하는 대신 의미적, 문맥적 의미를 기반으로 관련 데이터를 검색할 수 있습니다.

간단한 예시#

벡터 데이터베이스는 "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는 사용자가 벡터 데이터베이스의 힘을 이해하는 데 도움이 되는 벡터 검색 데모를 제공합니다. 음식 발견 데모는 벡터 저장소가 시각적 유사성을 기반으로 사진을 일치시키는 데 어떻게 도움이 되는지 보여줍니다.

이 데모는 배달 서비스의 데이터를 사용합니다. 사용자는 요리 사진을 좋아하거나 싫어할 수 있으며, 앱은 모양에 따라 더 유사한 식사를 추천합니다. 배달 반경 내의 레스토랑에서 결과를 보도록 선택할 수도 있습니다. (출처)

전체 기술 세부 정보는 Qdrant demo-food-discovery GitHub 리포지토리를 참조하세요.

임베딩, 리트리버, 텍스트 분할기 및 문서 로더#

벡터 데이터베이스가 작동하려면 다른 도구가 필요합니다.

  • 문서 로더 및 텍스트 분할기: 문서 로더는 문서와 데이터를 가져와 임베딩을 위해 준비합니다. 문서 로더는 텍스트 분할기를 사용하여 문서를 청크로 나눌 수 있습니다.
  • 임베딩: 데이터를 (텍스트, 이미지 등) 벡터로 변환하고 다시 원시 데이터로 변환하는 도구입니다. n8n은 텍스트 임베딩만 지원합니다.
  • 리트리버: 리트리버는 벡터 데이터베이스에서 문서를 가져옵니다. 벡터를 다시 데이터로 변환하려면 임베딩과 쌍을 이루어야 합니다.