Claude Platform Docs
PesanKemampuan model

Embeddings

Text embeddings adalah representasi numerik dari teks yang memungkinkan pengukuran kemiripan semantik. Panduan ini memperkenalkan embeddings, penerapannya, dan cara menggunakan model embedding untuk tugas-tugas seperti pencarian, rekomendasi, dan deteksi anomali.

Sebelum mengimplementasikan embeddings

Saat memilih penyedia embeddings, ada beberapa faktor yang dapat Anda pertimbangkan tergantung pada kebutuhan dan preferensi Anda:

  • Ukuran dataset & kekhususan domain: ukuran dataset pelatihan model dan relevansinya terhadap domain yang ingin Anda embed. Data yang lebih besar atau lebih spesifik terhadap domain umumnya menghasilkan embeddings dalam-domain yang lebih baik
  • Performa inferensi: kecepatan pencarian embedding dan "latency" (latensi) end-to-end. Ini merupakan pertimbangan yang sangat penting untuk deployment produksi berskala besar
  • Kustomisasi: opsi untuk pelatihan lanjutan pada data privat, 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 dengan beragam model dan kemampuan adalah Voyage AI oleh MongoDB.

Voyage AI membuat model embedding dan reranker. Model embedding-nya mencakup model serbaguna, multimodal, terkontekstualisasi, dan spesifik domain.

Sisa panduan ini ditujukan untuk Voyage AI, tetapi Anda sebaiknya menilai berbagai vendor embeddings untuk menemukan yang paling sesuai dengan kasus penggunaan spesifik Anda.

Model yang tersedia

Voyage AI menawarkan model text embedding berikut:

Generasi terbaru

ModelPanjang konteksDimensi embeddingDeskripsi
voyage-4-large32.0001024 (default), 256, 512, 2048Kualitas retrieval serbaguna dan multibahasa terbaik. Lihat postingan blog Voyage 4 untuk detailnya.
voyage-432.0001024 (default), 256, 512, 2048Dioptimalkan untuk kualitas retrieval serbaguna dan multibahasa. Menyeimbangkan kualitas dan efisiensi. Lihat postingan blog Voyage 4 untuk detailnya.
voyage-4-lite32.0001024 (default), 256, 512, 2048Dioptimalkan untuk latensi dan biaya. Lihat postingan blog Voyage 4 untuk detailnya.
voyage-code-432.0001024 (default), 256, 512, 2048Dioptimalkan untuk retrieval kode dan aplikasi agentic coding. Lihat postingan blog voyage-code-4 untuk detailnya.
voyage-4-nano32.0002048 (default), 256, 512, 1024Model open-weight (lisensi Apache 2.0) yang Anda unduh dari Hugging Face dan jalankan sendiri. Tidak tersedia melalui Atlas Embedding and Reranking API. Lihat postingan blog Voyage 4 untuk detailnya.

Generasi sebelumnya

Untuk status siklus hidup setiap model dan pengganti yang direkomendasikan, lihat Model deprecations, lifecycle states, and support dalam dokumentasi MongoDB.

ModelPanjang konteksDimensi embeddingDeskripsi
voyage-3-large32.0001024 (default), 256, 512, 2048Generasi sebelumnya dari voyage-4-large. Lihat postingan blog voyage-3-large untuk detailnya.
voyage-3.532.0001024 (default), 256, 512, 2048Generasi sebelumnya dari voyage-4. Lihat postingan blog voyage-3.5 untuk detailnya.
voyage-3.5-lite32.0001024 (default), 256, 512, 2048Generasi sebelumnya dari voyage-4-lite. Lihat postingan blog voyage-3.5 untuk detailnya.
voyage-code-332.0001024 (default), 256, 512, 2048Generasi sebelumnya dari voyage-code-4. Lihat postingan blog voyage-code-3 untuk detailnya.
voyage-finance-232.0001024Dioptimalkan untuk retrieval dan RAG keuangan. Lihat postingan blog voyage-finance-2 untuk detailnya.
voyage-law-216.0001024Dioptimalkan untuk retrieval dan RAG hukum. Lihat postingan blog voyage-law-2 untuk detailnya.

Selain itu, Voyage AI menawarkan model embedding multimodal berikut. Panggil model-model ini dengan multimodal_embed() alih-alih embed():

ModelPanjang konteksDimensi embeddingDeskripsi
voyage-multimodal-3.532.0001024 (default), 256, 512, 2048Model embedding multimodal yang kaya yang dapat memvektorisasi teks, gambar, dan video yang saling berselang-seling. Mencakup dukungan video sebagai model embedding video kelas produksi pertama. Lihat postingan blog voyage-multimodal-3.5 untuk detailnya.
voyage-multimodal-332.0001024Generasi sebelumnya dari voyage-multimodal-3.5. Memvektorisasi teks yang saling berselang-seling dan gambar yang kaya konten, seperti tangkapan layar PDF, slide, tabel, gambar, dan lainnya. Lihat postingan blog voyage-multimodal-3 untuk detailnya.

Model contextualized chunk embedding berikut menghasilkan vektor tingkat chunk yang menangkap konteks dokumen secara penuh tanpa augmentasi metadata manual. Panggil model-model ini dengan contextualized_embed() alih-alih embed():

ModelPanjang konteksDimensi embeddingDeskripsi
voyage-context-4120.0001024 (default), 256, 512, 2048Contextualized chunk embeddings yang dioptimalkan untuk kualitas retrieval serbaguna dan multibahasa. Lihat postingan blog voyage-context-4 untuk detailnya.
voyage-context-3120.0001024 (default), 256, 512, 2048Generasi sebelumnya dari voyage-context-4. Lihat postingan blog voyage-context-3 untuk detailnya.

Batas 120.000 token berlaku ketika Anda mengatur enable_auto_chunking ke true. Jika tidak, jumlah total token di semua input tidak boleh melebihi 32.000.

Voyage AI juga menawarkan reranker, yang menerima sebuah query dan daftar dokumen lalu mengembalikannya dalam urutan berdasarkan relevansi terhadap query tersebut. Panggil model-model ini dengan rerank():

ModelPanjang konteksDeskripsi
rerank-332.000Akurasi tertinggi. Direkomendasikan untuk sebagian besar aplikasi. Lihat postingan blog rerank-3 untuk detailnya.
rerank-3-lite32.000Dioptimalkan untuk latensi dan biaya. Lihat postingan blog rerank-3 untuk detailnya.
rerank-2.532.000Generasi sebelumnya dari rerank-3. Lihat postingan blog rerank-2.5 untuk detailnya.
rerank-2.5-lite32.000Generasi sebelumnya dari rerank-3-lite. Lihat postingan blog rerank-2.5 untuk detailnya.

Butuh bantuan memutuskan model mana yang akan digunakan? Lihat Voyage AI embedding and reranking models overview dalam dokumentasi MongoDB.

Memulai dengan Voyage AI

Untuk mengakses model Voyage AI, buat kunci API model di MongoDB Atlas:

  1. Buat akun MongoDB Atlas, atau masuk.
  2. Di proyek Atlas Anda, pilih AI Model APIs di bilah navigasi, klik Create model API key, beri nama kunci tersebut, lalu klik Create.
  3. Atur kunci API sebagai variabel lingkungan untuk kemudahan:
export VOYAGE_API_KEY="<your model API key>"

Untuk detail lebih lanjut, lihat Voyage AI quick start dalam dokumentasi MongoDB.

Anda dapat memperoleh embeddings dengan menggunakan paket Python voyageai resmi atau permintaan HTTP, seperti yang dijelaskan di bagian-bagian berikut. Voyage AI juga memiliki klien TypeScript resmi. Untuk menggunakannya dengan kunci API model dari Atlas, atur opsi environment-nya ke https://ai.mongodb.com/v1, seperti yang dijelaskan dalam TypeScript client dalam dokumentasi MongoDB.

Pustaka Python Voyage AI

Instal paket voyageai menggunakan perintah berikut. Untuk menggunakan kunci API model dari Atlas, Anda memerlukan versi 0.3.7 atau yang lebih baru.

pip install -U voyageai

Kemudian, Anda dapat membuat objek client dan mulai menggunakannya untuk meng-embed teks Anda:

import voyageai

vo = voyageai.Client()
# Ini akan otomatis menggunakan variabel lingkungan VOYAGE_API_KEY.
# Sebagai alternatif, Anda dapat menggunakan vo = voyageai.Client(api_key="<kunci API model Anda>")

texts = ["Sample text 1", "Sample text 2"]

result = vo.embed(texts, model="voyage-4", input_type="document")
print(result.embeddings[0])
print(result.embeddings[1])

result.embeddings adalah daftar berisi dua vektor embedding, masing-masing berisi 1024 bilangan floating-point. Setelah menjalankan kode di atas, kedua embeddings tersebut dicetak di layar:

[-0.013131560757756233, 0.019828535616397858, ...]   # embedding for "Sample text 1"
[-0.0069352793507277966, 0.020878976210951805, ...]  # embedding for "Sample text 2"

Saat membuat embeddings, Anda dapat menentukan beberapa argumen lain pada fungsi embed().

Untuk informasi lebih lanjut tentang paket Python, lihat Accessing Voyage AI models dalam dokumentasi MongoDB.

HTTP API Voyage AI

Anda juga dapat memperoleh embeddings dengan mengirimkan permintaan HTTP ke Atlas Embedding and Reranking API. Misalnya, Anda dapat mengirim permintaan HTTP melalui perintah curl di terminal:

cURL
curl https://ai.mongodb.com/v1/embeddings \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $VOYAGE_API_KEY" \
  -d '{
    "input": ["Sample text 1", "Sample text 2"],
    "model": "voyage-4",
    "input_type": "document"
  }'

Respons yang akan Anda dapatkan adalah objek JSON yang berisi embeddings dan penggunaan token:

{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "embedding": [-0.013131560757756233, 0.019828535616397858 /* ... */],
      "index": 0
    },
    {
      "object": "embedding",
      "embedding": [-0.0069352793507277966, 0.020878976210951805 /* ... */],
      "index": 1
    }
  ],
  "model": "voyage-4",
  "usage": {
    "total_tokens": 10
  }
}

Kunci API model dari Atlas berfungsi dengan ai.mongodb.com, kecuali kunci yang dibatasi pada suatu geografi, yang menggunakan endpoint geografi tersebut. Jika Anda memiliki kunci API dari platform Voyage AI, lihat Migrate your applications to use the Atlas Embedding and Reranking API dalam dokumentasi MongoDB.

Untuk referensi lengkap permintaan dan respons, lihat Create text embeddings dalam dokumentasi Atlas Embedding and Reranking API.

AWS Marketplace

Model Voyage AI juga tersedia di AWS Marketplace melalui profil penjual MongoDB. Untuk petunjuknya, lihat Deploy Voyage AI models using AWS Marketplace dalam dokumentasi MongoDB.

Contoh quickstart

Contoh singkat berikut menunjukkan cara menggunakan embeddings.

Misalkan Anda memiliki korpus kecil berisi enam dokumen untuk di-retrieve

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.",
]

Pertama, gunakan Voyage AI untuk mengonversi setiap dokumen menjadi vektor embedding.

import voyageai

vo = voyageai.Client()

# Buat embedding untuk dokumen
doc_embds = vo.embed(documents, model="voyage-4", input_type="document").embeddings

Embeddings memungkinkan Anda melakukan pencarian semantik / retrieval di ruang vektor. Diberikan sebuah contoh query,

query = "When is Apple's conference call scheduled?"

Selanjutnya, konversikan query tersebut menjadi embedding dan lakukan pencarian nearest neighbor untuk menemukan dokumen yang paling relevan berdasarkan jarak di ruang embedding.

import numpy as np

# Buat embedding untuk kueri
query_embd = vo.embed([query], model="voyage-4", input_type="query").embeddings[0]

# Hitung kemiripan
# Embedding Voyage AI dinormalisasi ke panjang 1, sehingga dot-product
# dan cosine similarity bernilai sama.
similarities = np.dot(doc_embds, query_embd)

retrieved_id = np.argmax(similarities)
print(documents[retrieved_id])

Perhatikan bahwa input_type="document" dan input_type="query" digunakan masing-masing untuk meng-embed dokumen dan query. Untuk informasi lebih lanjut tentang input_type, lihat Kapan dan bagaimana saya sebaiknya menggunakan parameter input_type? di FAQ.

Outputnya adalah dokumen kelima, yang memang paling relevan dengan query tersebut:

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 kumpulan resep terperinci tentang cara melakukan RAG dengan embeddings, termasuk database vektor, lihat resep RAG.

FAQ

Harga

Untuk detail harga terbaru, lihat Model pricing dalam dokumentasi MongoDB.

Was this page helpful?