← 最新の論文
💻 computer science

Prefactory: Automated Discovery and Application of Library-Adoption Refactorings

本論文は、LLMを用いて実行可能な探索ヒューリスティックを合成することで、Pythonコードにおけるライブラリ採用のリファクタリングを効率的に検出し適用する自動化システムであるPrefactoryを紹介し、実世界のプロジェクトからなる新しいベンチマークにおいて、既存のベースラインよりも有意に高い検出率および検証率を達成したことを報告する。

原著者: Islem Bouzenia, Michael Pradel

公開日 2026-07-21
📖 1 分で読めます☕ さくっと読める

原著者: Islem Bouzenia, Michael Pradel

原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

あなたは、あらゆる本が異なる著者によって独自のスタイルで書かれた、巨大で混沌とした図書館を整理する任務を負った司書であると想像してください。中には、すでに図書館の奥の部屋に完璧な既製品の道具があるにもかかわらず、車輪の再発明をするかのように、長く複雑な指示書を書き上げる著者もいます。コンピュータプログラミングの世界では、これを「リファクタリング」と呼びます。これは、乱雑で手書きされたコードを整理し、既存の、テスト済みのクリーンで効率的なライブラリへの呼び出しへと置き換える技術です。これは、自分でセーターを編んでいることに気づき、「既製品の完璧なものを店で買えばいいのに」と思うようなものです。問題は、こうした機会を見つけ出すことが、干し草の山の中から針を探すようなものであることです。なぜなら、その針は針のような見た目をしていないこともあるからです。手書きのコードは、ライブラリの名前すら言及せず、ただ同じことを不器用な方法で行っているだけかもしれません。長年、コンピュータはこうした隠れたアップグレードの機会を特定することに苦労してきました。なぜなら、コンピュータはあまりに硬直的であり、超高性能なAIにプロジェクト内のすべてのファイルを読み込ませることは、コストがかかりすぎ、時間がかかりすぎるからです。

そこで、このパズルを解くために設計された新しいツール、Prefactoryが登場します。Prefactoryは、スーパーインテリジェントなAIにコードのライブラリ全体を最初から読み込ませる(これは探偵を雇って図書館中の本を一冊ずつ読ませるようなものです)代わりに、AIにまず一連のカスタム「金属探知機」を作成することを教えます。これらの探査機は、埋められた宝の特定の形や音に合わせて調整された、特化した金属探知機のようです。一度AIがこれらの探査機を構築すれば、瞬きする間にコードベース全体をスキャンし、ライブラリ関数のパターンに一致する、乱雑な手書きのコードを見つけ出すことができます。一致が見つかると、AIが最後の一歩として介入し、入れ替えを行い、新しいコードが古いコードと全く同じように動作するかどうかをダブルチェックします。

研究者たちは、開発者が手書きのコードをライブラリの呼び出しに正常に置き換えた、100の実際の事例を用いた大規模なコレクションを用いて、このアイデアをテストしました。その結果、Prefactoryはこうした機会を特定することにおいて非常に優れていることがわかりました。Prefactoryは、100件中75件のケースで正しいファイルを見つけ出し、56件のケースで修正すべき正確な関数を特定することに成功しました。対照的に、標準的なAIエージェントがコードを読み通すことに依存した次点の優れた手法では、正しいファイルを35件、正しい関数を32件しか見つけることができませんでした。さらに優れたことに、Prefactoryは、すべての安全テストを通過した、完全に検証済みの動作するリファクタリングを40件作成しました。

このアプローチがこれほど特別である理由は、お金と時間を節約できる点にあります。Prefactoryでプロジェクトをスキャンするには、平均してわずか1.3秒しかかからず、発見と修正にかかるコストは1インスタンスあたり0.05ドル未満です。一方、標準的なAIエージェントの手法は、毎回プロジェクト全体を「思考」する必要があるため、コストは約3倍かかり、時間も長くかかります。論文は、AIの知識を再利用可能な実行可能な探査機へと変えることで、コードのクリーンアップを高速、安価、かつ信頼性の高いものにできると示唆しています。しかし、著者らは、このシステムがまだ完璧ではないことも指摘しています。非常に大規模で複雑なライブラリにおいて、「手書き」のコードがライブラリの標準的なパターンと大きく異なる場合、システムは時として苦戦することがあり、また、複雑な複数ファイルにまたがるアーキテクチャの変更を伴うコードを修正することはできません。しかし、日常的なコードクリーンアップタスクの大部分において、この新しい「探査機構築」アプローチはゲームチェンジャーとなるようです。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →