生成AIはコードの近代化を本当に進化させるか:Gartner Insights Pickup(377)
ソフトウェアエンジニアリングリーダーの間で、OpenAIの「ChatGPT」やGoogleの「Gemini」のような生成AIチャットbotの可能性に関心が高まっている。だが、生成AIは有能ではあるが、完全に信頼することはできない。本稿では、生成AIが抱える課題について紹介する。
OpenAIの「ChatGPT」や、これに似たGoogleの「Gemini」、Anthropicの「Claude」のような生成AIチャットbotは、ある開発言語で書かれたソフトウェアコードを別の言語に翻訳する能力を示しており、ソフトウェアエンジニアリングリーダーの間では、コードの変換や近代化における生成AIチャットbotの可能性への関心が高まっている。
例えば、生成AIチャットbotが、メインフレーム上で動作するCOBOLアプリケーションを、クラウド上で動作するJavaアプリケーションに変換してくれるというわけだ。こうした生成AIチャットbotのソフトウェアコード変換プロセスの出力は、可読性が高く、構造が明確で、一見正しく見える。
だが、生成AIは有望な能力を持つものの、こうしたコード変換について完全に信頼することはできない。
コード変換における生成AIの限界
生成AIがコードを翻訳する能力は画期的に思えるかもしれないが、この能力には大きな限界がある。生成AIは以下のような限界を抱えているため、ほとんどの企業は、生成AIをコードの自動変換に使用することを容認すべきではない。
1.不正確で不完全な変換
通常、アプリケーションを近代化する際、コード変換では元のコードを忠実に翻訳する必要がある。変換後のアプリケーションは元のアプリケーションと機能、データの両面で完全に同等であり、それが実証されていなければならない。この実証がなければ、アプリケーションを全面的にテストし、コードの不備、不正確さ、容認できない問題を手作業で修正する必要がある。ChatGPTや他の生成AIソリューションを使用する場合、この機能とデータの等価性の要件が大きな課題となる。
生成AIは、機能/データ等価性を確保するのに適していない。GPT-4は従来の生成AIよりも信頼性が高く、より複雑な状況に対処できるが、以下のように幾つかの重大な問題を抱えている。
- ハルシネーション(誤った情報をもっともらしく生成する問題)や事実誤認:生成AIは一見正しいコードを生成するが、よく点検すると、その中に重大なエラーやバグが含まれていることがある
- トレーニングデータの問題:生成AIの基盤となるAIモデルは、トレーニングデータセットの欠陥を反映する。これらの欠陥データには不正確なデータや偏ったデータ、禁止されているデータ、事実に反するデータなどがある
- 不完全な結果:生成AIによってコードの一部が変換されない可能性があり、その場合は生成AIの出力が不完全なものになる
- 透明性と説明可能性の欠如:生成AIモデルは複雑であり“ブラックボックス”として動作する。そのため、どのように判断に至るかを理解するのが難しい。この透明性の欠如は、生成AIモデルに対する評価の正誤を判定する妨げになる
2.変換範囲全体を処理しきれない
通常、アプリケーションのソースコードは数十万行から数百万行にも及び、GPTシリーズやGeminiのような大規模言語モデル(LLM)では処理しきれない。生成AIチャットbotの1つのプロンプトに入力できる文字数には上限がある。GPT-3と比べると、GPT-4では8〜10倍のユーザーコンテンツを指示とともに入力できるが、上限があることに変わりはない。その上限は、ほとんどのアプリケーションのコードベースよりも小さい。
生成AIモデルはモジュールを個別に変換できるが、アプリケーションを段階的に変換することは推奨されていない。大規模なアプリケーションでは、コードとデータの間に多くの明示的および暗黙的な依存関係があり、それらは変換時に解釈され、考慮されなければならない。きちんと動作する安定した安全なアプリケーションを生成するには、完全なシステムのコンテキストが必要になる。
3.危険な欠陥コード
生成AIの基盤となる大規模言語モデル(LLM)は、高品質のコードだけでなく、セキュリティ脆弱(ぜいじゃく)性やバグ、著作権上の制限があるコードも使ってトレーニングされている。そのため、こうしたLLMによって生成されるコードには、プロプライエタリ(他者が所有するもの)、オープンソース、または安全性の低いコーディングパターン、さらには危険な、あるいは悪意あるコードセグメントが含まれる可能性がある。
アプリケーションのモダナイゼーションにおける生成AIの今後
生成AIなどのAI技術は、コード変換とモダナイゼーションツールを進化させると期待されている。だが、人手を介さない完全に自動化されたコード変換がすぐに可能になるわけではない。長い間、この分野のベンダーは機械学習のようなAI技術を利用してきたが、現在は生成AIの限界を改善することに取り組んでいる。生成AIを決定論的ルールに基づくモデルやトランスパイラと統合することで、コード変換作業の効率と成果が向上すると予想されている。
出典:Can Generative AI Enhance Code Transformation and Modernization Efforts?(Gartner)
※この記事は、2024年8月に執筆されたものです。
Copyright © ITmedia, Inc. All Rights Reserved.