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.
- Eğitim: Doküman arama
- 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.
- Eğitim: Metin sınıflandırıcıyı eğitme
- 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.
- Eğiticiler: Kümeleme modelini eğitme, Veri anormalliklerini algılama
- 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.
- Eğiticiler: Vektör yerleştirmelerle çalışma, Anlamsal alma
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?
- Yerleştirmeler hakkında daha fazla bilgi için Dale Markowitz'in Google Cloud blogundaki yayınını ziyaret edin.
- Geliştirmeye hazırsanız Python, Go, Node.js ve Dart (Flutter) için hızlı başlangıç kılavuzlarında çalıştırılabilir eksiksiz kod bulabilirsiniz.