Embedding di Gemini API

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 "Aku membawa kucingku 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.
  • 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 embedding untuk mendapatkan representasi vektor dari setiap komentar untuk melatih 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.
  • 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