IBM i CTOのスティーブ・ウィル氏は7月19日、自身のブログ「You and i」で、IBM iの開発チームが現在取り組んでいる「RPG Code Assistantプロジェクト」について解説した。同プロジェクトについてウィル氏がブログで紹介を公開するのは今回が初めて。「このブログは、RPG Code Assistantプロジェクトに関する情報の公式の出発点となります」と冒頭で記している。
本記事では、内容の重要性に鑑みて、ブログの主要部分を訳出する。内容の骨子は、6月21日開催「IBM i World 2024」のウィル氏のビデオ講演と重なるが(i Magazineのレポート記事はこちら)、プロジェクトについてより詳細に述べている。
なお、今回のブログではプロジェクトの名称を「RPG Code Assistant」としているが、プロジェクトの存在を公表した今年5月のイベント(POWERUp 2024)から最近までは「IBM i Code Assistantプロジェクト」の名称を用いていた。
以下はスティーブ・ウィル氏のブログの主要部分である。一段下げて記述した部分は、その個所の要約で、要約を飛ばして読んでいただくと、ブログの主旨がより明確になる。
IBMは、AIベースのRPG Code Assistantプロジェクトを開始する
IBM i CTOのスティーブ・ウィルが、 RPGコードを近代化するためのAI活用イニシアチブについて語る
このブログ記事は、RPG Code Assistant(RPGCA)プロジェクトに関する情報の公式な出発点となります。
私は2024年5月開催の「POWERUp」において、IBMが今取り組んでいる「RPG Code Assistantプロジェクト」について初めて話をしました。
ウィル氏は上記に続けて、IBMが2023年10月に発表したIBM Zユーザー向けのコード開発支援ツール「IBM watsonx Code Assistant for Z」に触れ、RPG Code Assistantの説明へと進んでいく。
IBM watsonx Code Assistant for Zは、メインフレームのCOBOLコードをJavaへ変換したり、アプリケーションの要素を自動的にリファクタリングしたり、COBOLコードのモダナイゼーションを継続的に行う機能をもつ製品である。[i Magazineのレポート記事のこちら]
このIBM watsonx Code Assistant for Zに関連して、ウィル氏の元にはIBM iユーザーから「IBM watsonx Code Assistant for IBM iをリリースする予定はないのか」「RPGをJavaへ変換するツールは登場するのか」といった質問が数多く寄せられたという。
これに対してウィル氏は、「IBMは、RPGをJavaに変換することを目的としたAIベースのツールを作成する予定はありません」ときっぱりと断言する。その理由は、「RPGは今後も、IBM iおよびIBM i上のアプリケーション開発における重要なプログラミング言語であり続ける」からで、「それがRPGに関するIBMの戦略の核心」と述べている。
では、RPGの世界において生成AIをどのように活用するのか。
私たちIBM i開発チームは、RPGコミュニティの多くのエキスパートたちと話し合いを重ねた結果、IBMが今最も必要としているのは、現在のAIテクノロジーを考慮すると、膨大な既存のRPGコードを処理し、すでに存在するモダナイゼーションや開発のためのツールを強化するRPG Code Assistantだと考えました。2023年後半、私たちIBM iの開発チームは、AIベースのRPGコード・アシスタントの開発へ向けてスタートを切りました。
そしてIBM iの開発チームがその取り組みを進めている一方で、IBMのIBM iとは別のチームが、RPGを理解するための大規模言語モデル(LLM)のトレーニングを開始していました。
このトレーニングはお客様からの要請で行われたもので、プロジェクト自体は比較的短期間に終了しました。そして得られたモデルはけっして完全なものではありませんでしたが、RPG Code Assistantの実現可能性を私たちIBM i開発チームに強く確信させるものとになりました。要するにそれは、RPG Code AssistantにとってのPoC(概念実証)だったのです。
RPGコード・アシスタントの4つの機能
私たちがRPG Code Assistantにもたせたいと考えている機能は、次の4つです。
説明
お客様から寄せられた最大の要望は、膨大な量の既存コードを処理できる機能でした。そのため最初の重要な機能は「説明」です。つまり、ツールは既存のRPGコードを見て、そのコードが何をしているのかを説明できるものでなくてはなりません。この機能の有用性は明らかだと思いますが、念のため説明しておきます。
既存のコードに新しい機能を作成する場合、まず最初にコードを調べる必要があります。この場合、RPGに精通しているかどうかにかかわらずコードの説明に役立つツールがあれば、分析や設計に費やす時間を短縮できます。この機能は、開発者がRPGに不慣れな場合にとくに有益です。
前述のPoCは、この「説明」機能の有用性を示していました。ただし私たちは、RPGコード・アシスタントにそれ以上のものを求めています。
生成
近年、AIがこれほど話題になった理由の1つは、大規模言語モデルの登場によって「作成」や「生成」が容易になったからです。たとえば、ChatGPTのような対話型の大規模言語モデルが利用可能になったことで、一般の人々が論文の執筆やトピックの要約、画像の生成などをAIに依頼できるようになりました。
RPG Code Assistantでは、開発者が英語とSQLの組み合わせでコードの記述を依頼できることを期待しています。たとえば、「以下のSQLで定義された給与計算テーブルを前提として、フリーフォームRPG(FF RPG)のコードを生成してください」と依頼すると、RPG Code Assistantがコードを生成するというような機能です。
変換
現在IBM iユーザーの間で新規開発されるRPGコードの大半はFF RPGですが、その一方で使用中のRPGコードの大部分は、以前のRPGであることも事実です。実際古いRPGを最新のFF RPGに変換するツールは、まさにこの理由で市場に存在しています。
そこで大規模言語モデルにRPGを説明できるようにトレーニングすれば(とくに古いRPGコードと新しいRPGコードの両方でトレーニングすれば)、大規模言語モデルはごく自然に古いRPGコードを新しいRPGコードへ「変換」することが可能になります。このことは、これまで変換困難と考えられてきたシステム/36時代のRPG(Ⅱ)や旧式の日付定義などにも適用できるでしょう。
テストコードの生成
私たちIBM i開発チームは当初、この機能をRPGコード・アシスタントの開発タスクに入れるべきかどうか迷っていました。しかし「次のRPGコードのユニットテスト・プログラムを作成してください」などと指示してテストコードを得ることができたら、これほどすばらしいことはないでしょう。誰もがその機能の価値を認めるはずだと思います。
そこでIBM iチャンピオンたちに説明したところ、多くの人が、この機能がコミュニティにもたらす価値について熱っぽく話してくれました。その結果、私たちは「テストコードの生成」をRPG Code Assistantの開発目標に加えることにしました。
4つの機能の実現方法
では、上記4つの機能をどのように実現していくのでしょうか。
PoCやその他の大規模言語モデルでRPGコードの解析、生成、変換を行う際に問題となるのは、それらがすべてかなり限られたRPGコードのセットでトレーニングされていることです。ほかのプログラミング言語であれば、トレーニングに使用するコードが豊富にあるためかなり広範囲にわたってトレーニングできるのに対して、RPGに関しては利用できるコードがはるかに少ないのです。そのため、より機能的で正確かつ信頼性が高く、より信頼のおける「透明性」の高いRPGコード・アシスタントを開発するには、いくつかの課題を解決する必要があることが明確になりました。
その1つが、RPG Code Assistantの基盤となる大規模言語モデルを開発するためのトレーニング用の良質なRPGコードと関連情報です。もちろんRPG Code Assistantを完全なサービスとするためには、大規模言語モデルだけではなく多くのことが必要になります。しかし現時点ではまず、大規模言語モデルのトレーニングのためのRPGコードの収集に焦点を当てるべきだと考えています。
IBM i コミュニティの参画が不可欠
私たちは、前述のPoCでモデルのトレーニングに使用する資料が足りないことに気づいたとき、RPGに精通し最新の開発プロジェクトでRPGを使用しているIBM iチャンピオンのことをすぐに考えました。またIBM iユーザーの中には、IBM iが将来も引き続き重要な存在であり続けること、特にRPGが重要な存在であり続けることに強い関心を持っている人も数多くいることも知っていました。そのためIBM iコミュニティに働きかけを行えば、RPGのための大規模言語モデルの開発に関して協力を得られるだろうことを確信していました。そして実際に協力者が多数集まったのです。
私がRPG Code Assistantについて初めて公の場で説明した「POWERUp」の基調講演では、その準備として多くのIBM iチャンピオンに話をし、私たちが何をしたいのかを説明しました。そしてRPGコードや説明資料の提供なども依頼しました。すると彼らは皆、熱心に協力したいと申し出てくれました。彼らのほとんどは組織に属さず独立して仕事をしているため、自分たちの仕事が他社の知的財産として扱われる心配もなく、安心してコードを提供できると話していました。
また私たちは、何社かのお客様やパートナーにも話をしました。その結果、自社のビジネスコードの提供を申し出てくれた方もいました。またISVの中には、提供するコードの中身がプロジェクトのメンバーに見られ、最終的にはGitHubの公開リポジトリにコードが保存されることを理解した上で、多くのコードの提供に同意する人もいました。
またお客様の中には(このグループには複数の銀行が含まれています)、提供するコードがモデルのトレーニングにのみ使用され一般に公開されることはないという条件の下で、提供に同意する企業もありました。
IBMではすでに、当社が長年かけて制作したRPGのマニュアル、プレゼンテーション、テストスイートなどの資料をトレーニング用として提供しています。
以上の取り組みは、RPGコードを近代化するためのAI活用の始まりです。このブログは、そのよいスタートの起点となるはずです。
RPG Code Assistantは、いつ、どのような形で、どのくらいの価格で利用できるのかはまだ不明です。そのため今後は、私のSNSややインタビュー、Webキャスト、ポッドキャストなどに注目していただきたく思います。
現在はIT業界全体にとって非常にエキサイティングな時期を迎えています。テクノロジーを前進させるために業界全体でAIを方法として選択しています。私は今、IBMの素晴らしいチームとIBM iコミュニティに助けられながらこのような仕事に従事できることを深く感謝しています。
RPG Code Assistantの関連リンク
現在存在する主な情報へのリンクが必要な方のために、まずはそれらをご紹介します。
IBM i & AI:Strategy & Update
2024年7月10日配信のWebキャストでは、AI全般に関するIBM i戦略の概要を説明し、RPG Code Assistantについて詳細を解説しました。動画や使用した資料をご覧になりたい場合は、「IBM i Guided Tours」(https://learn.common.org/products/ibm-i-guided-tour-2024)の「IBM i & AI: Strategy & Update」にアクセスしてください。
IBM i & AI – Strategy & Update フォローアップ
2024年7月17日に実施されたWebキャストでは、IBM i開発ツール担当アーキテクトのエドマンド・ラインハルトが、デモでRPG Code Assistantの概要を紹介しました。
AIforIBMi@ibm.com
コードの提供やプロジェクトへのボランティアとしての参加をご希望の場合は、このアドレスにメールをお送りください。IBMのチームメンバーが連絡し、詳細をお伝えするとともに、必要な契約書に署名していただきます。トレーニングで皆さんのコードを使用するには、ライセンス契約書に署名していただく必要があります。また、プロジェクトを進める中で機密事項について耳にする可能性があるため、機密保持契約書に署名していただく必要があります。
GitHubの「RPG Code Assistant」ページ
https://ibm.GitHub.io/rpg-genai-data/#/
トレーニング教材(コードやその他のものを含む)を収集するためのGitHubリポジトリへのリンクです。他のプロジェクト参加者はそれを見ることができ、最終的にコードを「公開」で提出する場合があります。あるいは、トレーニング後はコードが配布・公開されないようにすることもできます。この概要については7月10日と7月17日のWebキャストで説明し、GitHubサイトに詳細を明記しています。
スティーブ・ウィル氏のブログ「You and i」
https://techchannel.com/contributor/steve-will/
これは「Tech Channel」サイトの私のブログページ「You and i」です。私はRPGコード・アシスタントに関する最新情報を随時投稿していきます。他のSNS(下記)でも最新情報を共有しますが、重要な決定事項やチェックポイントのお知らせについては、こちらへ投稿します。
X: @Steve_Will_IBMi – https://x.com/Steve_Will_IBMi
LinkedIn:
https://www.linkedin.com/in/steve-will-chief-architect-ibm-i/
・本ブログの原文
https://techchannel.com/you-and-i-blog/rpg-code-assistant/
◎関連記事
・開発中のRPG特化の生成AI「IBM i Code Assistant」を紹介、FF RPGを生成、コードの説明、テストコード生成 ~大規模言語モデル開発プロジェクトへの参加呼びかけも
https://www.imagazine.co.jp/ibm-i-code-assistant/
・メインフレームCOBOLをJavaへ変換する「IBM watsonx Code Assistant for Z」に、コード解説機能「Code explanation」とオンプレミス版を追加 ~IBM i版への展開はある?
https://www.imagazine.co.jp/watsonx-cobol-java/
*「シリーズ企画:RPG特化の生成AI「RPGコード・アシスタント」とはどのようなものか」は、今週より複数回掲載の予定です。
[i Magazine・IS magazine]