Embedding teknolojisi hak ettiği değeri görmüyor
(technicalwriting.dev)- Makine öğrenimi (ML), teknik dokümantasyon yazımında mevcut en ileri teknikleri ilerletme potansiyeline sahip
- Claude, Gemini, LLaMa, GPT gibi metin üretim modellerinden ziyade, teknik dokümantasyon yazımında en büyük etkiyi embedding yaratabilir
- Embedding tam olarak yeni değil, ancak son birkaç yılda çok daha geniş ölçekte erişilebilir hale geldi
- Embedding, teknik yazarlara daha önce mümkün olmayan bir ölçekte metinler arasındaki bağlantıları keşfetme yeteneği sağlar
Embedding için sezgi geliştirmek
Girdi ve çıktı
- Embedding oluşturmak için girilen şey metindir
- Her seferinde aynı miktarda metin vermek gerekmez
- Bazen tek bir paragraf girdi olurken, başka durumlarda birkaç bölüm, tüm bir belge ya da birden fazla belge olabilir
- Çıktı bir sayı dizisidir
- Tek bir kelime girildiğinde çıktı
[-0.02387, -0.0353, 0.0456]gibi bir sayı dizisi olur - Tüm bir belge kümesi girildiğinde çıktı
[0.0451, -0.0154, 0.0020]gibi bir biçimde olur
- Tek bir kelime girildiğinde çıktı
- Girdinin boyutundan bağımsız olarak her zaman aynı sayıda sayı elde edilir
- Bu da istenen herhangi iki metni matematiksel olarak karşılaştırmanın bir yolunu sağlar
- Gerçek embedding'lerde dizide 3 değil, yüzlerce hatta binlerce sayı bulunur
Embedding nasıl oluşturulur
- Büyük hizmet sağlayıcıları embedding üretimini kolaylaştırıyor
- Gemini'nin
text-embedding-004modeli 768 sayılık bir dizi döndürürken, Voyage AI'ınvoyage-3modeli 1024 sayılık bir dizi döndürür - Farklı sağlayıcılardan gelen embedding'ler birbiriyle uyumlu değildir
Pahalı mı?
Hayır.
Çevre için kötü mü?
- Embedding üretimi, metin üretimine göre daha az hesaplama yoğundur
- Ancak embedding modelleri de metin üretim modellerine benzer şekilde eğitiliyor gibi görünüyor; bu da enerji kullanımı anlamına geliyor
- Daha fazlasını öğrendikçe bu bölüm güncellenecek
En iyi model hangisi?
- İdeal olarak bir embedding modeli, tam sayfalara ait embedding'ler üretebilmek için çok büyük miktarda girdi metnini kabul edebilmelidir
- 2024 Ekim itibarıyla girdi boyutu açısından
voyage-3en iyisi gibi görünüyor - Girdi sınırları token tabanlıdır ve her hizmet token'ı farklı şekilde hesapladığı için kesin sayılara fazla anlam yüklememek gerekir
Çok garip, çok boyutlu bir uzay
- Embedding sayılarının anlamı nedir?
- Haritadaki koordinatları düşünmek yardımcı olabilir
- Embedding, harita üzerindeki bir noktaya benzer
- Embedding dizisindeki her sayı, X ve Y koordinatlarına benzer bir boyuttur
- Bir embedding modeli 1000 sayılık bir dizi döndürüyorsa, bu metnin diğer tüm metinlere göre anlamsal olarak 1000 boyutlu bir uzayda hangi noktada bulunduğunu gösterir
- İki embedding arasındaki mesafeyi karşılaştırırken aslında yapılan şey, iki metnin anlamsal olarak birbirine ne kadar yakın ya da uzak olduğunu anlamaktır
- İlgili öğelerin birbirine yakın kümelendiği bu tür çok boyutlu uzayda öğeleri konumlandırma fikrine latent space denir
- Word2vec makalesi'ndeki ünlü örnek:
- embedding("king") - embedding("man") + embedding("woman") ≈ embedding("queen")
- Embedding, anlamsal ilişkileri insanlara sezgisel gelen biçimlerde gösterebilir
- Embedding yüzlerce ya da binlerce boyutta çalıştığı için, 3 boyutlu canlılar olarak 1000 boyutta "mesafe"nin nasıl göründüğünü görselleştirmek imkânsızdır
- Her bir boyutun neyi temsil ettiğini bilmek mümkün değildir
Embedding karşılaştırma
- Embedding üretildikten sonra, her embedding'in hangi metinle ilişkili olduğunu takip etmek için bir tür "veritabanı" gerekir
- İşin içinde çokça lineer cebir vardır ve NumPy ile scikit-learn gibi matematik ve ML kütüphaneleri ağır işi üstlenebilir
Uygulamalar
- Embedding'in teknik dokümantasyon yazımındaki mevcut en ileri teknikleri nasıl ileri taşıyabileceğine doğrudan bakmak
Binlerce embedding çiçek açsın
- Bir dokümantasyon sitesi sahibi olarak, REST API ya da well-known URI üzerinden içerik embedding'lerini isteyen herkese serbestçe sunup sunmamak merak ediliyor
- Topluluğun bu ek belge verisi türüyle ne kadar ilginç şeyler inşa edebileceği bilinmiyor
Son söz
- Üç yıl önce 768 boyutlu bir uzayın ne olduğu sorulsaydı, bunun yalnızca fizikçilerin ve matematikçilerin bilinmeyen nedenlerle ihtiyaç duyduğu soyut bir fikir olduğu söylenirdi
- Embedding, bu fikir üzerine daha derin düşünmek ve onu gerçekten kendi işe uygulamak için bir neden sunuyor
- Dokümantasyon bakım kapasitesinde ölçek kaynaklı iyileştirmeler hâlâ mümkün olabilir; belki de daha da fazla boyut gerekir!
Ek
Uygulama
- Her belge için embedding üretmek amacıyla bir Sphinx eklentisi oluşturuldu
- Derleme tamamlandığında embedding verileri
embeddings.jsoniçine kaydediliyor - Son adım, her belge için en yakın komşuları bulmak
- Lineer cebirin temelleri Linear Algebra for Machine Learning and Data Science üzerinden öğrenildi
Sonuçlar
- Veriyi yorumlama biçimi:
Target, şu anda bakılan sayfadırNeighbor, önerilecek sayfadır
- Sonuç tablosunda ilgili sayfaların birbirini önerdiği görülebilir
GN⁺ görüşü
- Embedding teknolojisi, teknik dokümantasyon alanında içerikler arasındaki ilişkileri anlamak ve belgeler arası bağlantıları keşfetmekte büyük fayda sağlayacak gibi görünüyor. Özellikle çok büyük belge hacimlerinin yönetildiği büyük ölçekli dokümantasyon projelerinde daha da yararlı olabilir
- Bununla birlikte embedding modelleri hâlâ yüksek enerji tüketimine sahip ve etik kaygılar da barındırıyor; bu nedenle benimsenmeden önce dikkatli değerlendirme gerekiyor. Yeterli hesaplama kaynağı sağlanmasının yanı sıra embedding üretiminin çevresel etkisini azaltmaya yönelik çabalar da gerekli görünüyor
- Dokümantasyon sitelerinde embedding'leri API olarak sunmak, geliştirici topluluğunun yaratıcı kullanımlarını teşvik etmenin iyi bir yolu olabilir. Ancak veri güvenliği ve kişisel gizlilik meseleleri için önceden önlem alınması gerekir
- Teknik dokümantasyon alanındaki girişimler veya startup'lar embedding teknolojisini daha aktif biçimde benimsemeyi düşünebilir. Bu sayede mevcut belge yönetim çözümlerinden ayrışan özellikler sunulabilir ve arama ile öneri gibi alanlarda daha insan dostu bir deneyim sağlanabilir
- Embedding'in belge özetleme, çeviri ve konu sınıflandırması gibi alanlarda kullanımına yönelik araştırmalar da umut verici olabilir. En güncel doğal dil işleme teknikleri embedding ile birleştirildiğinde teknik dokümantasyon yazımı ve yönetiminde yenilik yaratabilir
3 yorum
Teknik yazar hehe
Doğal dil işleme alanında kullanılan metin embedding'lerine ve eğitim süreçlerine bakınca, insanların dil bilgisini neredeyse hiç bilmeden dili edinip kullanma süreciyle gerçekten çok benzer olduğunu düşünmeden edemiyorum.
Metinde söylendiği gibi, çok büyük bir potansiyele sahip olduğunu düşünüyorum.
Hacker News görüşü
Modern yapay zekada embedding'lerin insanlara daha fazla güç veren tek unsur olması ilgi çekici. Bu, Steve Jobs'un söylediği "zihnimiz için bir bisiklet" gibi; yani zekâ artırımı anlamına geliyor. Bilgisayar kullanılabilirliğindeki en büyük ilerleme, hızlı ve evrensel yerel aramanın kullanıma girmesiydi. Firefox'taki "sayfada bul" özelliğini sık kullanıyorum, ayrıca arama ve
grepi her gün kullanıyorum. Embedding'ler gerçekten faydalı fuzzy search sağlayarak aramanın en büyük zayıflığını çözme potansiyeline sahipBir dokümantasyon sitesi sahibi olarak, embedding'leri REST API veya iyi bilinen URI'ler üzerinden serbestçe sunmayı düşünüp düşünmemem gerektiğini merak ediyorum. Hangi embedding modelinin kullanıldığını açıkça belirtmek gerekir; ayrıca teknik dokümantasyon için uygun embedding modelleri olup olmadığı sorusu da var
Çevreyle ilgili kaygılarım var, ancak AI kullanımını azaltmanın iklim sorununu çözebileceğine dair yaygın görüşün yanlış olduğunu düşünüyorum. Örneğin, Google Maps'i yasaklarsanız insanlar yanlış rotaları seçer ve daha fazla yakıt tüketir. Embedding kullanılarak belge üretimi de benzer şekilde, hesaplama kaynağı kullanmanın daha verimli olduğu bir durum
Embedding'leri bir web uygulamasında nasıl kullandığına dair eğlenceli bir deneyim paylaşıyor. Dokümantasyon üzerinden üretimde embedding kullanımını nasıl ele aldığını anlatıyor
Embedding'ler, giriş dizgesindeki her şeyi temsil ediyor ve bu yüzden hedefsiz görünüyor. Belirli bir uygulama için embedding'lerin boyutunu nasıl azaltabileceğimize dair bir soru var. Örneğin, teknik destek konuşmalarını bulan bir sistem kurarken, konuşmanın yalnızca içeriğini temsil eden bir embedding'i nasıl türetebiliriz diye merak ediliyor
Vektör embedding'ler, bir belgenin kendine özgü özeti; bir hash koduna benziyor. Embedding üretimi için evrensel bir standart olsa güzel olurdu, ancak her AI modeli farklı olduğu için hash kodları gibi bir "kalıcılığa" sahip olamazlar. Cosine similarity gibi algoritmaların veritabanlarında ve bilgi işleme uygulamalarında kullanılabileceği pek çok alan var gibi görünüyor
Embedding'lerin yeterince değer görmediğini düşünüyorum. Bilgi erişimi/keşfi alanı hâlâ anahtar kelime tabanlı keşif kullanıyor ve modern bir araç olan anlamsal tabanlı keşfi benimsemiyor. Cümleleri vektör embedding'lere dönüştürüp k-means clustering uyguladıktan sonra ChatGPT ile özetleme yöntemini kullanarak zaman kazanıyorum
Teknik yazarların embedding'lerin faydasını olduğundan az değerlendirdiği öne sürülüyor. Makine öğrenimi uygulayıcıları ise embedding'leri küçümsemiyor
OpenAI embedding modelinin 8191/8192 token'ı destekleyip desteklemediğine dair bir soru var. Token boyutuna bakarak kazanan ilan etmek yanıltıcı; diller arası destek ve doğruluk gibi daha önemli unsurlar var
Embedding'lerin fazla abartıldığını düşünüyorum; çünkü pek çok kişinin umduğu türden her derde deva bir çözüm değiller. BM25 gibi basit yöntemlerin tamamen yerini almıyorlar ve yalnızca sınırlı bir anlamsal kavrayış sunuyorlar. Yüksek beklenti, embedding'lerin tam olarak isteneni bulacağı inancını yaratıyor; ancak sonuçlar dikkatle incelenmezse uyumsuzlukları fark etmek zor olabiliyor