ChatGPT gibi üretken dil modelleri neredeyse her soruyu anında yanıtlayabilir ve kullanımı kolaydır. Ancak daha yakından bakarsanız bazı sorunları da keşfedeceksiniz.
Duyuru
veri bilimci ve makine öğrenimi mimarıdır. Teorik fizik alanında doktora sahibidir ve 20 yıldır büyük veri ve yapay zeka alanında, toplu metin işlemeye yönelik ölçeklenebilir sistemler ve akıllı algoritmalar üzerine çalışmaktadır. Nürnberg Teknik Üniversitesi'nde profesör olarak araştırması, modern yöntemler kullanarak kullanıcı deneyimini optimize etmeye odaklanıyor. Datanizing GmbH'nin kurucusu, konferans konuşmacısı ve makine öğrenimi ve metin analitiği üzerine makalelerin yazarıdır.
Öncelikle halüsinasyonlar var: Dil modellerinin söylediği her şey her zaman doğru olmuyor. Model belirli bilgileri bilmiyorsa bazılarını ekler. Halüsinasyonlar o kadar ikna edici bir şekilde formüle edilmiş ki, makul görünüyorlar. Lama'nın erken bir versiyonu, Haberler-Verlag'ı kısa sürede CeBIT'in organizatörü haline getirdi. Muhtemelen yayın, BT referansı ve Hannover'deki konum kombinasyonu, o zamanlar dünyanın en büyük bilgisayar fuarı olan model için çok açıktı. İncelikli ifadeler insanı bu tür yanlış bilgilere inanmaya yöneltiyor.
Büyük dil modellerinin eğitimi de son derece karmaşıktır ve birkaç bin GPU yılı hesaplama süresi gerektirebilir. Bu nedenle satıcılar modelleri nadiren yeniden geliştirir. Bu, modellerin mevcut bilgileri bilmediği anlamına gelir. Llama 3.1 gibi nispeten yeni modeller için bile bilgi sınırı olarak adlandırılan sınır geçen yıldı.
Kamusal dil modelleri, bir şirketinki gibi iç bilgilerle ilgili açıklamalar söz konusu olduğunda başarısız oluyor çünkü bu içerik eğitim setinde yer almıyor. Üretken modeller yeniden eğitilebilir (iyileştirilebilir), ancak bu aynı zamanda çok fazla çaba gerektirir (ve eklenen her belge için yeniden yapılmalıdır).
İyi birleştirilmiş: LLM + RAG
Üretken modellerin modern bilgi alma yöntemleriyle birleşimi yardımcı olabilir. Belgeler gömme modelleri kullanılarak indekslenebilir (bunlar aynı zamanda büyük dil modelleri sınıfına da aittir). Benzerlik ölçümlerini kullanarak bir soruyu mümkün olan en iyi şekilde yanıtlayan belgeleri (veya pasajları) bulabilirsiniz. Bu “bağlam” daha sonra sonuçları özetleyen ve bunları soruyla tam olarak eşleştiren üretken bir modele aktarılır.
Alma Artırılmış Üretim (RAG) adı verilen bu tür yöntemler son derece popülerdir. Geçen yıl bu, bilgi erişiminde küçük bir devrimin kıvılcımını ateşledi çünkü çok daha iyi sonuçlar elde edebiliyordu. RAG uygulayan birçok çerçevenin olmasının nedenlerinden biri de budur.
Optimizasyon farklı boyutlarda mümkün olduğundan RAG'ı doğru kullanmak önemsiz değildir. Farklı yerleştirme modelleriyle çalışabilir, farklı yeniden bağlamalar kullanabilir ve farklı üretken modeller kullanabilirsiniz. Doğru kombinasyonu seçmek yeterli deneyim gerektirir.
Ayrıca saf RAG ile bilgileri belgelerden çıkarmak (resmileştirilmiş) ne yazık ki henüz mümkün değildir. Ancak bu faydalı olacaktır çünkü modeller çok daha iyi cevaplar verebilir. Bilgi grafikleri üzerine araştırmalar uzun süredir devam etmektedir. Bu iki fikri birbirine bağlayabilirseniz iyi olur.
GraphRAG ile hiyerarşik erişim
GraphRAG terimi Microsoft'tan gelmektedir ve giriş makalesi, süreci, metin parçaları için tamamen semantik bir aramanın aksine, RAG'a hiyerarşik bir yaklaşım olarak tanımlamaktadır. Bireysel adımlar, bilgi grafiğinin ham metinden çıkarılmasından ve içerik özetleriyle bir topluluk hiyerarşisi oluşturulmasından oluşur. Bu yapılar daha sonra iyileşme için kullanılabilir ve böylece daha iyi yanıtlar formüle edilebilir.
Ancak diğer birçok Microsoft projesinden farklı olarak uygulama gizli kalıyor. Jupyter not defterleri mevcut ancak Azure ve OpenAI'yi yoğun olarak kullanıyorlar ve tüm bilgileri buluta aktarıyorlar. Sınıflarda o kadar çok şey gizli ki, perde arkasında neler olup bittiğini anlamak zor.
Neyse ki alternatif kaynaklar ve uygulamalar var. Neuml'un giriş makalesi tavsiye edilir. Burada olup biteni çok daha net bir şekilde görebilirsiniz. Gömme modeli (intfloat/e5-base) benzerlik sorguları gerçekleştirmenize olanak tanır. Neuml'un Hugging Face aracılığıyla kullanıma sunduğu mevcut Wikipedia yerleştirmeleri veritabanı görevi görüyor. Uygulama bir alt kümeyi (ilk 100.000 makale) indeksler ve bir sorgunun sonucu olarak bir grafik sağlar (burada “makine öğrenimi”):
Neuml aracı, Wikipedia özetlerinden “makine öğrenimi” için bir bilgi grafiği oluşturur (Şekil 1).
(Resim: Christian Winkler)
Şekil 1'in üst kısmındaki düğümlerin, grafiğin geri kalanına göre birbirine çok daha yakından bağlı olması, burada bilgi yoğunluğunun muhtemelen daha yüksek olduğunu göstermektedir.
Grafik Python'da bir NetworkX grafiği olarak modellendiğinden, diğer şeylerin yanı sıra, iki düğüm arasındaki yolu belirlemek veya maksimum merkeziliğe sahip düğümleri belirlemek için yöntemleri de çağrılabilir. Sonuçlara bakıldığında bunların özellikle alakalı Wikipedia sayfaları olduğu ortaya çıkıyor:
{'id': 'Machine learning',
'text': 'Machine learning (ML) is a field of study in artificial intelligence concerned with the development ...',
'topic': 'artificial_learning_intelligence_language',
'topicrank': 2,
'score': 0.9113607406616211}
{'id': 'Supervised learning',
'text': 'Supervised learning (SL) is a paradigm in machine learning where input objects (for example, a vecto...',
'topic': 'artificial_learning_intelligence_language',
'topicrank': 68,
'score': 0.8619827032089233}
{'id': 'Perceptron',
'text': 'In machine learning, the perceptron (or McCulloch–Pitts neuron) is an algorithm for supervised learn...',
'topic': 'artificial_learning_intelligence_language',
'topicrank': 70, 'score': 0.8862747550010681}
{'id': 'Autoencoder',
'text': 'An autoencoder is a type of artificial neural network used to learn efficient codings of unlabeled d...',
'topic': 'artificial_learning_intelligence_language',
'topicrank': 46,
'score': 0.8562962412834167}
{'id': 'Multilayer perceptron',
'text': 'A multilayer perceptron (MLP) is a misnomer for a modern feedforward artificial neural network, cons...',
'topic': 'artificial_learning_intelligence_language',
'topicrank': 89,
'score': 0.8532359004020691}
{'id': 'Unsupervised learning',
'text': 'Unsupervised learning is a paradigm in machine learning where, in contrast to supervised learning an...',
'topic': 'artificial_learning_intelligence_language',
'topicrank': 53,
'score': 0.8743622303009033}
{'id': 'Generative pre-trained transformer',
'text': 'Generative pre-trained transformers (GPT) are a type of large language model (LLM) and a prominent f...',
'topic': 'artificial_learning_intelligence_language',
'topicrank': 5,
'score': 0.8358747363090515}
{'id': 'Convolutional neural network',
'text': 'Convolutional neural network (CNN) is a regularized type of feed-forward neural network that learns ...',
'score': 0.8500866889953613}
{'id': 'Deep learning', 'text':
'Deep learning is the subset of machine learning methods based on artificial neural networks with rep...',
'topic': 'artificial_learning_intelligence_language',
'topicrank': 27,
'score': 0.8632184267044067}
{'id': 'Kernel method',
'text': 'In machine learning, kernel machines are a class of algorithms for pattern analysis, whose best know...',
'topic': 'artificial_learning_intelligence_language',
'topicrank': 99,
'score': 0.8539000749588013}
Puan benzerlik analizinden geliyor ve sıralamanın grafik analizinden farklı olduğunu açıkça görebiliyorsunuz. Her iki yöntemi birleştirerek hem sorguya hem de bağlama göre en alakalı belgeleri bulmak mümkündür.
Sonuçlarda görünen konular da ilgi çekici. Bunlar indeksleme sırasında hesaplandı; süreç oldukça karmaşıktır ve tıpkı yerleştirmelerin hesaplanması gibi, GPU'da CPU'ya göre birkaç kat daha hızlıdır.
RAG'ın son aşaması olan metin oluşturma için de güçlü bir donanıma ihtiyaç vardır. Neuml'un örneği Mistral 7B OpenOrca modelini kullanıyor. Neuml, o kadar güçlü olmayan GPU'larda bile çalıştığından emin olmak için, aktivasyona duyarlı ağırlık nicemleme (AWQ) kullanan alt örneklenmiş bir modeli tercih etti. Bu nedenle üretim hızlıdır ve gerçekler grafikten çıkarılabilir. Wikipedia'lı araç, “Makine Öğrenimi” sorgusunu şu şekilde yanıtlıyor:
Jupyter not defteri parçacıklarına ek olarak neuml, deneme amaçlı GitHub üzerinde bir Streamlit uygulaması da sunuyor. Araç güçlüdür ve aynı zamanda belgelerinizi dizine eklemenizi sağlar.
Duyuru
veri bilimci ve makine öğrenimi mimarıdır. Teorik fizik alanında doktora sahibidir ve 20 yıldır büyük veri ve yapay zeka alanında, toplu metin işlemeye yönelik ölçeklenebilir sistemler ve akıllı algoritmalar üzerine çalışmaktadır. Nürnberg Teknik Üniversitesi'nde profesör olarak araştırması, modern yöntemler kullanarak kullanıcı deneyimini optimize etmeye odaklanıyor. Datanizing GmbH'nin kurucusu, konferans konuşmacısı ve makine öğrenimi ve metin analitiği üzerine makalelerin yazarıdır.
Öncelikle halüsinasyonlar var: Dil modellerinin söylediği her şey her zaman doğru olmuyor. Model belirli bilgileri bilmiyorsa bazılarını ekler. Halüsinasyonlar o kadar ikna edici bir şekilde formüle edilmiş ki, makul görünüyorlar. Lama'nın erken bir versiyonu, Haberler-Verlag'ı kısa sürede CeBIT'in organizatörü haline getirdi. Muhtemelen yayın, BT referansı ve Hannover'deki konum kombinasyonu, o zamanlar dünyanın en büyük bilgisayar fuarı olan model için çok açıktı. İncelikli ifadeler insanı bu tür yanlış bilgilere inanmaya yöneltiyor.
Büyük dil modellerinin eğitimi de son derece karmaşıktır ve birkaç bin GPU yılı hesaplama süresi gerektirebilir. Bu nedenle satıcılar modelleri nadiren yeniden geliştirir. Bu, modellerin mevcut bilgileri bilmediği anlamına gelir. Llama 3.1 gibi nispeten yeni modeller için bile bilgi sınırı olarak adlandırılan sınır geçen yıldı.
Kamusal dil modelleri, bir şirketinki gibi iç bilgilerle ilgili açıklamalar söz konusu olduğunda başarısız oluyor çünkü bu içerik eğitim setinde yer almıyor. Üretken modeller yeniden eğitilebilir (iyileştirilebilir), ancak bu aynı zamanda çok fazla çaba gerektirir (ve eklenen her belge için yeniden yapılmalıdır).
İyi birleştirilmiş: LLM + RAG
Üretken modellerin modern bilgi alma yöntemleriyle birleşimi yardımcı olabilir. Belgeler gömme modelleri kullanılarak indekslenebilir (bunlar aynı zamanda büyük dil modelleri sınıfına da aittir). Benzerlik ölçümlerini kullanarak bir soruyu mümkün olan en iyi şekilde yanıtlayan belgeleri (veya pasajları) bulabilirsiniz. Bu “bağlam” daha sonra sonuçları özetleyen ve bunları soruyla tam olarak eşleştiren üretken bir modele aktarılır.
Alma Artırılmış Üretim (RAG) adı verilen bu tür yöntemler son derece popülerdir. Geçen yıl bu, bilgi erişiminde küçük bir devrimin kıvılcımını ateşledi çünkü çok daha iyi sonuçlar elde edebiliyordu. RAG uygulayan birçok çerçevenin olmasının nedenlerinden biri de budur.
Optimizasyon farklı boyutlarda mümkün olduğundan RAG'ı doğru kullanmak önemsiz değildir. Farklı yerleştirme modelleriyle çalışabilir, farklı yeniden bağlamalar kullanabilir ve farklı üretken modeller kullanabilirsiniz. Doğru kombinasyonu seçmek yeterli deneyim gerektirir.
Ayrıca saf RAG ile bilgileri belgelerden çıkarmak (resmileştirilmiş) ne yazık ki henüz mümkün değildir. Ancak bu faydalı olacaktır çünkü modeller çok daha iyi cevaplar verebilir. Bilgi grafikleri üzerine araştırmalar uzun süredir devam etmektedir. Bu iki fikri birbirine bağlayabilirseniz iyi olur.
GraphRAG ile hiyerarşik erişim
GraphRAG terimi Microsoft'tan gelmektedir ve giriş makalesi, süreci, metin parçaları için tamamen semantik bir aramanın aksine, RAG'a hiyerarşik bir yaklaşım olarak tanımlamaktadır. Bireysel adımlar, bilgi grafiğinin ham metinden çıkarılmasından ve içerik özetleriyle bir topluluk hiyerarşisi oluşturulmasından oluşur. Bu yapılar daha sonra iyileşme için kullanılabilir ve böylece daha iyi yanıtlar formüle edilebilir.
Ancak diğer birçok Microsoft projesinden farklı olarak uygulama gizli kalıyor. Jupyter not defterleri mevcut ancak Azure ve OpenAI'yi yoğun olarak kullanıyorlar ve tüm bilgileri buluta aktarıyorlar. Sınıflarda o kadar çok şey gizli ki, perde arkasında neler olup bittiğini anlamak zor.
Neyse ki alternatif kaynaklar ve uygulamalar var. Neuml'un giriş makalesi tavsiye edilir. Burada olup biteni çok daha net bir şekilde görebilirsiniz. Gömme modeli (intfloat/e5-base) benzerlik sorguları gerçekleştirmenize olanak tanır. Neuml'un Hugging Face aracılığıyla kullanıma sunduğu mevcut Wikipedia yerleştirmeleri veritabanı görevi görüyor. Uygulama bir alt kümeyi (ilk 100.000 makale) indeksler ve bir sorgunun sonucu olarak bir grafik sağlar (burada “makine öğrenimi”):
Neuml aracı, Wikipedia özetlerinden “makine öğrenimi” için bir bilgi grafiği oluşturur (Şekil 1).
(Resim: Christian Winkler)
Şekil 1'in üst kısmındaki düğümlerin, grafiğin geri kalanına göre birbirine çok daha yakından bağlı olması, burada bilgi yoğunluğunun muhtemelen daha yüksek olduğunu göstermektedir.
Grafik Python'da bir NetworkX grafiği olarak modellendiğinden, diğer şeylerin yanı sıra, iki düğüm arasındaki yolu belirlemek veya maksimum merkeziliğe sahip düğümleri belirlemek için yöntemleri de çağrılabilir. Sonuçlara bakıldığında bunların özellikle alakalı Wikipedia sayfaları olduğu ortaya çıkıyor:
{'id': 'Machine learning',
'text': 'Machine learning (ML) is a field of study in artificial intelligence concerned with the development ...',
'topic': 'artificial_learning_intelligence_language',
'topicrank': 2,
'score': 0.9113607406616211}
{'id': 'Supervised learning',
'text': 'Supervised learning (SL) is a paradigm in machine learning where input objects (for example, a vecto...',
'topic': 'artificial_learning_intelligence_language',
'topicrank': 68,
'score': 0.8619827032089233}
{'id': 'Perceptron',
'text': 'In machine learning, the perceptron (or McCulloch–Pitts neuron) is an algorithm for supervised learn...',
'topic': 'artificial_learning_intelligence_language',
'topicrank': 70, 'score': 0.8862747550010681}
{'id': 'Autoencoder',
'text': 'An autoencoder is a type of artificial neural network used to learn efficient codings of unlabeled d...',
'topic': 'artificial_learning_intelligence_language',
'topicrank': 46,
'score': 0.8562962412834167}
{'id': 'Multilayer perceptron',
'text': 'A multilayer perceptron (MLP) is a misnomer for a modern feedforward artificial neural network, cons...',
'topic': 'artificial_learning_intelligence_language',
'topicrank': 89,
'score': 0.8532359004020691}
{'id': 'Unsupervised learning',
'text': 'Unsupervised learning is a paradigm in machine learning where, in contrast to supervised learning an...',
'topic': 'artificial_learning_intelligence_language',
'topicrank': 53,
'score': 0.8743622303009033}
{'id': 'Generative pre-trained transformer',
'text': 'Generative pre-trained transformers (GPT) are a type of large language model (LLM) and a prominent f...',
'topic': 'artificial_learning_intelligence_language',
'topicrank': 5,
'score': 0.8358747363090515}
{'id': 'Convolutional neural network',
'text': 'Convolutional neural network (CNN) is a regularized type of feed-forward neural network that learns ...',
'score': 0.8500866889953613}
{'id': 'Deep learning', 'text':
'Deep learning is the subset of machine learning methods based on artificial neural networks with rep...',
'topic': 'artificial_learning_intelligence_language',
'topicrank': 27,
'score': 0.8632184267044067}
{'id': 'Kernel method',
'text': 'In machine learning, kernel machines are a class of algorithms for pattern analysis, whose best know...',
'topic': 'artificial_learning_intelligence_language',
'topicrank': 99,
'score': 0.8539000749588013}
Puan benzerlik analizinden geliyor ve sıralamanın grafik analizinden farklı olduğunu açıkça görebiliyorsunuz. Her iki yöntemi birleştirerek hem sorguya hem de bağlama göre en alakalı belgeleri bulmak mümkündür.
Sonuçlarda görünen konular da ilgi çekici. Bunlar indeksleme sırasında hesaplandı; süreç oldukça karmaşıktır ve tıpkı yerleştirmelerin hesaplanması gibi, GPU'da CPU'ya göre birkaç kat daha hızlıdır.
RAG'ın son aşaması olan metin oluşturma için de güçlü bir donanıma ihtiyaç vardır. Neuml'un örneği Mistral 7B OpenOrca modelini kullanıyor. Neuml, o kadar güçlü olmayan GPU'larda bile çalıştığından emin olmak için, aktivasyona duyarlı ağırlık nicemleme (AWQ) kullanan alt örneklenmiş bir modeli tercih etti. Bu nedenle üretim hızlıdır ve gerçekler grafikten çıkarılabilir. Wikipedia'lı araç, “Makine Öğrenimi” sorgusunu şu şekilde yanıtlıyor:
- Makine öğrenimi, verilerden öğrenebilen ve görünmeyen verilere genelleştirebilen istatistiksel algoritmalar geliştirmeye odaklanan yapay zeka alanında bir çalışma alanıdır.
- Üretken yapay sinir ağları, performans açısından önceki birçok yaklaşımı geride bırakmıştır.
- Makine öğrenimi algoritmaları, eğitim verilerinde mevcut olan önyargıları devralmaya ve güçlendirmeye karşı hassastır; bu durum, farklı demografik grupların önyargılı temsilleri veya adil olmayan şekilde ele alınmasıyla ortaya çıkabilir.
- Denetimli öğrenme, girdi nesnelerinin ve istenen çıktı değerinin bir modeli eğittiği, algoritmanın görünmeyen örnekler için çıktı değerlerini doğru şekilde belirlemesine olanak tanıyan, makine öğreniminde bir paradigmadır.
- Otomatik kodlayıcı, denetimsiz öğrenme, etiketlenmemiş verilerin verimli kodlamalarını öğrenme ve boyut azaltma için kullanılan bir tür yapay sinir ağıdır.
Jupyter not defteri parçacıklarına ek olarak neuml, deneme amaçlı GitHub üzerinde bir Streamlit uygulaması da sunuyor. Araç güçlüdür ve aynı zamanda belgelerinizi dizine eklemenizi sağlar.