IBM、ジェネレーティブAIでCOBOLをJavaに変換する「watsonx Code Assistant for Z」を発表

SHARE:
Image credit: IBM

COBOL は、少なくとも2023年の時点では、プログラミング開発をリードする言語として言及されるものではない。しかし常にそうであったわけではない。1959年にデビューした COBOL は、コンピューティングの最初期の時代をリードする言語であり、今日でも数十億行の COBOL コードがアプリケーションを動かしている。

IBM は21日、ジェネレーティブ AI 大規模言語モデル(LLM)のパワーを利用して、COBOL アプリケーションを現代に導入するための新たな取り組みを発表した。COBOL コードが実行され続けているところの中には、メインフレーム「IBM System Z(一般に単に「Z」と呼ばれる)」がある。

新しいサービス「watsonx code assistant for Z」は、IBM の watsonx LLMs をコード開発に活用し、COBOL アプリケーションをより最新の Java アプリケーションコードに移行するのを支援する。Gen AI(ジェネレーティブ AI)を使用してメインフレーム上のアプリケーションを段階的に最新化することで、IBM は、リスクを低減しながら、人材不足に取り組み、Java スキルを活用するクライアントを支援することを目指している。

IBMは5月に開催されたカンファレンス「Think」で、企業のユースケース向けに設計された一連の AI 基盤モデルを構築する取り組みとして、watsonx 製品プラットフォームについて初めて明らかにした。

IBM Z Software の副社長 Skyla Loomis 氏は、記者会見で次のように語った。

私たちは、コードアシスタンスのためのジェネレーティブ AI の利用が、重要なユースケースとなりつつあり、新たな市場トレンドとなっていることを実感しています。ジェネレーティブ AI は、開発者がより迅速に正しいコードを評価、更新、テストするのに役立ちます。

COBOL のアップデートが重要な理由

COBOL コードの重要な課題は、それを実際に保守する方法を知っている開発者が減少していることである。

Loomis 氏は、IBM の Z メインフレームクライアントの約84%が COBOL アプリケーションを実行していると指摘した。そのため、より簡単に保守できる方法でコードの近代化を支援することが急務となっている。COBOL のスキルが不足しているため、IBM は古代のプログラム言語を実際に理解できるように AI を訓練することを狙ったのだ。

記者会見では、IBM Z Software の CTO Kyle Charle t氏が、watsonx Code Assistant がどのように COBOL コードを認識するように訓練されたかを説明した。Charlet 氏は、watsonx Code Assistant はもともと、地球上で最大のコードデータストアの1つである CodeNet で訓練されたと述べた。CodeNet のコードに加え、IBM は watsonx モデルのトレーニングとチューニングも積極的に行っている。

Enterprise Z COBOL は、そのモデルをさらにチューニングし、COBOL – Java ペアの束を渡すことで、そのモデルのチューニング方法を正確に理解できるようにするものです。(Charlet 氏)

ジェネレーティブ AI が古代の COBOL コードを最新の Java に変換する方法

watsonx Code Assistant は、Gen AI を使用して COBOL アプリケーションを分析、リファクタリング、変換、検証するために使用することが可能だ。

Charlet 氏によると、この新しいサービスは、大規模なモノリシック COBOL アプリケーションから論理的なビジネスサービスを抽出するために使用できる。その後、watsonx Code Assistant を使用して Java クラス階層を生成し、抽出された COBOL コードを Java に変換することができる。変換を検証するために、このソリューションは自動テストを生成し、新しい Java コードが元のCOBOLと意味的に同等であることを確認する。

Charlet 氏は、watsonx Code Assistant は、COBOL 構文を Java に行単位で変換するものではないと説明した。そうすると、COBOL 構文を Java で表現することになり、彼の経験では、これはほとんど読めず、保守不可能であると彼は指摘した。IBM のアプローチは、COBOL コードの意図を汲み取り、意味のある Java コードにマッピングすることである。

この Java は、率直に言って、Java の専門家が認識でき、メンテナンスできるものでなければなりません。(Charlet 氏)

IBM の watsonx Code Assistant は、最新の Java アプリケーションコードで COBOL と同等のものを作成することができる。

なぜコードは嘘や幻覚をつかないのか?

AI 技術に共通するリスクは、結果が正確でない幻覚を見ることだ。

幻覚は AI のテキスト生成では一般的な問題になりがちだが、Charlet 氏は多くの理由からコードでは一般的に起こりにくいと主張した。彼は、人間の言語の解釈と潜在的な幻覚によって、個人が幻覚をエラーとして認識しない可能性があると指摘した。テキストは人間による解釈の影響を受けるが、コードはテキストとは多少異なる働きをする。

watsonx Code Assistant のケースでは、IBM は生成されたコードを検証すると説明した。検証では、コードが期待通りに実行されないため、幻覚があれば直ちにハイライトされる。このように、Charlet 氏は、コード生成で幻覚が発生する可能性はあるが、それらの幻覚は意見の問題ではなく、特定して修正することができると指摘した。

コードは嘘をつきません。コードとは、あなたが従うものであり、機械命令の束なのです。(Charlet 氏)

【via VentureBeat】 @VentureBeat

【原文】

BRIDGE Members

BRIDGEでは会員制度の「Members」を運営しています。登録いただくと会員限定の記事が毎月3本まで読めるほか、Discordの招待リンクをお送りしています。登録は無料で、有料会員の方は会員限定記事が全て読めるようになります(初回登録時1週間無料)。
  • 会員限定記事・毎月3本
  • コミュニティDiscord招待
無料メンバー登録