Semua artikel

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.

Harness fault injection membandingkan kod asli dan modern
Photo by Chidera Faustina Okeke on Unsplash
Read in English

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.

Mengatasi Masalah Validasi Perangkat Lunak Ilmiah yang Dimodernisasi LLM melalui Differential Fault Injection illustration 1
Photo by Daria Nepriakhina 🇺🇦 on Unsplash

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:

  • Penanganan fault transient bit‑flip yang berbeda di kernel integral, di mana urutan atau kondisi penanganan dapat berubah.
  • Titik sinkronisasi paralel yang hilang atau urutannya berubah, mengakibatkan deadlock atau race condition yang tidak ada pada aslinya.
  • Urutan akumulasi yang berbeda di rutin inner‑product, yang mengubah statistik error rounding dan dapat memengaru konvergensi.
  • 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:

  • Identifikasi driver yang digunakan oleh kedua implementasi. Pada contoh GAMESS, driver self‑consistent‑field diinstrumentasikan di dua belas situ.
  • Terapkan fault identik dan deterministik pada kedua versi. Fault harus mencakup transient bit flip dan persisten perturbation.
  • Catat respons masing‑masing, seperti nilai energi akhir, jumlah iterasi, dan kegagalan konvergen, kemudian bandingkan.
  • 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.