벡터 데이터베이스는 고차원 데이터의 효율적인 유사성 검색 및 인덱싱을 가능하게합니다. 벡터 데이터베이스는 특히 데이터 포인트가 종종 고차원 벡터로 표시되는 기계 학습 애플리케이션에 유용합니다. 이 데이터베이스를 사용하면 사용자가 데이터 포인트의 임베딩에 따라 유사성 검색을 수행 할 수 있으므로 컨텐츠 또는 기능을 기반으로 관련 정보를보다 쉽게 찾을 수 있습니다.
이 예시 프로젝트에서는 벡터 데이터베이스로 weaviate를 사용하고 OpenAI의 임베더 ( text-embedding-ada-002-v2 )와의 통합을 사용하여 데이터 세트의 벡터를 작성하고 저장했습니다. 예제 데이터 세트로서 웹 사이트 (4000 개 이상의 회사)에서 모든 Y 콤바이터를 긁어 내고 주요 데이터 포인트에서 벡터를 만들었습니다 (자세한 내용은 /examples/y-combinator/schema.json 참조). 또한 데이터 세트를 Kaggle에 업로드했습니다.
두 번째 예, Paul Mooney가 만든 Kaggle에서 Rings of the Rings 캐릭터 데이터 세트를 다운로드했습니다.
루트 디렉토리에서 .env 파일을 만들고 변수를 추가하십시오 : OpenAi_apikey 및 data_path. data_path 변수는 데이터 디렉토리의 경로 여야합니다.
OPENAI_APIKEY=XXXXXXXXXXXXXXXXX
DATA_PATH=C:Usersyour-user-namepathtoprojectdata
이 코드를 사용하려면 다음을 사용하여 종속성을 설치해야합니다.
npm install
데이터베이스를 사용하려면 데이터베이스의 Docker 인스턴스를 설정해야합니다.
docker-compose up -d --build
Weaviate 데이터베이스를 채우십시오 (Docker가 실행 중인지 확인). /examples 디렉토리 (현재 y-combinator 및 lotr-character )에 제공된 예제 데이터 세트 중 하나를 사용할 수 있습니다.
populate 실행하면 예제 데이터 세트의 데이터가 포함 된 weaviate 데이터베이스를 생성하고 동일한 클래스의 기존 데이터를 제거합니다). y 콤비네이터 데이터 세트를 채우기 위해 ~ $ 0.20의 Openai 사용을 지불했습니다.
npm run populate --dataset=<example-name>
성공하면 Weaviate GraphQL API를 통해 쉽게 데이터를보고 쿼리 할 수 있습니다. Apollo GraphQL 샌드 박스를 사용하여 데이터를 탐색하고 쿼리를 실행할 수 있습니다. 그래프 URL ( http://localhost:8080/v1/graphql )을 입력하십시오.
추가 재미를 원한다면 TensorFlow의 임베딩 프로젝터를 사용하여 데이터를 시각화 할 수 있습니다. 필요한 .tsv 파일을 얻으려면 다음 명령을 사용하십시오 ( /example/<example-name> 폴더 내부에 배치) :
npm run tsv --dataset=<example-name>
데이터를 시각화하기 위해 웹 사이트에 업로드 할 수 있습니다.
자신의 데이터를 만들려면 예제를 따르십시오.
/examples 내부에 새 폴더를 만듭니다.schema.json 파일을 만듭니다. 이 파일에는 데이터 스키마가 포함되어야합니다.data.json 파일을 만듭니다. 이 파일에는 데이터 세트의 데이터가 포함되어야합니다.npm run populate --dataset=<your-dataset-name> 데이터베이스를 데이터로 채우십시오.