Embeddings
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. |
Selain itu, model embedding multimodal berikut direkomendasikan:
| 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. |
Butuh bantuan memutuskan model embedding teks mana yang akan digunakan? Lihat FAQ.
Memulai dengan Voyage AI
Untuk mengakses embeddings Voyage:
- Daftar di website Voyage AI
- Dapatkan API key
- Atur API key sebagai variabel lingkungan untuk kemudahan:
export VOYAGE_API_KEY="<your secret key>"Anda dapat memperoleh embeddings dengan menggunakan paket Python resmi voyageai atau permintaan HTTP, seperti yang dijelaskan di bawah ini.
Library Python Voyage
Paket voyageai dapat diinstal menggunakan perintah berikut:
pip install -U voyageaiKemudian, Anda dapat membuat objek klien dan mulai menggunakannya untuk meng-embed teks Anda:
import voyageai
vo = voyageai.Client()
# Ini akan secara otomatis menggunakan variabel lingkungan VOYAGE_API_KEY.
# Alternatifnya, Anda dapat menggunakan vo = voyageai.Client(api_key="<your secret key>")
texts = ["Sample text 1", "Sample text 2"]
result = vo.embed(texts, model="voyage-3.5", input_type="document")
print(result.embeddings[0])
print(result.embeddings[1])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:
[-0.013131560757756233, 0.019828535616397858, ...] # embedding untuk "Sample text 1"
[-0.0069352793507277966, 0.020878976210951805, ...] # embedding untuk "Sample text 2"Ketika membuat embeddings, Anda dapat menentukan beberapa argumen lain untuk fungsi 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 perintah curl di terminal:
curl https://api.voyageai.com/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $VOYAGE_API_KEY" \
-d '{
"input": ["Sample text 1", "Sample text 2"],
"model": "voyage-3.5"
}'Respons yang akan Anda dapatkan adalah objek JSON yang berisi embeddings dan penggunaan token:
{
"object": "list",
"data": [
{
"embedding": [-0.013131560757756233, 0.019828535616397858, ...],
"index": 0
},
{
"embedding": [-0.0069352793507277966, 0.020878976210951805, ...],
"index": 1
}
],
"model": "voyage-3.5",
"usage": {
"total_tokens": 10
}
}
Untuk informasi lebih lanjut tentang HTTP API Voyage, lihat dokumentasi Voyage.
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 dari
documents = [
"The Mediterranean diet emphasizes fish, olive oil, and vegetables, believed to reduce chronic diseases.",
"Photosynthesis in plants converts light energy into glucose and produces essential oxygen.",
"20th-century innovations, from radios to smartphones, centered on electronic advancements.",
"Rivers provide water, irrigation, and habitat for aquatic species, vital for ecosystems.",
"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.",
"Shakespeare's works, like 'Hamlet' and 'A Midsummer Night's Dream,' endure in literature."
]
Kita akan terlebih dahulu menggunakan Voyage untuk mengonversi masing-masing menjadi vektor embedding
import voyageai
vo = voyageai.Client()
# Embed dokumen
doc_embds = vo.embed(
documents, model="voyage-3.5", input_type="document"
).embeddingsEmbeddings akan memungkinkan kita melakukan pencarian semantik / retrieval di ruang vektor. Diberikan contoh query,
query = "When is Apple's conference call scheduled?"kita mengonversinya menjadi embedding, dan melakukan pencarian tetangga terdekat untuk menemukan dokumen yang paling relevan berdasarkan jarak di ruang embedding.
import numpy as np
# Embed query
query_embd = vo.embed(
[query], model="voyage-3.5", input_type="query"
).embeddings[0]
# Hitung kesamaan
# Embeddings Voyage dinormalisasi ke panjang 1, oleh karena itu dot-product
# dan kesamaan cosinus adalah sama.
similarities = np.dot(doc_embds, query_embd)
retrieved_id = np.argmax(similarities)
print(documents[retrieved_id])Perhatikan bahwa kita menggunakan input_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:
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.Jika Anda mencari set cookbook terperinci tentang cara melakukan RAG dengan embeddings, termasuk database vektor, lihat cookbook RAG kami.
FAQ
Harga
Kunjungi halaman harga Voyage untuk detail harga terbaru.