- Birçok geliştirici, kod yazmak için LLM kullanmaya çalışırken halüsinasyonlarla karşılaşıyor ve güvenini kaybediyor
- LLM’in var olmayan metotlar veya kütüphaneler uydurması sık görülen bir durum
- Ancak koddaki halüsinasyonlar, halüsinasyonların en az tehlikeli türü
- En tehlikeli durum, LLM’in hata üretmesine rağmen bunun derleyici veya yorumlayıcı tarafından hemen tespit edilmemesi
- Uydurulmuş metotlar çalıştırıldığı anda hata verdiği için kolayca fark edilebilir
- Hata mesajını tekrar LLM’e vererek otomatik olarak düzelttirmek de mümkün olabilir
- Genel metin halüsinasyonlarının aksine, kod çalıştırılarak doğrulanabilir
- Otomatik hata düzeltme özelliğine sahip LLM’ler
- ChatGPT Code Interpreter, Claude Code gibi araçlar, LLM’in yazdığı kodu çalıştırır, hataları tespit eder ve kendi kendine düzeltir
- LLM’in yazdığı kodu hiç çalıştırmadan değerlendirmek verimsizdir
- Bazı geliştiriciler, LLM’in uydurma metotlar üretmesini gerekçe göstererek teknolojinin tamamını reddetmeye çalışıyor
- Ancak etkili kullanım için öğrenme ve deney yapmak şart
- Yazar, 2 yıldan uzun süredir yapay zeka tabanlı kod yazımı üzerine çalışıyor ve hâlâ yeni teknikler öğreniyor
- Kodun manuel olarak test edilmesi zorunludur
- Kodun sorunsuz çalışması, beklenen şekilde davrandığını garanti etmez
- Ne kod incelemesi ne de otomatik testler, kodun doğruluğunu tamamen kanıtlayabilir
- Doğrudan çalıştırma ve doğrulama süreci vazgeçilmezdir
- LLM’in ürettiği kod çok okunaklı olduğu için rehavete kapılma riski vardır
- İnsanların yazdığı kod da aynı şekilde, bizzat çalıştırılmadan güvenilmemelidir
- Halüsinasyonları azaltma yöntemleri
- Başka modeller kullanmak: Belirli bir platforma dair eğitim verisi daha güçlü olan modelleri seçin
- Örnek: Claude 3.7 Sonnet (thinking mode etkin), OpenAI o3-mini-high, GPT-4o (Python Code Interpreter dahil)
- Bağlamdan yararlanmak: LLM belirli bir kütüphaneyi bilmese bile örnek kod verilirse kalıbı öğrenebilir
- İstikrarlı teknolojiler seçmek: Daha eski kütüphaneler seçildiğinde LLM’in bunlarla daha iyi çalışması olasıdır
- Kod incelemesinin önemi
- "LLM’in yazdığı tüm kodu inceleyeceksem kendim yazmam daha hızlı olur" iddiasına karşı çıkılıyor
- Bu, kod inceleme becerisindeki eksikliği ortaya koyan bir söz de olabilir
- LLM’in ürettiği kodu incelemek, becerileri geliştirmek için iyi bir fırsat olabilir
- Bonus: Claude 3.7 Sonnet’ten geri bildirim
- Yazar, blog taslağını Claude 3.7 Sonnet’in "extended thinking mode" özelliğinde inceletti
- "Bu yazının mantığı ikna edici mi, geliştirilebilecek noktalar var mı, eksik kalan bir şey bulunuyor mu, gözden geçir" diye istedi
- Claude, taslağın tonunu daha yumuşak hâle getirmeye yardımcı oldu
- Claude geri bildirim konuşması bağlantısı
1 yorum
Hacker News görüşü
Yorumcu, önceki yazıda yazara katılmış olsa da bu yazıda katılmıyor
LLM'in ürettiği kod iyi çalışsa bile, yazarı değilseniz hataları veya mantıksal kusurları bulmak zor olabilir
LLM tarafından üretilen kod temiz görünür, ancak QA ve toparlama işlerine daha fazla zaman harcatır
The Primeagen ve Casey Muratori, en yeni LLM kod üreticilerinin çıktısını inceliyor
Simon'ın gözden kaçırdığı bir başka hata kategorisi de modelin işlevleri unutmasına dayanan halüsinasyonlar
Uydurulmuş metodlar küçük bir engeldir; insanlar bundan şikayet ettiğinde, sistemin nasıl etkili kullanılacağını öğrenmek için asgari düzeyde zaman harcadıkları varsayılıyor
Halüsinasyonun kendisi, LLM'lerin yarattığı en büyük risk değil
Yalnızca derleme hatalarının sınırlı bağlamında daha az tehlikelidir
LLM'den iyi sonuç almak için çok fazla çaba gerekiyor
Bir tıp merkezinde hastanın 'ana' kliniğini bulacak kodu yazma deneyimi