37  Korkuluklar ve İnsan Gözetimi

Bölüm durumu: çevrildi. Kaynak metin: İngilizce 37. bölüm. Tümüyle belirlenimci, içinde hiç model olmayan tek bir ölçüm: 480 mesajlık bir derlem üzerinde dört Türkçe kişisel veri dedektörü, precision (kesinlik) ve recall (duyarlılık) ile puanlanıyor. Tanımlayıcıları derleme biz yerleştirdiğimiz için doğru cevaplar baştan biliniyor. Ölçümün tek amacı bir argümanı somutlaştırmak: bir korkuluğun (guardrail) arıza kipi “bir şeyi kaçırdı” değil, “bir şeyi kaçırdı ve siz bunu fark edemiyorsunuz”. Yazılım: yalnızca Python 3.14.5 standart kütüphanesi, hiçbir üçüncü taraf bağımlılığı yok.

Öğrenme hedefleri. Bu bölümün sonunda:

37.1 Korkuluklar risk azaltmadır, güvenlik sınırı değil

Diğer her şeyin dayandığı ayrımla başlayın; takımlar sahte bir güvenlik duygusuna çoğu zaman bu ayrımı yanlış anladıkları için kapılır.

Bir korkuluk (guardrail; bostan korkuluğu değil, yol ve köprü kenarındaki korkuluk anlamında), normal davranan bir sistemden çıkan kötü sonuçların oranını ve şiddetini azaltır: bir kullanıcı bir sohbete kimlik numarası yapıştırır, bir model vermemesi gereken bir tavsiyeye kayar, bir ajan kimsenin niyet etmediği kadar büyük bir iade yapmaya çalışır. Buradaki karşı güç kasıtlı bir saldırgan değil, sıradan düzensizliktir: alışılmadık şeyler yapan kullanıcılar, yanılan modeller, kimsenin önceden saymadığı uç durumlar.

Bir güvenlik sınırı, onu kırmaya aktif olarak çalışan birine karşı dayanır. Bu, Bölüm 36’nın konusu; çoğu korkuluğu alt eden teknik ise utandıracak kadar basit: biraz farklı biçimde yeniden denemek.

Tablodan önce bir terminoloji notu, çünkü kelime başka yerlerde daha geniş kullanılıyor: bu kitapta korkuluk, tipik olarak kararını çıkarımla veren bir filtredir — bir sınıflandırıcı, bir hakem, bir sezgisel kural — ve sınır, çalışma zamanının hangi model ne demiş olursa olsun dayattığı bir kuraldır. Bir kontrolü korkuluk ya da sınır yapan, mekanizması değil, beslediği karardır: bir izin kararı mı, yoksa maskeleme gibi bir risk azaltma kararı mı? Bu yüzden belirlenimci bir kontrol de, nerede durduğuna göre ikisi de olabilir: bu bölümün ilerisindeki TC kimlik numarasının (TCKN) sağlama toplamı (checksum: verideki belirli yazım hatalarını yakalayan kontrol değeri) kesin aritmetiktir ve yine de bir korkuluktur, çünkü beslediği şey bir izin kararı değil, bir maskeleme kararıdır. Başka yerlerde “korkuluk”un ikisini birden kapsadığını göreceksiniz; önemli olan etiket değil, ayrımın kendisi. Belirlenimci olmak hatasız olmak demek de değil: kesin bir kontrolün, yakalamak istediğiniz şeye göre yine yanlış pozitifleri ve yanlış negatifleri olabilir.

Bu anlamdaki korkuluklar kusurlu filtrelerdir — çoğu olasılıksaldır, kesin bir kontrol bile yalnızca birinin önceden düşündüğü durumları kapsar — dolayısıyla bir saldırgan çoğu zaman doğru olan bir bileşene karşı sınırsız yeniden deneme hakkı elde eder. “Çoğu zaman”, kazara zararı azaltmak için iyi bir özellik ve kasıtlı zararı durdurmak için işe yaramaz bir özelliktir. Bunun pratik sonucu mimaridir: bir korkuluğun yeri bir izin sisteminin önüdür, asla yerine değil. Bir ajanın 50.000 avroluk bir iade yapmasını engelleyen tek şey, durumu çoğu zaman fark eden bir sınıflandırıcıysa, iade sınırı aslında uygulanmıyor demektir.

Rutin olarak birbirine karıştırılan iki farklı iş
korkuluk sınır
neyi durdurur kazaları, kaymayı, alışılmadık girdileri kasıtlı denemeleri
neyden kurulur sınıflandırıcılar, düzenli ifadeler, prompt’lar, hakemler izinler, izin listeleri, yetenek sınırları
nasıl arızalanır olasılıksal olarak ve sessizce tasarım gereği ya gürültülü biçimde ya da hiç — pratikte ancak gerçeklendiği kadar iyi, dolayısıyla bir sınırın kendi testlerine ihtiyacı vardır
yeniden denemeler saldırgana yarar mı evet — problemin tamamı bu hayır
işe yaradığının kanıtı ölçülmüş yanlış pozitif ve yanlış negatif oranları neye ulaşılabildiğine dair bir argüman

Bölümün geri kalanı korkulukları iyi kurmakla ilgili; ama iyi kurulmuş bir korkuluğun da bir sınıra dönüşmediğini aklınızda tutarak.

37.2 Bir kişisel veri dedektörünün gerçekte yapması gereken

En yaygın korkuluk, aynı zamanda en sık bozuk hâlde yayına alınanıdır; çünkü gerçekten bitmesinden çok önce bitmiş gibi görünür. Türkçe destek trafiğinde kişisel veri saptamak, adım adım incelemek için iyi bir örnek: tanımlayıcıların yayımlanmış kontrol basamakları var, dolayısıyla doğruluk kişisel yoruma bağlı değil, doğrulanabilir.

Derlem, boşlukları (slot) rastgele doldurulan sekiz şablondan kurulmuş 480 sentetik Türkçe destek mesajı. Doğru cevap, derlemi üretme biçimimiz gereği baştan biliniyor — her tanımlayıcıyı kendimiz yerleştirdik, dolayısıyla elle etiketlemeye gerek yok: 360 TC kimlik numarası (TCKN) ve 120 IBAN yerleştirildi. Yerleştirilen her tanımlayıcı, bağımsız olarak 0,15 olasılıkla tek basamaklı bir yazım hatası alıyor; dolayısıyla gerçekleşen oranlar TCKN için 360’ta 55 (%15,3), IBAN için 120’de 15 (%12,5). Bu ayrım aşağıda önemli, çünkü bu kesimdeki her recall rakamı nominal oranla değil, gerçekleşen oranla karşılaştırılıyor. Yanlarında TC kimlik numarası olmayan 540 tane on bir haneli dizgi duruyor: boşluksuz yazılmış cep telefonu numaraları, sipariş referansları, kargo takip kodları, fatura numaraları, sayaç okumaları. Problemin tamamı bu çakışma. 05xxxxxxxxx biçiminde yazılmış bir Türk cep telefonu numarası on bir hane, bir TCKN de öyle.

Dört dedektör, her biri örüntünün bir üst kümesi ya da filtresi. Aşağıdaki çıktıda satırlar sırasıyla yalnızca örüntü, örüntü artı sağlama toplamı, örüntü artı bağlam kelimesi ve ikisinin birleşimi; hits isabet sayısı, correct doğru isabet sayısı; oranlarda ondalık ayırıcı nokta:

TCKN, 480 messages, 360 planted, 540 eleven-digit decoys

  detector                      hits   correct   precision   recall
  pattern only                   900       360       40.0%   100.0%
  pattern + checksum             308       305       99.0%    84.7%
  pattern + context word         180       180      100.0%    50.0%
  pattern + (checksum OR word)   340       337       99.1%    93.6%

37.2.1 Naif dedektör onda altı kez yanılıyor

On bir haneli bir düzenli ifade yerleştirilmiş her TCKN’yi buluyor — recall %100, yani insanların raporladığı sayı — ama döndürdüğünün %60’ı TC kimlik numarası değil. Maskelemeye bu dedektör karar veriyorsa sipariş ve telefon numaraları da maskelenir; maskelenmiş destek talebini (ticket) okuyan destek çalışanı işini yapamaz. Bir uyarıyı tetikliyorsa o uyarı bir hafta içinde görmezden gelinmeye başlar (alarm yorgunluğu).

Bir korkuluğun, onu kullanmak zorunda olan insanlarla temastan sağ çıkıp çıkmayacağını belirleyen şey recall değil, precision’dır.

%40 rakamı derlemin kaç tuzak içerdiğine bağlı — burada yerleştirilmiş tanımlayıcı başına 1,5; bu sayıyı biz seçtik. Etkinin yönü sağlam, büyüklüğü değil; kendi trafiğinizde ölçün.

37.2.2 Doğrulama precision kazandırır, karşılığında gerçek bir şey götürür

TCKN’nin yayımlanmış iki basamaklı bir sağlama toplamı var. Onu uygulamak precision’ı %40’tan %99,0’a çıkarıyor — herkesin beklediği sonuç bu — ve 15,3 puanlık recall kaybına yol açıyor; çoğu zaman hesaba katılmayan sonuç da bu.

Kural. On bir haneli bir \(d_1 \ldots d_{11}\) dizgisi, \(d_1 \neq 0\) iken ve

\[d_{10} = \big(7(d_1{+}d_3{+}d_5{+}d_7{+}d_9) - (d_2{+}d_4{+}d_6{+}d_8)\big) \bmod 10\]

\[d_{11} = \Big(\textstyle\sum_{i=1}^{10} d_i\Big) \bmod 10\]

olduğunda geçerli bir TCKN’dir. İki kontrol basamağı da ilk dokuz haneden hesaplandığı için rastgele bir dizginin kontrolü geçme olasılığı \(10^{-2}\), yani yüzde birdir. IBAN’ın kontrolü ise ISO 7064 mod-97: ilk dört karakteri sona taşıyın, harfleri sayılara eşleyin (A = 10 … Z = 35) ve ortaya çıkan tam sayının 97’ye bölümünden kalanın 1 olmasını isteyin.

Neyi düşürdüğüne bakın. Dedektör 360 yerleştirilmiş tanımlayıcının 305’ini buldu ve 305, yanlış yazılmamış yerleştirilmiş tanımlayıcıların tam olarak sayısı. Recall kaybı yazım hatası oranına yaklaşık olarak değil, tam olarak eşit — ve bu bir ölçüm değil, bir teorem. On birinci hane, ilk on hanenin toplamının 10’a bölümünden kalandır; dolayısıyla herhangi bir tek haneyi değiştirmek o toplamı kaydırır ve kontrol her zaman tutmaz. Bunu eksiksiz tarayarak da doğruladık: 20.000 geçerli numaranın her birinde olası bütün tek hane ikameleri denendi ve bu 1,96 milyon ikameden hiçbiri kontrolü geçmedi.

Bu, bulguyu değiştirmiyor ama çekinceyi keskinleştiriyor. Buradaki yazım hatası modeli tek bir rastgele hane ve bu, tam da bir sağlama toplamının her seferinde yakalamak üzere tasarlandığı hata sınıfı. Daha gerçekçi bir hata deneyin — bitişik iki hanenin yer değiştirmesi — ve eşitlik bozuluyor: on birinci hane bir takasla hiç değişmiyor, onuncu \(8(b-a)\) kadar kayıyor ve bu da \(b-a \equiv 0 \pmod 5\) olduğunda sıfır. 178.000 yer değiştirme üzerinde ölçüldü: %9,9’u saptanmadan geçiyor. Yani gerçek yazımda recall kaybı yazım hatası oranından küçük olurdu — yer değiştirmelerde bu oranın aşağı yukarı onda dokuzu — ve aşağıdaki argüman yine geçerlidir, çünkü sağlama toplamının düşürdüğü her şey yine gerçek kişisel veridir.

Üstelik düşürülen kayıtlar, düşürülebilecek en kötü kayıtlar:

Yanlış yazılmış bir TC kimlik numarası hâlâ kütüklerinizde (log) duran bir TC kimlik numarasıdır. Hâlâ kişisel veridir, bağlam içinde okuyabilen herkes için hâlâ bir kişiyi tanımlar ve kullanıcının doğru numarayı da içeren bir düzeltme gönderme olasılığının en yüksek olduğu durumdur. Filtre olarak yapılandırılmış bir doğrulayıcı, tam da bir uyum denetçisinin en çok önemseyeceği kayıtları siliyor.

Sağlama toplamının gerçekte ne kadar ayırt edici olduğunu görmek için: rastgele on bir haneli bir dizgi onu 1.000.000’de 9.960 kez, yani kabaca 100’de 1 geçiyor. İlk hane 1–9 arasından örneklendi — bir TCKN’nin sıfırla başlayamaması kuralına uygun olarak — ölçülen oranın %1’e oturmasının nedeni de bu: baştaki hanesi sıfır olmayan \(9 \times 10^{10}\) dizgi üzerinde tam olarak \(9 \times 10^8\) geçerli numara. Baştaki sıfırlara izin verirseniz aynı sayım \(10^{11}\) dizgi üzerinde %0,9 verir. Bu güçlü bir filtre ama kesin değil — çok sayıda sayısal dizgi içeren bir derlemde tek başına sağlama toplamı, TC kimlik numarası olmayan on bir haneli dizgilerin kabaca yüzde birini yine de geçiriyor. (05… biçiminde yazılmış bir cep numarası kontrolü asla geçemez, çünkü geçerli bir TCKN sıfırla başlayamaz; yani burada geçen üç tuzak öteki tuzak türlerinden geliyor.)

37.2.3 Bağlam, doğrulamanın yitirdiğini geri kazandırıyor

Üçüncü dedektör sağlama toplamını yok sayıyor ve farklı bir soru soruyor: sayının hemen öncesinde, otuz karakter içinde bir etiket var mı — TC kimlik no, TCKN, kimlik numarası?

Precision %100, recall %50,0. Recall rakamı bir keşif değil: bu derlemdeki TCKN taşıyan şablonların yarısı tanımlayıcıyı etiketliyor, yarısı çıplak bırakıyor; dolayısıyla %50, bizim koyduğumuz tasarım parametresinin ölçüme geri yansıması. Önemli olan, iki dedektörün farklı kayıtlarda yanılması. Sağlama toplamı yanlış yazılmış tanımlayıcıları kaçırıyor, bağlam ise etiketsiz olanları; birinin kaçırdığını ötekinin de kaçırması gerekmiyor.

Öyleyse ikisinin birleşimini (VEYA) alın. Precision %99,1, recall %93,6: sağlama toplamının precision’ı neredeyse aynen korunurken recall kaybının beşte üçü geri kazanılıyor — 15,3 puanın 8,9’u ya da yanlış yazılmış 55 tanımlayıcının 32’si.

Dört Türkçe kişisel veri dedektörü: precision ve recall
480 MESAJ · 360 YERLEŞTİRİLMİŞ TCKN · 540 ON BİR HANELİ TUZAK yalnızca örüntü precision %40,0 recall %100 + sağlama toplamı %99,0 %84,7 + bağlam kelimesi %100 %50,0 ikisinin birleşimi %99,1 %93,6 BİRLEŞİM NEDEN İŞE YARIYOR Sağlama toplamı yanlış yazılmışları kaçırıyor · bağlam etiketsizleri kaçırıyor · iki arıza örtüşmüyor. IBAN'da tersi geçerli: örüntünün precision'ı zaten %100, sağlama toplamı yalnızca gerçeklerin %12,5'ini atıyor.

İzlenecek eksen recall ekseni. Precision’ı yükselten her filtre gerçek kişisel veriyi de atıyor; tek soru, atılanı başka bir şeyin yakalayıp yakalamadığı.

37.2.4 Örüntü zaten belirsiz değilse doğrulamayın

IBAN sonuçları tam tersini söylüyor; uygulamaya dökülebilecek ders de bu karşıtlıkta.

IBAN, 120 planted

  detector             hits   correct   precision   recall
  pattern only          120       120      100.0%   100.0%
  pattern + checksum    105       105      100.0%    87.5%

TR ve ardından gelen 24 hane bu trafikte başka hiçbir şeyle çakışmıyor, dolayısıyla örüntü zaten kusursuz. ISO 7064 mod-97 kontrolünü eklemek precision’a sıfır katkı yapıyor ve gerçek IBAN’ların %12,5’ini atıyor — 120’de 15; bu, derlemdeki IBAN’lar için gerçekleşen yazım hatası oranı ve atılanlar yine yalnızca yanlış yazılmış olanlar.

Örüntünün belirsiz olduğu yerde doğrulayın; olmadığı yerde doğrulamayın. Doğrulama, titiz göründüğü için çoğu zaman her yere aynı biçimde uygulanır; oysa burada ayrım gözetmeyen titizlik saf kayıptır. Ölçümün desteklediği genel kural: sağlama toplamını filtrelemek için değil, güveni sıralamak için kullanın. Doğrulanmış bir isabetin güveni yüksektir ve otomatik olarak maskelenebilir; doğrulanmamış bir örüntü isabetinin güveni daha düşüktür, ama o da maskelenmeli, farklı biçimde işaretlenmeli ve incelenmeli — sessizce düşürülmemeli.

37.2.5 Bu ölçümün göstermedikleri

Sayılardan fazla anlam çıkarılmasın diye üç sınırı açıkça belirtelim. Derlem sentetik ve tuzak yoğunluğu bizim seçimimiz; dolayısıyla %40 başka bir trafiğe taşınabilecek bir değer değil, yalnızca bir örnek. Yazım hatası modeli tek bir rastgele haneden ibaret; gerçek yazım hataları bundan daha çeşitli. İnsanlar hanelerin yerini de değiştirir — sağlama toplamı bunu bazen kaçırır (yukarıya bakın) — ve numarayı kırpar ya da araya boşluk koyar; bu sonuncular on bir haneli örüntünün kendisini bozar. Dolayısıyla gerçek trafikte, yalnızca örüntüye dayanan da dâhil her dedektörün recall’u burada ölçülenden düşük olurdu. Son olarak adlar, adresler ve serbest metin içinde verilen kişisel bilgiler hiç kapsanmıyor: bunların kontrol basamakları yok, Bölüm 13’teki NER’i (adlandırılmış varlık tanıma) gerektiriyorlar ve gerçek bir Türkçe dedektörün zorluğunun çoğu da burada.

37.3 Geri alabileceğiniz maskeleme

Saptama işin yarısı. Bir isabetle ne yaptığınız, ürünün hâlâ çalışıp çalışmadığını belirliyor.

Yıkıcı maskeleme — 12345678901’i [REDACTED] ile değiştirmek — güvenlidir ama çoğu zaman işe yaramaz: ajan artık siparişi bulamaz, işi devralan insan da bulamaz. Geri döndürülebilir tokenlaştırma değeri [TCKN_1] gibi kararlı bir tutamakla (handle) değiştirir ve eşlemeyi modelin hiç görmediği ayrı bir depoda tutar. (Buradaki token, dil modelinin token’ı değil, gerçek değerin yerini tutan bir yer tutucudur.) Ajan token’lar üzerinden akıl yürütür, araçlar token’ları güvenilir sınırın içinde gerçek değerlere çevirir, cevap da dışarı çıkarken token’lardan arındırılır. Bu yalnızca girdi tarafını kapatır: model, erişimden, bellekten ya da bir araç sonucundan gelen kişisel veriyi cevabına kendisi de yazabilir; bu yüzden aynı dedektörü çıkış tarafında da koşun.

Bunu işe yaratan dört özellik var ve uygulamalar her birinde yanılabiliyor:

Bir konuşma içinde kararlılık. Aynı değer aynı token’ı almalı, yoksa model iki ayrı geçişin aynı kişiye ait olup olmadığını anlayamaz. Konuşmalar arasında ise tersi geçerli: aynı değer farklı konuşmalarda aynı token’ı almamalı (örneğin token değerin bir özet değeri, yani hash’i olsaydı alırdı); yoksa token’ın kendisi, bir kişinin konuşmalarını birbirine bağlayan bir tanımlayıcı hâline gelir.

Aşağı akıştaki kodun umursadığı yerde biçim korunması. On bir hane bekleyen bir araç [TCKN_1]’i reddeder. Ya araç token’ları çözer ya da token biçimi korur — ve biçimi korumak, token’ın gerçek veri sanılabileceği anlamına gelir; bunun da bilinçli olarak ele alınması gerekir.

Artık asıl hassas varlık eşlemedir. Kişisel veriyi kaldırmadınız; onu bir birleştirme anahtarıyla tek bir depoda yoğunlaştırdınız. GDPR’ın diliyle bu anonimleştirme (KVKK’nın deyişiyle “anonim hâle getirme”) değil, takma adlandırmadır (pseudonymisation): tokenlaştırılmış transkriptler hâlâ kişisel veridir, çünkü eşleme onları geri çevirebilir. Bu depo, Bölüm 38’in anlattığı saklama süresi, erişim denetimi ve veri yerleşimi (residency) kurallarına tabi olmalı; transkriptlerle birlikte sızarsa, özgün verinin sızmasından açıkça daha kötü bir ihlal olur, çünkü eşleme bütün konuşmalardaki tanımlayıcıları tek bir yerde, hazır bir liste hâlinde toplar.

Maskeleme tek bir sınırda olur. Bölüm 34 bu argümanı telemetri için ortaya koymuştu ve argüman genelleşir: veriyi, onu kalıcı hâle getiren herhangi bir şeye — modele, iz dışa aktarıcısına, kütük satırına, değerlendirme kümesine — ulaşmadan önce, bir kez maskeleyin. Beş yerde maskelemek beş ayrı uygulama demektir ve bunlardan biri mutlaka yanlıştır.

37.4 Konu korkulukları ve yanılmanın maliyeti

Kişisel verinin ötesinde, çoğu ürünün sistemi bir konunun içinde tutması gerekiyor: ürünümüzle ilgili soruları cevapla, tıbbi tavsiyeyi reddet, bir rakibin hukuki sorunları hakkında asla spekülasyon yapma.

Mekanizmalar tanıdık ve katmanlı — bir sistem prompt’u (en ucuz, en zayıf), girdide bir sınıflandırıcı, çıktıda bir sınıflandırıcı ve kesin olarak belirtebildiğiniz bir avuç durumu sert biçimde engelleyen bir kural. Girdi ve çıktı sınıflandırıcıları çoğu zaman hazır güvenlik modelleridir. Bunun en bilinen örneği Meta’nın Llama Guard ailesi: bir kullanıcı prompt’unu ya da bir model cevabını, sabit bir tehlike kategorileri listesine (şiddet suçları, kendine zarar verme, mahremiyet vb.) göre güvenli ya da güvensiz diye etiketlemek üzere fine-tuning (ince ayar) ile eğitilmiş bir LLM. Böyle her model için iki uyarı geçerli. Kategorileri genel bir tehlike listesidir, ürününüzün politikası değil — “bir rakip hakkında asla spekülasyon yapma” aralarında yok. Dil kapsamı da model kartında ne yazıyorsa odur: Llama Guard 4 İngilizce ile yedi dil daha sayıyor ve Türkçe bunların arasında değil; ona güvenmeden önce kendi Türkçe trafiğinizde ölçün. Çok dilli seçenekler de var — örneğin Qwen3Guard ailesi 119 dil ve lehçeyi desteklediğini söylüyor — ama aynı uyarı onlar için de geçerli: model kartındaki dil listesi, sizin Türkçe trafiğinizdeki başarının ölçümü değildir. Katmanlama yararlı; ama asıl üzerinde durulması gereken aritmetik.

Bir korkuluğun yanlış pozitif oranı tüm meşru trafiğinizle, yanlış negatif oranı ise yalnızca seyrek kötü durumla çarpılır. %1 yanlış pozitif oranı ve ayda bir milyon istekle, bir avuç kötü çıktı durdurulsun diye aşağı yukarı on bin meşru istek reddediliyor.

Hesabı bir kez adım adım yapın, çünkü yukarıdaki %40 precision’ı üreten de aynı taban oran (base rate) etkisi: aranan sınıfın trafikteki payı küçük olduğunda, küçük bir hata oranı bile isabetlerin çoğunu yanlış alarma çevirir. Bir milyon isteğin %0,1’inin — 1.000 tanesinin — politikayı gerçekten ihlal ettiğini, sınıflandırıcının bunların %90’ını yakaladığını (recall) ve geri kalanların %1’ini yanlışlıkla işaretlediğini varsayın. 900 gerçek ihlali ve 9.990 meşru isteği engeller: engellediği her şeyin yalnızca %8,3’ü gerçek bir ihlaldir; kabaca her on iki engellemeden on biri meşru bir kullanıcıya denk gelir. %1’lik bir hata oranı küçük görünür; seyrek bir olaya karşı ise sonuca o hâkim olur. Bunun doğru bir ödünleşim olup olmadığı tümüyle zararın şiddetine bağlı; bu da birinin gelişigüzel seçtiği bir eşikle değil, iki sayı da önünüzdeyken açıkça verilen bir kararla belirlenmeli.

Bundan iki sonuç çıkıyor. Güven düzeyine göre farklı reddedin: güveni yüksek bir politika isabeti engellenir; sınırda kalan bir isabet bir insana yönlendirilir ya da kullanıcıya açıklayıcı bir soru sorulur. İkisine aynı davranmak, sınıflandırıcının verdiği bilgiyi çöpe atmaktır. Engellenen kullanıcıya bir itiraz yolu da bırakın: engellemelerin çoğu meşru trafikse, itirazlar hem o kullanıcıyı kurtarır hem de korkuluğun yanlış pozitiflerinden oluşan bir örnek kümesi biriktirir. Ve korkuluğu bir sınıflandırıcı olarak ölçün, Bölüm 22’nin hakemlere uyguladığı disiplinin aynısıyla: zor vakalardan oluşan etiketli bir küme, raporlanmış precision ve recall, her prompt ya da model değişikliğinden sonra yeniden ölçüm — çünkü Bölüm 35 davranışı değiştirmek için ne kadar az şeyin yettiğini gösterdi.

37.5 Her eylemi geri alınıp alınamayacağına göre sınıflandırın

Metin üzerindeki korkuluklar işin kolay yarısı. Bir ajanın araçları olduğunda (Bölüm 24) soru, ajanın ne söylediği olmaktan çıkıp ne yaptığı hâline gelir — ve her şeyi düzenleyen ilke geri alınabilirliktir.

“Dikkatli ol”u yapılandırmaya çeviren bir sınıflandırma
sınıf örnekler varsayılan ne istenmeli
Durum değişikliği yok bir kayıt oku, bir sorgu çalıştır, bir mesaj taslağı yaz izin ver yalnızca kütükleme — şu çekinceyle: hiçbir durumu değiştirmemek geri alınabilir olmakla aynı şey değildir; kullanıcının görmeye yetkili olmadığı bir veriyi okumak, transkripte girdikten sonra geri alınamaz, yani yetkilendirme bundan ayrı bir eksendir
Çabayla geri alınabilir henüz kimsenin görmediği bir belge oluştur, bir kaydı güncelle, bir siparişi iptal et, bir dosyayı taşı izin ver bir denetim izi ve belgelenmiş bir geri alma yolu
Geri alınamaz, sınırlı e-posta gönder, bir mesaj paylaş, küçük bir iade yap onayla bir eşiğin üstünde onay; hız sınırları
Geri alınamaz, sınırsız ödeme, silme, herhangi bir dış yayın, başka bir kişiye dokunan her şey varsayılan olarak reddet eylem başına açık onay ve modelin dışında zorunlu kılınmış bir sınır

Bunu bir tablodan fazlası yapan üç nokta var. Sınıflandırma prompt’a değil araca aittir — araç tanımında yaşar, dolayısıyla ikna edici bir girdiyle tartışılıp kaldırılamaz. Önemli çizgi sınırlı ile sınırsız arasındadır ve modelin dışında bir sınırla zorunlu kılınır: 50 avronun altında iade yapabilen bir ajan, her tutarda iade yapabilen bir ajandan farklı bir risktir; aradaki fark kodda kontrol edilen bir sayıdır. Son olarak, tasarımın özü varsayılanlardır: yeni araçlar en katı sınıfa inmeli ve kasıtlı olarak gevşetilmeli, çünkü alternatif, risk profiline en son aracı ekleyen kişinin karar verdiği bir sistemdir.

37.6 Onay kapıları: kes, incele, devam et

Bir onay kapısı döngüye bir insan koyar (human in the loop): eylem, bir kişi evet diyene kadar bekler. (Daha hafif seçenek olan human on the loop’ta ise eylemler çalışır, bir kişi izler ve gerektiğinde müdahale eder — aşağıdaki acil durdurma düğmesi o kişinin aracıdır.) Bir onay kapısını anlatmak kolay, kurmak zahmetlidir, çünkü ajan döngüsünün bir saat bekletildikten sonra kaldığı yerden devam edebilmesini gerektirir.

Önemli olan mekanizmalar:

  1. Konuşmayı değil, bekleyen eylemi serileştirin. Onay bekleyen şey belirli argümanlarla belirli bir çağrıdır — refund(order=14822, amount=780.50) — ve bir insanın görmesi gereken şey odur. İnceleyiciye transkripti gösterip “bu doğru görünüyor mu?” diye sormak bir onay değildir.
  2. Devam etmeye yetecek kadar durumu kalıcı hâle getirin. Döngünün durumu süreçten (process) daha uzun yaşamalı (Bölüm 33), yoksa yeni bir dağıtımdan sonra gelen onaylar kaybolur.
  3. Zaman aşımını açıkça tanımlayın ve sonucun hangi yönde olacağına karar verin. Kimsenin cevaplamadığı bir onay, tanımlı bir sonuçla kapanmalı. Sessizce “reddedildi” olarak kapanmak kullanıcıları ortada bırakır; “onaylandı” olarak kapanan bir kapı ise kapı değildir.
  4. İnceleyiciye sonucu değil kanıtı gösterin. İz (Bölüm 34) — ajanın ne okuduğu, hangi araçların ne döndürdüğü — bir kararı mümkün kılan şeydir. Eylemi öneren modelin yazdığı bir özet bağımsız kanıt değildir.
  5. Kararı veri olarak kaydedin. Kim onayladı, ne zaman, ne gördü. Bu hem Bölüm 38’in ihtiyaç duyduğu denetim izi hem de hangi onayların rubber-stamping’le (içeriği incelemeden rutin onay verme) geçtiğini söyleyen etiketli kümedir.

Zamanla bozulan da bu sonuncusu. Maddelerinin %99’unun onaylandığı bir onay kuyruğu kusursuz işleyen bir gözetim de olabilir, incelemeden verilen rutin onay da; tek başına onay oranı hangisi olduğunu söyleyemez. İyi hedeflenmiş bir kapı, iyi davranan bir ajanın önünde neredeyse her şeyi onaylamalıdır. İkisini ayıran ölçüm oran değil: kuyruğa yanlış olduğunu bildiğiniz maddeler yerleştirin ve kaç inceleyicinin yakaladığını sayın. Yakalıyorlarsa %99’luk onay oranı iyi haberdir; yakalamıyorlarsa elinizde üzerinde imza olan bir gecikme var. Reddetme oranını da izleyin — ani bir düşüş araştırılmaya değer — ama ondan bir sonuç çıkarmadan önce yerleştirilmiş hatalarla denetleyin.

Rutin onayın ardındaki insan hatasının bir adı var: otomasyon yanlılığı (automation bias) — otomatik bir sistemin önerdiğini kabul etme ve ona karşı kanıt aramayı gevşetme eğilimi; üstelik tam da sistem genellikle haklı olduğu için. Bu, tembel inceleyicilerin kişisel kusuru değildir; iyi bir ajanın ürettiği yüksek onay oranıyla birlikte büyür. Yukarıdaki mekanizmaların — belirli çağrı, ham kanıt, yerleştirilmiş hatalar — önemli olmasının nedeni de, düzenlemelerin artık bu eğilimi adıyla anmasının nedeni de bu. AB Yapay Zekâ Yasası’nın 14. maddesi yüksek riskli sistemler için, gözetimle görevlendirilen kişilerin sistemin sınırlarını anlayabilmesini, çıktısına aşırı güvenme eğiliminin farkında kalabilmesini, bu çıktıyı yok sayabilmesini ya da tersine çevirebilmesini ve sistemi bir “durdur” düğmesi ya da benzeri bir yöntemle kesebilmesini şart koşuyor. Sisteminizin yüksek riskli olup olmadığını ve bu yükümlülüklerin ne zaman uygulanacağını Bölüm 38 ele alıyor; mühendislik her iki durumda da aynı.

37.7 Acil durdurma düğmeleri ve olanı geri almak

Yukarıdaki her şey önleyici. Bu kesim, önlemenin işe yaramadığı durumlar için; birbirine sık karıştırılan iki yarısı var.

Durdurmak. Bir acil durdurma düğmesini (kill switch: sistemi ya da belirli yeteneklerini anında durduran mekanizma) sistemi yazmamış biri de gece üçte, yeni bir dağıtım yapmadan kullanabilmeli. Bu, bir kod değişikliği değil, bir çalışma zamanı bayrağı demek. Düğme ayrıca farklı düzeylerde durdurabilmeli (granularity): tek bir aracı, tek bir ajanı, tek bir kiracıyı ya da her şeyi. Tek bir küresel düğme, insanların çekmekte tereddüt ettiği bir düğmedir ve gece üçte tereddüt arızanın kendisidir. Onu düzenli aralıklarla sınayın — sınanmamış bir acil durdurma düğmesi bir inançtır.

Geri almak. Durdurmak, o ana kadar yapılmış kırk eylemi geri almaz; bunun mekanizması Bölüm 33’teki telafi işlemleridir (compensating transactions): geri alınamaz her araç için belgelenmiş bir tersi ya da tersinin olmadığına dair açık bir ifade. Bu listeyi yazmak rahatsız edicidir, ama yararlı bir rahatsızlıktır: “tersi yok” yazan satırlar, tam da en katı kapıya ihtiyaç duyan araçlardır.

Sonra ajanların daha acil kıldığı sıradan işletme hijyeni: uyarmak yerine durduran, koşu başına ve kiracı başına bir bütçe tavanı; bir döngü sonlansın diye bir adım tavanı (Bölüm 33); ve araç başına hız sınırları, çünkü “ajan 4.000 e-posta gönderdi” bir karar değil bir döngüdür.

37.8 Ajanlar için nöbet

Ajanlar sıradan servislerin arızalanmadığı biçimlerde arızalanıyor ve uyarı kümesinin bunu yansıtması gerekiyor. Klasik sinyaller — hata oranı, gecikme, doygunluk — yerinde kalıyor; ama bir ajan kendinden emin biçimde yanlış şeyi yaparken hiçbiri alarm vermiyor.

Bölüm 34’ün görünür kıldıklarından, birini uyandırmaya değenler:

  • bir tavanın üstünde, kiracı ve koşu başına harcama hızı — en hızlı ilerleyen arıza ve saptanması en kolay olanı;
  • artan adım tavanına takılmalar — bu, döngü demektir;
  • tek bir araçta araç hata oranı — genellikle haberiniz olmadan bir bağımlılığın değiştiği anlamına gelir;
  • onay kuyruğu derinliği, çünkü durmuş bir kuyruk durmuş bir üründür;
  • iki yönde de oynayan korkuluk tetiklenme oranı — bir sıçrama bir saldırıya ya da kötü bir dağıtıma, ani bir düşüş korkuluğun bozulduğuna işaret eder;
  • geri çevirme oranı (refusal rate: modelin cevap vermeyi reddettiği isteklerin payı; onay kuyruğundaki reddetme oranıyla karıştırmayın) — aynı sinyalin kullanıcı tarafından görünüşü.

Bir el kitabı, nöbetçi bir mühendisin ihtiyaç duyduğu sırayla dört soruyu cevaplamalı: nasıl durdururum, ne kadar kötü olduğunu nasıl anlarım, yaptığını nasıl geri alırım ve kime haber veririm. Sonuncusu bir formalite değil — kişisel veri ihlalleri için bildirim süreleri var ve süre, teşhis bitmeden işlemeye başlıyor. GDPR’ın 33. maddesine göre veri sorumlusu, ihlali denetim makamına gereksiz gecikme olmaksızın ve mümkünse ihlalin farkına varılmasından itibaren en geç 72 saat içinde bildirmeli; Kişisel Verileri Koruma Kurulunun 2019/10 sayılı kararı da 6698 sayılı Kanun’un 12. maddesindeki “en kısa sürede” ifadesini 72 saat olarak yorumluyor. Haber verilecek tek yer makam da değil: GDPR’ın 34. maddesi, ihlal kişiler için yüksek risk doğuruyorsa ilgili kişilere de gecikmeden bildirim ister; Kurul kararı da etkilenen kişiler belirlendikten sonra onlara makul olan en kısa sürede bildirim yapılmasını öngörüyor. Daha geniş hukuki çerçeveyi Bölüm 38 ele alıyor; el kitabı bu kararı kimin vereceğini adıyla yazmalı.

37.9 Test üreten postmortem’ler

Ajan postmortem’lerinin (olay sonrası neden ve önlem incelemesi) tipik ve sıkıcı bir arıza kipi var: her bulgu “prompt’u iyileştir” olarak çıkıyor, belge dosyalanıyor ve aynı arıza sınıfı bir ay sonra geri geliyor.

Çare, her bulgunun belgeden uzun ömürlü bir çıktı üretmesini şart koşmak; üstelik işe yarayan çıktı türleri birkaç taneden ibaret:

  • düzeltmeden önce başarısız olan, düzeltmeden sonra geçen bir değerlendirme süiti vakası (Bölüm 35, Bölüm 30);
  • daha katı bir geri alınabilirlik sınıfına yeniden sınıflandırılmış bir araç;
  • bir prompt’ta rica edilen değil, kodda zorunlu kılınmış bir sınır;
  • yeni bir talimat değil, ölçülmüş eşiği olan bir korkuluk;
  • onu daha erken yakalayacak sinyal için bir uyarı.

“Prompt’u iyileştir” listede yok: yanlışlanamaz, pratikte sürüm takibi yapılmaz; üstelik Bölüm 35, bir kapıdan geçmeden düzenlenen prompt’lara ne olduğunu ölçtü: kimsenin itiraz etmeyeceği bir sıra değişikliği, doğruluğu gürültü tabanının neredeyse altı katı kadar oynattı.

Postmortem’in suçlamasız (blameless) olması burada sıradan yazılımdakinden daha da önemli; nedeni ilk bakışta açık değil. Bir sistemin davranışı olasılıksal olduğunda doğru bulgu genellikle “sistem olası olmayan bir şey yaptı ve tasarımımız yapmayacağını varsaydı”dır — ve bu bir tasarım bulgusudur. Prompt’u onaylayan kişiyi arayan bir kültür bunun yerine kişiler hakkında bulgular elde eder ve aynı tasarımı yayına almayı sürdürür.

37.10 Sezgi kontrolleri

Her birini açmadan önce cevaplayın. Birincisi tüm bölümün dayandığı çerçeve; sonraki üçü ölçüme dayanıyor; son ikisi ise tüm panolar yeşil kalırken sessizce çürüyen gözetimle ilgili.

Hayır. Bir hasma karşı %99 bir yeniden deneme bütçesidir.

Korkuluk kusurlu — genellikle olasılıksal — bir filtredir ve kasıtlı olarak geçmeye çalışan biri, çoğu zaman doğru olan bir bileşene karşı sınırsız deneme hakkı elde eder. Bu, kazara zararı azaltmak için iyidir — kullanıcıların yapıştırmaması gereken şeyler, modelin konudan sapması — ve bir sınır olarak işe yaramaz (Bölüm 36).

Mimari sonuç: bir korkuluğun yeri bir izin sisteminin önüdür, asla yerine değil. Büyük bir iadeyi durduran tek şey genellikle fark eden bir sınıflandırıcıysa, sınır zorunlu kılınmıyordur. Onu kodda, modelin dışında zorunlu kılın.

Bitmiş görünen sayı recall; dedektörün kullanılabilir olup olmadığına karar veren sayı precision.

On bir haneli bir düzenli ifade burada yerleştirilmiş 360 TC kimlik numarasının tamamını buldu — ve isabetlerinin %60’ı TC kimlik numarası değildi. Boşluksuz yazılmış Türk cep telefonu numaraları da on bir hane; sipariş referansları, takip kodları ve sayaç okumaları da öyle. İki tür yanlış pozitifi birbirinden ayırın, çünkü farklı şeylere mal oluyorlar. Bir TC kimlik dedektörünün yakaladığı bir telefon numarası yanlış türdür, ama genellikle yine de maskelemek isteyeceğiniz kişisel veridir. Bir sipariş referansı ise genellikle yakalamak istediğiniz şey değildir ve onu maskelemek destek akışını bozar. (Tanımlanabilir bir müşteriyle ilişkilendirilebilen bir referans kendisi de kişisel veri olabilir; dolayısıyla sentetik derlemin etiketleri gerçek trafik için bu soruyu karara bağlamaz.) Maskelemeyi bu dedektöre bağlarsanız destek çalışanının ihtiyaç duyduğu sipariş numarası da maskelenir; uyarıları ona bağlarsanız insanların bir hafta içinde görmezden geldiği bir uyarı elde edersiniz.

%40’lık precision rakamı tuzak yoğunluğuna bağlı; tuzak yoğunluğu da sizin trafiğinizin bir özelliği. Yayına almadan önce kendi trafiğinizde ölçün.

15,3 puanlık recall’a — ve tam da en az kaybetmek isteyeceğiniz kayıtlara.

Sağlama toplamı 360 yerleştirilmiş tanımlayıcının 305’ini buldu ve 305, yanlış yazılmamış olanların tam olarak sayısı. Recall kaybı yazım hatası oranına yaklaşık olarak değil, mekanik olarak eşit — çünkü buradaki her yazım hatası tek hanelik bir ikame ve bu sağlama toplamı onu her zaman yakalıyor. Yanlış yazılmış bir TC kimlik numarası hâlâ kütüklerinizde bir TC kimlik numarasıdır: hâlâ kişisel veri, hâlâ tanımlayıcı ve sıklıkla doğru numarayı içeren bir düzeltmeyle birlikte geliyor.

Öyleyse doğrulamayı filtrelemek için değil, güveni sıralamak için kullanın. Doğrulanmış isabetler otomatik olarak maskelenir; doğrulanmamış örüntü isabetleri de maskelenir, güveni düşük olarak işaretlenir ve düşürülmek yerine incelenir. Bir bağlam kontrolü eklemek — sayının hemen önünde TCKN gibi bir etiket — kaybın çoğunu geri kazandırıyor, çünkü bu kontrol farklı kayıtlarda yanılıyor: birleşimde precision %99,1, recall %93,6.

Hayır — ve kuralı somutlaştıran karşı örnek IBAN.

TR artı 24 hane bu trafikte başka hiçbir şeyle çakışmıyor, dolayısıyla tek başına örüntünün precision’ı da recall’u da %100’dü. ISO 7064 mod-97 kontrolünü eklemek precision’a sıfır katkı yaptı ve gerçek IBAN’ların %12,5’ini — hepsi yanlış yazılmış olanlar — attı.

Örüntünün belirsiz olduğu yerde doğrulayın; olmadığı yerde doğrulamayın. Her yere aynı titizliği uygulamak ilkeli görünür ama burada saf kayıptır. Karşılaştırma için: rastgele on bir haneli bir dizgi TCKN sağlama toplamını kabaca 100’de 1 kez geçiyor.

Tek başına oran bunu söyleyemez. İyi hedeflenmiş bir kapı, iyi davranan bir ajanın önünde neredeyse her şeyi onaylamalıdır. Dolayısıyla %99 işleyen bir gözetim de olabilir, gözetim kılığına girmiş bir gecikme de.

Kuyruğa yanlış olduğunu bildiğiniz maddeler yerleştirin ve inceleyicilerin kaçını yakaladığını sayın. Kaçırıyorlarsa genellikle iki nedenden biri vardır. Ya kapı yanlış eylemlerin üzerindedir (hiç incelemeye ihtiyaç duymayan şeyleri onaylatır, bu da inceleyicilere tıklayıp geçmeyi öğretir — otomasyon yanlılığı) ya da inceleyicilerin bir şeyi reddetmek için ihtiyaç duydukları bilgi yoktur. İkincisi yaygın ve düzeltilebilir: onlara, ajanın gerçekte ne okuduğunun ve ne çağırdığının izi yerine, eylemi öneren modelin yazdığı bir özet gösteriliyor (Bölüm 34).

Reddetme oranını temel bir metrik olarak izleyin, ama yerleştirdiğiniz hatalarla birlikte okuyun. Bu hatalar geçiyorsa kapının kapsamını düzeltin, sonuç yerine kanıt gösterin ve inceleyicilerin önüne bekleyen o belirli çağrıyı koyun — transkripti değil, refund(order=14822, amount=780.50).

Belgeden hiçbir şey uzun yaşamıyor, dolayısıyla aynı arıza sınıfı geri geliyor.

Her bulgunun kalıcı bir çıktı üretmesini şart koşun: düzeltmeden önce başarısız olan, düzeltmeden sonra geçen bir değerlendirme vakası, daha katı bir geri alınabilirlik sınıfına taşınmış bir araç, bir prompt’ta rica edilen değil kodda zorunlu kılınmış bir sınır, ölçülmüş eşiği olan bir korkuluk ya da onu daha erken yakalayacak sinyal için bir uyarı.

“Prompt’u iyileştir” yanlışlanamaz ve Bölüm 35 neden aynı zamanda güvensiz olduğunu da ölçtü: bir prompt’un kurallarını hiçbir şey ekleyip çıkarmadan yeniden sıralamak bile doğruluğu gürültü tabanının neredeyse altı katı kadar oynattı. Prompt düzenlemelerine bir belgeye yazılmış bir niyet değil, bir kapı gerekir.

37.11 Mülakat soruları

Kaynak konusunda — Bölüm 2’deki çekincenin aynısı. Aşağıdakiler, bu kitabın baştan sona kullandığı iki güvenilir açık kaynakta tekrar tekrar geçen sorular; bunlara, bu bölümün kendi ölçümünün cevaplanabilir kıldığı sorular da eklendi.

37.11.1 Katmanı anlayıp anlamadığınızı sınayanlar

S: Bir korkuluk ile bir güvenlik denetimi arasındaki fark nedir?

Fark hasımda. Korkuluk, normal davranan bir sistemden çıkan zararı azaltır — alışılmadık girdiler, kayma, uç durumlar — ve kusurlu, genellikle olasılıksal bir filtredir; dolayısıyla onu kasıtlı olarak aşmaya çalışan biri, çoğu zaman doğru olan bir şeye karşı sınırsız yeniden deneme hakkı elde eder. Bir güvenlik denetimi buna karşı dayanır. Pratikteki karşılığı: korkuluklar izin sistemlerinin önüne gider, asla yerine değil ve önemli olan her sınır modelin dışında, kodda zorunlu kılınır.

S: Türkçe destek mesajlarında TC kimlik numaralarını nasıl saptardınız?

Çakışmayla başlayın: boşluksuz yazılmış bir Türk cep numarası on bir hane, bir TCKN de öyle; dolayısıyla burada yalnızca örüntüyle recall %100 iken precision %40’tı. Yayımlanmış sağlama toplamını ekleyin, precision %99’a çıkıyor — ama recall 15 puan düşüyor ve düşürülenler, hâlâ kişisel veri olan yanlış yazılmış tanımlayıcılar. Öyleyse sağlama toplamını filtrelemek için değil, sıralamak için kullanın ve yakındaki bir etiketi arayan bir bağlam kontrolü ekleyin; bu kontrol farklı kayıtlarda yanılır: birleşim %93,6 recall’da %99,1 precision’a ulaştı. Sonra hiçbirinin kapsamadığını belirtin — adların ve adreslerin kontrol basamağı yok, bunlar için NER gerekiyor.

S: Hangi ajan eylemlerinin insan onayı gerektirdiğine nasıl karar verirsiniz?

Geri alınabilirliğe göre; prompt’ta değil araç tanımında sınıflandırarak, böylece hiçbir girdi onu ikna yoluyla kaldıramaz. Hiçbir durumu değiştirmeyen eylemler kütüklenir; çabayla geri alınabilir eylemler belgelenmiş bir geri alma yolu gerektirir; geri alınamaz ama sınırlı eylemler bir eşiğin üstünde onaylanır; geri alınamaz ve sınırsız eylemler varsayılan olarak reddedilir. İşi yapan çizgi sınırlıya karşı sınırsız ve kodda kontrol edilen bir sayı — 50 avronun altında iade yapabilen bir ajan, her tutarda iade yapabilen bir ajandan farklı bir sistem.

37.11.2 Bir tane işletip işletmediğinizi sınayanlar

S: Maskelemeniz ürünü bozdu — ajanlar artık siparişleri bulamıyor. Düzeltin.

Burada birbirinden ayrılması gereken iki problem var. Precision: maskelediğinizin ne kadarının yakalamak istediğiniz tanımlayıcı olmadığını ölçün — on bir haneli bir düzenli ifadede isabetlerin %60’ı TCKN değildi. Bunların bir kısmı, örneğin telefon numaraları, yine de kişisel veridir; neyin maskeleneceğine veri türüne ve bağlama göre karar verin. Ve yıkıcılık: maskelemenin yerine geri döndürülebilir tokenlaştırma koyun; böylece model [TCKN_1] görürken araçlar token’ları güvenilir sınırın içinde değerlere çözsün. Sonra insanların gözden kaçırdığı şeyi söyleyin — artık asıl hassas varlık token eşlemesidir; ona uygun saklama ve erişim denetimleri gerekir ve transkriptlerle birlikte sızarsa özgün veriden daha kötü bir ihlal olur.

S: Saat gece üç ve bir ajan döngüye girip bütçe yakıyor. Ne yaparsınız?

Bir el kitabı sırayla dört soruyu cevaplar: nasıl durdurulur, ne kadar kötü, nasıl geri alınır ve kime söylenir. Durdurmak bir dağıtım değil bir çalışma zamanı bayrağıdır ve farklı düzeylerde durdurabilmelidir — bir araç, bir kiracı, her şey — çünkü tek bir küresel düğme insanların çekmekte tereddüt ettiği bir düğmedir. Geri almak, önceden yazılmış telafi işlemi listesidir; tersi olmadığını söyleyen satırlar dâhil. Haber vermek önemlidir, çünkü kişisel veri ihlallerinde bildirim süresi teşhis bitmeden işlemeye başlar.

S: Bir model yükseltmesinden sonra korkuluklarınızın hâlâ çalıştığını nasıl bilirsiniz?

Her birini, zor vakalardan oluşan etiketli bir kümesi olan bir sınıflandırıcı olarak ele alın ve tıpkı bir hakemi denetler gibi her model ya da prompt değişikliğinde precision ve recall’u yeniden ölçün. Sonra iki üretim sinyalini iki yönde de izleyin: korkuluk tetiklenme oranı ve geri çevirme oranı. Bir sıçrama bir saldırıya ya da kötü bir dağıtıma işaret eder; ani bir düşüş ise korkuluğun sessizce devre dışı kaldığı anlamına gelir ve bunu hiçbir hata oranı size göstermez.

37.12 2026 alet çantası

Ölçüm hiç üçüncü taraf kütüphane kullanmadı — amaç, zor kısımların sağlama toplamı aritmetiği ile derlem tasarımı olduğunu ve ikisinin de standart kütüphaneyle yapılabildiğini göstermekti. İkinci tablo kişisel veri saptama ve maskelemeden (iki Presidio paketi) başlayıp genel tarayıcılar, güvenlik sınıflandırıcıları ve politika çerçevelerinden geçerek kırmızı takım çalışmasına (son satır) uzanıyor.

Bu sayıların geldiği yığın. Hiçbir üçüncü taraf bağımlılığı yok
kütüphane kullanılan sürüm burada ne işe yarıyor
Python standart kütüphanesi 3.14.5 re, random ve tam sayı aritmetiği; kişisel veri ölçümünün tamamı

Yukarıda kullanılmayan ama bilinmesi yararlı araçlar:

Daha geniş ekosistem, Eylül 2026 itibarıyla sürümler
proje sürüm ne zaman başvurursunuz
presidio-analyzer 2.2.364 Microsoft’un tanıyıcılar, bağlam güçlendirme ve sağlama toplamı doğrulayıcılarıyla kişisel veri saptaması — bu bölümdeki ölçümün üretim sürümü
presidio-anonymizer 2.2.364 maskeleme yarısı, saptanan varlıkların geri döndürülebilir şifrelenmesi dâhil
llm-guard 0.3.16 bir girdi ve çıktı tarayıcıları paketi — kişisel veri, prompt enjeksiyonu, toksisite, sırlar — bir çerçeve yerine bir başlangıç kümesi istediğinizde
Llama Guard 4 12B Meta’nın prompt’lar ve cevaplar için güvenlik sınıflandırıcısı (kütüphane değil, bir model); dil listesini kendi trafiğinizle karşılaştırın
nemoguardrails 0.24.1 NVIDIA’nın programlanabilir rayları; prompt metni yerine akışlar olarak ifade edilmiş diyalog düzeyinde politika
guardrails-ai 0.11.0 arıza hâlinde otomatik yeniden sormayla yapılandırılmış çıktı üzerinde doğrulayıcılar; Bölüm 18’le birlikte düşünülmeli
detoxify 0.5.2 küçük bir toksisite sınıflandırıcısı; model çağrısı gerektirmeyen ucuz bir çıktı tarayıcısı olarak yararlı
pyrit 1.1.0 Microsoft’un kırmızı takım aletleri; korkuluklarınızın neyi kaçırdığını başkasından önce böyle öğrenirsiniz (Bölüm 36)

37.13 Lab: bir korkuluk kurun, sonra neye mal olduğunu ölçün

37.13.1 Adım 1 — yerleştirilmiş doğru cevabı olan bir derlem kurun

Kendi alanınızda iki yüz mesaj. Tanımlayıcıları mesajları üretirken siz yerleştirin; böylece hiç elle etiketleme yapmanız gerekmez. Trafiğinizde gerçekten görülen tuzakları ekleyin — Türkçe destek için bu, telefon numaraları, sipariş referansları ve takip kodları demek — ve gerçek tanımlayıcıların önceden belirlediğiniz bir oranını yanlış yazın.

37.13.2 Adım 2 — naif dedektörü ölçün

Yalnızca örüntü. Yalnızca recall’u değil, precision’ı da raporlayın. Sonra yanlış pozitiflerden onunu okuyun ve her biri maskelenseydi bir destek çalışanının neyi kaybedeceğini yazın.

37.13.3 Adım 3 — doğrulama ekleyin ve neyi sildiğini ölçün

Sağlama toplamını uygulayın. Precision kazancını ve recall kaybını raporlayın ve recall kaybının yazım hatası oranınıza eşit olup olmadığını kontrol edin — eşitse, filtrenin hangi kayıtları kaldırdığını ve hepsinin gerçek kişisel veri olduğunu artık tam olarak biliyorsunuz.

37.13.4 Adım 4 — ikinci, bağımsız bir sinyal ekleyin

Bir bağlam kontrolü ya da bir NER modeli (Bölüm 13). Onu tek başına, sonra sağlama toplamıyla birleşim olarak ölçün. Bir birleşimin ne yapıp ne yapamayacağı konusunda açık olun: recall’u düşüremez, çünkü iki dedektörden biri tetiklendiğinde tetiklenir; ama precision’ı iki yönde de değişebilir, çünkü iki dedektörün yanlış pozitiflerini ve iki doğru pozitif kümesini birden devralır. A bir doğru bir yanlış isabet bulsun (%50); B, biri A’nın doğru isabetiyle aynı olan iki doğru isabet bulsun: birleşimde iki doğru bir yanlış vardır, %66,7 — A’nın üstünde. Dolayısıyla kontrol edilecek şey, eklediği recall’un precision üzerindeki etkisine değip değmediğidir — ve hiç recall eklemiyorsa iki sinyal aynı kayıtlarda yanılıyordur; farklı bir ikinci sinyale ihtiyacınız var.

37.13.5 Adım 5 — maskelemeyi geri döndürülebilir kılın

Maskelemenin yerine konuşma başına kararlı token’lar ve modelin hiç görmediği bir eşleme koyun. Ajanın bir sorgulama görevini (örneğin bir siparişi bulmayı) uçtan uca tamamlayabildiğini doğrulayın. Sonra eşlemenin nerede yaşadığını, kimin okuyabildiğini ve ne kadar tutulduğunu yazın.

37.13.6 Adım 6 — araçlarınızı sınıflandırın ve bir sınırı kodda zorunlu kılın

Her aracı dört sınıflı sınıflandırmaya koyun. En riskli olanı alın, modelin dışında zorunlu kılınan sayısal bir sınır ekleyin ve kibarca rica eden bir prompt’un onu aşamadığını bir testle doğrulayın.

37.13.7 Adım 7 — kendi acil durdurma düğmenizi çekin

Hazırlık ortamında, bir aracı çalışma zamanında ve dağıtım olmadan durdurun ve süreyi ölçün. Sonra o sırada sürmekte olan geri alınamaz eylemleri ve her birinin nasıl geri alınacağını listeleyin. Tersi olmayan satırlar sizin bulgularınız.

37.13.8 Teslim edilecekler

Kendi derleminizde dört dedektör yapılandırmasının tamamı için precision ve recall; her birinin neye mal olacağıyla birlikte on yanlış pozitif; geri döndürülebilir maskelemenin görev tamamlamayı koruduğuna dair kanıt; kodda zorunlu kılınmış bir sınır ve onu kanıtlayan bir testle birlikte araç sınıflandırmanız; ve telafi eylemi listenizle birlikte süresi ölçülmüş acil durdurma sonucu.

37.14 Alıştırmalar

  1. Gerçek trafikte precision. Kendi kütüklerinizden bir haftalık kayıt üzerinde on bir haneli bir dedektör çalıştırın ve elli isabeti elle kontrol edin. Precision’ı raporlayın ve burada sentetik tuzak yoğunluğunda ölçülen %40 ile karşılaştırın.

  2. Yazım hatası sorusu. Test derleminizdeki tanımlayıcıların %15’ini yanlış yazın; her birinde tam olarak bir haneyi farklı bir rakamla değiştirin. Sonra doğrulayıcınızın recall kaybının o orana eşit olduğunu doğrulayın. (Bu eşitlik yalnızca tek hane ikamesinde geçerlidir; bitişik iki hanenin yer değiştirmesi kontrolden geçebilir.) Sisteminizin doğrulanmamış bir örüntü isabetiyle ne yapması gerektiğine karar verin ve yazın.

  3. Doğrulamanın anlamsız olduğu yer. Alanınızda örüntüsü zaten belirsiz olmayan bir tanımlayıcı türü bulun. Sağlama toplamının precision’a bir katkısı olup olmadığını ölçün. Yoksa kaldırın ve geri kazandığınız recall’u raporlayın.

  4. Geri döndürülebilir maskeleme, uçtan uca. Tokenlaştırmayı uygulayın ve bir ajanın, bir aracın içinden bir token çözmeyi gerektiren bir görevi tamamlamasını sağlayın. Sonra eşleme deposu için tehdit modelini bir paragrafta yazın.

  5. Geri alınabilirlik denetimi. İşlettiğiniz bir sistemdeki her aracı sınıflandırın. Kaç tanesinin geri alınamaz ve sınırsız olduğunu ve bunların kaçının modelin dışında zorunlu kılınmış bir sınırı olduğunu raporlayın.

  6. Onay reddetme oranı. Onay kapınıza ölçüm ekleyin ve taleplerin ne kadarının reddedildiğini ölçün. Sonra kuyruğa yanlış olduğunu bildiğiniz maddeler yerleştirin ve inceleyicilerin kaçını yakaladığını sayın. Yüksek onay oranı ancak yerleştirilen hatalar da geçiyorsa bir kusurdur. Geçiyorsa, iki nedenden hangisinin söz konusu olduğunu teşhis edin ve onu düzeltin.

  7. Korkuluk regresyonu. Bir korkuluk sınıflandırıcısı alın, kırk zor vakadan oluşan etiketli bir küme kurun ve arkasındaki modeli değiştirdikten sonra yeniden ölçün. Precision ve recall’daki değişimi raporlayın.

  8. Gece üç el kitabı. “Ajan döngüye girdi ve bütçe yakıyor” için el kitabını yazın, sonra sistemi yazmamış bir meslektaşınız onu hazırlık ortamında uygularken siz süre tutun. Size sormak zorunda kaldığı her soru bir boşluktur.

37.15 Daha derine

Okumadan önce: varsa kişisel veri dedektörünüzü alın ve recall’unu değil precision’ını ölçün. Takımınızın hangi sayıyı ezbere söyleyebildiği, hangisini eniyilediğinin iyi bir göstergesi.

Bu bölüm hiçbir makaleye atıf vermiyor, dolayısıyla alışıldık iki tablo yerine tek bir tablo var. Konunun hasımlı tarafı — korkulukların yetmediği yer — Bölüm 36’nın konusu; kaynakları da orada.

Bu bölümün ötesi
kaynak ne olduğu
presidio bu bölümdeki ölçümün üretim sürümü: tanıyıcılar, bağlam güçlendirme, sağlama toplamı doğrulayıcıları ve geri döndürülebilir maskeleme (Presidio buna “anonymization” diyor, ama geri döndürülebildiği için hukuken takma adlandırmadır), hepsi okunabilir
llm-guard bir girdi ve çıktı tarayıcıları paketi; çoğunlukla makul bir varsayılan kümenin ne içerdiğini okumak için yararlı
NeMo-Guardrails prompt metni yerine diyalog akışları olarak ifade edilen politika; gerçekten farklı bir tasarım yaklaşımı
guardrails yeniden sormayla yapılandırılmış çıktı üzerinde doğrulayıcılar, Bölüm 18’in zorunlu kılma karşılığı
PyRIT kırmızı takım otomasyonu; korkuluklarınızın neyi kaçırdığını öğrenmenin en hızlı yolu ve Bölüm 36’ya köprü

37.16 Akılda kalması gerekenler

  • Korkuluk bir güvenlik sınırı değildir. Normal davranan bir sistemden çıkan zararı azaltır; olasılıksal ve sessizce arızalanır ve bir hasım ona karşı sınırsız yeniden deneme hakkı elde eder. Korkuluklar izin sistemlerinin önüne gider, asla yerine değil — önemli olan her sınır kodda, modelin dışında zorunlu kılınır.

  • Precision’ı ve recall’u raporlayın, iki hatanın da bedelini hesaplayın. On bir haneli bir düzenli ifade yerleştirilmiş TC kimlik numaralarının %100’ünü buldu ve isabetlerinin %60’ı kimlik numarası değildi, çünkü boşluksuz yazılmış bir Türk cep numarası da on bir hane. Kaçırılan bir kimlik numarası bir sızıntıdır; gereksiz bir maskeleme ise sipariş numarasını göremeyen bir destek çalışanı demektir. Recall bitmiş görünen sayı; precision ise genellikle korkuluğu kullanmak zorunda olanların onu açık tutup tutmayacağına karar veren sayı.

  • Doğrulama precision kazandırır ama gerçek kişisel veriyi de siler. TCKN sağlama toplamı precision’ı %40,0’tan %99,0’a, recall’u %100’den %84,7’ye taşıdı — ve 15,3 puanlık kayıp mekanik olarak derlemin yazım hatası oranına eşit, çünkü her yazım hatası tek hanelik bir ikameydi ve kontrol bunu her zaman yakalıyor. Yanlış yazılmış bir kimlik numarası hâlâ kütüklerinizde bir kimlik numarasıdır.

  • Sağlama toplamını filtrelemek için değil, güveni sıralamak için kullanın. Doğrulanmış isabetler otomatik olarak maskelenir; doğrulanmamış örüntü isabetleri de maskelenir, güveni düşük olarak işaretlenir ve düşürülmek yerine incelenir. Rastgele on bir haneli bir dizgi TCKN kontrolünü kabaca 100’de 1 kez geçiyor.

  • Farklı biçimlerde arızalanan sinyalleri birleştirin. Sağlama toplamı yanlış yazılmış tanımlayıcıları kaçırıyor; bir bağlam kelimesi etiketsiz olanları kaçırıyor. Birleşimleri %93,6 recall’da %99,1 precision’a ulaştı: sağlama toplamının precision’ı neredeyse korunurken recall kaybının beşte üçü geri kazanıldı — 15,3 puanın 8,9’u.

  • Örüntünün belirsiz olmadığı yerde doğrulamayın. TR + 24 hane örüntüsünün precision’ı zaten %100’dü; dolayısıyla IBAN sağlama toplamı hiçbir şey kazandırmadı ve gerçek IBAN’ların %12,5’ini attı. Her yere aynı titizliği uygulamak burada saf kayıp.

  • Seyrek bir kötü duruma karşı yanlış pozitifler baskındır. %0,1 ihlal, %90 recall ve %1 yanlış pozitif oranıyla bir politika sınıflandırıcısının engellediklerinin yalnızca %8,3’ü gerçek ihlaldir. Eşiği belirleyen kişinin önüne iki sayıyı da koyun.

  • Geri döndürülebilir maskeleyin ve ne yarattığınızı bilin. Konuşma başına kararlı token’lar, yıkıcı maskelemenin bozduğu yerde ürünü çalışır tutuyor — ama artık asıl hassas varlık token eşlemesidir ve transkriptlerle birlikte sızarsa özgün veriden daha kötü bir ihlal olur. Bir kez, tek bir sınırda maskeleyin.

  • Eylemleri prompt’ta değil araçta, geri alınabilirliğe göre sınıflandırın. İşi yapan çizgi sınırlıya karşı sınırsız ve kodda kontrol edilen bir sayıyla zorunlu kılınıyor. Yeni araçlar en katı sınıfa iner ve kasıtlı olarak gevşetilir.

  • Gözetim sessizce çürür. Kendisine ulaşanın %99’unu onaylayan bir onay kuyruğu gözetim de olabilir, gecikme de; hangisi olduğunu yalnızca yerleştirilmiş hatalar söyler — inceleyiciler, tam da ajan genellikle haklı olduğu için otomasyon yanlılığına kayar. Yanlış olduğunu bildiğiniz maddeler yerleştirip inceleyicilerin kaçını yakaladığını sayın, reddetme oranını izleyin, inceleyicilere model tarafından yazılmış bir özet yerine bekleyen çağrıyı ve izi gösterin ve korkuluk tetiklenme oranını iki yönde de izleyin, çünkü ani bir düşüş korkuluğun bozulduğu anlamına gelir ve hiçbir hata oranı bunu size söylemez.

  • Her postmortem bulgusu belgeden uzun yaşamalı. Bir değerlendirme vakası, yeniden sınıflandırılmış bir araç, kodda bir sınır, ölçülmüş bir eşik, bir uyarı. “Prompt’u iyileştir” listede yok — Bölüm 35, prompt’taki bir sıra değişikliğinin doğruluğu gürültü tabanının neredeyse altı katı kadar oynattığını ölçtü.