OpenAI API ile metin gömme oluşturmaya yönelik rehberimizi keşfedin. Metin sınıflandırma, bilgi getirme ve anlamsal benzerlik tespitindeki uygulamalarını öğrenin.
Metin gömeleri, doğal dil işleme (NLP) alanında vazgeçilmez bir araçtır. Her bir kelime veya ifade, gerçek sayılardan oluşan yoğun bir vektör olarak temsil edilir.
Bu gömelerin en önemli avantajı, kelimeler veya ifadeler arasındaki anlamsal anlamları ve ilişkileri yakalayabilmeleri; bu sayede makinelerin insan dilini verimli biçimde anlamasını ve işlemesini sağlamalarıdır.
Metin gömeleri, metin sınıflandırma, bilgi getirme ve anlamsal benzerlik tespiti gibi senaryolarda kritik öneme sahiptir.
Yapay zekâ alanına kayda değer katkılarıyla bilinen OpenAI, şu anda metin gömeleri oluşturmak için Ada V2 modelinin kullanılmasını önermektedir. GPT serisinden türetilen bu model, metinde yer alan bağlamsal anlamı ve çağrışımları daha da iyi yakalayacak şekilde eğitilmiştir.
OpenAI API veya openai Python paketiyle henüz tanışık değilseniz, devam etmeden önce Python'da OpenAI API üzerinden GPT-3.5 ve GPT-4 Kullanımı yazısını okumanız önerilir. Bu rehber, hesapları kurmanıza ve API kullanımının faydalarını anlamanıza yardımcı olacaktır.
Bu eğitim aynı zamanda benzer örnekleri bir araya getirmek için kullanılan bir makine öğrenimi tekniği olan kümelemeyi de içerir. Özellikle k-Means kümelemeye aşina değilseniz, scikit-learn ile Python'da k-Means Kümelemeye Giriş yazısını okumanızı düşünebilirsiniz.
Metin Gömelerini Ne İçin Kullanabilirsiniz?
Metin gömeleri, aşağıdakilerle sınırlı olmamak üzere birçok kullanım senaryosuna uygulanabilir:
Metin sınıflandırma. Metin gömeleri, duygu analizi veya konu tespiti görevleri için isabetli modeller oluşturmayı kolaylaştırır.
Bilgi getirme. Bir arama motorunda bulabildiklerimize benzer şekilde, belirli bir sorguyla ilgili bilgileri getirmek için kullanılabilirler.
Metin üretimi. Gömeler, daha tutarlı ve bağlamsal olarak uygun metinler üretmek için kullanılır.
Makine çevirisi. Metin gömeleri diller arasında anlamsal anlamları yakalayarak makine çevirisinin kalitesini iyileştirebilir.
Kurulum
Metin gömeleriyle çalışmak için birkaç Python paketi gereklidir, aşağıda özetlenmiştir:
os: İşletim sistemiyle etkileşim için yerleşik bir Python kütüphanesi.
openai: OpenAI API ile etkileşim kurmaya yarayan Python istemcisi.
scipy.spatial.distance: Farklı veri noktaları arasındaki mesafeyi hesaplamak için işlevler sağlar.
sklean.cluster.KMeans: KMeans kümelemeyi hesaplamak için kullanılır.
umap.UMAP: Yüksek boyutlu verilerin boyutunu düşürmek için kullanılan bir teknik.
Kullanmadan önce, aşağıdaki komutla openai, scipy, plotly sklearn ve umap kurulu olduğundan emin olun. Tüm kodlara bu DataLab çalışma kitabından erişebilirsiniz.
Önceki komut başarıyla çalıştıktan sonra, tüm kütüphaneler aşağıdaki gibi içe aktarılabilir:
import os
import openai
from scipy.spatial import distance
import plotly.express as px
from sklearn.cluster import KMeans
from umap import UMAPAltyapı:
Şimdi OpenAI API anahtarını aşağıdaki gibi ayarlayabiliriz:
Not: Kendi API ANAHTARINIZI ayarlamanız gerekir. Kaynak koddaki anahtar kullanılamaz ve yalnızca bireysel kullanım içindir.
API Üzerinden GPT'yi Çağırma için Kod Deseni
Aşağıdaki yardımcı işlev, OpenAI API kullanarak bir metin satırını gömmek için kullanılabilir. Kodda, gömeleri oluşturmak için mevcut ada sürüm 2'yi kullanıyoruz.
defget_embedding(text_to_embed):# Embed a line of text
response = openai.Embedding.create(
model="text-embedding-ada-002",input=[text_to_embed])# Extract the AI output embedding as a list of floats
embedding = response["data"][0]["embedding"]return embeddingAltyapı:
Veri Kümesi Hakkında
Bu bölümde, Kaggle'da ücretsiz olarak sunulan Amazon müzik aleti yorum verilerini ele alacağız. Verileri ayrıca Github hesabımdan aşağıdaki gibi indirebilirsiniz:
import pandas as pd
data_URL ="https://raw.githubusercontent.com/keitazoumana/Experimentation-Data/main/Musical_instruments_reviews.csv"
review_df = pd.read_csv(data_URL)
review_df.head()Altyapı:
Tüm sütunlar arasından yalnızca reviewText sütunuyla ilgileniyoruz.
Veri kümesinde çok sayıda yorum var. Maliyet optimizasyonu amacıyla yalnızca rastgele seçilmiş 100 satır kullanacağız.
Şimdi, lambda ifadesini kullanarak önceki işlevi uygulayıp veri kümesindeki her satır için gömeleri oluşturabiliriz:
review_df = review_df.sample(100)
review_df["embedding"]= review_df["reviewText"].astype(str).apply(get_embedding)# Make the index start from 0
review_df.reset_index(drop=True)
review_df.head(10)Altyapı:
İlk 10 yorum ve gömeler
Metin Benzerliğini Anlama
Anlamsal benzerlik kavramını göstermek için, benzer duygular içerebilecek iki yorumu ele alalım:
“Bu ürün harika!”
“Gerçekten beklentilerimi aştı!”
scipy.spatial.distance içindeki pdist() fonksiyonunu kullanarak gömeleri arasındaki Öklidyen mesafeyi hesaplayabiliriz.
Öklidyen mesafe, iki gömme arasındaki kare farkların toplamının kareköküne karşılık gelir ve aşağıda bir görselleştirmesi verilmiştir:
Bu yorumlar gerçekten benzerse, mesafe nispeten küçük olmalıdır.
Şimdi de iki farklı yorumu düşünelim:
“Bu ürün harika!"
"Bu üründen memnun kalmadım."
Bu yorumların gömeleri arasındaki mesafe, benzer yorumlar arasındaki mesafeden belirgin şekilde daha büyük olacaktır.
Vaka Çalışması: Kümeleme Analizi için Metin Gömelerini Kullanın
Oluşturduğumuz metin gömeleri, birbirlerine daha çok benzeyen müzik aletlerini birlikte gruplayacak şekilde kümeleme analizi yapmak için kullanılabilir.
K-Means, DBSCAN, hiyerarşik kümeleme ve Gauss Karışım Modelleri gibi birden fazla kümeleme algoritması mevcuttur. Bu özel kullanım durumunda KMeans kümelemeyi kullanacağız. Ancak Python'da Hiyerarşik Kümelemeye Giriş yazımız, hiyerarşik kümelemenin ayrıntılarını ve Python'daki uygulamasını anlamak için iyi bir çerçeve sunar.
Metin verisini kümelendir
K-ortalama kümeleme, kullanılacak küme sayısının önceden tanımlanmasını gerektirir ve bu sayıyı aşağıdaki gibi n_clusters parametresiyle 3 olarak ayarlayacağız:
İnsanlar tipik olarak en fazla üç boyutu görselleştirebilir. Bu bölüm, boyut indirgeme yapmak için nispeten hızlı ve ölçeklenebilir bir araç olan UMAP'i kullanacaktır.
Önce UMAP sınıfından bir örnek tanımlar ve fit_transform fonksiyonunu gömelere uygularız; bu da çizdirilebilecek iki boyutlu bir yorum gömme temsilini üretir.
Son olarak, iki boyutlu gömelerin saçılım grafiğini oluşturun. x ve y koordinatları sırasıyla embeddings_2d[: , 0] ve embeddings_2d[: , 1] değerlerinden alınır
Genel olarak üç ana küme vardır ve her biri farklı renktedir. Şekildeki her bir yorumun rengi, K-Means modelinin atadığı küme etiketine/numarasına göre belirlenir. Ayrıca her bir noktanın konumu, belirli bir yorumun diğerlerine ne kadar benzer olduğuna dair görsel bir temsil sunar.
Bir Sonraki Seviyeye Taşıyın
Metin gömeleri ve OpenAI API konusundaki bilginizi derinleştirmek için DataCamp'ten şu materyallere göz atın: OpenAI API ve Python ile GPT-3'ü İnce Ayarlama ve Python'da OpenAI API Hızlı Başvuru. Bu kaynaklar, GPT-3'ün ince ayarla tam potansiyelini açığa çıkarmanıza yardımcı olur ve gelişmiş sinir ağı modelini belirli kullanım senaryonuza uyarlamak için OpenAI API ve Python'un nasıl kullanılacağını gösterir.
Bilgisini paylaşmaktan ve başkalarına katkı sunmaktan keyif alan, çok yönlü bir veri bilimci olan Zoumana, YouTube’da içerik üretiyor ve Medium’da önde gelen teknoloji yazarları arasında yer alıyor. Konuşmaktan, kod yazmaktan ve öğretmekten büyük zevk alıyor. Zoumana’nın iki yüksek lisans derecesi bulunuyor: İlki Fransa, Paris’te Makine Öğrenmesi odaklı Bilgisayar Bilimleri; ikincisi ise ABD’de Texas Tech University’den Veri Bilimi. Kariyerine Fransa’da Groupe OPEN’da Yazılım Geliştirici olarak başladı; ardından IBM’de Makine Öğrenmesi Danışmanı olarak çalıştı ve sigorta şirketleri için uçtan uca yapay zeka çözümleri geliştirdi. Paris ve Montreal merkezli ilk Sürdürülebilir YZ girişimi olan Axionable’a katıldı. Burada Veri Bilimci olarak görev yaptı ve çoğunlukla NLP kullanım örnekleri olmak üzere, Fransa, Montreal, Singapur ve İsviçre’den müşteriler için YZ ürünleri hayata geçirdi. Ayrıca zamanının %5’ini Araştırma ve Geliştirme’ye ayırdı. Hâlihazırda IFC – Dünya Bankası Grubu’nda Kıdemli Veri Bilimci olarak çalışmaktadır.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Metin gömeleri, doğal dil işleme (NLP) alanında vazgeçilmez bir araçtır. Her bir kelime veya ifade, gerçek sayılardan oluşan yoğun bir vektör olarak temsil edilir.
Bu gömelerin en önemli avantajı, kelimeler veya ifadeler arasındaki anlamsal anlamları ve ilişkileri yakalayabilmeleri; bu sayede makinelerin insan dilini verimli biçimde anlamasını ve işlemesini sağlamalarıdır.
Metin gömeleri, metin sınıflandırma, bilgi getirme ve anlamsal benzerlik tespiti gibi senaryolarda kritik öneme sahiptir.
Yapay zekâ alanına kayda değer katkılarıyla bilinen OpenAI, şu anda metin gömeleri oluşturmak için Ada V2 modelinin kullanılmasını önermektedir. GPT serisinden türetilen bu model, metinde yer alan bağlamsal anlamı ve çağrışımları daha da iyi yakalayacak şekilde eğitilmiştir.
OpenAI API veya openai Python paketiyle henüz tanışık değilseniz, devam etmeden önce Python'da OpenAI API üzerinden GPT-3.5 ve GPT-4 Kullanımı yazısını okumanız önerilir. Bu rehber, hesapları kurmanıza ve API kullanımının faydalarını anlamanıza yardımcı olacaktır.
Bu eğitim aynı zamanda benzer örnekleri bir araya getirmek için kullanılan bir makine öğrenimi tekniği olan kümelemeyi de içerir. Özellikle k-Means kümelemeye aşina değilseniz, scikit-learn ile Python'da k-Means Kümelemeye Giriş yazısını okumanızı düşünebilirsiniz.
Metin Gömelerini Ne İçin Kullanabilirsiniz?
Metin gömeleri, aşağıdakilerle sınırlı olmamak üzere birçok kullanım senaryosuna uygulanabilir:
Kurulum
Metin gömeleriyle çalışmak için birkaç Python paketi gereklidir, aşağıda özetlenmiştir:
Kullanmadan önce, aşağıdaki komutla
openai,scipy,plotly sklearnveumapkurulu olduğundan emin olun. Tüm kodlara bu DataLab çalışma kitabından erişebilirsiniz.Önceki komut başarıyla çalıştıktan sonra, tüm kütüphaneler aşağıdaki gibi içe aktarılabilir:
Şimdi OpenAI API anahtarını aşağıdaki gibi ayarlayabiliriz:
Not: Kendi API ANAHTARINIZI ayarlamanız gerekir. Kaynak koddaki anahtar kullanılamaz ve yalnızca bireysel kullanım içindir.
API Üzerinden GPT'yi Çağırma için Kod Deseni
Aşağıdaki yardımcı işlev, OpenAI API kullanarak bir metin satırını gömmek için kullanılabilir. Kodda, gömeleri oluşturmak için mevcut ada sürüm 2'yi kullanıyoruz.
Veri Kümesi Hakkında
Bu bölümde, Kaggle'da ücretsiz olarak sunulan Amazon müzik aleti yorum verilerini ele alacağız. Verileri ayrıca Github hesabımdan aşağıdaki gibi indirebilirsiniz:
Tüm sütunlar arasından yalnızca reviewText sütunuyla ilgileniyoruz.
Veri kümesinde çok sayıda yorum var. Maliyet optimizasyonu amacıyla yalnızca rastgele seçilmiş 100 satır kullanacağız.
Şimdi, lambda ifadesini kullanarak önceki işlevi uygulayıp veri kümesindeki her satır için gömeleri oluşturabiliriz:
İlk 10 yorum ve gömeler
Metin Benzerliğini Anlama
Anlamsal benzerlik kavramını göstermek için, benzer duygular içerebilecek iki yorumu ele alalım:
“Bu ürün harika!”
“Gerçekten beklentilerimi aştı!”
scipy.spatial.distanceiçindekipdist()fonksiyonunu kullanarak gömeleri arasındaki Öklidyen mesafeyi hesaplayabiliriz.Öklidyen mesafe, iki gömme arasındaki kare farkların toplamının kareköküne karşılık gelir ve aşağıda bir görselleştirmesi verilmiştir:
Öklidyen mesafenin görselleştirilmesi (kaynak)
Bu yorumlar gerçekten benzerse, mesafe nispeten küçük olmalıdır.
Şimdi de iki farklı yorumu düşünelim:
“Bu ürün harika!"
"Bu üründen memnun kalmadım."
Bu yorumların gömeleri arasındaki mesafe, benzer yorumlar arasındaki mesafeden belirgin şekilde daha büyük olacaktır.
Vaka Çalışması: Kümeleme Analizi için Metin Gömelerini Kullanın
Oluşturduğumuz metin gömeleri, birbirlerine daha çok benzeyen müzik aletlerini birlikte gruplayacak şekilde kümeleme analizi yapmak için kullanılabilir.
K-Means, DBSCAN, hiyerarşik kümeleme ve Gauss Karışım Modelleri gibi birden fazla kümeleme algoritması mevcuttur. Bu özel kullanım durumunda KMeans kümelemeyi kullanacağız. Ancak Python'da Hiyerarşik Kümelemeye Giriş yazımız, hiyerarşik kümelemenin ayrıntılarını ve Python'daki uygulamasını anlamak için iyi bir çerçeve sunar.
Metin verisini kümelendir
K-ortalama kümeleme, kullanılacak küme sayısının önceden tanımlanmasını gerektirir ve bu sayıyı aşağıdaki gibi n_clusters parametresiyle 3 olarak ayarlayacağız:
Gömülü metin verisinin boyutlarını azaltın
İnsanlar tipik olarak en fazla üç boyutu görselleştirebilir. Bu bölüm, boyut indirgeme yapmak için nispeten hızlı ve ölçeklenebilir bir araç olan UMAP'i kullanacaktır.
Önce UMAP sınıfından bir örnek tanımlar ve fit_transform fonksiyonunu gömelere uygularız; bu da çizdirilebilecek iki boyutlu bir yorum gömme temsilini üretir.
Kümeleri görselleştirin
Son olarak, iki boyutlu gömelerin saçılım grafiğini oluşturun. x ve y koordinatları sırasıyla
embeddings_2d[: , 0]veembeddings_2d[: , 1]değerlerinden alınırKümeler görsel olarak ayrışacaktır:
Kümelerin görselleştirilmesi
Genel olarak üç ana küme vardır ve her biri farklı renktedir. Şekildeki her bir yorumun rengi, K-Means modelinin atadığı küme etiketine/numarasına göre belirlenir. Ayrıca her bir noktanın konumu, belirli bir yorumun diğerlerine ne kadar benzer olduğuna dair görsel bir temsil sunar.
Bir Sonraki Seviyeye Taşıyın
Metin gömeleri ve OpenAI API konusundaki bilginizi derinleştirmek için DataCamp'ten şu materyallere göz atın: OpenAI API ve Python ile GPT-3'ü İnce Ayarlama ve Python'da OpenAI API Hızlı Başvuru. Bu kaynaklar, GPT-3'ün ince ayarla tam potansiyelini açığa çıkarmanıza yardımcı olur ve gelişmiş sinir ağı modelini belirli kullanım senaryonuza uyarlamak için OpenAI API ve Python'un nasıl kullanılacağını gösterir.