11 puan yazan GN⁺ 2025-07-29 | 2 yorum | WhatsApp'ta paylaş
  • Embedding, LLM’lerin anlamsal iskeletidir; metni modelin anlayabileceği sayısal vektörlere dönüştürür
  • Embedding’in gelişimi, count tabanlı ve TF-IDF gibi istatistiksel tekniklerden Word2Vec, BERT, GPT ailesi gibi modern yaklaşımlara kadar çeşitli dönüşümlerden geçti
  • İyi bir embedding’de kelimelerin anlamsal benzerliğini koruma ile boyut sayısını ayarlama arasındaki denge önemlidir; LLM’lerde ise embedding’ler eğitim verisi ve göreve göre optimize edilerek birlikte eğitilir
  • TF-IDF, Word2Vec, BERT gibi başlıca embedding yöntemleri örnekler ve görselleştirmelerle açıklanırken, özellikle LLM embedding’lerinin giriş token’larını yüksek boyutlu vektörlere dönüştürdükten sonra bağlama göre katmanlar boyunca güncellendiği anlatılır
  • Torch embedding katmanı, embedding vektör graf analizi gibi uygulama kodları ve görsel materyallerle embedding’in gerçek çalışma mantığını sezgisel olarak anlamaya yardımcı olunur

Embedding nedir?

  • Embedding, metin, görsel, ses gibi verileri yüksek boyutlu vektörlere dönüştüren bir tekniktir
  • Özellikle NLP’de, kelime veya token’ları bilgisayarın anlayabileceği bir forma dönüştürme sürecidir
  • Embedding yalnızca metne değil farklı veri tiplerine de uygulanabilir; ancak bu yazı metin embedding’i üzerine odaklanır

Embedding’in gelişimi ve türleri

  • İlk embedding tekniklerinde count vector, TF-IDF, Co-Occurrence Matrix gibi istatistik tabanlı yöntemler yaygındı
  • Sonrasında Word2Vec, GloVe, FastText gibi sinir ağı tabanlı embedding’ler ortaya çıktı ve anlamsal benzerliği vektör uzayına yansıtmaya başladı
  • BERT, GPT gibi transformer tabanlı modellerde her token’ın embedding’i, girişten sonra katmanlar boyunca bağlam bilgisini yansıtacak şekilde güncellenir (dinamik/bağlamsallaştırılmış embedding)

İyi bir embedding’in koşulları

Anlamsal temsil (semantic representation)

  • Benzer anlama sahip kelimeler, vektör uzayında da birbirine yakın konumlanır
    Örnek: cat ve dog, dog ile strawberry’e kıyasla daha benzer biçimde eşlenir

Boyut büyüklüğü (d dimensionality)

  • Embedding boyutu çok küçükse ifade gücü yetersiz kalır, çok büyükse bellek israfı ve aşırı öğrenme riski doğar
    Örnek: GPT-2’nin embedding boyutu en az 768’dir

Geleneksel embedding tekniği: TF-IDF

  • TF-IDF, kelimenin önemini kelime sıklığı ile nadirliğin (ters doküman sıklığı) çarpımı üzerinden hesaplar
  • TF: Bir kelimenin bir dokümanda ne kadar sık geçtiği
  • IDF: Tüm dokümanlar içinde ne kadar nadir olduğu
  • TF-IDF sonuçları bilgi erişimi, anahtar kelime çıkarımı gibi basit analizlerde kullanışlıdır; ancak anlamsal benzerliği iyi yansıtmaz
  • Görselleştirildiğinde çoğu kelime tek bir kümeye yığılır ve anlamsal ayrışma düşüktür

Word2Vec

  • Word2Vec, anlamsal ilişkileri vektör uzayına etkili biçimde yansıtan sinir ağı tabanlı bir embedding yöntemidir
  • CBOW (çevre kelimelerden merkez kelimeyi tahmin etme), Skipgram (merkez kelimeden çevreyi tahmin etme) gibi yaklaşımları vardır
  • Eğitim sonucunda gizli katmandaki embedding matrisi, kelimelerin anlamsal vektörü olarak kullanılır
  • Negative sampling gibi optimizasyon teknikleri sayesinde büyük ölçekli verilerde de verimli eğitim mümkündür
  • TensorFlow Embedding Projector gibi araçlarla görselleştirildiğinde anlamsal olarak benzer kelimelerin kümelendiği görülebilir

BERT ve transformer tabanlı embedding

  • BERT, encoder-only bir transformer modelidir; her katmandan geçtikçe bağlam bilgisini dinamik olarak daha fazla yansıtır
  • Giriş aşaması: tokenizer ile metni token’lara ayırma → token embedding vektörüne dönüştürme → positional embedding ile toplama
  • Ardından birden fazla transformer katmanından geçerken embedding, bağlam bilgisini yansıtacak şekilde dinamik olarak değişir
  • [CLS], [SEP] gibi special token’larla tüm cümleye veya ayırıcı bilgiye dair işlemler de yapılır
  • BERT sonrasında birçok LLM, dinamik (bağlamsallaştırılmış) embedding yaklaşımını benimsedi

LLM embedding’lerinin yapısı ve eğitimi

  • LLM embedding’leri, giriş token’larını yüksek boyutlu vektörlere dönüştüren ilk katman (lookup table) olarak uygulanır
  • torch.nn.Embedding gibi yapılarla, token ID alıp karşılık gelen embedding vektörünü döndüren tablo biçiminde oluşturulur
  • LLM’ler eğitim sürecinde embedding katmanının ağırlıklarını da birlikte optimize eder; böylece embedding’ler modelin işlediği veri ve amaca göre incelik kazanır
  • Örnek: DeepSeek-R1-Distill-Qwen-1.5B modeli 1536 boyutlu embedding vektörleri kullanır

Embedding’in görselleştirilmesi ve graf analizi

  • Embedding vektörleri arasındaki benzerliğe (cosine similarity vb.) dayanarak embedding uzayı graf biçiminde analiz edilebilir
  • Örnek: AI agents will be the most hot topic... cümlesi tokenize edilip her token’ın embedding’inden yüksek benzerliğe sahip token’lar bağlanarak görselleştirilebilir
  • Tek bir kelimenin (ör. list) farklı varyasyonları (_list, List vb.) da çoğu zaman benzer embedding’lere sahiptir

Sonuç

  • Embedding, LLM ve NLP’nin temel unsurlarındandır; giriş verisini sayısal vektörlere çevirerek modelin anlamsal yapı ve bağlam bilgisini işlemesini sağlar
  • LLM çağında da embedding’in temel ilkeleri ve yapısı büyük ölçüde değişmedi; hâlâ model performansı ve yorumlanabilirlik açısından çok önemli bir rol oynar
  • Sezgisel kod örnekleri ve görselleştirme materyalleri sayesinde embedding’in pratik çalışma mantığı kolayca anlaşılabilir

2 yorum

 
crawler 2025-07-29

king - man + woman = queen

 
GN⁺ 2025-07-29
Hacker News görüşleri
  • Gömme temsillerin LLM yığınının neredeyse hiç konuşulmayan parçalarından biri olması gerçekten şaşırtıcı; sezgisel olarak bunun, ağın anlamsal bağlantıları çıkarabilme yeteneği üzerinde muazzam etkisi olan bir parça olduğunu düşünürdüm ama insanlar bu konuda pek konuşmuyor.

    • Gömme temsillerle ilgili sorun, modelin kendisi dışında neredeyse okunamaz olmaları. Gömme temsiller giriş dizisinin anlamını açıkça kodluyor, ancak eğitim sürecinde bu bilgi o kadar sıkıştırılıyor ki bunu yalnızca modelin decoder head’i çözebiliyor. Anthropic’in Sonnet 3’ün iç özelliklerini yorumlanabilir hale getirdiği bir araştırması var; ama bu, iç katman aktivasyonlarını yorumlamak için paralel olarak ayrı bir ağ eğitmeyi gerektirdiğinden maliyetli.

    • Yüksek boyutlu uzayın garip tarafı, değerlerin çoğunun birbirine dik ve çok uzak olması. Buna rağmen, boyut indirgeme teknikleriyle 50 bin boyutta bile kavramları kümeleyebilmek etkileyici.

    • Gömme temsilleri ilk kez derinlemesine öğrenirken “LLM’lerin büyüsünün en az üçte biri gömme temsillerden geliyor” diye düşündüm. Kelimelerin zaten anlamsal olarak kullanışlı biçimde düzenlenmiş olması, LLM’lerin gizemini biraz azaltıyor. Hâlâ hayranlık verici ama sanki perdenin arkasını biraz görüyormuşsun gibi.

    • Gömme temsiller, bilgisayarların insan dilini nicelleştirebilmesini sağlayan bir tür “Rosetta Taşı” gibi. Bunun gerçekten çok önemli bir mesele olması gerektiğini düşünüyorum, ama 1.000 boyutlu bir vektör uzayını anlamaya çalışmanın epey göz korkutucu olduğunu da kabul ediyorum.

    • Gömme temsillerin az konuşulduğu görüşüne katılmıyorum. Özellikle RAG uygulama örneklerinde ya da vektör veritabanı tartışmalarında gömme temsiller her zaman ana konu olarak ele alınıyor.

  • Eğitim çok iyiydi — bağlamsal gömme temsiller ile statik gömme temsiller arasındaki fark önemli. Pek çok kişi word2vec’e (statik gömme) aşina ama bağlamsal gömme temsiller çoğu durumda çok daha güçlü. (Bu arada, sayfada sadece kaydırınca bile tarayıcı geçmişine tonla kayıt ekleyen ciddi bir browser history hijacking sorunu var.)

  • Daha ileri düzey bir açıklamanın faydalı olacağı nokta, gömme temsiller açısından Encoder-Decoder transformer’lar (BERT) ile yalnızca decoder kullanan üretici modeller arasındaki fark.

    • Küçük bir düzeltme gerekiyor: BERT bir encoder’dır (Encoder-Decoder değil), ChatGPT ise bir decoder’dır. Encoder modelleri (BERT) tüm cümleyi görebildiği için anlam temsili açısından avantajlıdır. Örneğin “The bank was steep and muddy” cümlesinde bank kelimesinin anlamının (nehir kıyısı mı, finans kurumu mu) ne olduğunu tüm cümleye bakarak ayırt edebilir. Buna karşılık GPT türü modeller (decoder modelleri) yalnızca soldan sağa gördükleri için cümlenin ilerleyen kısmını görmeden tahmin yapar. Daha fazla bilgi için huggingface’in modernBERT yazısına ve neoBERT makalesine bakılabilir.

    • dust42’nin açıklamasına ek olarak: BERT encoder, GPT decoder, T5 ise encoder-decoder’dır. Bugünlerde encoder-decoder modeller daha az popüler. Encoder modeller sınıflandırma, bilgi çıkarımı ve aramada çok kullanılırken; decoder’lar metin üretimi, özetleme ve çeviri için uygundur. Son araştırmalar da (Ettin makalesi) bunu doğruluyor. İkisi de transformer olduğu için encoder’ı decoder’a, decoder’ı da encoder’a dönüştürmek mümkündür. Tasarımdaki fark, çift yönlü attention (tüm token’ların tüm token’ları görebilmesi) ile otoregresif attention (yalnızca önceki token’ların görülebilmesi) arasındadır.

  • Embedding projector kullanarak yalnızca 50’den fazla kelimeyi değil, 3D veri görselleştirmesi konusunda da sezgi geliştirilebilir; bkz. Tensorflow Embedding Projector.

  • Çok iyi bir görsel rehber! Ben de benzer bir konseptle, derin öğrenmeyi daha iyi anlamaya yardımcı olan görsel + ses + quiz formatında bir LLM gömme temsilleri dersi hazırladım: app.vidyaarthi.ai, doğrudan deneyim bağlantısı. Soyut kavramları daha sezgisel ve etkileşimli hâle getiren “yaparak öğrenme” yaklaşımını hedefliyor. Geri bildirimlere açığım (bu bir öz tanıtım değil, gerçekten tutkuyla hazırlanmış bir araç).

  • Erişim pek iyi çalışmıyor gibi. Konsolda “Content-Security-Policy: The page’s settings blocked an inline style…” benzeri bir sürü hata mesajı çıkıyor.

  • Kelime bulutu görselleştirmesi ya da sorgu için top-k sonuçlarını göstermek daha sezgisel olabilir diye düşünüyorum. Tensorflow’un Embedding Projector’ında bir kelime girip UMAP projection seçmenizi öneririm.

  • Daha pratik bir yaklaşımla yazılmış bir açıklama da sgnt.ai’nin gömme temsilleri anlatan yazısında var. Bunu ben yazdım.

    • Harika kaynak için teşekkürler! Benim anladığım kadarıyla LLM’lerde üç büyük sorun var:

      1. LLM’ler çok yüksek boyutlu vektör uzayını daha düşük boyuta indiriyor. Ama bu düşük boyutlu uzaydaki tek tek eksenlerin neyi temsil ettiği belirsiz olduğu için, cevabın doğru olup olmadığını çoğunlukla sadece çıktıdan anlayabiliyoruz. Bunu çözmeye çalışan araştırmaları merak ediyorum.
      2. LLM’ler bu indirgenmiş temsili oluşturmak için metin verisi kullanıyor. Yani gerçekliği değil, insanların gerçeklik hakkında tuttukları kayıtları öğreniyorlar. Keen Technologies bu sınırlamadan kaçınmak için gerçek sensörlere sahip robotlardan gelen verileri kullanıyor; bu çok daha yavaş olsa da uzun vadede daha doğru modeller üretilebileceğini düşünüyor.
      3. LLM, konuşmanın anlam ve bağlam bilgisini tek bir vektöre (iç duruma) sığdırdığı için, uzun konuşmalarda bu vektör tekrar tekrar üzerine yazılarak erken bağlamın giderek silikleşmesine yol açıyor. Bu durum yönetimini, vektör yedekleme dışında farklı bir şekilde yapmanın yolu olup olmadığını merak ediyorum.
    • Sizin yaklaşımınız çok daha sezgisel. Neden kategorik/skaler özellikler için gömme örnekleri göstermediğinizi merak etmiştim.

  • Çok eğitici ve iyi yapılandırılmış bir makale, yazara teşekkürler.

    • Yazarın profiline Huggingface üzerinden bakılabilir. HN moderasyonu daha önce pek ilgi görmediği için yeniden paylaşmayı önermiş. Bu yazının iyi yanı, farklı gömme türlerini örneklerle ele alması.
  • LLM’lerdeki gömme temsiller genellikle giriş katmanının bir parçasıdır ve Word2Vec gibi önceden eğitilmiş modellerden farklı olarak eğitim sırasında güncellenir.
    Ek bir merak noktası: Çıkarım aşamasında gömme temsiller “token ID -> vektör” biçiminde bir lookup table gibi çalışıyor.
    Matematiksel olarak bakarsak, token ID uzun bir one-hot vector olarak kodlanıp ardından bir linear layer’dan geçirilerek gömme vektörü elde ediliyor.
    Bu yapı, gömme eğitimi sırasında da aynı şekilde mi uygulanıyor? Yani gömme katmanı bir linear layer gibi görülüp backpropagation ile mi eğitiliyor?

    • Gömme katmanı da normal backpropagation sürecinin parçası. Ancak verimlilik için one-hot encoding fiilen kullanılmıyor.
      Yalnızca seçilen vektöre gradient akacak şekilde indexing diferansiyellenebilir biçimde uygulanıyor.
      Somut bir örnek için hazırladığım mini derin öğrenme kütüphanesindeki SmallPebble kaynak koduna bakabilirsiniz.

    • Diğer yorumu biraz açmak gerekirse,
      indexing ile one-hot vector çarpımı matematiksel olarak eşdeğerdir.
      Örneğin sözlükte N öğe ve dizi uzunluğu L varsa, NxL boyutunda seyrek bir matrisi gömme matrisiyle çarpmak gerekir.
      Ama pratikte her sütun için yalnızca tek bir indeks gerektiğinden, içeride bu bir sayı (indeks) olarak temsil edilir.
      Bu sayede yalnızca ileri yayılım değil, geri yayılım da indexing üzerinden ayrı biçimde yazılır
      ve gradient’in seçilen gömme vektörüne akması sağlanır.