グーグルで生成AIを使って変更した39件のソフトウェアを調べた論文
査読中の論文を登録するWebサイトであるarxiv.org (アーカイブ)にある論文で、最終版は変更される可能性がありますが、興味深いので紹介します。タイトルは「Migrating Code At Scale With LLMs At Google」です。登録日は2025/4/13です。
グーグルでのコード変更の際にどの程度生成AI(LLM: Large Language Model)を使ったかを報告する論文です。調査対象は32ビット整数型を64ビット整数型の移行をした39ソフトウェアです。人間が指定した変数(32ビット整数型を64ビット整数型に変更したい変数)の参照箇所を洗い出し、バグが混入しないように変更できると移行が完了したと判断しています。
LLMは変更したい変数を指定されると、変更後のコードを出力し、変更の妥当性を確認します。コンテキストウィンドウよりも大きいコードが対象となる場合、人手で修正しています。また、LLMのハルシネーションがないかを人手で確かめ、必要に応じて変更しています。
短縮できる時間を開発者に回答してもらったところ、50%くらいの時間を短縮できるとしています。また、ソフトウェアによって変わりますが、LLMによる変更の割合(変更距離)がFig. 4に掲載されています。まだ、投稿中の論文ということもあり、この図のどちらがLLMでどちらが人手なのかは明示されていないようですが、他の部分から読み取ると緑色がLLMによるLevenshtein変更距離の割合、黄色が人手による割合と読み取れます。LLMによる変更が100%使われた(人手チェックで問題ないと判断された)ソフトウェアもあります。
Levenshtein編集距離は変更前後でどのくらい文字が変更されたかを計測する指標です。算出の詳細や39件分の編集距離やパーセンテージの内訳は元論文のFig. 4にありますので確認してください。
論文では、式の途中に誤ってソースコードコメントが挿入されているハルシネーションの例が示されています。
全体的には開発者は満足しているという記述もあり、こうした移行では生成AIが特に効果を発揮しそうです。