Çoğu test stratejisi, nadir görülen uç durumları müşteriler üretimde bulana kadar gözden kaçırır. Bu makale, Anthropic'in yakın zamanda karşılaştığı yaklaşık top-K hatasını yakalayabilecek türden nadir hatalar için hedefe yönelik birim testleri otomatik olarak üreten bir sistem sunuyor. TPU uygulamasındaki bir top-K hatası, en olası token'ın bazen dışarıda bırakılmasına neden olmuştu. Bu tür nadir hatalar, testlerle her davranışı kapsamlı bir şekilde ele almanın pratik olmaması nedeniyle sıklıkla üretim ortamına sızar. Anthropic, hatayı keşfettikten sonra basit bir yeniden üretici sağlamış olsa da, bu tür testler genellikle zahmetli bir hata minimize etme sürecinden sonra yazılabilir.
Makalede sunulan sistem, Anthropic'in hata yeniden üretici koduna ihtiyaç duymadan, "fractional proof decomposition" (kesirli kanıt ayrıştırma) yöntemini kullanarak birim testlerini otomatik olarak oluşturuyor. Bu yöntem, öncelikle uygulamanın sağlaması gereken özelliği ("teorem") belirleyip bunu Hypothesis framework kullanarak bir PBT (Property-Based Test) olarak kodlamakla başlar. Örneğin, top-K hatası için teorem, herhangi bir prompt için en olası token'ın her zaman top-K sonuçları arasında yer almasıdır. Ancak, uçtan uca PBT'lerin nadir hataları yakalamak için aşırı miktarda hesaplama gücü gerektirmesi bir sınırlamadır.
Bu sınırlamanın üstesinden gelmek için sistem, teoremleri daha küçük PBT'ler olarak kodlanmış bir dizi alt teoremine ayrıştırır. Bu alt teoremler, orijinal uçtan uca PBT'yi oluşturan ara sonuçlardır. Top-K hatası için uçtan uca PBT'nin ayrıştırılması, maksimum değerin her zaman dahil edilmesi gibi üç ana teorem ortaya çıkarır. Bu yaklaşım, PBT'leri "brute-force" kanıtın kesirli bileşenleri olarak düşünerek, programların sistematik bir şekilde anlaşılmasını ve test hesaplama kaynaklarının nasıl harcanacağı üzerinde kontrol sağlar. Bu sayede, geriye dönük bir bakış açısına ihtiyaç duymadan hatalar sistematik olarak bulunabilir.
Bu yöntem, nadir ve tespit edilmesi zor hataların, üretim ortamına ulaşmadan önce otomatik ve sistematik bir şekilde yakalanmasını sağlayarak yazılım kalitesini önemli ölçüde artırır.