1. Gömmelerin Tanıtımı
1.1. Gömmeler Nedir
Gömmeler, makine öğrenimi alanında özellikle doğal dil işleme (NLP) problemlerini çözmede metin verilerini sayısal vektörlere dönüştürmek için kullanılan bir tekniktir. İnsan dilinde, kelimelerin ve ifadelerin anlamı bağlam ve kullanımlarıyla belirlenir. Gömmelerin amacı, bu dil birimlerinin anlamsal yönlerini yakalamak ve bilgisayarların onları anlamasını ve işlemesini sağlamaktır.
Gömmelerin temel fikri, anlamı benzer kelimeleri matematiksel bir uzayda yakın noktalara atamaktır, kelimeleri yüksek boyutlu bir uzayda noktalar olarak temsil etmek. Bu şekilde, yakın anlamlı kelimeler (örneğin, "kral" ve "kraliçe") uzayda birbirlerine yakın olacaktır. Gömmeler genellikle kayan noktalı dizilerden oluşur, bu sayede "köpek" ve "köpeksi" gibi çok farklı metin parçaları bile benzer gömme temsillerine sahip olabilir.
İpucu: Bir uygulama geliştirici olarak, benzer anlamlı iki metin cümlesi için gömme vektör benzerliğinin yüksek olduğunu basitçe anlayabilirsiniz.
1.2. Gömme Uygulamaları
Gömmeler çeşitli senaryolarda yaygın olarak kullanılır, işte bazı temel kullanım alanları:
- Arama: Gömme özelliklerini kullanarak arama sonuçlarını sorgu metnine olan ilişkisi üzerinden sıralamak.
- Kümeleme: Gömme, anlamsal olarak benzer metin parçalarını tanımlamak ve kategorilere ayırmak için yardımcı olabilir.
- Öneri Sistemleri: Benzerlik temelinde öğeleri önermek, bilinenlere benzer diğer öğeleri keşfetmek ve önermek için yardımcı olabilir.
- Anomalı Tespiti: Gömme, ana veri kümesinden önemli ölçüde farklı veri noktalarını tanımlamak için kullanılabilir.
- Çeşitlilik Ölçümü: Gömme aynı zamanda farklı metinler arasındaki benzerlik dağılımını analiz etmek için kullanılabilir.
- Sınıflandırma: Metni bilinen etiket gömme setleriyle karşılaştırarak en benzer kategoriye sınıflandırmak.
2. OpenAI Gömmelerinin Tanıtımı
2.1. OpenAI Gömme Modellerinin Genel Bakışı
OpenAI, text-embedding-3-small
ve text-embedding-3-large
gibi üçüncü nesil gömme modelleri sunmaktadır. Bu modeller, OpenAI'nın benzersiz derin öğrenme teknolojisi üzerine inşa edilmiş olup yüksek düzeyde çokdilli performans sağlamayı ve aynı zamanda maliyetleri azaltmayı hedeflemektedir.
Bu modeller gömbe işleme konusunda benzersiz özelliklere sahiptir. Örneğin, text-embedding-3-small
1536-boyutlu gömme vektörleri sunarken, text-embedding-3-large
daha karmaşık metin özelliklerini kapsamak için 3072-boyutlu gömme vektörleri sağlar. Parametreleri ayarlayarak, gömbe boyutluluğu uygulama senaryolarının belirli ihtiyaçlarını karşılamak üzere kontrol edilebilir.
2.2. Model Seçimi ve Kullanımı
Uygun gömme modelini seçmek, uygulamanın belirli gereksinimlerine bağlıdır. Farklı uygulama senaryolarında seçimi yapmak için aşağıdaki yöntemler kullanılabilir:
-
Performans odaklı senaryolarda: Daha ayrıntılı anlamsal bilgiyi yakalamaya ihtiyaç duyduğunuz durumlarda, örneğin detaylı öneri sistemleri veya yüksek hassasiyetli metin sınıflandırma gibi durumlarda genellikle
text-embedding-3-large
kullanmanız önerilir. Daha küçük modellerden daha maliyetli olmasına rağmen, metin özelliklerinin daha zengin bir temsilini sağlayabilir. -
Maliyet duyarlı uygulamalarda: Büyük miktarda veriyi işlemeyi gerektiren ancak özellikle yüksek hassasiyet gerektirmeyen uygulamalar için, örneğin başlangıç veri keşfi veya hızlı prototipleme gibi durumlarda,
text-embedding-3-small
daha ekonomik bir seçenektir. Maliyetleri önemli ölçüde azaltırken, orantılı yüksek performansı korur. -
Çokdilli ortamlar: Bu gömbe modeller çokdilli performansa sahip olduğundan, küresel uygulamalar için ideal bir seçenek olabilir.
Doğru gömbe modelini seçmek, belirli gereksinimlere, veri karmaşıklığına ve performans ile maliyet arasındaki denge noktasına bağlı olacaktır.
3. Gömbe Nasıl Kullanılır
3.1 Embeddings API'ını Çağırmak İçin curl
Kullanımı
curl
, HTTP isteklerini göndermek için yaygın olarak kullanılan bir komut satırı aracıdır. Aşağıdaki örnek, metnin gömme temsilini almak için curl
'ün nasıl kullanılacağını göstermektedir:
curl https://api.openai.com/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"input": "Machine learning is a branch of artificial intelligence.",
"model": "text-embedding-3-small"
}'
Yukarıdaki komutta, $OPENAI_API_KEY
değişkeni kullanıcının OpenAI API anahtarını içerir ve gerçek kullanım için geçerli bir anahtarla değiştirilmelidir.
Bu komutu çalıştırdıktan sonra, OpenAI Embeddings API, metin gömme temsilini içeren bir yanıt döndürecektir. Aşağıda bir API çağrısı sonucunun örneği bulunmaktadır:
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": [ // İşte özellik vektörü
-0.006929283495992422,
-0.005336422007530928,
... // Görüntülemek için geri kalan sayılar çıkarıldı
-4.547132266452536e-05,
-0.024047505110502243
]
}
],
"model": "text-embedding-3-small",
"usage": {
"prompt_tokens": 5,
"total_tokens": 5
}
}
3.2 Embeddings API'ını Çağırmak İçin Python Client Kullanımı
curl
'ü doğrudan komut satırından API'yı çağırmak yerine Python istemcisini kullanabilirsiniz. Bunun için öncelikle resmi openai
kütüphanesini kurmanız gerekmektedir. Aşağıda Python kullanarak metin gömbe temsillerini nasıl alacağınızın bir örneği bulunmaktadır:
import openai
openai.api_key = 'SİZİN_OPENAI_API_KEY' # OpenAI API anahtarınızla değiştirin
response = openai.Embedding.create(
input="Yapay zeka dünyayı değiştiriyor.",
model="text-embedding-3-small"
)
gömme_vektörü = response['data'][0]['embedding']
print(gömme_vektörü)
Bu Python betiğini çalıştırarak, curl
kullandığınızda benzer bir gömbe vektörü elde edersiniz. Bu vektör, girdi metnin gömbe uzayındaki sayısal temsilini temsil eden bir ondalık sayı listesidir.
Çağrı sonucu şu şekildedir:
[-0.0032198824, 0.0022555287, ..., 0.0015886585, -0.0021505365]
3.2 Gömbe Vektörleriyle Çalışma
OpenAI, sadece Gömbe metin vektörüleme hesaplama modelini sağlar. Gömbe'leri kullanarak metin benzerliği araması gibi işlevleri uygulamak istiyorsanız, Qdrant, Chroma ve Milvus gibi vektör veritabanları hakkında bilgi edinmelisiniz.
Lütfen aşağıdaki vektör veritabanı öğreticilerine başvurun: