Gemini API, kelimeler, kelime öbekleri, kod ve cümleler için yerleştirmeler oluşturan çeşitli yerleştirme modellerini destekler. Elde edilen bu yerleştirmeler daha sonra birçok farklı görev için kullanılabilir. Örneğin, semantik arama, metin sınıflandırma ve küme oluşturma.
Yerleşim nedir?
Yerleşimler, girişler arasındaki ilişkileri yakalayan metnin (veya diğer medya biçimlerinin) sayısal temsilleridir. Metin yerleştirme, metni vektörler adı verilen kayan noktalı sayı dizilerine dönüştürerek çalışır. Bu vektörler, metnin anlamını yakalayacak şekilde tasarlanmıştır. Yerleştirme dizisinin uzunluğuna vektörün boyut sayısı denir. Bir metin parçası, yüzlerce boyut içeren bir vektörle temsil edilebilir.
Yerleşimler, anlamsal anlamı ve bağlamı yakalar. Bu da benzer anlamlara sahip metinlerin "daha yakın" yerleşimlere sahip olmasına neden olur. Örneğin, "Köpeğimi veterinere götürdüm" ve "Kedimi veterinere götürdüm" cümlelerinin vektör uzayında birbirine yakın yerleştirmeleri olur.
Farklı metinleri karşılaştırmak ve bunların nasıl ilişkili olduğunu anlamak için yerleştirmeleri kullanabilirsiniz. Örneğin, "kedi" ve "köpek" metinlerinin yerleştirilmeleri birbirine yakınsa bu kelimelerin anlam, bağlam veya her ikisi açısından benzer olduğunu anlayabilirsiniz. Bu sayede çeşitli yaygın yapay zeka kullanım alanları oluşturulabilir.
Yerleştirilmiş öğeler oluşturma
Metin gömmeleri oluşturmak için embedContent
yöntemini kullanın:
from google import genai
client = genai.Client(api_key="GEMINI_API_KEY")
result = client.models.embed_content(
model="gemini-embedding-exp-03-07",
contents="What is the meaning of life?")
print(result.embeddings)
import { GoogleGenAI } from "@google/genai";
async function main() {
const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });
const response = await ai.models.embedContent({
model: 'gemini-embedding-exp-03-07',
contents: 'What is the meaning of life?',
});
console.log(response.embeddings);
}
main();
ctx := context.Background()
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("GEMINI_API_KEY")))
if err != nil {
log.Fatal(err)
}
defer client.Close()
em := client.EmbeddingModel("gemini-embedding-exp-03-07")
res, err := em.EmbedContent(ctx, genai.Text("What is the meaning of life?"))
if err != nil {
panic(err)
}
fmt.Println(res.Embedding.Values)
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-exp-03-07:embedContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/gemini-embedding-exp-03-07",
"content": {
"parts":[{
"text": "What is the meaning of life?"}]}
}'
Ayrıca, bunları dize listesi olarak göndererek aynı anda birden fazla parça için yerleştirme oluşturabilirsiniz.
Görev türleri
Almayla Artırılmış Üretim (RAG) sistemleri oluştururken benzerlik araması yapmak için metin yerleştirmelerini kullanmak yaygın bir tasarımdır. Bazı durumlarda, sorular ve yanıtları anlam açısından benzer olmadığından bu durum kalitenin düşmesine neden olabilir. Örneğin, "Gökyüzü neden mavi?" gibi bir soru ve "Güneş ışığının dağılması mavi renge neden olur." gibi bir yanıt, ifade olarak birbirinden oldukça farklı anlamlara sahiptir. Bu da bir RAG sisteminin bu iki ifade arasındaki ilişkiyi otomatik olarak tanımayacağı anlamına gelir.
Görev türleri, belirli görevler için optimize edilmiş yerleştirmeler oluşturmanıza olanak tanır. Böylece zamandan ve maliyetten tasarruf eder, performansı iyileştirirsiniz.
from google import genai
from google.genai import types
client = genai.Client(api_key="GEMINI_API_KEY")
result = client.models.embed_content(
model="gemini-embedding-exp-03-07",
contents="What is the meaning of life?",
config=types.EmbedContentConfig(task_type="SEMANTIC_SIMILARITY")
)
print(result.embeddings)
import { GoogleGenAI } from "@google/genai";
async function main() {
const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });
const response = await ai.models.embedContent({
model: 'gemini-embedding-exp-03-07',
contents: 'What is the meaning of life?',
config: {
taskType: "SEMANTIC_SIMILARITY",
}
});
console.log(response.embeddings);
}
main();
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-exp-03-07:embedContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/gemini-embedding-exp-03-07",
"content": {
"parts":[{
"text": "What is the meaning of life?"}]},
"taskType": "SEMANTIC_SIMILARITY"
}'
Desteklenen görev türleri
Görev türü | Açıklama |
---|---|
SEMANTIC_SIMILARITY |
Metin benzerliğini değerlendirmek için optimize edilmiş yerleştirmeler oluşturmak amacıyla kullanılır. |
CLASSIFICATION |
Metinleri önceden ayarlanmış etiketlere göre sınıflandırmak için optimize edilmiş yerleştirmeler oluşturmak amacıyla kullanılır. |
CLUSTERING |
Metinleri benzerliklerine göre kümelemek için optimize edilmiş gömme noktaları oluşturmak amacıyla kullanılır. |
RETRIEVAL_DOCUMENT , RETRIEVAL_QUERY , QUESTION_ANSWERING ve FACT_VERIFICATION |
Doküman arama veya bilgi alma için optimize edilmiş yerleştirmeler oluşturmak amacıyla kullanılır. |
CODE_RETRIEVAL_QUERY |
Doğal dil sorgusuna göre bir kod bloğu almak için kullanılır (ör. bir diziyi sıralama veya bağlı listeyi tersine çevirme). Kod bloklarının yerleştirmeleri RETRIEVAL_DOCUMENT kullanılarak hesaplanır. |
Kullanım alanları
Metin yerleştirmeleri, aşağıdakiler gibi çeşitli yaygın yapay zeka kullanım alanlarında kullanılır:
Bilgi alma: Bir giriş metni verildiğinde anlamsal olarak benzer metin almak için yerleştirmeleri kullanabilirsiniz.
Gruplandırma: Yerleşim gruplarını karşılaştırmak, gizli trendleri belirlemenize yardımcı olabilir.
Vektör veritabanı: Farklı yerleştirme kullanım alanlarını üretime alırken yerleştirmeleri bir vektör veritabanında depolamak yaygın bir uygulamadır.
Sınıflandırma: Belgeleri kategorilere ayırmak için yerleştirmeleri kullanarak bir model eğitebilirsiniz.
Modelleri yerleştirme
Gemini API, metin yerleştirmeleri oluşturan üç model sunar: