Sebelum mengimplementasikan embeddings
Ketika memilih penyedia embeddings, ada beberapa faktor yang dapat Anda pertimbangkan tergantung pada kebutuhan dan preferensi Anda:- Ukuran dataset & spesifisitas domain: ukuran dataset pelatihan model dan relevansinya dengan domain yang ingin Anda embed. Data yang lebih besar atau lebih spesifik domain umumnya menghasilkan embeddings dalam domain yang lebih baik
- Performa inferensi: kecepatan pencarian embedding dan latensi end-to-end. Ini adalah pertimbangan yang sangat penting untuk deployment produksi skala besar
- Kustomisasi: opsi untuk pelatihan berkelanjutan pada data pribadi, atau spesialisasi model untuk domain yang sangat spesifik. Ini dapat meningkatkan performa pada kosakata yang unik
Cara mendapatkan embeddings dengan Anthropic
Anthropic tidak menawarkan model embedding sendiri. Salah satu penyedia embeddings yang memiliki berbagai pilihan dan kemampuan yang mencakup semua pertimbangan di atas adalah Voyage AI. Voyage AI membuat model embedding canggih dan menawarkan model yang disesuaikan untuk domain industri tertentu seperti keuangan dan kesehatan, atau model yang disesuaikan khusus untuk pelanggan individu. Sisa panduan ini untuk Voyage AI, tetapi kami mendorong Anda untuk menilai berbagai vendor embeddings untuk menemukan yang paling sesuai untuk kasus penggunaan spesifik Anda.Model yang Tersedia
Voyage merekomendasikan menggunakan model embedding teks berikut:| Model | Panjang Konteks | Dimensi Embedding | Deskripsi |
|---|---|---|---|
voyage-3-large | 32,000 | 1024 (default), 256, 512, 2048 | Kualitas retrieval tujuan umum dan multibahasa terbaik. Lihat blog post untuk detail. |
voyage-3.5 | 32,000 | 1024 (default), 256, 512, 2048 | Dioptimalkan untuk kualitas retrieval tujuan umum dan multibahasa. Lihat blog post untuk detail. |
voyage-3.5-lite | 32,000 | 1024 (default), 256, 512, 2048 | Dioptimalkan untuk latensi dan biaya. Lihat blog post untuk detail. |
voyage-code-3 | 32,000 | 1024 (default), 256, 512, 2048 | Dioptimalkan untuk retrieval kode. Lihat blog post untuk detail. |
voyage-finance-2 | 32,000 | 1024 | Dioptimalkan untuk retrieval dan RAG keuangan. Lihat blog post untuk detail. |
voyage-law-2 | 16,000 | 1024 | Dioptimalkan untuk retrieval dan RAG hukum dan konteks panjang. Juga meningkatkan performa di semua domain. Lihat blog post untuk detail. |
| Model | Panjang Konteks | Dimensi Embedding | Deskripsi |
|---|---|---|---|
voyage-multimodal-3 | 32000 | 1024 | Model embedding multimodal yang kaya yang dapat memvektorisasi teks yang diselingi dan gambar yang kaya konten, seperti screenshot PDF, slide, tabel, figur, dan lainnya. Lihat blog post untuk detail. |
Memulai dengan Voyage AI
Untuk mengakses embeddings Voyage:- Daftar di website Voyage AI
- Dapatkan API key
- Atur API key sebagai variabel lingkungan untuk kemudahan:
voyageai atau permintaan HTTP, seperti yang dijelaskan di bawah ini.
Library Python Voyage
Paketvoyageai dapat diinstal menggunakan perintah berikut:
result.embeddings akan menjadi daftar dua vektor embedding, masing-masing berisi 1024 angka floating-point. Setelah menjalankan kode di atas, kedua embeddings akan dicetak di layar:
embed().
Untuk informasi lebih lanjut tentang paket python Voyage, lihat dokumentasi Voyage.
HTTP API Voyage
Anda juga dapat mendapatkan embeddings dengan meminta HTTP API Voyage. Misalnya, Anda dapat mengirim permintaan HTTP melalui perintahcurl di terminal:
AWS Marketplace
Embeddings Voyage tersedia di AWS Marketplace. Instruksi untuk mengakses Voyage di AWS tersedia di sini.Contoh quickstart
Sekarang kita tahu cara mendapatkan embeddings, mari kita lihat contoh singkat. Misalkan kita memiliki korpus kecil dari enam dokumen untuk diambil dariinput_type="document" dan input_type="query" untuk meng-embed dokumen dan query, masing-masing. Spesifikasi lebih lanjut dapat ditemukan di sini.
Output akan menjadi dokumen ke-5, yang memang paling relevan dengan query:
FAQ
Mengapa embeddings Voyage memiliki kualitas superior?
Mengapa embeddings Voyage memiliki kualitas superior?
Model embedding bergantung pada jaringan neural yang kuat untuk menangkap dan mengompresi konteks semantik, mirip dengan model generatif. Tim peneliti AI berpengalaman Voyage mengoptimalkan setiap komponen dari proses embedding, termasuk:
- Arsitektur model
- Pengumpulan data
- Fungsi loss
- Pemilihan optimizer
Model embedding apa yang tersedia dan mana yang harus saya gunakan?
Model embedding apa yang tersedia dan mana yang harus saya gunakan?
Untuk embedding tujuan umum, kami merekomendasikan:
voyage-3-large: Kualitas terbaikvoyage-3.5-lite: Latensi dan biaya terendahvoyage-3.5: Performa seimbang dengan kualitas retrieval superior pada titik harga yang kompetitif
input_type untuk menentukan apakah teks adalah query atau tipe dokumen.Model spesifik domain:- Tugas hukum:
voyage-law-2 - Kode dan dokumentasi pemrograman:
voyage-code-3 - Tugas terkait keuangan:
voyage-finance-2
Fungsi kesamaan mana yang harus saya gunakan?
Fungsi kesamaan mana yang harus saya gunakan?
Anda dapat menggunakan embeddings Voyage dengan kesamaan dot-product, kesamaan cosinus, atau jarak Euclidean. Penjelasan tentang kesamaan embedding dapat ditemukan di sini.Embeddings Voyage AI dinormalisasi ke panjang 1, yang berarti bahwa:
- Kesamaan cosinus setara dengan kesamaan dot-product, sementara yang terakhir dapat dihitung lebih cepat.
- Kesamaan cosinus dan jarak Euclidean akan menghasilkan peringkat yang identik.
Apa hubungan antara karakter, kata, dan token?
Apa hubungan antara karakter, kata, dan token?
Silakan lihat halaman ini.
Kapan dan bagaimana saya harus menggunakan parameter input_type?
Kapan dan bagaimana saya harus menggunakan parameter input_type?
Untuk semua tugas retrieval dan kasus penggunaan (misalnya, RAG), kami merekomendasikan bahwa parameter
input_type digunakan untuk menentukan apakah teks input adalah query atau dokumen. Jangan abaikan input_type atau atur input_type=None. Menentukan apakah teks input adalah query atau dokumen dapat menciptakan representasi vektor padat yang lebih baik untuk retrieval, yang dapat menghasilkan kualitas retrieval yang lebih baik.Ketika menggunakan parameter input_type, prompt khusus ditambahkan di depan teks input sebelum embedding. Secara khusus:📘 Prompt yang terkait denganinput_type
- Untuk query, prompt adalah “Represent the query for retrieving supporting documents: ”.
- Untuk dokumen, prompt adalah “Represent the document for retrieval: ”.
- Contoh
- Ketika
input_type="query", query seperti “When is Apple’s conference call scheduled?” akan menjadi “Represent the query for retrieving supporting documents: When is Apple’s conference call scheduled?”- Ketika
input_type="document", query seperti “Apple’s conference call to discuss fourth fiscal quarter results and business updates is scheduled for Thursday, November 2, 2023 at 2:00 p.m. PT / 5:00 p.m. ET.” akan menjadi “Represent the document for retrieval: Apple’s conference call to discuss fourth fiscal quarter results and business updates is scheduled for Thursday, November 2, 2023 at 2:00 p.m. PT / 5:00 p.m. ET.”
voyage-large-2-instruct, seperti namanya, dilatih untuk responsif terhadap instruksi tambahan yang ditambahkan di depan teks input. Untuk klasifikasi, clustering, atau subtugas MTEB lainnya, silakan gunakan instruksi di sini.Opsi kuantisasi apa yang tersedia?
Opsi kuantisasi apa yang tersedia?
Kuantisasi dalam embeddings mengonversi nilai presisi tinggi, seperti angka floating-point presisi tunggal 32-bit, ke format presisi lebih rendah seperti integer 8-bit atau nilai biner 1-bit, mengurangi penyimpanan, memori, dan biaya masing-masing 4x dan 32x. Model Voyage yang didukung memungkinkan kuantisasi dengan menentukan tipe data output dengan parameter
output_dtype:float: Setiap embedding yang dikembalikan adalah daftar angka floating-point presisi tunggal 32-bit (4-byte). Ini adalah default dan memberikan presisi / akurasi retrieval tertinggi.int8danuint8: Setiap embedding yang dikembalikan adalah daftar integer 8-bit (1-byte) yang berkisar dari -128 hingga 127 dan 0 hingga 255, masing-masing.binarydanubinary: Setiap embedding yang dikembalikan adalah daftar integer 8-bit yang mewakili nilai embedding satu bit yang dikuantisasi dan dikemas bit:int8untukbinarydanuint8untukubinary. Panjang daftar integer yang dikembalikan adalah 1/8 dari dimensi sebenarnya dari embedding. Tipe binary menggunakan metode offset binary, yang dapat Anda pelajari lebih lanjut di FAQ di bawah ini.
Contoh kuantisasi binary Pertimbangkan delapan nilai embedding berikut: -0.03955078, 0.006214142, -0.07446289, -0.039001465, 0.0046463013, 0.00030612946, -0.08496094, dan 0.03994751. Dengan kuantisasi binary, nilai yang kurang dari atau sama dengan nol akan dikuantisasi menjadi nol binary, dan nilai positif menjadi satu binary, menghasilkan urutan binary berikut: 0, 1, 0, 0, 1, 1, 0, 1. Delapan bit ini kemudian dikemas menjadi satu integer 8-bit, 01001101 (dengan bit paling kiri sebagai bit paling signifikan).
ubinary: Urutan binary langsung dikonversi dan direpresentasikan sebagai integer unsigned (uint8) 77.binary: Urutan binary direpresentasikan sebagai integer signed (int8) -51, dihitung menggunakan metode offset binary (77 - 128 = -51).
Bagaimana saya dapat memotong embeddings Matryoshka?
Bagaimana saya dapat memotong embeddings Matryoshka?
Pembelajaran Matryoshka menciptakan embeddings dengan representasi kasar-ke-halus dalam satu vektor. Model Voyage, seperti
voyage-code-3, yang mendukung beberapa dimensi output menghasilkan embeddings Matryoshka tersebut. Anda dapat memotong vektor ini dengan menyimpan subset dimensi terdepan. Misalnya, kode Python berikut menunjukkan cara memotong vektor 1024-dimensi menjadi 256 dimensi: