NEWS
You and i:Steve Willのブログ You and i:Steve Willのブログ
2024.08.28

You and i -IBM、AIベースのIBM i RPG コード・アシスタント・プロジェクトを始動-

You and i -IBM、AIベースのIBM i RPG コード・アシスタント・プロジェクトを始動-

 

IBM i CTOのスティーブ・ウィルが、AIを使ってRPGコードをモダナイズするIBMのイニシアチブの立ち上げについて語る。

本記事は、RPG コード・アシスタント(RPGCA)プロジェクトに関する情報の公式な出発点となります。まずは、情報が必要な方のために、現時点で存在している重要な情報へのリンクの整理から始めましょう。そして、「背景:ここまでの経緯」というセクションで、詳細な背景を説明します

IBM i RPG コード・アシスタント・プロジェクト の詳細資料

  • IBM i & AI: Strategy & Update
    2024年7月10日に配信されたウェブキャストで、AI全般に関連するIBM i 戦略の概要が説明され、その後、RPGCAプロジェクトの概要が説明されました。
    本記事でも同じ内容を取り上げますが、ビデオと私が使用した図表のPDFをご覧になりたい場合は、COMMONが主催する「IBM i Guided Tours」からスタートするとともに「IBM i & AI: Strategy & Update」にアクセスしていただくと、「Handouts」のタブでPDF、「Contents」のタブで録画ファイル(要登録)を見つけていただけます。
    • 注:2024年7月17日に追加のウェブキャストが配信されました。このウェブキャストでは、Edmund ReinhardtがGitHubを使ってトレーニング用のコードを提出する方法の詳細を紹介しました。このウェブキャストの録画は、「Contents」のタブ(要登録)に掲載されています。
  • AIforIBMi@ibm.com
    コードを提供したい、あるいはボランティアとしてこのプロジェクトに参加したい場合は、このアドレスにメールを送ってください。私たちのチームの誰かが、あなたに詳細な情報を提供するとともに、必要な契約書に署名してもらうために連絡します。あなたのコードをトレーニングに使用するためには、署名入りのライセンス契約が必要です。また、プロジェクトに取り組む中であなたが耳にすることになる極秘計画については、機密保持契約を結んでいただく必要があります。
  • Training RPG Generative AI
    これはGitHubリポジトリへのリンクであり、投稿されたトレーニング資料を収集します。あなたのコードを「公開」として提出していただくことで、プロジェクトの他の参加者があなたのコードを見ることができ、IBM社内での使用が終了した後は、あなたのコードの配布や公開が可能となります。もちろん、「非公開」としてあなたのコードを提出することも可能です。「非公開」の場合は、あなたのコードが配布や公開をされることはありません。この概要は、上述した「IBM i & AI: Strategy & Update」で紹介している7月10日と7月17日のウェブキャストで説明されています。
  • (Steve Willの)寄稿記事一覧
    TechChannelに寄稿した私の記事はここで閲覧できます。このプロジェクトに関する最新情報を随時寄稿します。他のソーシャル・チャンネルでもアップデートを共有しますが、重要な決定やチェックポイントを伝える必要がある場合は、TechChannelに寄稿します。
  • LinkedinとX(旧 Twitter)
    「他のソーシャル・チャンネル」として、私はLinkedInとX(旧 Twitter)を何年も使っています。ブログ記事の寄稿よりも頻繁に投稿することになるでしょう。どうぞ私を探して、フォローしてください。

背景:ここまでの経緯

2024年5月に開催されたCOMMONのPOWERUpカンファレンスで、私は「RPG Code Assistant」略して「RPGCA」と呼んでいる、IBMが取り組んでいる新しいプロジェクトについてお話ししました。

その場で、あるいはCOMMON Europe Congressや6月のIBM i Large User Groupミーティングで、私がこのプロジェクトについて話したのをご覧になった方もいらっしゃるでしょう。

さらに、「IBM i Guided Tours」、TechChannelでのインタビュー記事、出演したポッドキャストでも、私は「RPGCA」を紹介してきました。

ただ、何かが起こっていることを間接的にお聞きになられていても、残念ながら詳細を知る機会がなかったという方も多数いらっしゃるかもしれません。

「RPGCA」の詳細を知っていただくために、本記事で改めてご説明したいと思います。では、始めましょう。

AIとIBM i: RPGスキルへの対応

2023年、IBM Zの顧客向けに発表された新製品が大きな反響を呼びました。そして、新製品のことを知ったIBM i ユーザーから、多くのご質問を頂戴しました。

その新製品は「IBM watsonx Code Assistant for Z」と呼ばれており、製品ページには「生成AIを活用することで、メインフレーム・アプリケーションのモダナイゼーションを、低コストかつ低リスクで加速する製品です。」と書かれています。

では、「IBM watsonx Code Assistant for Z」について、詳しく見てみましょう。

「IBM watsonx Code Assistant for Zは、開発者が選択した要素を自動的にリファクタリング(ソフトウェアの挙動を変えることなくコードを整理すること)し、COBOLのままでのモダナイゼーションの継続を支援するとともに、コードをJavaに変換できる…」

最後の太字にした箇所は、IBM i ユーザーに以下の質問を想起させるものです。

「”IBM watsonx Code Assistant for IBM i “が登場し、RPGをJavaに変換するのだろうか?」

正直なところ、これらは2つの異なる質問ですが、本記事で特に取り上げたいのは、RPGをJavaに変換するという部分です。

このような飛躍した思いに、なぜ、IBM i ユーザーの皆様が至るのかを、私はよく理解しています。ただ、ここでは一歩引き、まず、本当の必要条件について考えてみましょう。

IBM i のコミュニティーは、IBM i 全般、特にRPGに関連する「スキルの問題」があることを明確に理解しています。Fortraの調査結果では、毎年IBM i スキルがトップ5の懸念事項の1つであり続けています。そして、お客様が話している最大のIBM i 開発スキル課題が、RPGプログラマーの必要性なのです。

私たちもRPGプログラマーの必要性を十分に理解しており、RPGをモジュール化されたフリー・フォーマットの言語に変更し、一般的なプログラミング言語を扱うプログラマーが使用するような最新のツールを使用して、記述、デバッグ、保守を行えるように機能を強化してきました。さらに、新しいプログラマーがRPGをより簡単に扱えるようにするためのツールの作成や、コミュニティーとの協力にも取り組んできました。その結果、私たちは一応成功を収めています。Fortraの調査が示すように、そして、お客様とのやり取りでも実証されているように、お客様の多くが、最新のフリーフォーマットRPGを使用し、同時に、node.jsやPHPなどのオープンソースのオプションも活用しています。

RPGをめぐる戦略で中核となる原則は、お客様が可能な限り最良の結果を得られるようなモダナイゼーションの実現を支援することです。この原則には、「RPGそのものを知らなくても最新のツールを最新の形で使いながら、結果としてRPGを習得できる」ことと、「RPG以外のプログラミング言語を扱える開発者を雇うことで全てのスキルを最大限に活用できるようにする」ことも含まれるのです。この原則により、RPGが最も得意とすること(高性能なビジネス・プロセス・ロジック、SQLやDb2との連携)から価値を引き出すとともに、他の言語で書かれたコンポーネントと、IBM i やクラウド・サービスとして提供されるコンポーネントとを組み合わせたソリューションを作成できるのです。この戦略におけるIBM i とIBM i 上のアプリケーション開発において、RPGが重要なプログラミング言語であり続けることに変わりはありません。

RPGスキルのニーズへのAIの応用という文脈におけるIBM i ユーザーへの回答は、「IBMは、RPGをJavaに変換する目的でAIベースのツールを作成する予定はありません。」しかし、「開発者の能力を補強するためにAIを使用したいと考えています。」となります。

では、どのようにして「開発者の能力を補強するためにAIを使用」を実現するのでしょうか?

RPG開発者を支援するAIツール(RPGCA)の活用

IBM i のRPGコミュニティーの多くの専門家と議論し、現時点のAIテクノロジーが実現できることを考慮した結果、膨大な量の既存のRPGコードを扱うお客様を支援し、既存のモダナイゼーション・ツールや開発ツールを強化できる「RPG コード・アシスタント」が最も求められているものである、とIBMは考えるに至りました。そして、2023年後半、IBM i 開発チームは、AIベースのRPGCAに向けた目標を示し始めました。

その作業の途上、IBM内のあるチーム(IBM i 開発チームではありません)が、RPGを理解するための大規模言語モデル(LLM)をトレーニングしたのです!これは、あるお客様の要請に基づく比較的短期間のプロジェクトとして作成されたものでした。トレーニングによって作られたモデルは、確かに「製品」と呼べるほど完全ではありませんが、Code Assistant for RPGで提供したい主要な機能が、実現可能であることを証明してくれました。結果的に、このプロジェクトは私たちにとってPoC(Proof of Concept:概念実証)となったのでした。

次に、RPGCAで提供したい主要な機能として想定している内容を紹介します。

Code Assistant for RPG の4つの機能目標

  1. 説明する:
    お客様にとっての最大のニーズは、膨大な量の既存のコードを扱えるようにすることです。したがって、最初の重要な機能は 「説明」 です。つまり、RPGで書かれた既存のコードの一部を見て、そのコードが何をしているのかを言葉で説明できるツールでなければなりません。

    既存のコードで新機能を作成する最初のステップが、「他の誰かによって書かれたコードを見る」であることがよくあります。その際に、コードの説明を支援するツールがあれば、開発者が分析や設計に費やす時間を減らせます。そしてこれは、開発者がRPG初心者である場合に最も有益です。

    上述した「IBM内のあるチームが作成したモデル」は、「説明」において適切な仕事をしています。そして、汎用のRPGCAには、さらに優れたものを求めています。
  2. 生成する:
    AIが注目されるようになった理由の一つは、LLMが自分で何かを創造したり生成できるようになったからです。ChatGPTのようなLLMが利用可能になったことで、AIに用語集を書かせたり、トピックに関する知識を要約させたり、画像を生成させることが、一般市民でも行えるようになりました。

    RPGCAでは、英語とSQLの組み合わせでコードを書くように、開発者がRPGCAに依頼できるようにしたいと思っています。例えば、「以下のSQLで定義されたPAYROLLテーブルがある場合、次のようなフリー・フォームのRPG LEプロシージャーを生成してください…」というような感じにです。 そして、RPGCAはコードを生成します。RPGCAが生成したコードを、機能強化のためのモデルとして使うこともできます。あるいは、プロジェクトに組み込むだけでも十分かもしれません。

    繰り返しになりますが、上述の「IBM内のあるチームが作成したモデル」では、RPGが生成されました。あなたが、上手に(RPGCAが理解できるように訓練された方法で)モデルに尋ねられるのであれば、良いスタートといえるでしょう。少なくとも「IBM内のあるチームが作成したモデル」は、RPGを生成できることを証明したわけですから。
  3. 変換する:
    新しいRPGの大半がフリー・フォーマットのILE RPGで書かれていることは事実です。そして、現在使用されているRPGの大半が以前の形式のRPGで書かれていることも事実です。古いRPGをモダンなフリー・フォーマットILE RPGに変換するツールが市場に存在するのは、まさに「変換する」必要性があるからです。

    古いRPGと現代的なRPGの両方を用いて、RPGが説明できるようにLLMを訓練すれば、「古いものを新しいものに変換する」ことが、ある程度自力でできるようになることが分かりました。そして、LLMの行動を訓練することだけに特化すれば、「変換」はさらに得意になるでしょう。実際に、「IBM内のあるチームが作成したモデル」は、それなりの「変換」ができることを実証しています。私たちはこの価値を理解しており、困難かつ不可能として放置されていた変換(例えば、S/36 RPG、旧式の日付定義など)を行うための良い試金石となるでしょう。そして、RPGCAが古いRPGと新しいRPGを説明できるようになれば、訓練によって実現した成果がRPGCAの中核機能である、と言えるでしょう。
  4. テストコードを生成する:
    この機能の価値は誰もが認めるところではありますが、私たちが初期に試みるようなものではない、と思われるかもしれません。今日、推奨されるコード開発プロセスの一部は、継続的な開発中に実行可能な反復可能なテスト・スイートを記述することです。そして、開発チームが、RPGCAに「次のRPGコードのユニット・テスト・プログラムを生成してください。」と指示できれば素晴らしいことです。

    それでも、「IBM内のあるチームが作成したモデル」ができることを除けば、RPGCAに求める初期タスクのリストに「テストコードの生成機能」を入れるべきかどうか迷っていました。そこで、IBM i のRPGチャンピオンに「テストコードの生成機能」を説明したところ、彼らの多くは非常に興奮していました。そのため、「テストコードの生成機能」は、RPGCAで期待される機能になりました。

なぜ「IBM内のあるチームが作成したモデル」をRPGCAとして販売しないのか?

RPGコードの説明、生成、変換を試みることができる「IBM内のあるチームが作成したモデル」や他のLLMの問題の1つは、かなり小さなRPGセットで訓練されていることです。彼らはGitHubで利用可能なRPGコードに頼らざるを得なかったのです。他のプログラミング言語においては、それらの言語で書かれ、モデルがその目的のためにコードを使用することを明確に許可するライセンスでGitHubに保存されているオープンソースのコードを使用して、かなり広範囲に学習させることができます。しかしRPGに関しては、利用可能なものははるかに少ないのです。その結果、PoCは可能な限り良いものですが、より完全に機能し、正確で、より信頼できる「透明な」ツールを作りたいのであれば、いくつかのことに取り組む必要があることがわかりました。その1つが、RPGCAの基礎となるLLMを訓練するために、より良いRPGコードと関連情報を入手することなのです。

また、単に訓練されたLLMだけでなく、完全な提供のために必要なものはたくさんありますが、当面は、より多くのRPGトレーニング教材を得ることに集中したいと思っています。

IBM i コミュニティーの参画が必要です

IBM i コミュニティーの「資産」の1つは、IBM i コミュニティーそのものです!

「IBM内のあるチームが作成したモデル」によって、トレーニングに使用できる素材が限られていることに気づいたとき、RPGに熟練し、最新の開発プロジェクトでRPGを使用している素晴らしいIBM iチャンピオン達のことを私たちは考えました。

また、情熱的なIBM i ユーザーの多くが、IBM i 全般、特にRPGが将来も重要な存在であり続けるための支援に興味を持っていることも知っていました。したがって、IBM i コミュニティーに問いかけることで、ボランティアの協力を得ることができると、私たちは確信していました。

そして、それは、現実のものとなったのです!

RPGCAプロジェクトについて私が初めて公の場で説明したのはCOMMON POWERUp基調講演ですが、それより前に多数のIBM i チャンピオンと話し、私たちが何をしたいのかを説明しました。そして、IBM i チャンピオンたちが作成してきた研修資料(RPGのサンプル・コード、人々に教えるために使用したRPGの説明資料など)を提供してくれるようお願いしました。IBM i チャンピオンたちは協力したいという熱意を持っており、自分たちの仕事内容が他の企業に知的財産として所有されることを心配することなく、コードを提供できると保証してくれました。

以下の皆さんが、アドバイスと研修資料を提供してくださいましたIBM i チャンピオンたちです。
Susan Gantner、Jon Paris、Scott Klement、Jim Buck、Paul Tuohy、Niels Liisberg、Hideyuki Yahagi、Yvonne Enselman、Mats Lidström、Koen DeCorte、Steve Bradshaw。
おそらく皆さんも良くご存じの方々でしょう。

さらに、何人かのお客様やパートナーにも、このプロジェクトについて話しました。その多くは、もし役に立つのであれば、自分たちのビジネス・コードを提供したいと申し出てくださいました。

お客様やパートナーの中には、オープンにコードを提供することに問題なしと言ってくださる方々もいらっしゃいます。例えば、自社のソリューションを購入した人に、ソースコードを提供するISVがいらっしゃいます。このようなISVの中には、最終的に自分たちのコードがGitHubの公開リポジトリに置かれることを知っていて、コードの大部分を喜んで貢献すると仰ってくださる方々もいらっしゃいます。

一方、銀行を含む一部のお客様は、モデルのトレーニングに使用されるだけで、決して公開されないと約束できるのであれば、コードの大部分をこの取り組みに提供することを望んでいらっしゃいます。

協力してくださるチャンピオンたちや、すでに、AIforIBMi@ibm.comのアドレスにメールを送って連絡してくださった方々の協力により、以前のLLMが用いたよりはるかに多くのトレーニング資料が用意されることになります。さらに、IBM自身も、長年にわたって作成してきたRPGマニュアル、プレゼンテーション、テスト・パッケージからトレーニング資料を提供してくれています。

RPGコードの近代化にAIを使うことの始まり

この記事は、RPGコードの近代化にAIを使うことの第一歩なのです。ブログ記事であれば、「私たちの目標が何か」「なぜ、その目標に向かって取り組んでいるのか」「どのようにこの仕事を組織化しているのか」を高いレベルで説明できます。「IBMはAIをどのように使用して、RPGコードを持つ私たち全員を支援しようとしているのか?」という質問を何らかの形で私に問い合わせた、あるいは私に問い合わせようと考えていた方々にとって、この記事がお役に立てば幸いです。

IBMでは、IBMとIBM i の顧客にとって最善の道が何であるかを議論しています。そして、誰もが既存のツールを補強するAIベースのツールの作成が持つ価値を理解しています。IBM i 開発に携わる私たちが、今後のステップを踏み出すにあたり、IBM i コミュニティーの助けと情熱から恩恵を受けることになるのは誰もが認めるところです。ただ、正確には、いつ、どのような形で、どのような価格でAIベースのツールが利用可能になるのかは分かりません。

現在は、IT業界にとってエキサイティングな時期です。AIがテクノロジーを前進させられる多くの方法の中から、私たちは適切な方法を選択しています。IBMと、IBM i コミュニティーの関心、情熱、サポートによって、このような取り組みが行えることに感謝しています。


本記事は、TechChannelの許可を得て「IBM Launches AI-Based IBM i RPG Code Assistant Project」(2024年7月19日公開)を翻訳し、日本の読者にとって分かりやすくするために一部を更新しています。最新の技術コンテンツを英語でご覧になりたい方は、techchannel.com をご覧ください。

いいねと思ったらシェア
twitter
facebook
hatena
You and i:Steve Willのブログ 目次を見る

この連載は…

You and i:Steve Willのブログ
関連記事
IBM i および Java サポート
IBM i および Java サポート
You and i – IBM i 7.5 TR4 と 7.4 TR10 の発表
You and i – IBM i 7.5 TR4 と 7.4 TR10 の発表
【継続利用の方】FF-RPGハンズオン自習環境 登録申込
【継続利用の方】FF-RPGハンズオン自習環境 登録申込
あなたにオススメの連載
できるIBM i 温故知新編
9記事
できるIBM i 温故知新編
IBM i の”新”必須言語 〜FFRPG入門〜
14記事
IBM i の”新”必須言語 〜FFRPG入門〜
IBM i アプリの第二の柱 OSS
15記事
IBM i アプリの第二の柱 OSS
PAGE TOP