예상 독서 시간: 9 세부 사항
최근 몇 주 동안 벡터 데이터베이스에 대한 투자자의 관심이 증가했습니다. 2023년 초부터 우리는 다음과 같은 사실을 알게 되었습니다.
벡터 데이터베이스가 무엇인지 자세히 살펴보겠습니다.
벡터 데이터베이스는 벡터 임베딩에 크게 의존합니다. 벡터 임베딩은 AI가 복잡한 활동을 실행할 때 장기 기억을 이해하고 유지하는 데 중요한 의미론적 정보를 내부에 전달하는 데이터 표현 유형입니다.
벡터 임베드는 지도와 비슷하지만 사물이 세상 어디에 있는지 보여주는 대신 벡터 공간. 벡터 공간은 모든 것이 제자리에 있는 일종의 큰 놀이터입니다. 고양이, 개, 새, 물고기 등 동물 그룹이 있다고 상상해 보세요. 놀이터에서 특별한 위치를 지정하여 각 이미지에 대한 벡터 포함을 만들 수 있습니다. 고양이는 한쪽 구석에 있고 개는 다른 쪽 구석에 있을 수 있습니다. 새는 하늘에 있을 수 있고 물고기는 연못에 있을 수 있습니다. 이곳은 다차원 공간이다. 예를 들어, 물고기는 지느러미가 있고, 새는 날개가 있고, 고양이와 개는 다리가 있습니다. 물고기는 물에 속하고, 새는 주로 하늘에 속하며, 고양이와 개는 땅에 속한다는 것입니다. 이러한 벡터가 있으면 수학적 기법을 사용하여 유사성에 따라 그룹화할 수 있습니다. 보유하고 있는 정보를 바탕으로
따라서 벡터 임베딩은 벡터 공간에서 사물 간의 유사성을 찾는 데 도움이 되는 지도와 같습니다. 지도가 세상을 탐색하는 데 도움이 되는 것처럼 벡터 임베드는 벡터 플레이그라운드를 탐색하는 데 도움이 됩니다.
핵심 아이디어는 서로 의미론적으로 유사한 임베딩이 그들 사이의 거리가 더 짧다는 것입니다. 그것들이 얼마나 유사한지 알아보기 위해 유클리드 거리, 코사인 거리 등과 같은 벡터 거리 함수를 사용할 수 있습니다.
벡터 라이브러리 유사성 검색을 수행하기 위해 벡터의 임베딩을 메모리의 인덱스에 저장합니다. 벡터 라이브러리에는 다음과 같은 특성/제한 사항이 있습니다.
사용 가능한 많은 벡터 검색 라이브러리가 있습니다. 페이스북의 FAISS, Annoy 스포티파이와 스캔NN 구글에 의해. FAISS는 클러스터링 방법을 사용하고 Annoy는 트리를 사용하며 ScanNN은 벡터 압축을 사용합니다. 애플리케이션 및 성능 지표에 따라 선택할 수 있는 각각의 성능 상충 관계가 있습니다.
벡터 데이터베이스와 벡터 라이브러리를 구별하는 주요 기능은 데이터 보관, 업데이트 및 삭제 기능입니다. 벡터 데이터베이스는 CRUD를 지원합니다. 벡터 라이브러리의 한계를 해결하는 완전한(생성, 읽기, 업데이트 및 삭제).
요컨대, 벡터 데이터베이스는 이전 요점에서 논의된 자체 포함 벡터 인덱스의 한계를 해결하여 벡터 포함을 처리하기 위한 우수한 솔루션을 제공합니다.
그러나 벡터 데이터베이스가 기존 데이터베이스보다 우수한 이유는 무엇입니까?
기존 데이터베이스는 관계형 모델을 사용하여 구조화된 데이터를 저장하고 검색하도록 설계되었습니다. 즉, 데이터 열과 행을 기반으로 하는 쿼리에 최적화되어 있습니다. 기존 데이터베이스에 벡터 임베딩을 저장할 수 있지만 이러한 데이터베이스는 벡터 작업에 최적화되어 있지 않으며 대규모 데이터 세트에서 유사성 검색 또는 기타 복잡한 작업을 효율적으로 수행할 수 없습니다.
이는 기존 데이터베이스가 문자열이나 숫자와 같은 단순한 데이터 유형을 기반으로 인덱싱 기술을 사용하기 때문입니다. 이러한 인덱싱 기술은 차원이 높고 역 인덱스나 공간 트리와 같은 특수한 인덱싱 기술이 필요한 벡터 데이터에는 적합하지 않습니다.
또한 기존 데이터베이스는 종종 벡터 포함과 관련된 많은 양의 비정형 또는 반정형 데이터를 처리하도록 설계되지 않았습니다. 예를 들어 이미지 또는 오디오 파일에는 기존 데이터베이스가 효율적으로 처리할 수 없는 수백만 개의 데이터 포인트가 포함될 수 있습니다.
반면에 벡터 데이터베이스는 벡터 데이터를 저장 및 검색하도록 특별히 설계되었으며 유사성 검색 및 대규모 데이터 세트에 대한 기타 복잡한 작업에 최적화되어 있습니다. 그들은 고차원 데이터와 함께 작동하도록 설계된 특수한 인덱싱 기술과 알고리즘을 사용하여 벡터 임베드를 저장하고 검색하는 데 기존 데이터베이스보다 훨씬 효율적입니다.
이제 벡터 데이터베이스에 대해 많이 읽었으므로 어떻게 작동하는지 궁금할 것입니다. 한 번 보자.
우리는 관계형 데이터베이스가 어떻게 작동하는지 알고 있습니다. 관계형 데이터베이스는 문자열, 숫자 및 기타 유형의 스칼라 데이터를 행과 열에 저장합니다. 반면에 벡터 데이터베이스는 벡터에서 작동하므로 최적화 및 쿼리 방식이 상당히 다릅니다.
기존 데이터베이스에서는 일반적으로 값이 일반적으로 쿼리와 정확히 일치하는 데이터베이스의 행을 쿼리합니다. 벡터 데이터베이스에서는 유사성 메트릭을 적용하여 쿼리와 가장 유사한 벡터를 찾습니다.
벡터 데이터베이스는 가장 가까운 이웃 검색(ANN)에 모두 참여하는 여러 알고리즘의 조합을 사용합니다. 이러한 알고리즘은 해싱, 양자화 또는 그래프 기반 검색을 통해 검색을 최적화합니다.
이러한 알고리즘은 쿼리된 벡터의 이웃을 빠르고 정확하게 검색하는 파이프라인으로 어셈블됩니다. 벡터 데이터베이스는 대략적인 결과를 제공하므로 우리가 고려하는 주요 트레이드 오프는 정확도와 속도 사이입니다. 결과가 정확할수록 쿼리 속도가 느려집니다. 그러나 좋은 시스템은 거의 완벽에 가까운 정확도로 초고속 검색을 제공할 수 있습니다.
벡터 데이터베이스는 기존 데이터베이스를 사용하여 효과적으로 수행할 수 없는 대용량 데이터 세트에 대한 유사성 검색 및 기타 복잡한 작업을 위한 강력한 도구입니다. 기능적 벡터 데이터베이스를 구축하려면 데이터의 의미론적 의미를 캡처하고 정확한 유사성 검색을 가능하게 하므로 임베드가 필수적입니다. 벡터 라이브러리와 달리 벡터 데이터베이스는 사용 사례에 맞게 설계되어 성능과 확장성이 중요한 애플리케이션에 이상적입니다. 기계 학습 및 인공 지능의 등장으로 벡터 데이터베이스는 추천 시스템, 이미지 검색, 의미론적 유사성을 포함한 광범위한 응용 분야에서 점점 더 중요해지고 있습니다. 이 분야가 계속 발전함에 따라 앞으로 벡터 데이터베이스의 훨씬 더 혁신적인 응용 프로그램을 볼 수 있을 것으로 기대할 수 있습니다.
Ercole Palmeri
색칠을 통해 소근육 운동 능력을 키우면 아이들이 글쓰기와 같은 보다 복잡한 기술을 준비할 수 있습니다. 색칠하다…
지난 월요일, Financial Times는 OpenAI와의 계약을 발표했습니다. FT는 세계적 수준의 저널리즘에 라이선스를 부여합니다…
수백만 명의 사람들이 스트리밍 서비스 비용을 지불하고 월간 구독료를 지불합니다. 당신은…