Alma-Artırılmış Nesil (RAG) deseni, büyük dil modeli tarafından henüz bilinmeyen belirli veya özel veriler üzerinde mantık oluşturmak için büyük dil modelleri kullanan uygulamalar oluşturmaya yönelik endüstri standardı bir yaklaşımdır. Mimari basit olsa da, bu mimariye uygun RAG çözümlerini tasarlamak, denemek ve değerlendirmek, katı ve bilimsel bir yaklaşımdan yararlanan birçok karmaşık nokta içerir.
Bu kılavuz bir dizi olarak sunulmuştur. Serideki her makale RAG çözümleri tasarlamanın belirli bir aşamasını kapsar.
Bu kılavuzdaki makalelerde dikkat edilmesi gerekenler şunlardır:
- Değerlendirme sırasında hangi test belgelerinin ve sorguların kullanılacağını belirleme
- Öbekleme stratejisi seçme
- Öbekleri ne ve nasıl zenginleştirmeniz gerektiğini belirleme
- Doğru ekleme modelini seçme
- Arama dizinini yapılandırmayı belirleme
- Hangi aramaları yapmak istediğinizi belirleme: vektör, tam metin, karma, el ile çoklu
- Her adımı değerlendirme
Bu kılavuzdaki makaleler tüm bu konuları ele alır.
RAG Mimarisi
Şekil 1. Üst düzey RAG mimarisi
RAG uygulama akışı
Aşağıda, RAG uygulaması için üst düzey bir akış yer alır.
- Kullanıcı, akıllı uygulama kullanıcı arabiriminde bir sorgu oluşturur.
- Akıllı uygulama bir düzenleyiciye API çağrısı yapar. Düzenleyici Semantik Çekirdek, Azure Machine Learning istem akışı veya LangChain gibi araçlar veya platformlarla uygulanabilir.
- Düzenleyici, Azure AI Search'te hangi aramanın gerçekleştirileceğini belirler ve sorguyu düzenler.
- Düzenleyici sorgudan en iyi N sonuçlarını paketler, bunları sorguyla birlikte bir istem içinde bağlam olarak paketler ve istemi büyük dil modeline gönderir. Düzenleyici, kullanıcının okuması için akıllı uygulamaya yanıtı döndürür.
RAG veri işlem hattı akışı
Aşağıda, RAG uygulaması için topraklama verileri sağlayan bir veri işlem hattı için üst düzey akış yer alır.
Belgeler bir veri işlem hattına gönderilir veya çekilir.
Veri işlem hattı, aşağıdaki adımlarla her belgeyi ayrı ayrı işler:
- Öbek belgesi - Belgeyi ideal olarak tek bir fikri veya kavramı olan, anlamlı olarak ilgili bölümlere ayırın.
- Öbekleri zenginleştirme - Öbeklerdeki içerikten oluşturulan meta veri alanlarını başlık, özet ve anahtar sözcükler gibi ayrık alanlara ekler.
- Öbekleri ekleme - Öbekleri ve vektör aramaları için kullanılan diğer meta veri alanlarını vektörleştirmek için bir ekleme modeli kullanır.
- Öbekleri kalıcı hale gelir - Öbekleri arama dizininde depolar.
RAG tasarımı ve değerlendirmesinde dikkat edilmesi gerekenler
RAG çözümünüzü tasarlarken almanız gereken çeşitli uygulama kararları vardır. Aşağıdaki şekilde bu kararlardan bazıları gösterilmektedir.
Şekil 2. RAG çözümü tasarlarken ortaya çıkan sorular
Bu kılavuzdaki makale serisi, bu konuları ve daha fazlasını ele alır.
- Çözüm etki alanını belirleme - RAG çözümü için iş gereksinimlerini açıkça tanımlamanın önemini tartışmaktadır
- Temsili test belgelerini toplama - RAG çözümünüz için corpus'unuzu temsil eden test belgelerini toplama konusunda dikkat edilmesi gereken noktaları ve yönergeleri tartışın.
- Test sorgularını toplama - Test sorgularınızla birlikte hangi bilgileri toplamanız gerektiğini açıklar, belgelerinizin kapsamaması için yapay sorgular ve sorgular oluşturma konusunda rehberlik sağlar.
- Öbekleme ekonomisini anlama - Metin corpus'unuz için öbekleme çözümünüzün genel maliyetine bakarken göz önünde bulundurmanız gereken faktörleri ele alır
- Belge analizi gerçekleştirme - Belgede yoksaymak veya dışlamak istediğiniz öğeleri, öbekler halinde yakalamak istediklerinizi ve nasıl öbek oluşturmak istediğinizi belirlemenize yardımcı olan bir belge türünü çözümlerken sorabileceğiniz soruların listesini sağlar
- Öbekleme yaklaşımlarını anlama - Makine öğrenmesi modellerini kullanarak cümle tabanlı, sabit boyutlu, özel, büyük dil modeli büyütme, belge düzeni analizi gibi öbekleme yaklaşımlarını özetler
- Belge yapısının öbek oluşturmayı nasıl etkilediğini anlama - Bir belgenin yapı derecesinin öbekleme yaklaşımı için seçiminizi nasıl etkilediğini açıklar
- Temiz öbekler - Metnin semantiğine malzeme olmayan olası farklılıkları ortadan kaldırarak yakınlık eşleşmelerini desteklemek için uygulayabileceğiniz farklı temizleme yaklaşımlarını ele alınmaktadır
- Öbekleri artırma - Öbek verilerinizi artırmayı göz önünde bulundurmanız gereken bazı yaygın meta veri alanlarını ve bunların aramadaki olası kullanımları ve meta veri içeriğini oluşturmak için yaygın olarak kullanılan araçlar veya teknikler hakkında bazı kılavuzları ele alır
- Ekleme modelinin önemini anlama - Ekleme modelinin vektör arama sonuçlarınızın ilgisi üzerinde nasıl önemli bir etkisi olabileceğini açıklar
- Ekleme modeli seçme - Ekleme modeli seçme konusunda rehberlik sağlar
- Ekleme modellerini değerlendirme - Ekleme modelini değerlendirmenin iki aracı açıklanır: eklemeleri görselleştirme ve ekleme uzaklıklarını hesaplama
- Arama dizini oluşturma - Vektör alanları için geçerli olan vektör arama yapılandırması için yapmanız gereken bazı önemli kararları ele alır
- Arama seçeneklerini anlama - Vektör, tam metin, karma ve el ile çoklu arama gibi göz önünde bulundurabileceğiniz arama türlerine genel bir bakış sağlar. Sorguyu alt sorgulara bölme, sorguları filtreleme konusunda rehberlik sağlar
- Aramaları değerlendirme - Arama çözümünüzü değerlendirme konusunda rehberlik sağlar
Büyük dil modeli uçtan uca değerlendirme aşaması
- Büyük dil modeli değerlendirme ölçümlerini anlama - Temellilik, eksiksizlik, kullanım ve ilgililik dahil olmak üzere büyük dil modelleri yanıtını değerlendirmek için kullanabileceğiniz çeşitli ölçümlere genel bakış sağlar
- Benzerlik ve değerlendirme ölçümlerini anlama - RAG çözümünüzü değerlendirirken kullanabileceğiniz benzerlik ve değerlendirme ölçümlerinin küçük bir listesini sağlar
- Belgelerin, raporlamanın ve toplamanın önemini anlama - Değerlendirme sonuçlarıyla birlikte hiper parametreleri belgelemenin, birden çok sorgudan sonuçları toplamanın ve sonuçları görselleştirmenin önemini tartışmaktadır
- RAG Deneme Hızlandırıcısı - RAG Deneme Hızlandırıcısı GitHub deposunun, ekiplerin birden çok deneme çalıştırarak, kalıcı hale gelip sonuçları değerlendirerek RAG uygulaması için en iyi stratejileri bulmasına yardımcı olmak için nasıl kullanılabileceğini giderir
Yapılandırılmış yaklaşım
Adım ve değişken sayısı nedeniyle RAG çözümünüzü yapılandırılmış bir değerlendirme süreciyle tasarlamak önemlidir. Her adımın sonuçlarını değerlendirin ve gereksinimlerinize göre uyarlayın. İyileştirme için her adımı bağımsız olarak değerlendirmeniz gerekir ancak sonuç, kullanıcılarınız tarafından yaşanacak sonuçlardır. Her bir adım için kendi kabul ölçütlerinizi belirlemeden önce bu süreçteki tüm adımları anladığınızdan emin olun.