Gemini API'deki yerleştirmeler

Gemini API'deki yerleştirme hizmeti; kelimeler, ifadeler ve cümleler için son teknoloji ürünü yerleştirmeler oluşturur. Ortaya çıkan yerleştirmeler daha sonra anlamsal arama, metin sınıflandırma ve kümeleme gibi doğal dil işleme (NLP) görevleri için kullanılabilir.

Bu sayfada yerleştirmeler kısaca açıklanmaktadır ve çalışmaya başlamanıza yardımcı olmak için yerleştirme hizmetinin bazı önemli kullanım alanları vurgulanır.

Yerleştirme nedir?

Metin yerleştirme, metni n boyutlu bir alanda çizilebilecek sayısal koordinatlara (vektörler) dönüştüren bir doğal dil işleme (NLP) tekniğidir. Bu yaklaşım, metin parçalarını ilişkisel veri parçaları olarak ele almanıza olanak tanır. Böylece, modelleri eğitebiliriz.

Yerleştirmeler, anlam ve bağlamı yakalayarak benzer anlamlara sahip metinlerin daha yakın yerleştirmelere sahip olmasını sağlar. Örneğin, "Köpeğimi veterinere götürdüm" ve "Kedimi veterinere götürdüm" cümleleri, her ikisi de benzer bir bağlamı açıkladığı için vektör alanında birbirine yakın yerleştirmeler olacaktır.

Farklı metinleri karşılaştırmak ve bunların arasındaki ilişkiyi anlamak için yerleştirmeleri kullanabilirsiniz. Örneğin, "kedi" ve "köpek" kelimelerinin yerleştirilmiş öğeleri birbirine yakınsa bu kelimelerin anlam veya bağlam olarak ya da her ikisinde de benzer olduğu çıkarımında bulunabilirsiniz. Bu özellik, sonraki bölümde açıklanan çeşitli kullanım alanlarına olanak tanır.

Kullanım alanları

Metin yerleştirilmiş öğeler, aşağıdakiler gibi çeşitli NLP kullanım alanlarında kullanılır:

  • Bilgi alma: Bir giriş metni parçası verildiğinde anlam açısından benzer olan metinleri almak için yerleştirmeleri kullanabilirsiniz. Anlamsal arama, soru cevaplama veya özetleme gibi bir bilgi getirme sistemi çeşitli uygulamaları destekleyebilir.
  • Sınıflandırma: Belgeleri kategorilere göre sınıflandırmak için yerleştirmeleri kullanarak bir model eğitebilirsiniz. Örneğin, kullanıcı yorumlarını negatif veya pozitif olarak sınıflandırmak istiyorsanız yerleştirmeler hizmetini kullanarak sınıflandırıcıyı eğitmek amacıyla her yorumun vektör gösterimini alabilirsiniz.
  • Kümeleme: Metin vektörlerinin karşılaştırılması, ne kadar benzer veya farklı olduklarını gösterebilir. Bu özellik, benzer metinleri veya belgeleri birlikte gruplandıran bir kümeleme modelini eğitmek ve verilerinizdeki anormallikleri tespit etmek için kullanılabilir.
  • Vektör veritabanı: Oluşturulan yerleştirmeleri, NLP uygulamanızın doğruluğunu ve verimliliğini artırmak için bir vektör veritabanında depolayabilirsiniz. Metin istemlerini sayısal vektörlere çevirmek üzere vektör veritabanını nasıl kullanacağınızı öğrenmek için aşağıdaki eğiticiye bakın.

Gemini yerleştirme modelleri

Gemini API, metin yerleştirmeleri oluşturan iki model sunar: Metin Yerleştirmeler ve Yerleştirmeler. Metin Yerleştirmeler, Yerleştirme modelinin 768 boyutunun altında elastik yerleştirme boyutları sunan güncellenmiş bir sürümüdür. Esnek yerleştirmeler, daha küçük çıkış boyutları oluşturur ve küçük bir performans kaybıyla işlem ve depolama maliyetlerinden tasarruf sağlayabilir.

Yeni projeler veya uygulamalar için metin yerleştirme özelliğinden yararlanın. Uygulamanız, yalnızca Metin Yerleştirme modelini kullanmak üzere taşıyamıyorsanız Yerleştirme modelini kullanmalıdır.

Gemini API ile yerleştirme oluşturma

Metin yerleştirilmiş öğeler oluşturmak için embedContent yöntemini kullanın:

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]')

Çalıştırılabilir örnek için başlangıç eğiticimizi ziyaret edin.

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)

Çalıştırılabilir öğenin tamamı için başlangıç eğiticimizi ziyaret edin.

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();

Çalıştırılabilir örnek için başlangıç eğiticimizi ziyaret edin.

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);

Çalıştırılabilir örnek için başlangıç eğiticimizi ziyaret edin.

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

Çalıştırılabilir örnek için GitHub'daki REST ile REST tarif defterini yerleştirme Hızlı Başlangıç Kılavuzu'nu ziyaret edin.

Sırada ne var?