Concepts de base
大型語言模型 (LLM) 如 CodeLlama 和 GPT-4,可以有效地應用於將舊版 Fortran 程式碼轉換為 C++,從而顯著提高科學計算領域的軟體開發效率。
這篇研究論文探討了大型語言模型 (LLM) 在科學計算領域的程式碼轉換和軟體開發中的應用,特別是將舊版 Fortran 程式碼轉換為 C++。
研究目標
探討如何利用 LLM 自動化將舊版 Fortran 程式碼轉換為 C++ 的過程,以提高開發效率。
評估不同 LLM 在程式碼轉換任務中的效能,並探討其優缺點。
方法
開發了一個名為 [Code-Scribe] 的工具,該工具利用 LLM 輔助開發人員進行程式碼轉換。
[Code-Scribe] 採用聊天完成作為提示技術,並結合結構化對話和程式碼範本,以引導 LLM 生成所需的程式碼輸出。
該工具還包含索引、檢查、草稿和翻譯等命令,以簡化轉換過程。
研究人員使用 MCFM 程式碼庫(一個用於模擬粒子交互作用的蒙地卡羅程式碼)評估了 [Code-Scribe] 的效能。
他們比較了不同 LLM(CodeLlama-7B、Mistral-7B、CodeLlama-34B、GPT-4o 和 GPT-3.5 Turbo)在程式碼轉換任務中的表現,並分析了開發人員在審查和測試轉換後的程式碼所需的時間。
主要發現
所有評估的 LLM 都能成功將 Fortran 程式碼轉換為 C++,但準確性和效率各不相同。
GPT-4o 在程式碼轉換任務中表現最佳,其次是 GPT-3.5 Turbo。
使用 [Code-Scribe] 可以顯著減少開發人員在程式碼轉換和測試上花費的時間,從而提高生產力。
主要結論
LLM 在自動化程式碼轉換任務方面具有巨大潛力,可以顯著提高科學計算領域的軟體開發效率。
[Code-Scribe] 為利用 LLM 進行程式碼轉換提供了一個有效的框架,並可以根據特定需求進行調整。
研究意義
這項研究強調了 LLM 在軟體開發中的變革性影響,特別是在程式碼轉換和現代化方面。
[Code-Scribe] 的開發為開發人員提供了一個實用的工具,可以簡化將舊版程式碼庫遷移到現代程式語言的過程。
局限性和未來研究方向
未來將進一步完善 [Code-Scribe],並探索其在其他科學計算專案中的應用。
研究人員計劃擴展 [Code-Scribe] 的功能,包括自動生成聊天範本和與 LASSI 框架整合,以提高生成程式碼的正確性。
Stats
使用 [Code-Scribe] 工具後,開發人員的生產力從每天 2-3 個檔案提高到每天 10-12 個檔案。
所有模型的運作都在 4096 個權杖的最大限制下進行,CodeLlama 和 Mistral 模型使用 8 的最大批次大小以及溫度和 top-p 參數的預設值。