Yapay zeka incelemelerine güvenebilir miyiz?
(medium.com)Şirket içi yapay zeka inceleme aracını işletirken, "Yapay zeka incelemelerine güvenebilir miyiz?", "Gerçekten iyi doğrulama yapıyor mu?" sorularına yanıt verebilmek için kaliteyi nicel olarak ölçüp iyileştirdiğimiz süreci paylaşıyoruz.
Arka plan
- Yapay zeka tarafından üretilen kodda, insan yazımı koda kıyasla PR başına 1,7 kat daha fazla issue ve %75 daha fazla mantık hatası bulunuyor (CodeRabbit)
- Amazon, yapay zeka kaynaklı bir kod arızasının ardından senior PR onayını zorunlu hale getirdi; Shopify ise yapay zeka PR'lerinin otomatik merge edilmesini yasakladı
- Yapay zeka incelemesi, bu ortamda issue ve hataları erken tespit etmek için bir doğrulama aracı olarak devreye alındı
- Ancak yapay zeka incelemesinin kendisi de deterministik olmadığından, "Bu doğrulama aracı gerçekten iyi doğrulama yapıyor mu?" sorusunu ölçme aşamasının önce gelmesi gerekiyor
Kendi benchmark'ını oluşturma
- Hotfix PR → orijinal PR geriye doğru izlenerek "Orijinal anda yapay zeka incelemesi bu bug'ı yakalayabilir miydi?" ölçüldü
- Yalnızca PR diff'inden karar verilebilen vakalar dahil edildi, dış bağlam gerektirenler hariç tutuldu
- Puanlama için GPT-4o mini ile LLM-as-a-Judge kullanıldı. Mutlak değerler kusurlu olsa da göreli karşılaştırma için yeterliydi
- İlk skor 33 puandı. "İyi iş çıkarıyoruz gibi hissetme" durumu, çok az sayıdaki başarılı örneğin yarattığı bir yanılsamaydı
Başarısızlık 1 (sub-agent orkestrasyonu)
- Alan bazlı uzman sub-agent'lar kurup ana agent'ın bunları yönettiği bir yapı denendi
- Sonuç: tespit oranı ↓, maliyet 1,5~3 kat ↑
- 3 neden
- Context sıkıştırmasından kaynaklanan bilgi kaybı
- İlgi alanı kısıtlaması nedeniyle görüş alanının daralması
- Alanlar arası sorumluluk boşluğu
Başarısızlık 2 (benchmark kirlenmesi)
- Döngüyle prompt otomatik ayarı yapılınca, "Division by Zero kontrol et" türü talimatların listelendiği bir yapıya yakınsadı
- SWE-bench de zaten kirlenmiş durumda
- Dış benchmark'ların model seçimi için sağlam bir dayanak oluşturamayacağı doğrulandı
Yeni metrik (Adoption Rate)
- adopted: inceleme gerçek bir kod değişikliğine yol açtı
- engaged: değişiklik yok ama yanıt yorumuyla etkileşim var (çapraz doğrulama değerinin kabulü)
- noised: ne değişiklik ne de yanıt var
- Karar yöntemi: inceleme anındaki commit SHA ile merge anındaki SHA karşılaştırıldı; yorum satırının ±3 satırı içinde değişiklik varsa adopted sayıldı
Opus 4.6 vs GPT-5.2 Codex A/B
- PR numarasının tek/çift olmasına göre model ayrıldı, yaklaşık 100 PR karşılaştırıldı
- Opus 4.6: hızlı ve yaratıcı ama yeterince titiz değil, kolayca Approve veriyor
- GPT-5.2 Codex: yavaş ama titiz; yeniden inceleme istendiği aşamada bile geçerli ek tespitler yapıyor
- Codex'e sabitlendikten sonra haftalık yansıtma oranında %60 ile zirve görüldü
Yansıtma oranını artıran 3 önlem
- Question: emin olunmayan durumlarda tespit belirtmek yerine soru sormak
- PR şablonunda Intent/Decisions bölümü
- Intent: create-pr becerisiyle "Neden gerekli?" sorusunun yanıtı eklendi
- Decisions: Claude Stop hook ile sohbet oturumundaki kararlar otomatik çıkarıldı
- İncelemecinin bağlam eksikliğinden kaynaklanan false positive'ler yaklaşık %29 azaldı
- Thread'leri otomatik resolve etme: incelemenin uygulandığı doğrulanınca yapay zeka thread'i kendisi kapatıyor
Sonuç
- Aylık yansıtma oranında %63'e ulaşıldı (2026-04-17 itibarıyla)
- Tüm aksiyonlar veri tabanlı olduğu için, sonraki deneyler de dayanaklı biçimde değerlendirilebiliyor
- Adoption Rate de "benimsendi = doğru" anlamını garanti etmediğinden, bu metriğin de kirlenebileceğine karşı dikkatli olunmalı
4 yorum
Yani... biraz "gözetleyeni kim gözetler?" gibi.
Yukarıda bahsettiğim "doğrulama aracı" ile kastettiğim şey yapay zeka yorumlayıcısıydı. Yapay zeka deterministik olmadığı için, yapay zeka incelemesinin kalitesini ölçebilecek bir referans çizgisine (benchmark) önce ihtiyaç olduğu niyetindeydim; ancak okuyanların bakış açısından bu, önce benchmark’ın kendisinin ne kadar geçerli olduğunu sorgulamak gerektiği anlamında da okunabilir sanırım.
Cümleyi muğlak kurduğum için kafa karışıklığına yol açmış olabilirim. Uyardığınız için teşekkür ederim..!
Ben kişisel olarak kod yazan model ile inceleme yapan model için farklı modeller kullanıyorum.
Deneyimlerime göre Claude, Claude'un yazdığı kodu iyi yazılmış kod olarak algılıyor; ChatGPT de ChatGPT'nin yazdığı kodu daha iyi yazılmış kod olarak görüyor.
Planlama aşamasıyla doğrulama aşamasında Codex kullanıyordum; demek ki doğru yapıyormuşum.