Geri Alım-Artırılmış Üretme (RAG), statik LLM bilgisi ile dinamik iç veriler arasındaki boşluğu doldurarak kurumsal AI uygulamaları için standart mimari haline gelmiştir. Ancak standart RAG hatları, birden fazla parçalanmış belgeden bilgi sentezlemeyi gereştiren karmaşık sorgularla karşılaştığında genellikle zorlanır. "Ürün A'nın 3. çeyrek gelirini, son tedarik zinciri gecikmelerini de dikkate alarak Bölge B'nin operasyonel maliyetleriyle karşılaştırın." gibi soruları yanıtlamak için tek bir vektör araması yetersizdir.
Burada Düşünce Zinciri (CoT) Geri Alımı devreye girer. Karmaşık bir sorguyu daha basit, geri alınabilir alt sorgulara ayırarak, geri alma sürecini mantıksal bir akıl yürütme zinciri üzerinden yönlendirebilir ve doğruluk ile alakalılığı önemli ölçüde artırabiliriz.
Naif Geri Alımın Sınırlamaları
Naif bir RAG kurulumunda, bir kullanıcı sorgusu bir vektör uzayına gömülür ve en benzer top-k belgeleri geri alınır. Bu yaklaşım, cevabın tek bir anlamsal küme içinde bulunduğunu varsayar. Çok adımlı akıl yürütme görevleri için bu varsayım geçersiz hale gelir. Bir sorunun "Şirket X, Şirket Y'yi satın aldı" ve "Şirket Y'nin 5 milyon $ borcu var" bilgilerini bilmesini gerektirdiği durumlarda, vektör uzayında bu iki kritik bilgi yüksek derecede korele değilse, tek bir geri alma adımı bunlardan birini kaçırabilir.
CoT Destekli Geri Alımın Uygulanması
Çok adımlı akıl yürütmeyi uygulamak için, "akıl yürüten" olarak hareket eden bir orkestrasyon katmanına ihtiyacımız vardır. Bu ajan, LLM'yi kullanarak orijinal soruyu alt sorulara ayırır, her biri için cevapları geri alır ve nihai yanıtı sentezler. Aşağıda, bu soruna yönelik yapılandırılmış bir yaklaşım gösteren Python ve LangChain çerçevesi kullanılarak hazırlanmış pratik bir uygulama yer almaktadır.
from langchain.agents import Tool, AgentExecutor
from langchain.utilities import SerpAPIWrapper
from langchain.chains import LLMMathChain
from langchain.chat_models import ChatOpenAI
from langchain.retrievers.multi_query import MultiQueryRetriever
# Ajanımız için araçları tanımlayalım
# Araç 1: Gerçek veri araması için Belge Geri Alıcısı
def search_documents(query: str) -> str:
# Gerçek senaryoda bu, vektör veritabanınıza (örn. Pinecone, Milvus) bağlanır
results = vector_db.similarity_search(query, k=5)
return "\n".join([doc.page_content for doc in results])
# Karmaşık toplamlar için Sayısal Hesap Makinesi
llm_math = LLMMathChain(llm=ChatOpenAI(temperature=0))
# Araç listesini tanımlayalım
tools = [
Tool(
name="DocumentSearch",
func=search_documents,
description="İç şirket belgelerini, raporlarını ve e-postalarını aramak için kullanışlıdır."
)
]
# LLM Ajanını başlatalım
llm = ChatOpenAI(model="gpt-4", temperature=0)
agent = AgentExecutor.from_agent_and_tools(
agent=create_openai_functions_agent(llm, tools),
tools=tools,
verbose=True
)
# Karmaşık çok adımlı bir sorguyu çalıştıralım
complex_query = "APAC bölgesinin 3. çeyrekteki toplam geliri neydi ve CFO tarafından belirlenen bütçeyle nasıl karşılaştırılır?"
try:
response = agent.run(complex_query)
print(response)
except Exception as e:
print(f"Akıl yürütme zincirinde hata: {e}")
Kurumsal Dağıtım İçin En İyi Uygulamalar
- Bağlam Penceresi Yönetimi: Düşünce zinciri büyüdükçe, bağlam da büyür. Sonraki adıma geçmeden önce ara geri alma sonuçlarını yoğunlaştırmak için özetleme teknikleri kullanın.
- Hibrit Arama: Vektör aramasını anahtar kelime tabanlı BM25 aramasıyla birleştirin. Yukarıdaki örnekte, "3. çeyrek" veya "APAC" gibi belirli finansal terimler, vektör semantiğinden ziyade anahtar kelime araması tarafından daha iyi yakalanabilir.
- Geri Bildirim Döngüleri: Geliştiricilerin ajanın attığı "düşünce adımlarını" gözden geçirebileceği insan döngüsü içeren bir sistem uygulayın. Bu, ayrıştırma istemlerini ince ayar yapmayı sağlar.
Sonuç
Düşünce Zinciri geri alımını uygulamak, RAG'ı basit bir belge bulucusundan gerçek bir akıl yürütme motoruna dönüştürür. Ek gecikme ve karmaşıklık getirse de, doğruluk ve açıklanabilirliğin hayati önem taşıdığı kurumsal uygulamalar için bu ödünleşim haklıdır. Karmaşık sorunları geri alınabilir adımlara ayırarak, kuruluşlar özel verilerinin tam potansiyelini ortaya çıkarabilir ve işletme operasyonlarının nüanslarını gerçekten anlayan AI asistanları sağlayabilir.