LLMでコーディング作業を行う際のプロンプトエンジニアリング手法として、「フローエンジニアリング」という新しい概念が提唱されています。
この概念に基づいてコーディングを行うことで、LLMのプログラミング能力が一貫して向上することが定量的に報告されました。
“Code Generation with AlphaCodium: From Prompt Engineering to Flow Engineering”より
■研究の背景
– コード生成は普通のテキスト生成とは異なる
– 一般のプロンプト手法はコード生成に役立たないことがある
■研究者らのアイデア
– 複数の段階に分けてコードを生成・改善する
– テストベースの考え方を用いる
(テストケースを設計、自動化、反復)
■完成したフレームワーク
1. 前処理を行う
– 問題とPublic Tests(解答検証用のテスト)を用意する
– 複数の解答(文章)を生成する
– 解答を品質でランク付けする
– Public Testsを検証する
– 追加のTestを作成する(AIテスト)
2. 反復する
– 最初のコードベースの解答を生成する
– 解答をPublic Testsで試す
– 結果に基づいて改善する
– AIテストを使用してさらに反復して洗練する
■実験結果
– コードタスクでのLLMの性能を一貫してかつ大幅に向上させた
– オープンソース(DeepSeek)とクローズドソース(GPT-3.5/4)両方で効果があった
なお、本手法(名称:AlphaCodium)はそのままだと競技プログラミングの問題に特化しています。
そのため、実際のソフトウェア開発に応用するには少し工夫が必要だろうと述べられています。