Artırılmış nesil (RAG) ve dizinleri alma

Geri getirme destekli üretim (RAG), arama ile büyük dil modellerini (LLM) birleştiren bir yöntemdir ve böylece yanıtların verilerinize dayandırılmasını sağlar. Bu makalede RAG'nin Microsoft Foundry'de nasıl çalıştığı, dizinlerin oynadığı rol ve aracılı alma işleminin klasik RAG desenlerini nasıl değiştir istediği açıklanmaktadır.

LLM'ler eğitim zamanında kullanılabilen genel veriler üzerinde eğitilir. Özel verilerinize veya sık sık değişen bilgilere dayalı yanıtlara ihtiyacınız varsa RAG şunları yapmanıza yardımcı olur:

  • Verilerinizden ilgili bilgileri alın (genellikle bir dizin aracılığıyla).
  • Bu bilgileri modele topraklama verileri olarak sağlayın.
  • Kaynak içeriğe geri alıntılar ekleyebilen bir yanıt oluşturun.

RAG nedir?

Büyük dil modelleri (LLM'ler), model eğitildiğinde kullanılabilen genel İnternet verileri üzerinde eğitilir. Genel veriler gereksinimleriniz için yeterli olmayabilir. Örneğin, özel belgelere dayalı yanıtlar isteyebilir veya güncel bilgilere ihtiyacınız olabilir.

RAG, verilerinizden ilgili içeriği alarak ve model girişlerine ekleyerek bunu giderir. Model daha sonra alınan içerikte temellenmiş yanıtlar oluşturabilir.

RAG için temel kavramlar:

  • Veri Temellendirme: Modelin tahmin yapmasını azaltmak için sağladığınız veri alındı.
  • Dizin: Arama için optimize edilmiş bir veri yapısı (anahtar sözcük, anlamsal, vektör veya hibrit arama).
  • Eklemeler: Vektör benzerliği araması için kullanılan içeriğin sayısal gösterimleri. Bkz. Eklemeleri anlama.
  • Sistem iletisi ve istemleri: Modelin alınan içeriği nasıl kullandığına yol gösteren yönergeler. Bkz. istem mühendisliği ve Güvenlik sistemi iletileri.

RAG nasıl çalışır?

RAG üç adımlı bir akışı izler:

  1. Alma: Kullanıcı soru sorduğunda, uygulamanız ilgili içeriği bulmak için bir dizin veya veri deposunu sorgular.
  2. Artırma: Uygulama, kullanıcının sorusunu ve alınan içeriği (temellendirme verileri) bir istem olarak birleştirir.
  3. Oluştur: Model genişletilmiş istemi alır ve alınan içeriğe yer verilen bir yanıt oluşturur, bu da yanlışlıkları azaltır ve doğru alıntıları etkinleştirir.

Kullanıcı sorgusu, veri deposundan alma ve temel alınan model yanıtlarını gösteren diyagram.

Dizin nedir ve neden bir dizine ihtiyacınız vardır?

RAG, ilgili içeriği hızlı ve tutarlı bir şekilde alabildiğiniz zaman en iyi şekilde çalışır. İçeriğinizi düzenleyerek verimli bir şekilde alınmasını sağlayan bir dizin yardımcı olur.

Birçok RAG çözümü, şu alma modlarından birini veya daha fazlasını destekleyen bir dizin kullanır:

  • Anahtar sözcük araması
  • Anlamsal arama
  • Vektör araması
  • Karma arama (anahtar sözcük + vektör, bazen anlamsal derecelendirme ile)

Dizin, alıntı kalitesini geliştiren alanları da depolayabilir (örneğin, belge başlıkları, URL'ler veya dosya adları).

Dizinden alma işlemini ve alınan bölümlerin model istemine nasıl eklendiğini gösteren diyagram.

Foundry, projenizi erişim için dizinlemek amacıyla bir Azure Yapay Zeka Arama hizmetine bağlayabilir. Kullandığınız özelliğe ve API yüzeyine bağlı olarak, bu bağlantı bilgileri bir proje bağlantısı veya dizin varlığı kimliği olarak gösterilebilir.

Azure Yapay Zeka Arama, RAG senaryoları için önerilen bir dizin deposudur. Azure Yapay Zeka Arama, arama dizinlerinde depolanan vektör ve metin verileri üzerinden almayı destekler ve aracılı alma kullanıyorsanız diğer hedefleri de sorgulayabilir. Bkz. Azure Yapay Zeka Arama nedir?.

Agentic RAG: bilgi getirme için modern yaklaşım

Geleneksel RAG desenleri genellikle verilerinizden bilgi almak için tek bir sorgu kullanır. Agentic retrieval, aynı zamanda agentic RAG olarak da bilinen, karmaşık girişleri birden fazla odaklı alt sorguya bölen, bunları paralel olarak çalıştıran ve sohbet tamamlama modelleriyle iyi çalışan yapılandırılmış bağlantılı veriler döndüren bir modeli kullanan alma mimarisindeki bir gelişmedir.

Agentik getirme, klasik RAG'ye göre çeşitli avantajlar sağlar.

  • Bağlam bilgisi olan sorgu planlaması: Bağlamı ve amacı anlamak için konuşma geçmişini kullanır. İzleme soruları, önceki değişimlerin bağlamını koruyarak çok aşamalı konuşmaları daha doğal hale getirir.
  • Paralel yürütme: Daha iyi kapsama için birden çok odaklanmış alt sorguyı aynı anda çalıştırır. Paralel yürütme, tek bir sorgudan sırayla almak yerine gecikme süresini azaltır ve daha çeşitli ilgili sonuçlar alır.
  • Yapılandırılmış yanıtlar: Sonuçların yanı sıra topraklama verilerini, alıntıları ve yürütme meta verilerini döndürür. Bu yapılandırılmış çıkış, uygulamanızın kaynakları doğru bir şekilde alıntılamasını ve yanıtların ardındaki mantığı izlemesini kolaylaştırır.
  • Yerleşik semantik derecelendirme: Sonuçların en uygun şekilde ilgi düzeyini sağlar. Semantik derecelendirme, gürültüyü filtreler ve özellikle büyük veri kümelerinde önemli olan gerçekten ilgili bölümlerin önceliklerini belirtir.
  • İsteğe bağlı yanıt sentezi: LLM ile formüle edilmiş yanıtları doğrudan sorgu yanıtına dahil edebilir. Alternatif olarak, uygulamanızın işlemesi için ham, ayrıntılı pasajlar döndürmeyi seçebilirsiniz.

Alma altyapınız olarak Azure Yapay Zeka Arama kullanıyorsanız bkz. Agentic alma ve Quickstart: Aracısal alma.

Foundry ortamında bir yaklaşım seçin

Foundry, özel verilerle çalışmak için çeşitli modelleri destekler. Kullanım örneği karmaşıklığınıza ve ihtiyacınız olan denetim miktarına göre seçin:

  • Özel veya sık değişen verilerde temel alınan yanıtlara ihtiyacınız olduğunda RAG kullanın.
  • Yeni bilgi eklemek yerine model davranışını, stilini veya görev performansını değiştirmeniz gerektiğinde ince ayarlamayı kullanın.
  • Temsilci araçlarını kullanın ne zaman araç gerektiren bir temsilci oluşturuyorsanız. Örneğin, bkz. Aracılar için dosya arama aracı. Bunun yerine tam denetime sahip tam bir RAG uygulaması oluşturmak için Foundry SDK'sını kullanın.

Foundry'de RAG iş akışı

Foundry'deki BIR RAG uygulaması genellikle şu aşamaları kapsar:

  • Verilerinizi hazırlama: Özel belgelerinizi veya bilgi bankanızı düzenleyip aranabilir içeriğe ayırın.
  • Dizin ayarlama: bir Azure Yapay Zeka Arama dizini oluşturun veya içeriğinizi verimli arama için düzenlemek üzere başka bir alma hizmeti kullanın.
  • Foundry'ye bağlanma: Foundry projenizden dizin veya alma hizmetinize bağlantı oluşturun.
  • RAG uygulamanızı oluşturun: Döküm SDK'sını veya REST API'lerini kullanarak alma işlemini model çağrılarınızla tümleştirin.
  • Test edin ve değerlendirin: Alma kalitesinin iyi olduğunu ve yanıtların doğru ve doğru bir şekilde alıntılandığını doğrulayın.

Güvenlik ve gizlilikle ilgili dikkat edilmesi gerekenler

Eğer erişimi ve istemde bulunmayı dikkatli bir şekilde tasarlamazsanız RAG sistemleri hassas içeriği kullanıma açabilir.

  • Erişim denetimini alma zamanında uygulayın. Veri kaynağı olarak Azure Yapay Zeka Arama kullanıyorsanız, güvenlik filtreleri ile belge düzeyinde erişim denetimini kullanabilirsiniz.
  • Üretimde API anahtarları yerine Microsoft Entra ID tercih edin. API anahtarları geliştirme için uygundur ancak üretim senaryoları için önerilmez. Azure Yapay Zeka Arama RBAC kılavuzu için Rolleri kullanarak Azure Yapay Zeka Arama'e bağlanma bölümüne bakın.
  • Alınan içeriği güvenilmeyen giriş olarak kabul edin. Sistem iletiniz ve uygulama mantığınız, belgelerden ve elde edilen bölümlerden prompt enjeksiyonu riskini azaltmalıdır. Bkz . Güvenlik sistemi iletileri.

Maliyet ve gecikme süresiyle ilgili dikkat edilmesi gerekenler

RAG, yalnızca model isteğine kıyasla ek yük oluşturur.

  • Getirme maliyetleri ve gecikme süresi: Dizini sorgulamak ekstra veri alışverişi ve işlem gücü gerektirir.
  • Ekleme maliyetleri ve gecikme süresi: Vektör araması için dizin oluşturma zamanında ve çoğunlukla sorgu zamanında ekleme işlemleri gerekir.
  • Belirteç kullanımı: Alınan bölümler giriş belirteçlerini artırır ve bu da maliyeti artırabilir.

Azure Yapay Zeka Arama kullanıyorsanız, üretim dağıtımı öncesinde hizmet katmanını ve fiyatlandırmayı onaylayın. Anlamsal veya hibrit alma kullanıyorsanız, Azure Yapay Zeka Arama dokümantasyonundaki Azure Yapay Zeka Arama fiyatlandırma ve sınırlarını gözden geçirin.

Sınırlamalar ve sorun giderme

Bilinen sınırlamalar

  • RAG kalitesi içerik hazırlama, alma yapılandırması ve istem tasarımına bağlıdır. Zayıf veri hazırlama veya dizin oluşturma stratejisi yanıt kalitesini doğrudan etkiler.
  • Alma işlemi ilgisiz veya eksik pasajlar döndürüyorsa, model topraklama işlemine rağmen eksik veya yanlış yanıtlar üretmeye devam edebilir.
  • Kaynak içeriğe erişimi kontrol etmezseniz, yapılandırılmış yanıtlar dizininizden hassas bilgileri sızdırabilir.

Yaygın zorluklar ve risk azaltma

  • Düşük alma kalitesi: Dizininiz ilgili bölümleri döndürmüyorsa, veri bölme stratejinizi, gömme modeli kalitenizi ve arama yapılandırmanızı (anahtar kelime mi, anlamsal mı, yoksa karma mı) gözden geçirin.
  • Topraklama işlemine rağmen halüsinasyon: Alınan içerikte bile modeller yine de yanlış yanıtlar oluşturabilir. Alıntıları etkinleştirin ve modelin alınan içeriğe bağlı kalmasını sağlamak için net sistem mesajları ve istemleri kullanın.
  • Gecikme sorunları: Büyük dizinler alma hızını yavaşlatabilir. İşlenen pasajların hacmini azaltmak için dizin oluşturma stratejisini, filtrelemeyi ve yeniden derecelendirmeyi göz önünde bulundurun.
  • Belirteç bütçesi aşıldı: Getirilen pasajlar belirteç sınırlarını hızla kullanabilir. Bütçenin içinde kalmak için geçiş filtreleme, derecelendirme veya özetleme uygulayın.

RAG etkinliğini değerlendirme yönergeleri için aşağıdaki ilgili içerik bölümünde yer alan öğreticilere ve hızlı başlangıçlara bakın.