คุณสมบัติ
- Tiny : มันอยู่ในชื่อ เป็นเพียงเซิร์ฟเวอร์ Axum ง่ายมากในการปรับแต่งรหัสประมาณ 600 บรรทัด
- FAST : TinyVector ควร มีความเร็วเทียบเท่ากับฐานข้อมูลเวกเตอร์ขั้นสูงเมื่อมันมาในชุดข้อมูลขนาดเล็กถึงขนาดกลางและความแม่นยำที่ดีขึ้นเล็กน้อย
- เครื่องชั่งในแนวตั้ง : TinyVector เก็บดัชนีทั้งหมดไว้ในหน่วยความจำสำหรับการสืบค้นที่รวดเร็ว ง่ายมากที่จะขยายขนาดมากถึง 100 ล้าน+ มิติเวกเตอร์โดยไม่มีปัญหา
- โอเพ่นซอร์ส : MIT ได้รับใบอนุญาตฟรีตลอดไป
เร็วๆ นี้
- แบบสอบถามที่ทรงพลัง : อนุญาตให้กรองโดยเมตาดาต้าเวกเตอร์ที่ให้ไว้โดยไม่ทำให้การค้นหาช้าลง
- โมเดลแบบรวม : เร็ว ๆ นี้คุณจะไม่ต้องนำเวกเตอร์ของคุณเองเพียงสร้างมันบนเซิร์ฟเวอร์อัตโนมัติ มุ่งหวังที่จะสนับสนุนการสนับสนุน Sbert, Hugging Face Models, Openai, Cohere, ฯลฯ
- ไลบรารี TypeScript/Python : ควรจะสามารถสร้างลูกค้าที่ดีโดยอัตโนมัติโดยใช้ schema openapi ที่ให้มาโดยอัตโนมัติ
เริ่มต้น
- นักเทียบท่า
เราให้บริการคอนเทนเนอร์ Docker ที่มีน้ำหนักเบาที่คุณสามารถเรียกใช้ได้ทุกที่ ใช้เวลาเพียงคำสั่งเดียวในการดำเนินการและทำงานกับการเปลี่ยนแปลงล่าสุด:
docker run
-p 8000:8000
ghcr.io/m1guelpf/tinyvector:edge
หมายเหตุ เมื่อทำงานผ่าน Docker Compose หรือ Kubernetes ตรวจสอบให้แน่ใจว่าได้ผูกระดับเสียงกับ /tinyvector/storage เพื่อการคงอยู่ นี่คือการจัดการโดยอัตโนมัติในคำสั่งด้านบน
อาคารจากศูนย์
คุณสามารถสร้าง TinyVector ได้จากการติดแท็กล่าสุดโดยใช้ cargo install tinyvector (คุณอาจต้องติดตั้ง Rust ก่อน) จากนั้นเรียกใช้ tinyvector เพื่อเริ่มต้นเซิร์ฟเวอร์
นอกจากนี้คุณยังสามารถสร้างมันได้จากการกระทำล่าสุดโดยการโคลนนิ่ง repo และเรียกใช้ cargo build --release และเรียกใช้ด้วย ./target/release/tinyvector target/Release/TinyVector
ทำไมต้องใช้ TinyVector?
ฐานข้อมูลเวกเตอร์ส่วนใหญ่มีค่าใช้จ่ายมากเกินไปสำหรับการตั้งค่าอย่างง่าย ตัวอย่างเช่น:
- ใช้ EMBEDDINGS เพื่อแชทกับเอกสารของคุณ การค้นหาเอกสารส่วนใหญ่ไม่มีที่ไหนใกล้เคียงกับสิ่งที่คุณต้องการเพื่อปรับความเร็วการค้นหาด้วย HNSW หรือ FAISS
- ค้นหาเว็บไซต์หรือร้านค้าของคุณ หากคุณไม่ได้ขาย 1,000,000 รายการคุณไม่จำเป็นต้องใช้ Pinecone
- ฝังตัว?
Embeddings เป็นวิธีการเปรียบเทียบสิ่งที่คล้ายกันในทำนองเดียวกันมนุษย์เปรียบเทียบสิ่งที่คล้ายกันโดยการแปลงข้อความเป็นรายการตัวเลขเล็ก ๆ ข้อความที่คล้ายกันจะมีตัวเลขที่คล้ายกันข้อความที่แตกต่างกันมีตัวเลขที่แตกต่างกันมาก
อ่านคำอธิบายของ Openai
กิตติกรรมประกาศ
- TinyVector ของ DePue (Python+Sqlite+Numpy) เป็นแรงบันดาลใจให้ฉันสร้างฐานข้อมูลเวกเตอร์ตั้งแต่เริ่มต้น (และยืมชื่อ) จะมีส่วนร่วมในแนวคิดมากมายในการเพิ่มประสิทธิภาพการทำงาน
- ใบอนุญาต
โครงการนี้เปิดโล่งภายใต้ใบอนุญาต MIT ดูไฟล์ใบอนุญาตสำหรับข้อมูลเพิ่มเติม