Layanan embedding di Gemini API menghasilkan embedding yang canggih untuk kata, frasa, dan kalimat. Embeddings yang dihasilkan kemudian dapat digunakan untuk tugas natural language processing (NLP), seperti penelusuran semantik, teks klasifikasi dan pengelompokan.
Halaman ini menjelaskan secara singkat penyematan dan menyoroti beberapa kasus penggunaan utama untuk untuk membantu Anda memulai.
Apa yang dimaksud dengan embedding?
Embedding teks merupakan teknik natural language processing (NLP) yang mengubah menjadi koordinat numerik (disebut vektor) yang dapat dipetakan dalam ruang dimensi n. Pendekatan ini memungkinkan Anda memperlakukan potongan teks sebagai bit data relasional, yang kemudian dapat kita latih modelnya.
Embeddings menangkap konteks dan makna semantik yang menghasilkan teks dengan makna serupa yang memiliki embedding yang lebih dekat. Misalnya, kalimat "Saya mengambil ke dokter hewan" dan "Saya membawa kucing saya ke dokter hewan" memiliki embedding yang berdekatan satu sama lain di ruang vektor karena keduanya menggambarkan konteks tambahan.
Anda dapat menggunakan {i>embedding<i} untuk membandingkan teks yang berbeda dan memahami bagaimana teks tersebut berhubungan. Misalnya, jika embeddings dari teks "cat" dan "dog" dekat bersama-sama Anda dapat menyimpulkan bahwa kata-kata ini memiliki arti atau konteks yang serupa atau keduanya. Kemampuan ini memungkinkan berbagai kasus penggunaan yang dijelaskan di bagian berikutnya.
Kasus penggunaan
Embedding teks digunakan dalam berbagai kasus penggunaan NLP, seperti:
- Pengambilan informasi: Anda dapat menggunakan embedding untuk mengambil informasi secara semantik
teks serupa yang diberikan sepotong teks input. Berbagai aplikasi dapat
didukung oleh sistem pengambilan
informasi seperti penelusuran semantik,
menjawab pertanyaan, atau perangkuman.
- Tutorial: Penelusuran dokumen
- Klasifikasi: Anda dapat melatih model menggunakan embeddings untuk mengklasifikasikan
dokumen ke dalam kategori. Misalnya, jika Anda ingin mengklasifikasikan
komentar sebagai negatif atau positif, Anda dapat
menggunakan layanan embeddings untuk mendapatkan
representasi vektor dari setiap komentar untuk melatih pengklasifikasi.
- Tutorial: Melatih teks pengklasifikasi
- Pengelompokan: Membandingkan vektor teks dapat menunjukkan seberapa mirip atau berbedanya
mereka. Fitur ini dapat digunakan untuk melatih model pengelompokan yang mengelompokkan
teks atau dokumen yang sama dan untuk
mendeteksi anomali dalam data Anda.
- Tutorial: Melatih pengelompokan model, Deteksi data anomali
- Database vektor: Anda dapat menyimpan embedding yang dihasilkan dalam sebuah vektor database untuk meningkatkan akurasi dan efisiensi aplikasi NLP Anda. Lihat tutorial berikut untuk mempelajari cara menggunakan {i>database<i} vektor untuk menerjemahkan prompt teks menjadi vektor numerik.
Model embedding Gemini
Gemini API menawarkan dua model yang menghasilkan embedding teks: Teks Embedding dan Embedding. Embedding Teks adalah versi terbaru dari model Embedding yang menawarkan ukuran embedding elastis dimensi 768. Embedding elastis menghasilkan dimensi output yang lebih kecil, dapat menghemat biaya komputasi dan penyimpanan, dengan penurunan performa yang signifikan.
Gunakan Embedding Teks untuk proyek atau aplikasi baru. Permohonan Anda harus hanya gunakan model Penyematan jika Anda tidak dapat memigrasikannya untuk menggunakan Embedding Teks.
Membuat penyematan dengan Gemini API
Gunakan metode embedContent
untuk menghasilkan embedding teks:
Python
result = genai.embed_content(
model="models/text-embedding-004",
content="What is the meaning of life?",
task_type="retrieval_document",
title="Embedding of single string")
# 1 input > 1 vector output
print(str(result['embedding'])[:50], '... TRIMMED]')
Kunjungi memulai tutorial untuk contoh lengkap yang dapat dijalankan.
Go
ctx := context.Background()
// Access your API key as an environment variable (see our Getting Started tutorial)
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("API_KEY")))
if err != nil {
log.Fatal(err)
}
defer client.Close()
// For embeddings, use the Text Embeddings model
em := client.EmbeddingModel("text-embedding-004")
res, err := em.EmbedContent(ctx, genai.Text("The quick brown fox jumps over the lazy dog."))
if err != nil {
panic(err)
}
fmt.Println(res.Embedding.Values)
Kunjungi memulai tutorial untuk contoh lengkap yang dapat dijalankan.
Node.js
const { GoogleGenerativeAI } = require("@google/generative-ai");
// Access your API key as an environment variable (see our Getting Started tutorial)
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
async function run() {
// For embeddings, use the Text Embeddings model
const model = genAI.getGenerativeModel({ model: "text-embedding-004"});
const text = "The quick brown fox jumps over the lazy dog."
const result = await model.embedContent(text);
const embedding = result.embedding;
console.log(embedding.values);
}
run();
Kunjungi memulai tutorial untuk contoh lengkap yang dapat dijalankan.
Dart (Flutter)
final model = GenerativeModel(model: 'text-embedding-004', apiKey: apiKey);
final content = Content.text('The quick brown fox jumps over the lazy dog.');
final result = await model.embedContent(content);
print(result.embedding.values);
Kunjungi memulai tutorial untuk contoh lengkap yang dapat dijalankan.
curl
curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:embedContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/text-embedding-004",
"content": {
"parts":[{
"text": "Hello world"}]}, }' 2> /dev/null | head
Buka Panduan Memulai Penyematan dengan RESTbook kami di GitHub untuk contoh lengkap yang dapat dijalankan.
Langkah berikutnya
- Jika Anda ingin mempelajari lebih lanjut tentang embedding, baca postingan Dale Markowitz di kursus bahasa Google Cloud blog untuk informasi selengkapnya.
- Jika siap untuk memulai pengembangan, Anda dapat menemukan kode lengkap yang dapat dijalankan di panduan memulai untuk Python, Mulai, Node.js, dan Dart (Flutter).