写真65.jpg
AIはあらゆるものを自動化し、プログラマーの代わりとなることができるか。写真:Midjourney

研究者チームが、ソフトウェア開発における人工知能 (AI) が直面している課題の包括的なマップを公開し、この分野をさらに推進するための研究ロードマップを提案しました。

AIがソフトウェア開発の日常的なタスク、例えば複雑なコードのリファクタリング、レガシーシステムの移行、競合状態の検出といった作業を静かに引き継ぎ、人間のソフトウェアエンジニアがシステムアーキテクチャ、設計、そして機械がまだ解決できない創造的な問題に集中できる未来を想像してみてください。近年のAIの進歩は、まさにそのビジョンの実現に近づいているようです。

しかし、MIT のコンピューター科学および人工知能研究所 (CSAIL) と提携研究機関の科学者による新たな研究では、そのような未来を実現するためには、まず現在の非常に現実的な課題を直接的に検討する必要があることが示されています。

「AIがあらゆるものを自動化できるため、プログラマーはもはや必要ないと言う人が多い」と、MITの電気工学・コンピュータサイエンス教授であり、CSAILの上級研究員であり、本研究の筆頭著者でもあるアルマンド・ソラーレザマ氏は述べた。「実際、私たちは大きな進歩を遂げてきました。今日私たちが持っているツールは、以前よりもはるかに強力になっています。しかし、自動化の潜在能力を最大限に引き出すには、まだ長い道のりがあります。」

アルマンド・ソラーレザマ教授は、ソフトウェアエンジニアリングは学生のプログラミング課題のような、小さな関数を扱うコードを書く、あるいはLeetCode風の演習を行うといったタスクだと一般的に認識されていると主張しています。しかし、現実ははるかに複雑です。設計を最適化するためのコードリファクタリングから、企業のテクノロジースタック全体を一変させる、数百万行に及ぶCOBOLからJavaへの大規模な移行まで、多岐にわたります。

測定とコミュニケーションは依然として難しい問題である

GPUコアの調整やChrome V8エンジンの多層的な改善といった産業規模のコード最適化は、依然として評価が困難です。現在のベンチマークは、主に小規模でパッケージ化された問題を対象としています。最も実用的な指標であるSWE-Benchは、AIモデルにGitHub上のバグを修正させるだけのものです。これは数百行のコードで、潜在的にデータ漏洩につながる可能性のある低レベルのプログラミング演習であり、AI支援によるリファクタリング、人間と機械のペアプログラミング、数百万行のコードを含む高性能システムの書き換えといった、実世界の様々なシナリオを無視しています。ベンチマークがこれらの高リスクシナリオをカバーするまで拡大されない限り、進捗状況の測定、ひいては進捗の加速は、依然として未解決の課題です。

さらに、人間と機械のコミュニケーションも大きな障壁となっている。筆頭著者である博士課程のアレックス・グー氏は、現状ではAIとのやり取りは依然として「脆弱な通信回線」のようなものだと述べた。AIにコード生成を依頼すると、返ってくるのは巨大で構造化されていないファイルと、単純で大まかなテストセットだけであることが多い。このギャップは、デバッガや静的アナライザなど、人間が使い慣れているソフトウェアツールをAIが効果的に活用できないという事実にも反映されている。

コミュニティからの行動の呼びかけ

著者らは、これらの問題に対する魔法の杖のような解決策は存在しないと主張し、コミュニティ規模の取り組み、すなわち、プログラマーの実際の開発プロセス(どのコードを残すか、どのコードを削除するか、時間の経過とともにコードがどのようにリファクタリングされるかなど)を反映するデータの構築、リファクタリングの品質、パッチの耐久性、およびシステム移行の精度を評価する共通のツール、そして AI が不確実性を表現して人間の介入を促すことを可能にする透明なツールの構築を求めています。

博士課程のアレックス・グー氏は、これは単一の研究室では実現できない、大規模なオープンソースコミュニティへの「行動喚起」だと捉えています。ソーラー=レザマ氏は、AIが「コード提案ツール」から真のエンジニアリングパートナーへと進化していく過程を、小さな段階的なステップで実現していくと予測しています。「研究成果によって問題が少しずつ解決されていく」のです。

「なぜこれが重要なのでしょうか? ソフトウェアは既に金融、交通、 医療、そしてほぼあらゆる日常活動の基盤となっています。しかし、それを安全に構築し維持するための人間の労力がボトルネックになりつつあります」と顧氏は述べた。「隠れたエラーを起こすことなく重労働をこなせるAIがあれば、プログラマーは創造性、戦略、倫理に集中できるようになります。しかし、そこに到達するには、コードを完成させるのは簡単な部分であり、難しいのはそれ以外の部分であることを理解する必要があります。」

(MITニュースより簡略翻訳)

出典: https://vietnamnet.vn/hanh-trinh-dai-cua-ai-trong-ky-thaut-phan-mem-tu-dong-hoa-2426456.html