Aracılığıyla paylaş


Gelişmiş Alma-Artırılmış Nesil sistemleri oluşturma

Önceki makalede , işletmelerde yapay zeka oluşturmaya yönelik prömiyer kullanım örneklerinden biri olan "verileriniz üzerinden sohbet" uygulaması oluşturmaya yönelik iki seçenek ele alınmaktadır:

  • Büyük Dil Modeli (LLM) eğitimini, kullanıcıların sorgularıyla benzerlik temelinde alınabilen ve tamamlanması için LLM'ye geçirilebilen aranabilir makalelerden oluşan bir veritabanıyla tamamlayan alma artırılmış nesil (RAG).
  • Sorunlu etki alanı hakkında daha fazla bilgi edinmek için LLM'nin eğitimini genişleten ince ayar.

Önceki makalede, her yaklaşımın ne zaman kullanılacağı, her yaklaşımın profesyonelleri ve eksileri ve diğer birçok önemli nokta da ele alınmıştı.

Bu makalede RAG, özellikle üretime hazır bir çözüm oluşturmak için gereken tüm çalışmalar daha ayrıntılı bir şekilde inceleniyor.

Önceki makalede aşağıdaki diyagram kullanılarak RAG'nin adımları veya aşamaları gösterilmiştir.

Her kutuyu bağlayan adımları veya işlemleri ve okları temsil eden kutularla birlikte basit bir RAG akışını gösteren diyagram. Akış, kullanıcının sorgusuyla başlar. Ardından, sorgu Ekleme API'sine gönderilir ve sonuç olarak vektörleştirilmiş bir sorgu elde edilir. Bu sorgu, vektör veritabanında makale öbeklerini alan en yakın eşleşmeleri bulmak için kullanılır ve sorgu ve makale öbekleri Tamamlama API'sine gönderilir ve sonuçlar kullanıcıya gönderilir.

Bu tasvir "saf RAG" olarak adlandırılır ve RAG tabanlı bir sohbet sistemi uygulamak için gereken mekanizmaları, rolleri ve sorumlulukları anlamanın yararlı bir yoludur.

Ancak daha gerçek bir uygulama, makaleleri, sorguları ve yanıtları kullanıma hazırlamak için daha birçok ön ve son işleme adımına sahiptir. Aşağıdaki diyagram, bazen "gelişmiş RAG" olarak da adlandırılan RAG'nin daha gerçekçi bir gösterimidir.

Mantıksal gelişmiş RAG akışını aralarında oklar bulunan bir dizi kutu olarak gösteren diyagram. Kullanıcının sorgusuyla başlayan 10 kutu vardır. Daha sonra sorgu işleme adımları, ardından Ekleme API'sine yapılan bir çağrı, ardından sonuçta elde edilen sorguyu vektör olarak sorgulayarak en yakın eşleşmeyi bulmak için vektör veritabanı kullanılır, sonra makale öbekleri olarak alınır, sonra alma sonrası işleme adımları, işlenen sorgu ve işlenen makale öbekleri Tamamlama API'sine gönderilir, ardından tamamlama sonrası işleme adımları gönderilir.  ve son olarak kullanıcıya bir yanıt teslim edildi.

Bu makale, gerçek dünya RAG tabanlı bir sohbet sisteminde ön ve son işleme endişelerinin türlerini anlamak için aşağıdaki gibi düzenlenmiş kavramsal bir çerçeve sağlar:

  • Alma aşaması
  • Çıkarım İşlem Hattı aşaması
  • Değerlendirme aşaması

Kavramsal bir genel bakış olarak anahtar sözcükler ve fikirler bağlam olarak ve daha fazla araştırma ve araştırma için bir başlangıç noktası olarak sağlanır.

Alım

Alım öncelikli olarak kuruluşunuzun belgelerini bir kullanıcının sorusunu yanıtlamak için kolayca alınabilecek şekilde depolamakla ilgilidir. Zorluk, belgelerin kullanıcı sorgusuyla en iyi eşleşen bölümlerinin çıkarım sırasında bulunduğundan ve kullanıldığından emin olmaktır. Eşleştirme öncelikli olarak vektörleştirilmiş eklemeler ve kosinüs benzerliği araması yoluyla gerçekleştirilir. Ancak, içeriğin (desenler, form, vb.) ve veri düzenleme stratejisinin (vektör veritabanında depolandığında verilerin yapısı) doğası anlaşılarak kolaylaştırılır.

Bu amaçla geliştiricilerin aşağıdaki adımları dikkate almaları gerekir:

  • İçerik ön işleme ve ayıklama
  • Öbekleme stratejisi
  • Kuruluş öbekleme
  • Güncelleştirme stratejisi

İçerik ön işleme ve ayıklama

Temiz ve doğru içerik, RAG tabanlı sohbet sisteminin genel kalitesini artırmanın en iyi yollarından biridir. Bunu başarmak için geliştiricilerin dizine eklenecek belgelerin şeklini ve biçimini analiz ederek başlaması gerekir. Belgeler, belgeler gibi belirtilen içerik desenlerine uygun mu? Aksi takdirde, belgeler hangi tür soruları yanıtlayabilir?

Geliştiriciler en azından alma işlem hattında aşağıdaki adımları oluşturmalıdır:

  • Metin biçimlerini standartlaştırma
  • Özel karakterleri işleme
  • İlişkisiz, güncel olmayan içeriği kaldırma
  • Sürümlenmiş içerik için hesap
  • İçerik deneyimi için hesap oluşturma (sekmeler, resimler, tablolar)
  • Meta verileri ayıklama

Bu bilgilerden bazıları (örneğin meta veriler) çıkarma işlem hattındaki alma ve değerlendirme işlemi sırasında kullanılmak üzere vektör veritabanında belgeyle birlikte tutulabilir veya öbeğin vektör eklemesini ikna etmek için metin öbeğiyle birleştirilebilir.

Öbekleme stratejisi

Geliştiricilerin daha uzun bir belgeyi daha küçük parçalara nasıl ayıracaklarına karar vermesi gerekir. Bu, kullanıcının sorgusunu doğru bir şekilde yanıtlamak için LLM'ye gönderilen ek içeriğin ilgi düzeyini artırabilir. Ayrıca, geliştiricilerin alma sırasında öbekleri nasıl kullanacaklarını da düşünmeleri gerekir. Bu, sistem tasarımcılarının sektörde kullanılan teknikler üzerinde biraz araştırma yapması ve bazı denemeler yapması, hatta kuruluşlarında sınırlı bir kapasitede test etmesi gereken bir alandır.

Geliştiricilerin dikkate alması gerekenler:

  • Öbek boyutu iyileştirmesi - Öbek için ideal boyutun ne olduğunu ve öbeklerin nasıl belirleneceğini belirleyin. Bölüme göre mi? Paragrafa göre mi? Cümleyle mi?
  • Örtüşen ve kayan pencere öbekleri - İçeriğin ayrık öbeklere nasıl bölüneceğini belirleyin. Yoksa öbekler çakışacak mı? Ya da her ikisi (kayan pencere)?
  • Small2Big - Tek bir cümle gibi ayrıntılı bir düzeyde öbeklenirken, içerik komşu cümleleri veya paragrafı kolayca bulabileceğiniz şekilde mi düzenlenecek? (Bkz. "Kuruluş öbekleme.") Bu ek bilgilerin alınması ve LLM'ye sağlanması, kullanıcının sorgusunu yanıtlarken daha fazla bağlam sağlayabilir.

Kuruluş öbekleme

RAG sisteminde, vektör veritabanındaki verilerin düzenlenmesi, oluşturma sürecini artırmak için ilgili bilgilerin verimli bir şekilde alınması için çok önemlidir. Geliştiricilerin göz önünde bulundurabileceği dizin oluşturma ve alma stratejileri türleri şunlardır:

  • Hiyerarşik Dizinler - Bu yaklaşım, en üst düzey dizinin (özet dizin) arama alanını hızla ilgili olabilecek öbeklerin bir alt kümesine daralttığı ve ikinci düzey dizinin (öbek dizini) gerçek verilere daha ayrıntılı işaretçiler sağladığı birden çok dizin katmanı oluşturmayı içerir. Bu yöntem, önce özet dizini filtreleyerek ayrıntılı dizinde taranacak girdi sayısını azalttığı için alma işlemini önemli ölçüde hızlandırabilir.
  • Özel Dizinler - Graf tabanlı veya ilişkisel veritabanları gibi özel dizinler, verilerin doğasına ve öbekler arasındaki ilişkilere bağlı olarak kullanılabilir. Örneğin:
    • Graf tabanlı dizinler , öbeklerin alıntı ağları veya bilgi grafikleri gibi alma işlemini geliştirebilecek birbirine bağlı bilgilere veya ilişkilere sahip olması halinde yararlıdır.
    • Öbekler, sql sorgularının belirli özniteliklere veya ilişkilere göre verileri filtrelemek ve almak için kullanılabildiği tablo biçiminde yapılandırılmışsa ilişkisel veritabanları etkili olabilir.
  • Karma Dizinler - Karma yaklaşım, her birinin güçlü yönlerini uygulamak için birden çok dizin oluşturma stratejisini birleştirir. Örneğin, geliştiriciler ilk filtreleme için hiyerarşik dizin ve alma sırasında öbekler arasındaki ilişkileri dinamik olarak keşfetmek için graf tabanlı dizin kullanabilir.

Hizalama iyileştirmesi

Alınan öbeklerin ilgi ve doğruluğunu geliştirmek için, bunları yanıtlamak istedikleri soru veya sorgu türleriyle yakın bir şekilde hizalayın. Bunu gerçekleştirmeye yönelik stratejilerden biri, öbeklerin yanıtlamak için en uygun olduğu soruyu temsil eden her öbek için varsayımsal bir soru oluşturmak ve eklemektir. Bu, çeşitli yollarla yardımcı olur:

  • Geliştirilmiş Eşleştirme: Alma sırasında sistem gelen sorguyu bu varsayımsal sorularla karşılaştırarak en iyi eşleşmeyi bulabilir ve getirilen öbeklerin ilgi düzeyini artırır.
  • Makine Öğrenmesi Modelleri için Eğitim Verileri: Bu soru ve öbek eşleştirmeleri, RAG sisteminin temel aldığı makine öğrenmesi modellerini geliştirmek için eğitim verileri görevi görebilir ve hangi tür soruların hangi öbekler tarafından en iyi şekilde yanıtlanabileceğini öğrenmesine yardımcı olabilir.
  • Doğrudan Sorgu İşleme: Gerçek bir kullanıcı sorgusu varsayımsal bir soruyla yakından eşleşiyorsa, sistem karşılık gelen öbekleri hızla alıp kullanarak yanıt süresini hızlandırabilir.

Her öbek varsayımsal sorusu, alma algoritmasına yol gösteren ve daha odaklanmış ve bağlamsal olarak farkında hale getiren bir "etiket" gibi davranır. Bu, öbeklerin çok çeşitli bilgi konularını veya türlerini kapsadığı senaryolarda kullanışlıdır.

Güncelleştirme stratejileri

Kuruluşunuzun sık güncelleştirilen belgeleri dizine alması gerekiyorsa, retriever bileşeninin (vektör veritabanında sorguyu gerçekleştirmek ve sonuçları döndürmekten sorumlu sistemdeki mantık) en güncel bilgilere erişebilmesini sağlamak için güncelleştirilmiş bir corpus bulundurmak önemlidir. Bu tür sistemlerde vektör veritabanını güncelleştirmeye yönelik bazı stratejiler şunlardır:

  • Artımlı güncelleştirmeler:
    • Düzenli aralıklar: Belge değişikliklerinin sıklığına bağlı olarak güncelleştirmeleri düzenli aralıklarla (örneğin, günlük, haftalık) zamanlayın. Bu yöntem, veritabanının düzenli aralıklarla yenilenmesini sağlar.
    • Tetikleyici tabanlı güncelleştirmeler: Güncelleştirmelerin yeniden dizin oluşturmayı tetiklediği bir sistem uygulayın. Örneğin, bir belgenin değiştirilmesi veya eklenmesi, etkilenen bölümlerin yeniden dizine eklenmesini otomatik olarak başlatabilir.
  • Kısmi güncelleştirmeler:
    • Seçmeli yeniden dizin oluşturma: Tüm veritabanı yeniden dizinleme yerine yalnızca değiştirilen corpus bölümlerini seçmeli olarak güncelleştirin. Bu yaklaşım, özellikle büyük veri kümeleri için tam yeniden dizinlemeden daha verimli olabilir.
    • Delta kodlama: Yalnızca mevcut belgelerle güncelleştirilmiş sürümleri arasındaki farkları depolayın. Bu yaklaşım, değişmemiş verileri işleme gereksinimini ortadan kaldırarak veri işleme yükünü azaltır.
  • Sürüm Oluşturma:
    • Anlık görüntü oluşturma: Belge corpus sürümlerini zaman içinde farklı noktalarda koruyun. Bu teknik bir yedekleme mekanizması sağlar ve sistemin önceki sürümleri geri döndürmesine veya bunlara başvurmasına olanak tanır.
    • Belge sürümü denetimi: Değişiklik geçmişini korumak ve güncelleştirme işlemini basitleştirmek için belge değişikliklerini sistematik olarak izlemek için bir sürüm denetim sistemi kullanın.
  • Gerçek zamanlı güncelleştirmeler:
    • Akış işleme: Bilgilerin güncelliği kritik olduğunda, belge değişiklikleri yapılırken gerçek zamanlı vektör veritabanı güncelleştirmeleri için akış işleme teknolojilerini kullanabilir.
    • Canlı sorgulama: Yalnızca önceden dizinlenmiş vektörlere güvenmek yerine, güncel yanıtlar için büyük olasılıkla önbelleğe alınmış sonuçlarla birleştirerek verimlilik için bir canlı veri sorgu mekanizması uygulayın.
  • İyileştirme teknikleri:
    • Toplu işlem: Sık güncelleştirmeler yerine kaynak iyileştirme ve ek yük azaltma için toplu işlem birikmiş değişiklikleri işler.

    • Karma yaklaşımlar: Aşağıdakiler gibi çeşitli stratejileri birleştirin:

      • Küçük değişiklikler için artımlı güncelleştirmeleri kullanma.
      • Önemli güncelleştirmeler için tam yeniden dizinleme.
      • Belge corpus yapısal değişiklikleri.

Doğru güncelleştirme stratejisini veya birleşimini seçmek, aşağıdakiler gibi belirli gereksinimlere bağlıdır:

  • Belge corpus boyutu.

  • Güncelleştirme sıklığı.

  • Gerçek zamanlı veri gereksinimleri.

  • Kaynak kullanılabilirliği.

  • Her yaklaşımın karmaşıklığı, maliyeti ve güncelleştirme gecikme süresi dengeleri olduğundan bu faktörleri belirli uygulama gereksinimlerine göre değerlendirin.

Çıkarım işlem hattı

Makaleler öbeklendiğine, vektörleştirildiğine ve bir vektör veritabanında depolandığına göre, odak tamamlama zorluklarına dönüşür.

  • Kullanıcının sorgusu, kullanıcının aradığı sistemden sonuçları almak için böyle bir şekilde mi yazıldı?
  • Kullanıcının sorgusu ilkelerimizden herhangi birini ihlal eder mi?
  • Vektör veritabanında en yakın eşleşmeleri bulma şansını artırmak için kullanıcının sorgusunu nasıl yeniden yazabiliriz?
  • Makale öbeklerinin sorguya hizalanmasını sağlamak için sorgu sonuçlarını nasıl değerlendiririz?
  • En ilgili ayrıntıların LLM'nin tamamlanmasına dahil edildiğinden emin olmak için sorgu sonuçlarını LLM'ye geçirmeden önce nasıl değerlendirir ve değiştiririz?
  • LLM'nin tamamlama işleminin kullanıcının özgün sorgusunu yanıtlamasını sağlamak için LLM'nin yanıtını nasıl değerlendiririz?
  • LLM'nin yanıtının ilkelerimize uygun olduğundan nasıl emin oluruz?

Gördüğünüz gibi, geliştiricilerin dikkate alması gereken birçok görev vardır, çoğunlukla şu şekildedir:

  • İstenen sonuçları alma olasılığını iyileştirmek için girişleri önceden işleme
  • İstenen sonuçları elde etmek için işlem sonrası çıkışlar

Çıkarım işlem hattının tamamı gerçek zamanlı olarak çalışıyor. İşlem öncesi ve sonrası adım tasarımı için doğru bir yol olmasa da, büyük olasılıkla programlama mantığı ve diğer LLM çağrılarının birleşimidir. En önemli noktalardan biri, mümkün olan en doğru ve uyumlu işlem hattını oluşturma ile bunu gerçekleştirmek için gereken maliyet ve gecikme süresi arasındaki dengedir.

Şimdi her aşamada belirli stratejileri belirleyelim.

Ön işleme adımlarını sorgulama

Sorgu ön işlemesi, kullanıcınız sorgusunu gönderdikten hemen sonra, bu diyagramda gösterildiği gibi gerçekleşir:

Sorgu işleme adımları etiketli kutuya vurgu yaparak gelişmiş RAG adımlarını tekrarlayan diyagram.

Bu adımların amacı, kullanıcının sistemimiz kapsamında sorular sorduğundan emin olmak (ve sistemi istenmeyen bir şey yapmak için "jailbreak" yapmaya çalışmadığından) ve kosinüs benzerliği / "en yakın komşu" aramasını kullanarak mümkün olan en iyi makale öbeklerini bulma olasılığını artırmak için kullanıcının sorgusunu hazırlamaktır.

İlke denetimi - Bu adım belirli içeriği tanımlayan, kaldıran, bayraklayan veya reddeden mantığı içerir. Bazı örnekler kişisel verileri kaldırmayı, ifadeleri kaldırmayı ve "jailbreak" girişimlerini tanımlamayı içerebilir. Jailbreak , kullanıcıların modelin yerleşik güvenlik, etik veya operasyonel yönergelerini aşmak veya yönlendirmek için kullanabilecekleri yöntemleri ifade eder.

Sorgu yeniden yazma - Bu adım, kısaltmaları genişletme ve argoyu kaldırmadan soruyu daha soyut bir şekilde sorarak üst düzey kavram ve ilkeleri ayıklamaya ("geri adımla istem") kadar her şey olabilir.

Geri adım sorulduğunda bir çeşitleme, kullanıcının sorusunu yanıtlamak için LLM'yi kullanan, bu yanıt için bir ekleme oluşturan (varsayımsal belge ekleme) ve vektör veritabanında arama yapmak için bu eklemeyi kullanan varsayımsal belge eklemeleridir (HyDE).

Alt Sorgular

Bu işleme adımı özgün sorguyla ilgilidir. Özgün sorgu uzun ve karmaşıksa, program aracılığıyla birkaç küçük sorguya bölmek ve ardından tüm yanıtları birleştirmek yararlı olabilir.

Örneğin, fizikteki bilimsel keşiflerle ilgili bir soru şu olabilir: "Modern fiziğe kim daha önemli katkılar yaptı, Albert Einstein veya Niels Bohr?"

Karmaşık sorguları alt sorgulara ayırmak onları daha yönetilebilir hale getirir:

  1. Subquery 1: "Albert Einstein'ın modern fiziğe önemli katkıları nelerdir?"
  2. Subquery 2: "Niels Bohr'un modern fiziğe önemli katkıları nelerdir?"

Bu alt sorguların sonuçları her fizikçinin başlıca teorilerini ve keşiflerini ayrıntılı olarak açıklar. Örneğin:

  • Einstein için katkılar görelilik teorisini, fotoelektrik etkiyi ve E=mc^2'yi içerebilir.
  • Bohr için katkılar arasında hidrojen atomu modeli, kuantum mekaniğiyle ilgili çalışmaları ve tamamlayıcılık ilkesi yer alabilir.

Bu katkılar özetlendikten sonra şunları belirlemek için değerlendirilebilir:

  1. Subquery 3: "Einstein'ın teorileri modern fiziğin gelişimini nasıl etkiledi?"

  2. Subquery 4: "Bohr'un teorileri modern fiziğin gelişimini nasıl etkiledi?"

Bu alt sorgular, her bilim insanının fizik üzerindeki etkisini inceler, örneğin:

  • Einstein'ın teorileri kozmoloji ve kuantum teorisinde ilerlemelere nasıl yol açtı?
  • Bohr'un çalışmaları atomik yapı ve kuantum mekaniğinin anlaşılmasına nasıl katkıda bulunmuştur.

Bu alt sorguların sonuçlarının birleştirilmesi, dil modelinin teorik ilerlemelerine bağlı olarak modern fiziğe kimin daha önemli katkılar yaptığı konusunda daha kapsamlı bir yanıt oluşturmasına yardımcı olabilir. Bu yöntem, daha belirgin, yanıtlanabilir bileşenlerle ilgilenerek ve ardından bu bulguları tutarlı bir yanıt olarak sentezleyerek özgün karmaşık sorguyu basitleştirir.

Sorgu yönlendiricisi

Kuruluşunuzun içerik corpus'unu birden çok vektör deposuna veya tüm alma sistemlerine bölmeye karar verme olasılığı vardır. Bu durumda geliştiriciler, sağlanan sorguya göre hangi dizinlerin veya alma altyapılarının kullanılacağını akıllı bir şekilde belirleyen bir mekanizma olan bir sorgu yönlendiricisi kullanabilir. Sorgu yönlendiricisinin birincil işlevi, belirli bir sorguya en iyi yanıtları sağlayabilecek en uygun veritabanı veya dizini seçerek bilgilerin alınmasını iyileştirmektir.

Sorgu yönlendiricisi genellikle kullanıcı sorguyu formüle ettikten sonra ancak alma sistemlerine göndermeden önce çalışır. Basitleştirilmiş bir iş akışı aşağıdadır:

  1. Sorgu Analizi: LLM veya başka bir bileşen gelen sorguyu analiz ederek içeriğini, bağlamını ve büyük olasılıkla gerekli olan bilgi türünü anlar.
  2. Dizin Seçimi: Analize bağlı olarak, sorgu yönlendiricisi olası birkaç kullanılabilir dizinden bir veya daha fazlasını seçer. Her dizin farklı veri veya sorgu türleri için iyileştirilebilir; örneğin, bazıları olgusal sorgular için daha uygun olabilirken, diğerleri görüş veya öznel içerik sağlama konusunda başarılı olabilir.
  3. Sorgu Gönderme: Sorgu daha sonra seçili dizine gönderilir.
  4. Sonuç Toplama: Seçilen dizinlerden gelen yanıtlar alınır ve kapsamlı bir yanıt oluşturmak için büyük olasılıkla toplanır veya daha fazla işlenir.
  5. Yanıt Oluşturma: Son adım, alınan bilgilere göre tutarlı bir yanıt oluşturmayı, büyük olasılıkla birden çok kaynaktan içeriği tümleştirmeyi veya sentezleyi içerir.

Kuruluşunuz aşağıdaki kullanım örnekleri için birden çok alma motoru veya dizini kullanabilir:

  • Veri Türü Uzmanlığı: Bazı dizinler haber makalelerinde, bazıları akademik makalelerde ve diğerleri genel web içeriğinde veya tıbbi veya yasal bilgiler için olanlar gibi belirli veritabanlarında uzmanlaşabilir.
  • Sorgu Türü İyileştirme: Bazı dizinler hızlı olgusal aramalar (örneğin tarihler, olaylar) için iyileştirilebilirken, diğerleri karmaşık mantık yürütme görevleri veya derin etki alanı bilgisi gerektiren sorgular için daha iyi olabilir.
  • Algoritmik Farklılıklar: Vektör tabanlı benzerlik aramaları, geleneksel anahtar sözcük tabanlı aramalar veya daha gelişmiş anlamsal anlama modelleri gibi farklı altyapılarda farklı alma algoritmaları kullanılabilir.

Tıbbi danışmanlık bağlamında kullanılan RAG tabanlı bir sistem düşünün. Sistemin birden çok dizine erişimi vardır:

  • Ayrıntılı ve teknik açıklamalar için iyileştirilmiş bir tıbbi araştırma kağıt dizini.
  • Belirtilerin ve tedavilerin gerçek dünya örneklerini sağlayan bir klinik örnek olay incelemesi dizini.
  • Temel sorgular ve genel sistem durumu bilgileri için genel sistem durumu bilgileri dizini.

Bir kullanıcı yeni bir ilacın biyokimyasal etkileri hakkında teknik bir soru sorarsa, sorgu yönlendiricisi derinliği ve teknik odağı nedeniyle tıbbi araştırma kağıt dizinine öncelik verebilir. Bununla birlikte, yaygın bir hastalığın tipik belirtileri hakkında bir soru için, genel sağlık dizini geniş ve kolay anlaşılır içeriği için seçilebilir.

Alma sonrası işleme adımları

Alma sonrası işleme, retriever bileşeni diyagramda gösterildiği gibi vektör veritabanından ilgili içerik öbeklerini aldıktan sonra gerçekleşir:

Gelişmiş RAG adımlarını, alma sonrası işleme adımları etiketli kutuya vurgu yaparak tekrarlayan diyagram.

Aday içerik öbekleri alındığında sonraki adımlar, LLM istemini LLM'ye sunulmaya hazırlamadan önce artırılırken makale öbeği kullanışlılığını doğrulamaktır.

Geliştiricilerin çeşitli istem yönlerini dikkate alması gerekir:

  • Çok fazla ek bilgi dahil olmak, en önemli bilgilerin yoksayılmasıyla sonuçlanabilir.
  • ilgisiz bilgiler dahil olmak, yanıtı olumsuz etkileyebilir.

Bir diğer önemli nokta ise , bir istem başında ve sonundaki içeriğin LLM'de ortadaki içerikten daha fazla ağırlıkta olduğu bazı LLM'lerin bilinen ilginçliğini ifade eden bir terim olan samanlık sorunundaki iğnedir.

Son olarak, LLM'nin maksimum bağlam penceresi uzunluğu ve olağanüstü uzun istemleri tamamlamak için gereken belirteç sayısı (özellikle büyük ölçekteki sorgularla ilgilenirken) dikkate alınmalıdır.

Bu sorunlarla başa çıkmak için, alma sonrası işlem hattı aşağıdaki adımları içerebilir:

  • Sonuçları filtreleme - Bu adımda, geliştiriciler vektör veritabanı tarafından döndürülen makale öbeklerinin sorguyla ilgili olduğundan emin olur. Aksi takdirde, LLM istemi oluşturulurken sonuç yoksayılır.
  • Yeniden derecelendirme - İlgili ayrıntıların istemin kenarlarına (başlangıç ve bitiş) yakın olduğundan emin olmak için vektör deposundan alınan makale öbeklerini sıralayın.
  • İstem sıkıştırması - LLM'ye göndermeden önce birden çok makale öbeği sıkıştırmak ve tek bir sıkıştırılmış istem halinde özetlemek için küçük, ucuz bir model kullanın.

Tamamlama sonrası işleme adımları

Tamamlama sonrası işleme, aşağıdaki diyagramda gösterildiği gibi kullanıcının sorgusu ve tüm içerik öbekleri LLM'ye gönderildikten sonra gerçekleşir:

Gelişmiş RAG adımlarını tamamlama sonrası işleme adımları etiketli kutuya vurgu yaparak tekrarlayan diyagram.

Doğruluk doğrulaması, LLM tarafından istem tamamlandıktan sonra gerçekleşir. Tamamlama sonrası işlem hattı aşağıdaki adımları içerebilir:

  • Olgu denetimi - Amaç, makalede yapılan ve olgu olarak sunulan belirli talepleri belirlemek ve ardından bu olguların doğruluğunu denetlemektir. Olgu denetimi adımı başarısız olursa, daha iyi bir yanıt umuduyla LLM'yi yeniden sorgulamak veya kullanıcıya bir hata iletisi döndürmek uygun olabilir.
  • İlke denetimi - Yanıtların kullanıcıya veya kuruluşa zararlı içerik içermediğinden emin olmak için son savunma hattıdır.

Değerlendirme

Belirsiz bir sistemin sonuçlarını değerlendirmek, çoğu geliştiricinin aşina olduğu birim veya tümleştirme testleri kadar basit değildir. Dikkate alınması gereken birkaç faktör vardır:

  • Kullanıcılar aldıkları sonuçlardan memnun mu?
  • Kullanıcılar sorularına doğru yanıtlar mı alıyor?
  • Kullanıcı geri bildirimlerini nasıl yakalarız? Kullanıcı verileri hakkında toplayabileceğimiz verileri sınırlayan herhangi bir ilkemiz var mı?
  • Yetersiz yanıtların tanılanması için, soruyu yanıtlamak için yapılan tüm çalışmaların görünürlüğüne sahip miyiz? Kök neden analizi yapabilmek için giriş ve çıkışların çıkarım işlem hattında her aşamanın günlüğünü tutuyor musunuz?
  • Sistemde, sonuçların gerilemesi veya bozulması olmadan nasıl değişiklik yapılabilir?

Kullanıcılardan gelen geri bildirimleri yakalama ve bu geri bildirimlere göre hareket etme

Daha önce belirtildiği gibi, geliştiricilerin belirli bir sorgu oturumunda adli ve kök neden analizini etkinleştirmek üzere geri bildirim yakalama mekanizmaları ve telemetri, günlük vb. tasarlamak için kuruluşlarının gizlilik ekibiyle birlikte çalışması gerekebilir.

Sonraki adım bir değerlendirme işlem hattı geliştirmektir. Değerlendirme işlem hattı gereksinimi, ayrıntılı geri bildirimleri analiz etme karmaşıklığı ve zaman açısından yoğun olması ve yapay zeka sistemi tarafından sağlanan yanıtların kök nedenlerinden kaynaklanmıştır. Bu analiz, yapay zeka sorgusunun sonuçları nasıl ürettiğini anlamak, belgelerden kullanılan içerik öbeklerinin uygunluğunu denetlemek ve bu belgeleri bölmek için kullanılan stratejileri anlamak için her yanıtı araştırmayı içerdiğinden çok önemlidir.

Ayrıca, sonuçları geliştirebilecek ek işlem öncesi veya sonrası adımların da dikkate alınması gerekir. Bu ayrıntılı inceleme genellikle, özellikle de kullanıcının sorgusuna yanıt olarak uygun bir belge olmadığında içerik boşluklarını ortaya çıkarır.

Bu nedenle değerlendirme işlem hattı oluşturmak, bu görevlerin ölçeğini etkili bir şekilde yönetmek için gerekli hale gelir. Verimli bir işlem hattı, yapay zeka tarafından sağlanan yanıtların kalitesine yakın ölçümleri değerlendirmek için özel araçlardan yararlanır. Bu sistem, kullanıcının sorusuna neden belirli bir yanıt verildiğini, bu yanıtı oluşturmak için hangi belgelerin kullanıldığını ve sorguları işleyen çıkarım işlem hattının etkinliğini belirleme sürecini kolaylaştıracak.

Altın veri kümesi

RAG-chat sistemi gibi belirsiz olmayan bir sistemin sonuçlarını değerlendirmeye yönelik bir strateji de "altın veri kümesi" uygulamaktır. Altın veri kümesi , onaylı yanıtlar, meta veriler (konu ve soru türü gibi), yanıtlar için temel gerçek olarak görev yapabilecek kaynak belgelere başvurular ve hatta çeşitlemeler (kullanıcıların aynı soruları nasıl sorabileceğinin çeşitliliğini yakalamak için farklı ifadeler) içeren seçilmiş bir dizi sorudur.

"Altın veri kümesi", "en iyi durum senaryoyu" temsil eder ve geliştiricilerin sistemi değerlendirerek ne kadar iyi performans sergilediğini görmelerini ve yeni özellikler veya güncelleştirmeler uygularken regresyon testleri gerçekleştirmelerini sağlar.

Zararı değerlendirme

Zarar modellemesi, olası zararları öngörme, bireyler için risk oluşturabilecek bir üründeki eksiklikleri tespit etmeyi ve bu riskleri azaltmak için proaktif stratejiler geliştirmeyi amaçlayan bir metodolojidir.

Teknolojinin, özellikle de yapay zeka sistemlerinin etkisini değerlendirmek için tasarlanan araçlar, sağlanan kaynaklarda açıklandığı gibi zarar modelleme ilkelerine dayalı birkaç önemli bileşene sahip olacaktır.

Zarar değerlendirme aracının temel özellikleri şunlar olabilir:

  1. Paydaş Belirleme: Araç, kullanıcıların doğrudan kullanıcılar, dolaylı olarak etkilenen taraflar ve gelecek nesiller gibi diğer varlıklar veya çevre sorunları () gibi insan dışı faktörler dahil olmak üzere teknolojiden etkilenen çeşitli paydaşları tanımlamalarına ve kategorilere ayırmalarına yardımcı olur.

  2. Zarar Kategorileri ve Açıklamaları: Gizlilik kaybı, duygusal sıkıntı veya ekonomik sömürü gibi olası zararların kapsamlı bir listesini içerir. Araç, teknolojinin bu zararlara nasıl neden olabileceğini gösteren çeşitli senaryolarda kullanıcıya yol gösterebilir ve hem hedeflenen hem de istenmeyen sonuçları değerlendirmeye yardımcı olabilir.

  3. Önem Derecesi ve Olasılık Değerlendirmeleri: Araç, kullanıcıların tanımlanan her bir zararın önem derecesini ve olasılığını değerlendirmesine olanak tanıyarak önce hangi sorunların ele alınacağını önceliklendirmelerine olanak tanır. Kullanılabilir durumdaki veriler tarafından desteklenen nitel değerlendirmeler örnek olarak verilebilir.

  4. Risk Azaltma Stratejileri: Araç, zararları tanımlayıp değerlendirdikten sonra olası risk azaltma stratejilerini önerir. Örnek olarak sistem tasarımındaki değişiklikler, daha fazla koruma veya tanımlanan riskleri en aza indiren alternatif teknolojik çözümler verilebilir.

  5. Geri Bildirim Mekanizmaları: Araç, zarar değerlendirme sürecinin dinamik ve yeni bilgilere ve perspektiflere yanıt vermesini sağlayarak paydaşlardan geri bildirim toplama mekanizmaları içermelidir.

  6. Belgeler ve Raporlama: Saydamlık ve sorumluluk için, araç zarar değerlendirme sürecini, bulguları ve kullanılabilecek risk azaltma eylemlerini belgeleyen ayrıntılı raporları kolaylaştırabilir.

Bu özellikler yalnızca riskleri belirlemeye ve azaltmaya yardımcı olmakla kalmaz, aynı zamanda en baştan itibaren geniş bir etki yelpazesini göz önünde bulundurarak daha etik ve sorumlu yapay zeka sistemleri tasarlamaya yardımcı olur.

Daha fazla bilgi için bkz.

Korumaları test etme ve doğrulama

Bu makalede, RAG tabanlı sohbet sisteminin kötüye kullanılabilmesi veya güvenliğinin aşılması olasılığını azaltmayı amaçlayan çeşitli süreçler özetlenmiştir. Kırmızı ekip oluşturma, azaltmaların etkili olmasını sağlamada önemli bir rol oynar. Kırmızı ekip oluşturma, olası zayıflıkları veya güvenlik açıklarını ortaya çıkarmak için bir saldırganın uygulamaya yönelik eylemlerinin benzetimini içerir. Bu yaklaşım özellikle önemli ölçüde jailbreak riskini ele almak için çok önemlidir.

Geliştiricilerin etkili bir şekilde test etmek ve doğrulamak için çeşitli kılavuz senaryoları kapsamında RAG tabanlı sohbet sistemi korumalarını titizlikle değerlendirmesi gerekir. Bu yalnızca sağlamlık sağlamakla kalmaz, aynı zamanda sistemin yanıtlarının kesin olarak tanımlanmış etik standartlara ve operasyonel prosedürlere uyması için ince ayara da yardımcı olur.

Uygulama tasarımı kararlarınızı etkileyebilecek son noktalar

İşte dikkate alınacak şeylerin kısa bir listesi ve bu makaleden uygulama tasarımı kararlarınızı etkileyen diğer şeyler:

  • Tasarımınızda üretken yapay zekanın belirlenimci olmayan niteliğini kabul edin, çıkışlarda değişkenlik planlaması ve yanıtlarda tutarlılık ve ilgi sağlamak için mekanizmalar ayarlayın.
  • Gecikme süresi ve maliyetlerdeki olası artışa karşı kullanıcı istemlerini ön işlemenin avantajlarını değerlendirin. Göndermeden önce istemleri basitleştirmek veya değiştirmek yanıt kalitesini artırabilir, ancak yanıt döngüsüne karmaşıklık ve zaman katabilir.
  • Performansı geliştirmek için LLM isteklerini paralelleştirme stratejilerini araştırın. Bu yaklaşım gecikme süresini azaltabilir, ancak artan karmaşıklığı ve olası maliyet etkilerini önlemek için dikkatli bir yönetim gerektirir.

Hemen üretken bir yapay zeka çözümü oluşturmaya başlamak istiyorsanız Python için kendi veri örneğinizi kullanarak sohbeti kullanmaya başlama bölümüne göz atmanızı öneririz. Öğreticinin .NET, Java ve JavaScript sürümlerinde de kullanılabilir.