
拓海先生、最近うちの現場でも「AIでコードの問題点を見つけられる」と部下が言い出しておりまして。そこで、ASTAGENという論文を読もうと言われたのですが、正直私には難しすぎます。要するに、うちのような古い会社でも使えるものなのでしょうか?

素晴らしい着眼点ですね!大丈夫、一緒に整理していきましょう。まずASTAGENは、SATD(Self-Admitted Technical Debt、自己認知型技術的負債)を分類するための”自動タクソノミー生成”を目指した方法です。これを使うと、コメントやコード周辺の記述から分類を自動で作れるんですよ。

AIとかLLMって聞くと大げさに感じるのですが、LLM(Large Language Model、大規模言語モデル)を使うんですか?それなら手間やコストが気になります。

その通りです。ASTAGENはLLMを活用しますが、特徴は”説明を生成してから分類する”という流れです。つまり、ただ一度に分類させるのではなく、まず各コメントについて簡潔な説明を作らせ、その説明をもとにカテゴリーを逐次構築していくので、結果がぶれにくく効率的に進みます。要点を三つで説明すると、説明駆動、逐次更新、低コストです。

説明駆動というのは、要するに機械に”なぜ問題か”を一度説明させてから整理する、ということですか?

はい、まさにその通りですよ。説明をまず作らせることで、人間が理解しやすい中間表現が生まれます。それにより、分類の一貫性が高まり、後で人がチェックするときの負担も減ります。さらに実験では、大規模なデータでも二時間未満、コストは1ドル未満という結果が出ていますから、投資対効果は良好であると言えます。

それは驚きですね。でも実際に現場に入れると、プロンプトの設計やランダム性で結果が変わったりするのではありませんか?運用面での不安が残ります。

鋭い指摘です。確かにLLMは確率的な振る舞いを持つため、プロンプトやバッチ設計に依存する部分はあります。論文でも複数回実行してばらつきを確認していますし、人のチェックを組み合わせる半自動運用が現実的です。要は自動化を目指すが、完全放置はしない運用設計が必要です。

なるほど。これって要するに、人が設計した枠組みに対してAIが説明と分類を補助して、最終判断は人がする、というハイブリッド運用が良いということですか?

その理解で問題ありません。まとめると、ASTAGENは現場での半自動化を目指す実践的な道具です。導入時のポイントは三つ、まず最初に小さなデータセットでプロンプトと運用フローを固めること。次に説明生成を人がサンプリングで検査すること。最後に継続的にプロンプトやマージ基準を改善することです。大丈夫、一緒にやれば必ず導入できますよ。

わかりました。では私の言葉で整理します。ASTAGENはLLMを使ってコメントの”説明”をまず作らせ、その説明を元に分類を段階的に作ることで精度と効率を両立し、現場では人が最終チェックする半自動運用が現実的である、ということですね。
