メニューボタン
IBMi海外記事2024.07.10

IBM、IBM i 向けAIコーディング アシスタントを開発へ

Alex Woodie 著

月曜日に行われた、POWERUp 2024カンファレンスの基調講演で、IBM i CTOのSteve Will氏は、IBMがIBM i プラットフォームに生成AIをどのように組み込もうかと積極的に検討を進めていることを明らかにしました。それぞれ別個ながら関連のある3つのプロジェクトのうち、最も期待できそうなのが、大規模言語モデル(LLM)を搭載したIBM i 向けコーディング アシスタントを構築するプランです。RPG開発をサポートする機能が、まずは3つ提供されるということです(今後、増える見込みです)。

RPG向けのコーディング支援プロジェクト(プロジェクト名未定)の発端は、昨年のwatsonx Code Assistant for Z(COBOLをJavaに変換する機能等を備える)の発表に遡ることができます。メインフレーマーにコパイロット(副操縦士)機能が提供されてから、IBMは、IBM i にも何かないのか、何かあるならいつになるのかと、IBM i ミッドレンジ コミュニティのメンバーから、しきりにせがまれることとなります。

「会場の皆さんの中にも、IBM i 向けのコード アシストはないのか、RPGをJavaに変換できるようにならないのかと、問い合わせをされた方がいらっしゃるのではないでしょうか」と、5月20日のフォートワース コンベンション センターでの基調講演でWill氏は述べています。「しかし、それはこの顧客ベース向けに行うべきことではないとの強い確信がありました。それでも、私たちがそこで行いたいことは何なのかについて検討を始めました。」

アドバイザリー カウンシルや各種パートナー グループとの話し合いを経て、Will氏と彼のチームは、進むべき方向性を定めます。

「本当に行う必要があるという結論に至ったのは、RPGから他の何かへの移行ではなく、プログラマーの既存のRPGの支援となるコード アシスタントを作成することでした」と、DE(Distinguished Engineer)とIBM i チーフ アーキテクトの肩書きも併せ持つWill氏は述べています。「最大の課題は、新たにプログラマーを採用しても、現存するこれほど膨大な量のRPGを担わされ、彼らがそれに何かを付け加えたり、アップデートしたりすることなど困難だということです。」

POWERUp 2024で基調講演を行う、IBM i CTOのSteve Will氏(2024年5月20日 月曜日)。

そこで、IBMがRPG向けに計画してきた新たなコーディング アシスタントによって提供される一番目の機能となるのは、RPGコードの各セクションが何を行うのか解説すること、ということになります。LLMが、英語やフランス語のような自然言語と同じくらい、コンピュータ言語を理解および生成することに長けていることはすでに明らかになっています。したがって、既存のRPGコードの要約を行うことが、 いの一番の仕事ということになるでしょう。

きちんとドキュメント化されていない古いRPGコードがどれほど出回っているかを考えると、このような生成AIを援用した言語理解機能は好評を博すだろうとWill氏は予想します。

「これは、新人プログラマーが古いコードに参入した際に見られがちな問題の1つです」と彼は述べています。「誰かがきちんとドキュメント化したと思っているかどうかはどうでもよいことです。RPG 2で書かれていたとしたら、なりたてほやほやのプログラマーにとっては、理解するのは極めて困難です。そこで、そのようなことを行ってくれるツールがあるとすれば、それほど有益なことはないでしょう。」

LLMは、RPGのようなプログラミング言語を「理解」したら、それを書き始めることができます。そこで、来たるべきIBM i コパイロットの第2の仕事となるのが、RPGを生成すること、ということになります。

「どのようなタイプの生成AIであれ、多少でも使用したことがある方ならご存じかと思いますが、生成AIを前にして行うことは、どのようなソフトウェアを使うか、どのようなサブルーチンを書いてもらいたいかを生成AIに説明することです。そうすると、生成AIはその言語でそれを書いてくれます」とWill氏は述べます。

「現時点では、最高のパフォーマンスとは言えないかもしれませんが、おそらくは、それにかなり近づくことになるでしょう」と彼は続けます。「非RPGプログラマーが、「学習して、このようなことを行うコードを書いてください」と指示して、RPGコードが生成されたとすれば、それは非常に有益なことでしょう。そこを出発点として、他にどのようなことを行う必要があるか、思い付くこともあるかもしれません。」

Will氏が紹介した、AIコード アシスタント(POC版)のRPGコード解説機能についてのスライド。

これは非常に新しいプロジェクトであるため、未知のことがたくさんあります。しかし、Will氏は、RPGで訓練済みの生成AI搭載AIアシスタント(「コパイロット」とも呼ばれる)のPOC(概念実証)版はすでにあると述べています。そのPOCは、Will氏は名前こそ挙げませんでしたが、あるIBM i 顧客によって開発されたものだということです。

「彼らは数か月間にわたってその開発に取り組んで、なかなかの成果を生み出しました」とWill氏は述べています。「つまり、成熟期に達したと言うにはまだまだですが、それらのことをすべて行うことができるということは証明されました。」

Will氏は、AIアシスタントが、SQLで定義された表を基にしてフリー フォーマットILE RPGプロシージャーを生成している、POCのスクリーンショットを何枚か紹介しています。別のスクリーンショットは、「訳の分からないたくさんの文字列(その正体はRPGのコード)」を提示されて、AIアシスタントが、RPGが行うことを平易な英語で解説している画面でした。

「次いで、「では、以下に示すプロシージャーおよび関連付けられているDDLを前提に、エッジ ケースをカバーするテスト プログラムを書いてください」と指示してみました」とWill氏は述べています。「すると、思った通りに、それぞれのテスト ケース向けのプログラムを書き始めました。」

「実に凄いと言えないでしょうか。そう思えませんか」と彼は続けます。「そのようなツールがあって、すべての開発者、特に、RPGの経験がまったくない開発者も利用できるとしたら、実に素晴らしいことではないでしょうか。」

IBMは、上述した3つの機能を目標としつつも、すでに他のアイデアも受け入れています。たとえば、このコード アシスタントは、古いSystem 36コードをフリー フォーマットのILE RPG IVコードへ移植するのに利用できるだろうとWill氏は述べています。あるいは、コード アシスタントに、古いグリーンスクリーン インターフェースをより新しいオープンソース テクノロジーに置き換える方法を提案させることもできるでしょう。

「あるいは、昔からあった古いデータ定義を最新のSQLおよびDb2へ変換できるとしたらどうでしょうか。凄いことではないでしょうか」とWill氏は聴衆に問い掛けます。「本当に凄いことです。実に多くのことを行えるのです。それが生成AIのパワーです。モデルを訓練すれば、そのような変換作業も支援してもらえるのです。」

AIコーディング アシスタントのデリバリー スケジュールがどのようになっているかは分かりませんが、1つ分かっていることは、Will氏と彼のチームがこのプロジェクト向けにIBM独自のWatsonx LLMを使用する意向だということです。これは合理的な判断です。しかし、そのことから別の話題が持ち上がります。すなわち、IBMはRPGを必要とする、ということです。

IBMはRPG言語を作り出し、それを所有しています。IBMには、長い年月の間に各種のデモやその他もろもろ向けに開発してきたかなりの量のRPGがあります。しかし、それだけでは、LLMの訓練を行うのには十分な量のコードではないようです。Will氏がIBM i ユーザー ベースにRPGの提供を求めたのは、そういうわけです。

Will氏が紹介した、IBMがIBM i 向けに取り組んでいる3つのAIユース ケースについてのスライド。

「どなたか、LLMの訓練に使用できるコードの提供にご協力いただける方はいらっしゃいませんか。すぐにでもご協力いただきたいと思っています」と彼は述べています。「コードを提供して、オープンにしたいというのであれば、必ずそのように対応します。以上です。」

IBM i コミュニティがRPGを送り始めようとしても、IBMの側できちんと準備が整っていないようです。まだ固まっていない詳細事項がいくつかあるとWill氏は述べています。RPGを提供しようという場合、IBMが新たなLLMの訓練に使用できるように、権利をIBMに譲渡する必要がありますが、それに向けての実務的な手続きはまだ定まっていません。

基調講演では、IBMがIBM i に関して作業している他の2つのAIの取り組みについてもWill氏は触れています。その1つ目は、IBM iトランザクションに対するAIの適用に関するものです。

「トランザクション ストリームを横から監視して、状況の把握を支援したり、トレンドの解析を支援したり、不正発生の検知を支援したりなど行うことができるAIワークロードもあります」とWill氏は述べています。「できるようにしたいことは、そうしたAIワークロードが簡単に稼働できて、そうしたデータおよびトランザクション ソースに接続することです。」

これを可能にするためには、2つことが起こる必要があります。1つは、IBM i のトランザクションとAIとを繋ぐオープンソース テクノロジーです。「業界全体がそれを中心に動いている、標準のセット、プロトコルのセットがあり、それが利用可能であることを確認する必要があります」と彼は述べています。「私たちは、まさに今、それに投資しています。これは、進むべき方向を示すものであり、水面下で行われています。そして、今後は、IBM i トランザクションとAIとの繋がりがもっと良くなることをお知らせできることになるでしょう。それらのテクノロジーに投資してきたからです。」

IBMが取り組んでいるもうひとつのAIプロジェクトは、IBM i によって生成される内部データに対してAIを適用する、オペレーションでのユース ケースに関するものです。

「QSYSOPRなどへ送られるメッセージのように、適切なトランザクション データを、自動オペレーションができるAIワークロードへ送る方法を見出すことができれば、それはマシンを稼働させる上で助力となります」とWill氏は述べます。「作業を行う支援となるように、オペレーションやネットワーキングやパフォーマンスに関する情報をAIワークロードへ伝える、必要不可欠なオープン テクノロジーとはどのようなものであるかということについても、私たちは注目しています。それもまた、進むべき方向を示すものであり、私たちはそれに向かって進んでいます。」

あわせて読みたい記事

PAGE TOP