19/8/2026
Mengatasi Masalah Validasi Perangkat Lunak Ilmiah yang Dimodernisasi LLM melalui Differential Fault Injection
Panduan diagnosis dan perbaikan kesenjangan validasi ketika model besar menulis ulang kod Fortran legacy untuk perangkat lunak ilmiah, menggunakan differential fault injection.
Gejala Kegagalan Validasi
Ketika model bahasa besar (LLM) menulis ulang Fortran legacy untuk perangkat lunak ilmiah produksi, implementasi baru sering lulus tes unit dan tes integrasi, namun dapat berperilaku berbeda ketika menghadapi gangguan (fault) yang tidak ditangkap oleh tes tersebut. Gejala yang paling umum meliputi perbedaan nilai energi akhir yang melebihi toleransi numerik yang diharapkan setelah diberikan gangguan yang sama, kegagalan konvergen yang muncul hanya saat presisi floating‑point dikurangi, serta deadlock paralel yang terjadi sesekali dan tidak ada pada versi asli. Tanda‑tanda ini menunjukkan bahwa modernisasi tidak mempertahankan respons kod asli terhadap fault, yang dapat mengakibatkan kesalahan results ketika software dijalankan di lingkungan riil.
Masalah ini muncul karena tes tradisional biasanya fokus pada eksekusi nominal, yaitu kondisi di mana tidak ada gangguan. Perangkat lunak ilmiah, terutama yang menggunakan algoritma iteratif seperti self‑consistent‑field, sering bergantung pada propagasi error yang halus dan mekanisme konvergensi yang sensitif terhadap kebocoran presisi. Tanpa pengujian yang secara khusus memicu fault, perbedaan kecil dalam penanganan error dapat membesar dan mengubah hasil akhir.
Penyebab Akar dalam Kode yang Dihasilkan LLM
Kode yang dihasilkan oleh LLM sering mengubah cara penyebaran error. Beberapa penyebab umum adalah:
Perbedaan ini baru terlihat ketika software diuji dengan fault terkontrol, karena eksekusi nominal masih dapat menghasilkan nilai yang tampak masuk akal.
Prosedur Diagnosis dengan Differential Fault Injection
Validasi sistematis dapat dilakukan dengan harness differential fault injection, yang menerapkan fault yang sama ke versi asli dan modern, lalu membandingkan responsnya. Langkah‑langkah umum:
Prosedur ini memisahkan kernel integral yang dikonversi dan mengungkapkan apakah他们 merespons fault dengan sama. Untuk detail implementasi harness, lihat Gaionix documentation.
Bukti dari Studi GAMESS
Metode ini diuji pada paket quantum‑chemistry GAMESS. Tim peneliti menginstrumentasikan driver self‑consistent‑field di dua belas situ dan menjalankan kampanye fault injection yang luas, dengan jumlah run yang cukup besar. Biaya penyerapan transient fault menunjukkan konsistensi dengan model contraction‑based, di mana slope yang diprediksi dan nilai terukur berada dalam rentang yang dekat, meskipun nilai pasti tidak diulang dalam artikel ini. Perturbation persisten mengurangi error energi akhir seiring peningkatan presisi, tanpa perlu menyebutkan faktor pengurangan spesifik.
Kampanye ini mengungkapkan deadlock paralel bergantung pada phase dan konvergen palsu saat dijalankan dengan presisi dikurangi. Kernel asli dan modern setuju dalam semua paired injection yang diuji, dan perubahan sinkronisasi berbasis measurement yang gabung dengan modernisasi juga menunjukkan kesesuaian pada semua pasangan yang diuji.
Perbaikan dan Perubahan Sinkronisasi
Ketika ketidaksesuaian muncul, langkah pertama adalah menyelaraskan titik sinkronisasi di driver paralel. Studi GAMESS menunjukkan bahwa perubahan kecil yang dipandu oleh measurement fault injection mengembalikan kesesuaian. Setelah perbaikan, injection berulang konfirmasi bahwa kernel modern berperilaku seperti asli.
Keterbatasan dan Pemantauan Berkelanjutan
Differential fault injection memerlukan akses ke kod sumber asli dan contoh fault yang representative. Metode ini mungkin tidak menangkap semua keadaan software, sehingga pemantauan berkelanjutan di produksi disarankan. Teknik paling efektif ketika diintegrasikan ke dalam pipeline continuous integration.