소개
Open AI CLIP 모델 ViT-L/14를 사용해 생성되었습니다. 각
임베딩 벡터의 차원은 768입니다.
이 데이터셋은 대규모 실제 벡터 검색 애플리케이션의 설계, 규모 산정, 성능 측면을 모델링하는 데 사용할 수 있습니다.
이 데이터셋은 텍스트-이미지 검색과 이미지-이미지 검색 모두에 사용할 수 있습니다.
데이터셋 세부 정보
npy 파일과 Parquet 파일이 혼합된 형태로 제공됩니다.
ClickHouse는 S3 버킷에 1억 개 벡터의 부분 집합을 제공했습니다.
이 S3 버킷에는 10개의 Parquet 파일이 있으며, 각 Parquet 파일에는 1천만 개의 행이 들어 있습니다.
이 데이터셋에 필요한 스토리지와 메모리 요구 사항을 추정하려면 먼저 문서를 참고하여 규모 산정을 수행하는 것이 좋습니다.
단계
데이터 로드
모든Parquet 파일에서 데이터셋을 로드하려면 다음 SQL 문을 실행하십시오:브루트 포스 벡터 유사도 검색(vector similarity search) 실행하기
KNN (k - Nearest Neighbours) 검색 또는 브루트 포스(brute force) 검색은 데이터셋 내 각 벡터와 검색 임베딩 벡터 사이의 거리를 계산한 후, 거리를 기준으로 정렬하여 가장 가까운 이웃(nearest neighbours)을 찾는 방식입니다. 데이터셋에 포함된 벡터 중 하나를 검색 벡터로 활용할 수 있습니다. 예시:Query
Response
벡터 유사도 인덱스 생성
다음 SQL을 실행하여laion_5b_100m 테이블의 vector 컬럼에 벡터 유사도 인덱스를 정의하고 생성합니다:M과 ef_construction에 각각 64와 512를 사용합니다.
선택한 값에 따른 인덱스 빌드 시간과 검색 결과의 품질을 평가하여 이러한 매개변수의 최적값을 신중하게 선택해야 합니다.인덱스를 빌드하고 저장하는 데는 사용 가능한 CPU 코어 수와 스토리지 대역폭에 따라 전체 1억 데이터셋의 경우 몇 시간이 걸릴 수도 있습니다.ANN 검색 수행
벡터 유사도 인덱스가 생성되면 벡터 검색 쿼리는 자동으로 이 인덱스를 사용합니다:Query
검색 쿼리용 임베딩 생성
LAION 5b 데이터셋의 임베딩 벡터는 OpenAI CLIP 모델 ViT-L/14를 사용해 생성되었습니다.아래에는 CLIP API를 사용해 프로그래밍 방식으로 임베딩 벡터를 생성하는 방법을 보여주는 Python 예시 스크립트가 제공됩니다. 그런 다음 검색 임베딩 벡터를 SELECT 쿼리에서 cosineDistance() 함수의 인수로 전달합니다.clip 패키지 설치 방법은 OpenAI GitHub 리포지토리를 참고하십시오.