Vektör Gömme Nedir
Sinir ağlarının metni yüksek boyutlu uzayda yoğun vektörlere nasıl eşlediğini, anlamsal olarak benzer metinlerin neden birbirine yakın vektörler ürettiğini ve kosinüs benzerliğinin neyi ölçtüğünü anlayın.
Vektör Gömme Nedir, CoddyKit'te ücretsiz bir AI Engineering Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Engineering Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Engineering Academy kursu toplamda 4 dersten oluşur.
Sayıların Ardındaki Anlam
Vektör gömmesi, bir metin parçasının anlamını temsil eden sayı listesidir (vektördür). Sinir ağları, sözcükleri ham dizeler olarak depolamak yerine anlamsal anlamı yoğun sayısal dizilerle kodlamayı öğrenir. Anlamları benzer olan iki metin, bu yüksek boyutlu uzayda birbirine yakın vektörler üretir.
Yüksek Boyutlu Vektör Uzayı
Modern gömmeler genellikle 768 ila 3072 boyuta sahiptir. Her boyut, açıkça programlanmadan anlamın bazı örtük özelliklerini (konular, duygu, üslup ve ilişkiler) yakalar. Sonuç, anlamsal ilişkilerin ölçülebilir uzaklıklara dönüştüğü zengin bir geometrik uzaydır.
Örneğin, text-embedding-3-small 1536 boyutlu vektörler üretirken text-embedding-3-large 3072 boyutlu vektörler üretir.
Sinir Ağları Gömmeleri Nasıl Öğrenir
Gömme modelleri, eksik sözcükleri tahmin etmek (maskeli dil modelleme) veya anlamsal açıdan benzer ve farklı çiftleri ayırt etmek üzere devasa metin derlemleriyle eğitilir. Eğitim sırasında ağ, benzer metinler öğrenilen vektör uzayında doğal olarak kümelenene kadar milyonlarca ağırlığı ayarlar.
Gömmelere yoğun temsiller denmesinin nedeni budur: çoğu değerin sıfır olduğu seyrek tek etkin kodlamaların aksine her boyut bilgi taşır.
Kosinüs Benzerliği: Yakınlığı Ölçme
Kosinüs benzerliği, iki vektör arasındaki açıyı ölçerek -1 ile 1 arasında bir değer döndürür. 1 puanı, vektörlerin tam olarak aynı yöne işaret ettiği (anlamlarının özdeş olduğu), 0 puanı dik oldukları (ilişkisiz oldukları), -1 puanı ise zıt yönlere işaret ettikleri anlamına gelir.
Metin için Öklid uzaklığına kıyasla tercih edilir; çünkü vektör büyüklüğünü yok sayıp yalnızca yöne odaklanır ve metin uzunluğundaki farklılıklara karşı dayanıklıdır.
import numpy as np
def cosine_similarity(vec_a, vec_b):
dot_product = np.dot(vec_a, vec_b)
norm_a = np.linalg.norm(vec_a)
norm_b = np.linalg.norm(vec_b)
return dot_product / (norm_a * norm_b)
# Example with tiny 3D vectors
v1 = np.array([0.8, 0.2, 0.5])
v2 = np.array([0.9, 0.1, 0.4])
print(cosine_similarity(v1, v2)) # Close to 1.0Anlamsal Benzerlik Neden Önemlidir
Geleneksel anahtar sözcük araması, kullanıcılar farklı ifadeler kullandığında başarısız olur: automobile araması, cars hakkındaki belgeleri bulamaz. Vektör gömmeleri bu sorunu çözer; çünkü anlamsal olarak eşdeğer metinler, kullanılan sözcükler tam olarak aynı olmasa bile birbirine yakın vektörlere eşlenir.
Bu, sözcüklerin örtüşmesine değil anlama göre en ilgili sonucu bulduğunuz anlamsal aramayı mümkün kılar. Bu, RAG sistemleri için gereken temel bir yetenektir.
Gömme Vektörünü Görselleştirme
Cümleleri 2B bir harita üzerinde çizdiğinizi düşünün (basitleştirilmiş bir benzetme). makine öğrenmesi hakkındaki cümleler bir bölgede, yemek pişirme hakkındaki cümleler başka bir bölgede kümelenir; spor hakkındaki cümleler de üçüncü bir küme oluşturur. Vektör gömmeleri bu haritayı binlerce boyutta oluşturur.
king - man + woman ≈ queen gibi ünlü ilişkiler, bu uzayda gerçek aritmetik işlemlerdir; vektör işlemleri anlamsal benzetimleri kodlar.
Basit Bir Gömme Oluşturma
OpenAI gömmeler API'si metin alır ve kayan noktalı sayıların bir listesini döndürür. Tek bir API çağrısıyla bir cümleyi veya bütün bir paragrafı gömebilirsiniz. Döndürülen vektör, girdinin uzunluğu ne olursa olsun sabit bir boyuta sahiptir.
Önemli: daha uzun girdiler daha büyük vektörler üretmez; yine aynı sabit boyutlu vektörü üretirler. Ancak model her şeyi bu sabit uzaya sıkıştırdığı için çok uzun metinler ayrıntılı bilgileri kaybedebilir.
from openai import OpenAI
client = OpenAI() # uses OPENAI_API_KEY from environment
response = client.embeddings.create(
model='text-embedding-3-small',
input='Vector embeddings capture semantic meaning.'
)
embedding = response.data[0].embedding
print(f'Dimensions: {len(embedding)}') # 1536
print(f'First 5 values: {embedding[:5]}')Birden Çok Metni Aynı Anda Gömme
input parametresine bir liste aktararak tek bir API çağrısında birden çok dizeyi gömebilirsiniz. Bu, her metin için bir istek göndermekten çok daha verimlidir; çünkü ağ gidiş-dönüşlerini azaltır ve API'nin hesaplamayı toplu olarak gerçekleştirmesini sağlar.
Yanıt, her girdi için aynı sırada bir gömme nesnesi içerir; böylece bunları özgün metinlerinizle birlikte kolayca eşleştirebilirsiniz.
from openai import OpenAI
client = OpenAI()
texts = [
'Python is a programming language.',
'Snakes are reptiles.',
'Machine learning requires data.'
]
response = client.embeddings.create(
model='text-embedding-3-small',
input=texts
)
for text, result in zip(texts, response.data):
print(f'{text[:30]}... -> {len(result.embedding)}D vector')İç Çarpım ve Kosinüs Benzerliği Karşılaştırması
Gömmeleriniz L2-normalleştirilmiş ise (büyüklüğü 1 olan birim vektörler), iç çarpım kosinüs benzerliğine eşittir. OpenAI'nin gömme modelleri normalleştirilmiş vektörler döndürür; bu nedenle iki ölçütten birini kullanabilirsiniz — iç çarpımın hesaplanması biraz daha hızlıdır.
Ancak farklı modellerden veya normalleştirilmemiş olabilecek kaynaklardan gelen gömmeleri birleştirirken, yanıltıcı sonuçlardan kaçınmak için kosinüs benzerliğini her zaman açıkça hesaplayın.
import numpy as np
def normalize(vec):
return vec / np.linalg.norm(vec)
v1 = normalize(np.array([3.0, 4.0, 0.0]))
v2 = normalize(np.array([4.0, 3.0, 0.0]))
# For unit vectors: dot product == cosine similarity
dot = np.dot(v1, v2)
print(f'Dot product: {dot:.4f}') # same as cosine simGömmeler ve Tek Etkin Kodlama
Tek etkin kodlama, her sözcüğü tam olarak bir tane 1 ve diğer tüm değerleri 0 olan bir vektörle temsil eder. 50.000 sözcüklük bir sözlük, neredeyse tamamen sıfırlardan oluşan 50.000 boyutlu vektörler üretir; bu son derece verimsizdir.
Yoğun gömmeler 768-3072 boyut kullanır, ancak her boyut gerçek bilgi taşır. Uzay 10-20 kat daha küçük olmasına rağmen eş anlamlı sözcükler, benzetimler ve tek etkin kodlamanın tamamen gözden kaçırdığı bileşimsel anlam da dâhil olmak üzere çok daha fazla inceliği yakalar.
Gömmelerin Yaygın Kullanım Alanları
Anlamsal aramanın yanı sıra gömmeler, birçok pratik uygulamaya güç verir:
- Anlamsal arama — belgeleri anahtar sözcüklere göre değil, anlama göre bulma
- Öneri sistemleri — kullanıcının beğendiği öğelere benzer öğeler önerme
- Kümeleme — belgeleri konuya göre otomatik olarak gruplama
- Sınıflandırma — gömmeleri doğrusal bir sınıflandırıcıya aktarma
- Yinelenenleri kaldırma — neredeyse yinelenen içeriği algılama
Tüm RAG sistemleri, kullanıcı sorgularını ilgili belge parçalarıyla eşleştirmek için gömmelere ihtiyaç duyar.
Hızlı Kontrol
Bu dersteki Yapay Zekâ Mühendisliği kavramlarını anlayıp anlamadığınızı test edin.
Ders Özeti
Bu derste şunları öğrendiniz: vektör gömmeleri anlamsal anlamı yoğun sayısal diziler olarak kodlar, kosinüs benzerliği vektör yönlerini karşılaştırarak anlamsal yakınlığı ölçer ve OpenAI'nin gömme API'si tek bir çağrıda metni sabit boyutlu vektörlere dönüştürür. Sırada, OpenAI modellerini kullanarak gömmeleri pratikte nasıl oluşturup karşılaştıracağımızı inceleyeceğiz.
Yapay zeka eğitmeniyle Python öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 30
- Dersler
- 120
Sıkça Sorulan Sorular
“Vektör Gömme Nedir” dersi ücretsiz mi?
Evet — “Vektör Gömme Nedir” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Engineering Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Engineering Academy kursu toplamda 4 dersten oluşur.
“Vektör Gömme Nedir” dersinde ne öğreneceğim?
Sinir ağlarının metni yüksek boyutlu uzayda yoğun vektörlere nasıl eşlediğini, anlamsal olarak benzer metinlerin neden birbirine yakın vektörler ürettiğini ve kosinüs benzerliğinin neyi ölçtüğünü anl… AI Engineering Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
AI Engineering Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AI Engineering Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Vektör Gömme Nedir” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu AI Engineering Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AI Engineering Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Vektör Gömme Nedir
- OpenAI ile Gömme Oluşturma
- NumPy ile Anlamsal Arama
- Gömme Kümelendirme ve Görselleştirme