Data Science and AI

COBOLプログラマー不足に取り組むIBMのコード・ライティングAI

記事をシェアする:

IBMの新しいモダナイゼーション・ソリューション、 watsonx Code Assistantにより、開発者は COBOL アプリケーションを IBM Z およびハイブリッド・クラウド向けに最適化された高品質の Java コードに選択的に変換できます。

最初のビジネス用プログラミング言語であるCOBOLは、近代的なソフトウェア産業を築き上げるのに貢献しました。登場から60年経った今、COBOLを搭載したメインフレームは、現在、世界の銀行取引の推定70%を処理しています。

COBOLをベースとしたアプリケーションは、そのセキュリティー、信頼性、トランザクション・パフォーマンスによって、長い間支持されてきました。しかし、これらのアプリケーションを保守し、更新し続けることは、年々難しい課題になってきています。COBOLのコーダー(プログラマー)は以前ほど多くはなく、クラウド・コンピューティングの台頭は、Javaで書かれることが多いモジュール型ビジネス・アプリケーションへの移行をもたらしました。

企業はモダナイゼーション(近代化)を目指す中で、メインフレーム・アプリケーションを理解し、複雑で大規模なメインフレーム・アプリケーションの分解・変換専用に設計されたツールを使うことができる、熟練した開発者を求めています。

メインフレーム・モダナイゼーションの取り組みを簡単化するために、IBM は、watsonx Code Assistant for IBM Zを開発しました。これは自動化されたツールと、200億パラメーターを持つ、コード用のIBM独自大規模言語モデル「Granite」によって提供されるソリューションで、企業がモノリシックなCOBOLアプリケーションをIBM Zに最適化されたサービスに変換することを可能にします。

企業は、最も効果の大きいアプリケーションを選んで最新化し、既存のサービスと統合することで、IBM Zの高いパフォーマンスを維持することができます。IBMは、このソリューションを10月26日(木)にお客様に提供開始しました。

IBM Researchのチーフ・サイエンティストであるRuchir Puriは次のように言います。「生成AIによって、企業にとって負担の少ないモダナイゼーションが実現します。watsonx Code Assistant for Zは、企業が、最大の効果が期待できるタスクから優先度をつけて、COBOLのビジネス・サービスを選択的かつ段階的にリファクタリングできるよう支援します」

短期間、低コストでのモダナイゼーション

アプリケーション・モダナイゼーションは時間がかかってリスクを伴うことがありますが、それは特にミッション・クリティカルなサービスを提供する銀行や政府機関にとってはなおさら問題です。大規模なアプリケーションには、長年にわたって繰り返し更新されてきた、相互に依存する機能があります。それらを独立したサービスに分離するのは、複雑で時間のかかる作業です。そして、いったんリファクタリングが完了すると、それらのサービスをCOBOLからJavaに翻訳するという、さらなるハードルが開発者を待っています。

IBM watsonx Code Assistant for Z には、開発者の時間を節約し、ミスの可能性を減らすために設計された機能がいくつかあります。アプリケーション・ディスカバリー・ツールは、アプリケーションを分析し、その依存関係をマッピングすることで、コードがどのように動作するかを開発者が高レベルで理解するのを助けます。自動リファクタリング・ツールはこの情報を利用し、開発者が抽出しリファクタリングしたいビジネス・サービスを特定するのを支援します。そしてクライアントが選択した場合、これら最初の2つのステップで収集されたメタデータが生成AIを活用した第3の機能にとって重要なコンテキストになります。すなわち、世界中のプログラミング言語で学習され、IBM Z用のCOBOL-Javaプログラムのペアでチューニングされた大規模言語モデル(LLM)が、リファクタリングされたCOBOLプログラムをJavaに変換します。そして最後に開発者は、今後リリースが予定されている自動ユニット・テスト・ツールを使って、新しく変換されたJavaコードを素早くテストし、検証することができます。
このソリューションは、Z/OSのアプリケーションと環境の全スイートで動作するように設計されています。

生成AIによるメインフレーム・アプリケーションの近代化

高品質な、「JOBOL」なしのコード

IBMは、GitHubのようなオープンソースのコード・リポジトリーから、有害なコード、機密性の高いコード、著作権で保護されたコードを徹底的にフィルタリングした後、ベースモデルを学習しました。合計で1兆6,000億以上のコード・トークン(単語と単語の一部)が、このGraniteのベースモデルの学習に使用されました。COBOLとJavaに対するモデルの理解を強化するため、両言語で書かれた何千もの企業プログラムのペアでファイン・チューニングが行われました。不足した部分はAIが生成した合成コードで補いました。

IBMの研究者は、watsonx Code Assistant for IBM ZとChatGPT(OpenAIのLLM搭載チャットボット)を比較したところ、COBOLの翻訳においてWCA for ZがChatGPTを上回ることを発見しました。

IBM Graniteモデルの高いパフォーマンスにはいくつかの理由があります。

1つ目は、モデルのチューニングとカスタマイズに使用されるデータの質です。IBM Zで等価な機能を持ったCOBOLとJavaのプログラムを何千組も作成するために、それらの言語に堪能なIBMのプログラマーが肩を並べて作業を行いました。

コードを一行一行、文字どおりに翻訳することの有効性は、プログラムの場合にも自然言語と同等ぐらいでしかないことがわかりました。この方法でCOBOLをJavaに翻訳すると、「JOBOL」と呼ばれる、読むのも保守するのも難しいコードになってしまいます。IBMのプログラマーは、それぞれのCOBOLプログラムの構文がJavaで正しく表現されるように注意深く作業を行いました。

IBM watsonx Code Assistant for Zの製品責任者であるRichard Larinは言います。「私たちは、z/OS上のCOBOLとJavaを誰よりもよく知っています」「私たちはその知識を大規模言語モデルに与え、お客様のユースケースをどのように扱えばよいか教示したのです」

マイクロサービスをCOBOLのままにしておき、Javaに翻訳しないという選択もあります。「IBM ZはCOBOLとJavaの両方のアプリケーションの効率的なデプロイをサポートしているため、どちらの言語でも近代化されたアプリケーションにハイパフォーマンス、耐障害性、セキュリティーを提供することができます」

このモデルの2つ目の利点は、学習データの大きさです。利用可能な他のコード専用モデルは1兆トークン未満であるのに対して、Graniteでは1.6兆トークンのコードを使用して学習しています。一般的に言って、モデルが学習に利用したコード・トークンの数が多ければ多いほど、様々なコーディング・タスクで優れたパフォーマンスを発揮することが期待できます。

このモデルの3つ目の利点は、コンテキスト・ウィンドウの長さです。コンテキスト・ウィンドウとは、ユーザーのプロンプトに含められるトークンの数です。32,000トークンの長さを持つこのモデルのコンテキスト・ウィンドウは、両方の言語で書かれたアプリケーションの複雑さをよりよく捉えることを可能にします。

AIによるソフトウェア・スタックのモダナイゼーション

watsonx Code Assistant for Zソリューションは、基盤モデルを利用してコードを近代化するIBMの最新の取り組みです。基盤モデルとは、インターネット規模のデータセットで事前学習されたAIモデルで、多くのタスクに適応が可能なAIモデルです。

2021年、IBM ResearchはAIシステムにプログラミングを教えることを目的としたデータセット「Project CodeNet」を立ち上げ、これはDeep Mind社のAlphaCodeプロジェクトのソースとして引用されました。そしてProject CodeNetに続いて、Red Hat Ansible向けのProject Wisdomが発表されました。これは、コードを書くAIモデルを使用して、IT自動化を平易な英語で構築する取り組みです。

この研究は、Ansibleのコード・ライティングを効率化し、企業がビジネス全体のIT自動化を加速できるように支援するAIサービス、watsonx Code Assistant for Red Hat Ansible Lightspeedの基盤にもなっています。このソリューションは現在技術プレビュー中です。

これまでに、IBMコンサルティングは、ITワークフローを自動化するためのAnsibleプレイブックの作成にかかる時間を30%削減しました。


さらに知っていただくためのリンク


この記事は英語版IBM Researchブログ「COBOL programmers are getting harder to find. IBM’s code-writing AI can help」(2023年10月26日公開)を翻訳し一部更新したものです。

More Data Science and AI stories

ジェネレートするAI。クリエートする人類 。 | Think Lab Tokyo 宇宙の旅(THE TRIP)

IBM Data and AI, IBM Partner Ecosystem, IBM Sustainability Software

その日、船長ジェフ・ミルズと副船長COSMIC LAB(コズミック・ラブ)は、新宿・歌舞伎町にいた。「THE TRIP -Enter The Black Hole-」(以下、「THE TRIP」)と名付けられた13度目の ...続きを読む


IBM Cloud『医療機関向けクラウドサービス対応セキュリティリファレンス (2024年度)』公開のお知らせ

IBM Cloud Blog, IBM Cloud News

このたびIBM Cloudでは総務省ならびに経済産業省が提唱する医療業界におけるクラウドサービスの利活用に関するガイドラインに対応していることを確認し、整理したリファレンス『医療機関向けクラウドサービス対応セキュリティリ ...続きを読む


イノベーションを起こす方法をイノベーションしなければならない(From IBVレポート「エコシステムとオープン・イノベーション」より)

Client Engineering, IBM Data and AI, IBM Partner Ecosystem

不確実性が増し、変化が絶え間なく続く時代には「イノベーション疲れ」に陥るリスクがある。誰もがイノベーションを起こしていると主張するならば、結局、誰もイノベーション(革新的なこと)を起こしてなどいないことになるだろう 当記 ...続きを読む