Kaynak gösteren bir sohbet botu okura bir söz verir: yanıttaki her olgusal ifade, okurun açıp kontrol edebileceği belirli bir metin parçasına kadar izlenebilir. Uygulamaların çoğu bu sözü sessizce bozar. Bağlantılar işe yarayan pasaja değil sayfanın tamamına gider, atıf desteklemediği bir cümlenin altına iliştirilir ya da bot bir boşluğu kendi belleğinden doldurup sonucu inandırıcı bir bağlantıyla süsler. Bu rehber, atfı sona eklenen bir süs olarak değil, işlem hattının bir parçası olarak kurmayı anlatıyor: pasaj düzeyinde dayanak, kaynakların gösterimi, kaynağı olmayan iddialara ne olacağı ve atıfların altında durdukları yanıtları gerçekten destekleyip desteklemediğinin testi.
Bir atıf ne yapmalı
İşe yarar bir atıf okurun üç sorusunu yanıtlar: bu bilgi nereden geldi, kaynak tam olarak ne diyor ve ne zaman okundu. Çıplak bir URL yalnızca ilkini, o da kabaca yanıtlar. Sayfa uzunsa okur destekleyen cümleyi aramak zorunda kalır; sayfa alındıktan sonra değiştiyse o cümleyi hiç bulamayabilir.
Çıtayı yanıt düzeyinde değil, iddia düzeyinde koyun. "Bu yanıt şu beş kaynağı kullandı" bir kaynakçadır. "Bu cümleyi şu pasaj destekliyor" ise bir atıftır. İkincisini kurmak daha zordur ve test edebileceğiniz tek sürüm de odur.
Baştan sona tek bir ilkeyi akılda tutun: atıf kanıta işaret eder, tek başına hiçbir şeyi kanıtlamaz. Her şey doğru çalışsa bile pasajın, yanıtın ona yüklediği anlamı taşıyıp taşımadığına okur karar verir. Sizin işiniz bu kontrolü hızlandırmaktır. Yanıtları güncel malzemeye dayandırmanın genel sorunu için güncel bilgiyle yanıt veren sohbet botları yazısına bakın; bu sayfa atfın kendisine odaklanıyor.
Yanıtları pasaj düzeyinde dayandırın
Atfın kalitesi, model tek bir kelime yazmadan önce belirlenir. Getirme adımı modele, atıf yapılabilecek kadar küçük ve geri işaret edilebilecek kadar kararlı metin birimleri vermelidir.
- Anlama göre bölün. Dokümanları ve çekilen sayfaları başlık ve paragraf sınırlarından, birkaç cümlelik pasajlara ayırın. Çok uzun parçalar atfı belirsizleştirir; çok kısa olanlar ise bir cümleyi doğru kılan bağlamı yok eder.
- Her pasaja bir kimlik ve köken bilgisi verin. Kaynak URL'sini ya da doküman yolunu, başlığı, pasaj metnini, kaynaktaki konumunu, biliniyorsa yayın tarihini ve alınma tarihini saklayın. Web sayfalarında aldığınız metnin bir kopyasını tutun; canlı sayfa gelecek hafta farklı okunabilir.
- Modele yalnızca metni değil, kimlikleri de gösterin. Her pasajı istemde kimliğiyle birlikte verin ve modelden her olgusal cümlenin ardından ilgili kimliği yazmasını isteyin.
- Yapılandırılmış çıktı isteyin. Model iddiaları ve her birini destekleyen pasaj kimliklerini döndürsün; düz metni bu yapıdan siz üretin.
Doğrulamayı mümkün kılan bir yanıt biçimi:
{
"answer": [
{"text": "Politika çalışanların yanı sıra yüklenicileri de kapsar.",
"supported_by": ["doc-14#p3"]},
{"text": "Koleksiyondaki hiçbir kaynak politikanın ne zaman yürürlüğe girdiğini söylemiyor.",
"supported_by": [], "status": "unsupported"}
]
}Ardından, kullanıcıya bir şey ulaşmadan önce doğrulayın. Atıf yapılan her kimlik, bu soru için getirilen kümede bulunmalıdır; modelin uydurduğu bir kimlik atıf değil, hatadır. Modelden alıntı istediğiniz yerde alıntının pasajın birebir alt dizesi olup olmadığını kontrol edin. İki kontrol de ucuzdur ve uydurma desteğin en kaba biçimlerini okur görmeden yakalar.
Okurun hızla kontrol edebileceği kaynaklar gösterin
Birinin gerçekten kontrol edip etmeyeceğine arayüz karar verir. İşe yarayan birkaç kalıp:
- Satır içi işaretler, destekledikleri cümlenin hemen yanında; sayfanın altında bir liste olarak değil. Üç iddia barındıran bir paragrafın sonundaki tek işaret, hangi iddiayı desteklediği konusunda okura hiçbir şey söylemez.
- İstendiğinde pasajın kendisi. Üzerine gelindiğinde ya da dokunulduğunda alıntılanan pasajı başlığı, kaynağı ve alınma tarihiyle gösterin. Kontrollerin çoğu sayfa açılmadan orada biter.
- Mümkünse derin bağlantı. Kaynağın doğru yerde açılması için bölüm çapasına, sayfa numarasına ya da bir metin parçasına bağlantı verin.
- Okunan kaynak, atıf yapılan kaynak değildir. Botun okuduğu kaynakları gösteriyorsanız, ifadeleri destekleyenlerden ayrı etiketleyin. Getirilen her sayfayı "kaynaklar" başlığı altında listelemek, desteği olduğundan güçlü gösterir.
- Tarihler görünür olsun. Aylar önce alınmış bir pasaj artık geçerli olmayan bir durumu anlatıyor olabilir. Alınma tarihini göstermek bu değerlendirmeyi okura bırakır.
Kaynağı olmayan iddialara ne olacağına karar verin
En zor tasarım sorusu nasıl atıf yapılacağı değil, getirilen hiçbir şey söylenmek isteneni desteklemiyorsa botun ne yapacağıdır. Bunu açık bırakırsanız model sizin yerinize karar verir; genellikle eğitim verisinden yanıt verip en yakın bağlantıyı iliştirerek.
Açık bir politika seçin ve bunu isteme, çıktı şemasına ve testlere yazın:
- Çıkar. Desteklenmeyen cümleleri gösterimden önce silin. Güvenlidir, ama yanıtlar kopuk kopuk kalabilir.
- İşaretle. Cümleyi tutun, kaynaksız olduğunu görünür biçimde belirtin ve ona asla atıf iliştirmeyin.
- Açıkça söyle. Bulunanla yanıt verin, bulunamayanı düz bir dille belirtin: "Dokümanlar onay adımlarını anlatıyor, ancak istisnaları kimin onayladığını söylemiyor."
- Sor. Daha geniş bir kaynak kümesinde aramayı önerin; buna kullanıcının ya da bir yöneticinin izin vermesi gerekir.
Boş bir getirme sonucunu meşru bir sonuç olarak ele alın ve başarısız bir getirmeden ayrı tutun. "Aradım, alakalı bir şey bulamadım" ile "arama servisi yanıt vermedi" farklı sonraki adımlara götürür; ikisini tek bir belirsiz özürde birleştirmek canlı ortamdaki bir sorunu gizler. Eksik kanıt açık bir sorudur notu, bu boşlukları örtmek yerine görünür tutmanın gerekçesini anlatıyor.
Atıfların yanıtı desteklediğini test edin
Var olan bir atıf, ayakta duran bir atıf demek değildir. Test için sabit bir soru seti ve üç düzeyde kontrol gerekir.
Mekanik kontroller, hem canlı ortamdaki hem testteki her yanıtta: atıf yapılan kimlikler getirilen kümede var mı, alıntılar pasaj metniyle birebir eşleşiyor mu, her olgusal cümlenin bir atfı ya da "desteklenmiyor" işareti var mı ve hiçbir atıf başka bir sorunun bağlamındaki bir pasaja gitmiyor mu?
Destek kontrolleri, bir test setinde: her iddia ve ona atıf yapılan pasaj için, pasaj gerçekten bunu söylüyor mu? Yalnızca iddiayı ve pasajı gören, "destekliyor", "kısmen destekliyor" ya da "desteklemiyor" diye yanıt veren ikinci bir model çağrısı hakem olarak kullanılabilir. Bu hakeme güvenmeden önce onu bir örneklem üzerinde insan puanlarıyla kalibre edin.
İnsan incelemesi, düzenli bir örneklemde: bir kişi yanıtı okur, kaynakları açar ve ikisini birden puanlar. Bu, otomatik kontrollerin kaçırdığını yakalar; örneğin teknik olarak doğru olan, ama birkaç paragraf sonra tam tersini savunan bir kaynaktan koparılmış bir atıf.
Test setini bilerek rahatsız edici durumlarla kurun:
- Yanıtı koleksiyonda hiç bulunmayan sorular.
- İki kaynağın birbiriyle çeliştiği sorular.
- Alakalı tek sayfanın güncelliğini yitirdiği sorular.
- Modeli, kaynaklarda bulunmayan bilinen bir olguyla boşluğu doldurmaya özendiren sorular.
Kontrol edilebilir kabul ölçütleri yazın; örneğin: "Her olgusal cümlede bir atıf ya da 'desteklenmiyor' işareti bulunur. Atıf yapılan her pasaj, tek başına okunduğunda cümlesini destekler. Yanıtı koleksiyonda olmayan sorularda bot bunu söyler ve hiçbir kaynağa atıf yapmaz." Ayakta duran atıflar notu, bir incelemecinin neye bakması gerektiğini daha ayrıntılı ele alıyor. Getirme ayarlarını, istemi ya da modeli her değiştirdiğinizde setin tamamını yeniden çalıştırın; atıf davranışı bunların her biriyle kayar.
Kaynaklar webden geldiğinde
Webden getirme iki sorun ekler. Sayfalar değişir ve kaybolur; bu yüzden canlı bir URL'ye yapılan atıf, desteklediği cümleyi bir gün desteklemez hâle gelebilir. Getirilen metni alınma tarihiyle birlikte saklayın ve özgün adresin yanında sakladığınız kopyaya da atıf yapın. Ayrıca arama sonuçları pasaj değildir: bir arama API'sinden gelen özet çoğu zaman bir iddiayı dayandırmak için fazla cılızdır; sayfayı çekin, alakalı pasajları çıkarın ve onlara atıf yapın. Dayanakla halüsinasyonları azaltma rehberi getirme tarafını daha derinlemesine ele alıyor.
GoCux nerede durur
GoCux bir sohbet botu çatısı değildir ve açık webde arama yapmaz; ancak bir ekibin çalıştığı kanıta aynı disiplini uygular. Bilgi arama bir soruyu yalnızca tek bir projenin dokümanları içinde arar ve pasajları atıflarıyla birlikte döndürür; eşleşen bir şey yoksa bunu hata olarak değil, bir yanıt olarak bildirir. Araştırma işlerinde bir alıntıyla desteklenen bulgu, hiçbir kaynağın yanıtlamadığı sorudan ayrı tutulur; böylece boşluklar görünür kalır. Web malzemesi gerektiğinde yetkilendirilmiş bir tarama ya da dışa aktarma adımıyla içeri girer ve özgün sayfanın adresini ve alındığı tarihi yanında taşır. Yanıtlar, bir yanıtı çalışma alanının dışına gönderilmeden önce incelenebilecek biçimde hazırlar; bu da başka birine gidecek yanıtlar için uygundur.
Yayına almadan önce kontrol listesi
- Pasajlar atıf yapılabilecek kadar küçük; her birinde kimlik, kaynak, konum ve alınma tarihi var.
- Model, yapılandırılmış çıktıyla her iddia için pasaj kimliği veriyor; uydurulan kimlikler reddediliyor.
- Alıntılar, pasajlarının birebir alt dizesi olarak kontrol ediliyor.
- İşaretler destekledikleri cümlenin yanında duruyor; pasaj bir dokunuş uzaklıkta.
- Okunan kaynaklar, atıf yapılan kaynaklardan ayrı etiketleniyor.
- Desteklenmeyen iddialar yazılı bir politikaya uyuyor: çıkarılıyor, işaretleniyor, açıkça belirtiliyor ya da üst kademeye taşınıyor.
- Boş sonuç ile başarısız getirme farklı mesajlar üretiyor.
- Yanıtsız ve çelişkili soruları da içeren sabit bir test seti, getirme, istem ya da model her değiştiğinde yeniden çalıştırılıyor.
Bu iş akışını çalışma alanınıza taşıyın.
Kapsamı belirleyin. Kanıtları inceleyin. Gereken adımları onaylayın.