ฐานข้อมูลเวกเตอร์ช่วยให้การค้นหาความคล้ายคลึงกันอย่างมีประสิทธิภาพและการจัดทำดัชนีของข้อมูลมิติสูง ฐานข้อมูลเวกเตอร์มีประโยชน์อย่างยิ่งสำหรับแอปพลิเคชันการเรียนรู้ของเครื่องซึ่งจุดข้อมูลมักจะแสดงเป็นเวกเตอร์มิติสูง ฐานข้อมูลเหล่านี้อนุญาตให้ผู้ใช้ทำการค้นหาที่คล้ายคลึงกันตามการฝังจุดข้อมูลทำให้ง่ายต่อการค้นหาข้อมูลที่เกี่ยวข้องตามเนื้อหาหรือคุณสมบัติ
ในโครงการ Examplary นี้ฉันใช้ Weaviate เป็นฐานข้อมูลเวกเตอร์และการรวมเข้ากับ Embedder ของ OpenAI ( text-embedding-ada-002-v2 ) เพื่อสร้างและบันทึกเวกเตอร์ของชุดข้อมูล เป็นตัวอย่างชุดข้อมูลฉันได้คัดลอก Y combinator ทั้งหมดจากเว็บไซต์ของพวกเขา (4000+ บริษัท ) และสร้างเวกเตอร์จาก Key Datapoint (ดู /examples/y-combinator/schema.json สำหรับรายละเอียดเพิ่มเติม) ฉันได้อัปโหลดชุดข้อมูลไปยัง Kaggle
เป็นตัวอย่างที่สองฉันได้ดาวน์โหลดชุดข้อมูลตัวละคร Lord of the Rings จาก Kaggle สร้างโดย Paul Mooney
สร้างไฟล์. 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 จะสร้างฐานข้อมูลทอด้วยข้อมูลจากชุดข้อมูลตัวอย่าง (และลบข้อมูลที่มีอยู่ด้วยคลาสเดียวกัน) ฉันจ่ายเงิน ~ $ 0.20 ในการใช้งาน Openai เพื่อเติมชุดข้อมูล Y Combinator
npm run populate --dataset=<example-name>
หากประสบความสำเร็จคุณสามารถดูและสอบถามข้อมูลของคุณได้อย่างง่ายดายผ่าน Weaviate GraphQL API คุณสามารถใช้ Sandbox Apollo GraphQL เพื่อสำรวจข้อมูลและเรียกใช้แบบสอบถาม เพียงเข้าสู่กราฟ URL ( http://localhost:8080/v1/graphql )
หากคุณต้องการสนุกเป็นพิเศษคุณสามารถใช้โปรเจ็กเตอร์ฝังของ TensorFlow เพื่อแสดงข้อมูลของคุณ ในการรับไฟล์. ttsv ที่จำเป็นให้ใช้คำสั่งต่อไปนี้ (จะวางไว้ภายในโฟลเดอร์ /example/<example-name> ):
npm run tsv --dataset=<example-name>
สามารถอัปโหลดไปยังเว็บไซต์เพื่อแสดงข้อมูลของคุณ
หากต้องการสร้างข้อมูลของคุณเองให้ติดตามตัวอย่าง:
/examples ด้วยชื่อชุดข้อมูลของคุณschema.json ในรูทของโฟลเดอร์ชุดข้อมูลของคุณ ไฟล์นี้ควรมีสคีมาของข้อมูลของคุณdata.json ในรูทของโฟลเดอร์ชุดข้อมูลของคุณ ไฟล์นี้ควรมีข้อมูลชุดข้อมูลของคุณnpm run populate --dataset=<your-dataset-name> เพื่อเติมข้อมูลด้วยข้อมูลของคุณ