IBMセッションの4番目に登場した茂木映典氏(テクノロジー事業部 IBM Powerテクニカルセールス)は、スティーブ・ウィル氏から説明のあった「RPGコード・アシスタント」について、具体的な参加方法や日本での取り組みなどを紹介した。
茂木氏の説明内容は、次の3点。
・グローバルのRPGコードアシスタントプロジェクトへの参加方法
・日本での活動
・IBM watsonx Code Assistant
グローバルのRPGコード・アシスタント プロジェクトへの参加方法
現在、スティーブ・ウィル氏の下で進められている、RPG資産/プログラムを大規模言語モデル(LLM)「IBM Granite」に学習させるグローバル・プロジェクト「Ready for Prime Time」への参加方法は、茂木氏によると、次の流れという。
1. 参加希望をIBM (AIforIBMi@ibm.com) に送付
2. コード貸し出しに関する同意書へのサインと送付
3. Github IDを連絡し、コード提供用のGitリポジトリーへの登録
4. ガイドに従い、「情報」を提供
この4つ目の「情報」とは、Graniteに学習させるデータのこと。「質問と回答をペアにしたファイル」を指し、jsonl形式(.jsonl)で記述する(下図)。
上記の「質問と回答をペアにしたファイル」は、4つの要素で構成される。「QUESTION」はLLMに学習させる質問事項、「CONTEXT」は質問に関連するファイルや定義、「ANSWER」はQUESTIONに対してLLMが答えるべき回答内容、「TASK_TYPE」はLLMに学習させたい種別の定義、の4つである。
そしてTASK_TYPEには、構造を説明する「explain」、ソースコードを示す「prototype」、テストプログラム生成の学習であることを意味する「unittest」、固定フォーマットのRPGからフリーフォームRPGへの変換を示す「fixed-to-free」の4つの定義がある。
茂木氏は「理想的な学習用データ」として、次のチャートを紹介した。例示したチャートは、プログラム全体の説明、メインプロシージャの説明、ループの説明、の3つの要素が自然言語で記述されている。
ただし茂木氏は、「ソースコード全体を自然言語で説明するのは非常に骨が折れるので、モジュール単位やサブプロフィージャ単位など細かい単位でご用意いただくので問題ありません」と補足した。
また茂木氏らのチームは、2024年年初から「watsonx.aiでRPGをどのような形で処理できるか」というテーマに取り組んできたという。その成果として、固定フォームのRPGからフリーフォームRPGへの変換や、内部仕様書などからプログラムの概要を説明する変換を確認できたが、「私たちが試行してきたプロンプトチューニングの手法では限界がある」とし、さらに「日本で最も多く使用されているRPG Ⅲへの取り組みこそ必要ではないか」と考え、「新たなチャレンジを日本独自に開始している」と話した。それが次の「日本での活動」になる。
日本での活動
茂木氏らは現在、watsonxチームと連携して、「主にRPG Ⅲプログラムのソースコードの説明や、簡単なコードの生成」に取り組んでいる。具体的には、iSeries Siteの仕様書やマニュアルなどを基に作成した「質問と回答をペアにしたファイル」をwatsonx.aiに学習させ、適切なコードの説明やコードの生成を得る試行である。
その「質問と回答をペアにしたファイル」数は「約700種」。「ただしその程度の数では学習用データとして十分ではなく、最低でも2000種は必要」と、茂木氏は説明する。
茂木氏ら日本IBMのチームは現在、日本独自にRPG Ⅲプログラムの「質問と回答をペアにしたファイル」の提供をIBM iユーザー/ベンダーに呼びかけている。
茂木氏は、「ご提供いただいたデータをwatsonx.aiに学習させることによって、より有益なLLMに近づいていきます。日本のRPGユーザーのみなさんと一緒に、より役に立つRPG×生成AIを育てていくという考えで取り組んでいます」と述べる。このプロジェクトに関する連絡先は、下記のとおり。
ibmiworld2024@wwpdl.vnet.ibm.com
RPGアシスタント事務局(茂木・久野)
IBM watsonx Code Assistant
茂木氏は最後に、今年11月に利用可能となった「Watson Code Assistant」を紹介した。116の言語に対応しており、コードの生成や説明、ユニットテストの作成などが可能。Javaに関しては古いJavaを新しいJavaに書き換えるモダナイゼーションが可能で、「日本のお客様はWeb化を推進する際にJavaを利用することが多く、Javaのバージョンアップ時に苦労している方も少なくないはず。Watsonコード・アシスタントを使うと、修正点のリストアップや修正方法のガイドなどが行え、Java最新化をより効率的に行えます」と、茂木氏は説明した。
[i Magazine・IS magazine]