Grunnleggende konsepter
雖然大型語言模型 (LLM) 展現出生成程式碼的潛力,但其生成節能程式碼的能力仍待加強,需要進一步研究如何透過提示工程和最佳化技術引導 LLM 生成更節能的程式碼。
這篇研究論文探討如何利用大型語言模型 (LLM) 生成節能的 Python 程式碼。作者們比較了不同 LLM 模型 (CodeLlama 和 DeepSeek-Coder) 在三種不同難度程式題目上的表現,並測試了加入提示詞和程式碼最佳化技巧對於節能效果的影響。
研究方法
選擇三種不同難度的 LeetCode 程式題目,並以 Python 語言實作。
選擇五種 LLM 模型:CodeLlama-70b、CodeLlama-70b-Instruct、CodeLlama-70b-Python、DeepSeek-Coder-33b-base 和 DeepSeek-Coder-33b-instruct。
測試四種提示詞類型:基本提示詞、強調節能的提示詞、使用函式庫的提示詞和使用 for 迴圈的提示詞。
使用 Perf 和 GNU time 工具測量程式碼的能源消耗、執行時間、峰值記憶體使用量和浮點運算次數。
研究結果
並非所有最佳化提示詞都能有效降低程式碼的能源消耗。
for 迴圈最佳化提示詞在多數情況下能有效降低能源消耗,但並非所有 LLM 模型和程式題目都能受益。
使用函式庫的提示詞在某些情況下也能降低能源消耗。
不同 LLM 模型在生成節能程式碼方面的能力有所差異。
研究結論
LLM 模型生成節能程式碼的能力還有待加強。
提示詞工程和程式碼最佳化技術對於引導 LLM 生成節能程式碼至關重要。
未來研究方向包括:
使用更精確的硬體設備測量能源消耗。
納入更多 LLM 模型和程式語言進行測試。
Statistikk
CodeLlama-70b-Python 模型在「兩個排序陣列的中位數」程式題目中,使用 for 迴圈最佳化提示詞比基本提示詞節省了 4.9% 的能源消耗。
DeepSeek-coder-33b-instruct 模型在「分配餅乾」程式題目中,使用 for 迴圈最佳化提示詞比基本提示詞節省了 26.8% 的能源消耗。
DeepSeek-Coder-33b-base 模型在「兩個排序陣列的中位數」程式題目中,使用 for 迴圈最佳化提示詞比基本提示詞增加了 465.5% 的能源消耗。