Aynen gelen bir yorumu paylaşıyorum. Sonra problemin ne olduğunu açıklamaya çalışacağım.
“ancak ai tarafindan cok kez yanlis sonuc olduguna emin oldugum cevaplar aldim eminmisin dedigimde haklisin deyip yeni bir kod verdi.. ya da verdigi koddaki guvenlik aciklari saymakla bitmez.”
Öncelikle şunu belirtelim:
Bu şekilde yapay zeka ile yazılım geliştirilmez.
Karşınızda deterministik olmayan bir yapı var. Tabii ki zaman zaman kafasına göre bir şeyler anlatacak. Tabii ki size sürekli “Haklısınız!” diyecek. Bunlar yapay zekanın bilinen davranış biçimleri.
Burada üç temel noktaya dikkat etmek gerekiyor.
Birincisi: Yapay zekayı sürekli sorgulayarak, “Emin misin?” diye sorarak doğru sonuçlara ulaşamazsınız. Çünkü verdiği cevapların doğruluğunu kendisinin teyit etmesi güvenilir bir doğrulama yöntemi değildir.
İkincisi: Yapay zeka için kontrol ve denetim mekanizmalarının oluşturulması gerekiyor.
Bu mekanizmaların önemli bir kısmını analiz yeteneği güçlü başka bir yapay zeka modeliyle oluşturabilirsiniz. Her model hem analiz hem de yazılım geliştirme konusunda aynı derecede başarılı olmayabiliyor.
Bir model gereksinimleri analiz eder, başka bir model uygulamayı geliştirir, üçüncü bir model de ortaya çıkan sonucu bağımsız olarak denetler.
Üçüncüsü: Deterministik olmayan bir yapıdan deterministik beklentilerinizi karşılayan çıktılar almak istiyorsanız, çalışma çerçevesini ve beklentilerinizi çok net ifade etmeniz gerekiyor.
Bunun için iki önemli aracımız var:
Onay/kabul kriterleri: Uygulamanın hangi koşullarda doğru çalıştığını tanımlar.
İnvariantlar: Sistemin hangi koşullarda olursa olsun ihlal etmemesi gereken kuralları tanımlar.
Kabul kriterleri olmadan uygulamanın beklenen davranışları sergilediğinden, invariantlar olmadan da sistemin temel kurallara uygun çalıştığından emin olamazsınız.
Ancak bunları tanımlamak da tek başına yeterli değildir. Bu kuralların otomatik olarak doğrulanabildiği mekanizmalar oluşturmanız gerekir. Özellikle güvenlik söz konusu olduğunda bağımsız kontroller de şarttır.
Asıl problem yapay zekanın yanlış kod üretmesi değil, yanlış kodun doğruymuş gibi kabul edilmesine izin veren geliştirme yöntemidir.
Yapay zekaya güvenerek yazılım geliştirilmez. Yapay zekanın ürettiklerini doğrulayabilen bir sistem kurarak yazılım geliştirilir.
Emin mısın diye soran birisi ne yazık ki ne yaptığının farkında bile değildir.