NEWS
改めてAIについて学んでみよう 改めてAIについて学んでみよう
2024.03.01

【AI】第7回「AIはIBM iの世界をどう変えつつあるか?」

【AI】第7回「AIはIBM iの世界をどう変えつつあるか?」
【AI】第7回「AIはIBM iの世界をどう変えつつあるか?」

今日のIT環境では、ソフトウェアの近代化(モダナイゼーション)の上を行く未来化(フューチャーライゼーション)が必要であり、その鍵となる技術はAIだと論者は説きます。AIを活用したソフトウェアの未来化とはどのようなものなのか、TechTalkの対談の抄訳を通してお伝えします。(編集部)

2023年11月1日 チャーリー・グアリーノ

Profound Logic社のアレックス・ロイトマン氏が、未来化の概念となぜ今ChatGPTや他のAIツールを使い始めるべきなのかについて語ります。


チャーリー・グアリーノ(以下、チャーリーと略記します):
チャーリー・グアリーノです。TechTalk SMBの別版にようこそ。今日は私の友人であり、Profound Logic社のCEOそしてIBM iコミュニティの思想的指導者であるアレックス・ロイトマン氏をお迎えしています。アレックス、今日は来てくれてありがとう。

アレックス・ロイトマン(以下、アレックスと略記します):
ありがとう、チャーリー。あなたと話すのはいつも楽しみです。

チャーリー:
あなたと知り合いになってかなり長い年月が経ちます。あなたの特徴は、他の多くのCEOと違い、本当に技術に強いという点です。今でも現場で陣頭指揮を執り、とても高い技術力をもっていますが、技術の未来をどう見ているとか、会社での自身の役割などについて教えて下さい。

アレックス:
私は顧客を未来へと導こうとし、技術的な観点で、将来何が出てくるかに目を向けようとしているこの会社が本当に好きで、将来の様々な技術を理解することを楽しんでいます。私達がやっている事を行うには、現場で指揮を執ることが必要だと私は考えています。

チャーリー:
対談が始まる前にした会話で、あなたが口にした「未来化(フューチャーライゼーション)」という言葉が私の注意を引きました。IT業界では「モダナイゼーション」という言葉が大きな流行語ですが、この言葉は使われ過ぎだと思います。あなたが言うアプリケーションの未来化とは実際何を意味していますか? モダナイゼーションとどう違いますか?

アレックス:
それはとても良い質問です。ちょっと以前に、自分達のブランドは何か、やっている事はどの様な事なのかを究明しようとしました。そこで気付いたのは、モダナイゼーションという言葉は使われ過ぎで、過去から現在に辿り着くという含意が生じるということでした。私達は未来と未来の技術について積極的に考えようとしており、その点で私達のやっている事はモダナイゼーションと少し違うことに気付きました。そこで、「未来化」という言葉を造り出し、これを使い始めました。なぜなら、この言葉は私達がしようとしている事をよりうまく表しているからです。AIで起きているすべての事と同様に、私達は未来化が重要だと考えました。未来化はある程度モダナイゼーションを包含しますが、単にアプリケーションをモダナイズするよりもずっと広範なものです。

チャーリー:
あなたはAIについて触れましたが、あなたを今日ここに招いたのは、AIが非常に多くの方法で私達の想像力を本当に魅了したからです。テクノロジーは本当に完全に革命を起こし、業界の方向性を変えました。

アレックス:
私もあなたと同じ様に感じます。私はGitHub Copilotに触れて以来これを大いに支持してきました。このツールを手に入れ、直ぐにこれは別物だと気付きました。これは典型的な自動完成の様な物ではなく、それを遥かに超えたある種の知性が含まれていたのでとても興奮しました。私はチーム全員に、私達はこれに関与しなければならないし、それをもっと学ばなければならないと言いました。実際、私達は自社でAIの会合を始め、AIが物事をどのように変えるか、それは私達の仕事のやり方に関するものなのか、顧客のためのものなのか、顧客に提供するソリューションに関するものなのかについて話し合いました。

チャーリー:
それは興味深い論点です。しかし、AI に何ができるかという認識について、多くの誇大宣伝が行われていることに懸念もあります。多くの人は、これが全知全能のツールであることを恐れています。AIがどれ程実用的であるかということと、それに関連する誇大宣伝とをどのように区別すれば良いでしょうか?

アレックス:
制約が何であるかを理解することが非常に重要だと思います。テクノロジーを使用し試してみることで、どこが強くてどこが弱いのかが分かるようになります。AIは多くの興味深いことができますが、すべての人間やその類のすべてのものを自動的に置き換えるわけではありません。少なくとも現時点では、それは知覚をもったAGI(汎用人工知能)のようなものではありません。それが世界を破壊するなどとは思えません。また、実際の懸念が何であるかを理解することも重要です。これはツールであり、それが間違った人々(例えばハッカーなど)の手に渡った場合、彼らはより大きな力を持つことになります。実際、AIを使用して誰かになりすますことは簡単ですが、これは多分AIが登場する前からできていたことで、AIによってそのようなことが容易になっただけです。ところで、ChatGPTは最近この音声機能をリリースしました。それを試してみましたか?

チャーリー:
いいえ、でもそれについては読んだことがあります。それは魅力的で、それができることのさまざまな可能性について考えさせられます。

アレックス:
まさにその通りです。私はAIの言語機能と、AIがいかに知的に聞こえるかにすでに慣れています。声自体は時々一時停止したり、話す前に「うーん」と一息ついたりして人間のように聞こえます。人間の誰かと話しているような気分になり、これが単なるAIであるとは分かりません。その機能を手に入れたとき、本当に素晴らしかったので私は何時間もこれに話し続けました。

チャーリー:
あなたの興奮を見れば、あなたがこの話題全体にどれだけ興味を持っているか、そしてこの話題があなたの想像力を掻き立てているのが分かります。それでは、IBM i について、あるいはビジネス全般について話しましょう。現在、顧客がこのテクノロジーを使用することをどのように見ていますか? 実際のアプリケーションでこれを使用している顧客はどこにいるでしょうか?

アレックス:
私達がさらに深く掘り下げて調査しようと考えたのは、このインテリジェントな大規模言語モデルのことです。これは応答を返しますが、それをどのようにデータに統合するのでしょうか? 認識するべきことは、このツールにはAPIがあるという点で、それは他のものにも当てはまると言えます。ご存知のように世の中には他のモデルもあります。Anthropicという会社があります。機能的にはChatGPTに匹敵し、オープンソースモデルもありますが、最終的にはAPIまたはプログラムを介してこれらのモデルとやり取りできます。あなたが興味をもち、深く調べようとしなければならないものはこれです。

非常に単純な例として、APIを介して通信できるビジネスインテリジェンス(BI)ツールのようなものが構築できます。これは社内のAIの会合から生まれましたが、自然言語を使用するので実装は非常に簡単でした。基本的には、データベースをAIに渡し、自然言語の照会文をSQL文に変換します。その後、そのSQL文を実行してデータをユーザーに提示します。そこで、私達は小さなツールを構築しました。それはSQLの知識、フィールド名や列名、テーブル名などをすべて知らなくても、言語を使用するだけで顧客はアプリケーションと会話し、注文や在庫や様々なことについて質問できるように応用できます。

チャーリー:
あなたはいくつかの言葉を口にしましたが、それらはもう少し詳しく話すだけの価値があると思います。あなたが最初に口にしたのは「大規模言語モデル」でした。LLM とも呼ばれますが、この文脈における大規模言語モデルとは正確には何でしょうか?

アレックス:
これらの大規模言語モデルが普及する前、誰もがAI を使用するには自分のデータでAIをトレーニングし、ニューラルネットワークに入る必要があると考えていました。しかし興味深いのは、インターネットから得た大量の知識を網羅するこれらの巨大なモデル(つまりニューラルネットワーク)が作成されたということです。これをまとめるために彼らは大量のデータを掻き集めたと確信していますが、そこにはある種の知性が内在しています。それは創造的なものになり得るもので、物事を推測することができます。つまり、これはデータベースで物事を検索するだけのものではなく、そこにはある種の知性が存在します。ですから、非常に多くのパラメータをもつ巨大なサーバー上に事前に構築され、大量の知識をもつこれらの大規模モデルを使い始めることで、あらゆる種類のアプリケーションへの扉が実際に開かれます。

チャーリー:
経験上APIがあらゆる場所にあることは知っています。私達はAPIエコノミーと呼ばれる世界にいます。この技術を使用する場合はAPIを実際に使う必要があります。つまり、接続方法はAPIであり、現時点ではそれが基本です。

アレックス:
そうですね、先ほど述べた例はAPI を使う例でした。チャット、大規模言語モデル、ChatGPTのようなものにアクセスし、ブラウザーインターフェースを使って作業する場合と同じ事をAPI 経由で実行することも、プログラムで実行することもできます。これと別のアプローチ法は、IBM i データへのアクセスを可能にする独自のAPIを作成することです。これらすべてを実行するときはセキュリティを意識する必要があり、公開したいものの制限に応じてAPIを使い、様々な質問に答えるよう大規模言語モデルに指示します。これは、同じ事を行うときの逆のアプローチのようなものですが、ビジネス情報を提供する大規模言語モデルにAPIを提供することは非常に強力である可能性があります。これにより、人と会話したり、アプリケーションと会話したりできるアプリケーションが作成でき、適切な公開APIの呼出し方法を大規模言語モデルが自力で判断します。

チャーリー:
私達が話したもう1つの話題は、プラットフォーム自体のトレーニングについてでした。あなたは、自分のデータを使用する、または公開データを使用すると言いましたが、誰かがこれに関与したい場合はどうなりますか? これを軌道に乗せるために、どのような事前トレーニング、または要件を検討する可能性がありますか?

アレックス:
もし自社のユニークなビジネスデータ、自社が独占所有権をもつビジネスデータについてAIに知識を持たせたいのであれば、AIをトレーニングしなければなりません。モデルをトレーニングするための従来のモデルは、少なくともAI界隈では何かを一からトレーニングすることを意味する場合もあります。しかしほとんどの場合その必要がないことに私は気付きました。既存の大規模言語モデルから始め、それを使うことができます。その使い方は2つあります。コンテキストがどのように機能するかの例を示しましょう。

非常に技術的な質問、つまりRPGプログラミングに関する質問をしたいとします。そこで、コンテキストとしてRPGマニュアルを大規模言語モデルに提供し、「これがマニュアルです。RPG プログラミングについての私の質問に答えてください」と言います。するとそのコンテキストには、「ここにマニュアルがあり、そこからいくつかの質問に答えなさい」という会話が挿入できます。現在コンテキストウィンドウと呼ばれているものは、提供できるコンテキストの量が制限されています。私がこれまでに見た最大のものは約100,000トークンですが、それでもかなりの量です。コンテキストを提供するのは1つの方法ですが、コンテキストとして提供したい情報が100,000語を超える場合は、それを分割するという賢い方法もいくつかあります。例えば、私はRPGについて質問していますが、特にレコードレベルのアクセスについて質問しています。その質問に対してマニュアル全体を提供する代わりに、まずレコードレベルのアクセスに関する情報を検索してサブセット化します。その後私が質問すると、その文脈だけがマニュアルから提供されます。つまり、コンテキストを使うというこの全体構想を活用すると、本当に上手くいくので、独自のモデルを一からトレーニングすることを考えるよりも私は遥かに好きです。

コンテキストの提供で何らかの制限に遭遇した場合、モデルをトレーニングすることもできますが、いわゆるモデルの微調整を行うこともできます。つまり、既存のモデルから始めますが、その後大量の質問と回答の例を提供することになります。これには大量のデータが必要なので、コンテキストの概念に比べてより困難な作業になると思います。ただし、既存のモデルを微調整するのは、何かを一からトレーニングするよりもはるかに簡単です。微調整を通じて実際にモデルの重みを変更すると、それらは新しいモデルとして永続的に保存されます。

要約すると、従来の意味でのトレーニングがほとんどの人にとって最良の方法かどうかは分かりませんが、微調整またはコンテキストウィンドウをもっと上手く使用して、アプリケーションを望みどおりに機能させることができます。

チャーリー:
モデルを微調整することは、プラットフォーム自体から返されるバイアスの一部を軽減するのに役立つと思いますか?

アレックス:
まさにそれが微調整のポイントなのですが、いくつか落とし穴もあります。最大の落とし穴は、かなりの量の情報やサンプルが必要で、それが常にあるわけではないということです。モデルを微調整するには多大な労力がかかる場合があります。

チャーリー:
得られたデータのバイアスによって、判断を誤らせる答えが返される可能性があるのでそれを知っておくことも重要です。

アレックス:
ええ、そうです。話が脱線するのは分かっていますが、「モデルは幻覚を起こしている」という言葉を聞いたことがあるでしょうか? モデルは真実ではないものをあなたに伝えており、これこそがAIエージェントの概念を作り出している場所だと私達は気付きました。私達が行ってきたことの一例を紹介します。

私達は、COBOLおよびRPGプログラムを作成できるAIエージェントを作成しました。従来私達はRPGアプリケーションをモダナイズするビジネスを行ってきましたが、COBOLの需要が高まっているため、最近ではCOBOLでより多くのことを行っています。そこでCOBOL開発者AIエージェントを作成しました。これは、ChatGPTにアクセスして、「この要件があります」と言うのとは少し異なり、それ用のCOBOLプログラムを作成します。なぜなら、それは最初のステップに過ぎず、プログラムが間違った結果を生み出す可能性があるからです。しかし、私達が作成したエージェントの概念全体は非常に一般的なもので、IBM i 上のCOBOLで実装することができました。次に、プログラムをコンパイルし、コンパイルが失敗した場合はそのことをモデルに伝え、コンパイルが正しく行われるまで会話を少し繰り返して続け、その後コード実行という次のステップに進みます。これにより、コードが期待どおりに実行されることが保証されます。このエージェントの概念と、モデルから返される出力を検証する何らかの方法を持つことは、幻覚やそこから来る可能性のある間違った情報と戦うための良い方法です。

チャーリー:
これは、SQL のパフォーマンスの改善、SQLの形式の改善、クエリ自体の特質の改善のように、より良い結果を得るまたはより速く結果を得るための作業にも適用できると思います。

アレックス:
ええ、実際、プロジェクトの1つで私達は正にこれを行いました。複雑で適切にフォーマットされていない既存のSQLが多数ありましたが、アプリケーション全体をまとめて大規模言語モデルで実行することで、フォーマットを修正し、最適化することができました。しかし、同時にそれが正しいものを提供していることも検証します。

チャーリー:
このツールでできることは本当に素晴らしいです。ChatGPTの例として、コードのテストケースやユースケースを作成することが思い浮かびます。コードの作成と、コード自体が適切であることを実際に検証するためのテストケースの作成について、どこでそれが使用されているのを見ましたか、またはどのようにそれが使用されているのを見ましたか?

アレックス:
エージェントを作成するに当たり、すべてのユースケースを提供しましたが、そのとき適切な場所に自動テストシステムがあることがいかに重要であるかに気付きました。私達は変換プロジェクトに携わっており、その一環として自動テストの実装をより深く進めました。AI を使用しているかどうかに関係なく、テストが自動化されているのは良いことであり、様々なツールを使用してきました。例えば私達はMocha(訳注)を頻繁に使用してきました。テスト駆動開発のようなものから始めて最初にテストを開発すると、AI にコード修正やコード作成を依頼する機会が与えられ、素晴らしいことにもしそれが失敗しても問題ありません。悪い結果を破棄することも、さらにフィードバックを提供して正しくなるまで作業を続けることもできます。つまり、自動テストというアイデアがAIを機能させる上で鍵となったのです。COBOLの例に戻りますが、私達が最初に始めたとき、AIにCOBOLプログラムの作成を依頼するというこの概念は、90%程度はAIが作成する最初のプログラムが正しくなかったり、失敗したりしましが、最終的にAIの成功率を90%に引き上げることができました。そしてAIが仕事を完了できなかった10%については、単にそれをエスカレートして人間が調べるようにしたので、コミットされた不正なコードがリポジトリに構築されたわけではありません。

チャーリー:
開発者の観点で聞きますが、AI がどのように市場で真の競争優位をもたらすことができると考えていますか? また、企業はこれをどのように捉えて活用し、開発者の観点だけでなくビジネスの観点から有利に活用していますか?

アレックス:
私が言えることは、あなたがAIを受け入れなくても、競合他社は受け入れるだろうということです。それには少し時間が掛かり、多少の投資が必要になるかもしれません。しかし、競合他社はこれを検討しているので、これを見逃すわけにはいきません。ビジネス事例は数多くあります。私が挙げたBIの例もそのうちの1つです。私達は概念実証として非常に興味深いものを作成しました。それは5250アプリケーションの上に位置するコパイロット(副操縦士)です。アプリケーション操作に行き詰まって使い方が分からない場合は、コパイロットに「このアプリケーション内でどうすればいいですか?」と尋ねることができます。そして、コパイロットは隈なくあなたを案内することができ、あなたのためにいくつかの行動を行うこともできます。そのような機能を取り上げ、それが役立つ可能性のあるビジネス領域、またはBIの例のようなものに絞り込む必要があります。

チャーリー:
このプロセス全体でちょっと手を出しているだけの人に、どのようなアドバイスを貰えますか? 彼らは、やりたい事、しなければならない事は分かっていますが、どうやって始めれば良いのかさえ知りません。誰かにとって非常に良い最初の一歩は何でしょうか? あなたの最初のステップ、そして第2ステップは何ですか?

アレックス:
良い質問です。最初のステップは、日常生活でAIを使用し始めることです。それがどれ程役立つか驚くと思います。あなたが開発者で、何かに取り組んでいる場合は、ChatGPTであれ、Anthropicであれ、ツールのいずれかであれ、AIをパートナーにしてAIに質問する習慣を身につけましょう。多くの場合、コードのスニペットが生成されます。それを使用することが最初のステップです。ChatGPTを使用している場合は、Plusサブスクリプションを取得してください。それは月額20ドルですが、最新かつ最高のツールを入手できるので、それだけの価値はあると思います。モデルはより賢くなっており、特にRPGプログラミングの場合のように最新かつ最高のモデルは、以前のモデルよりもRPGプログラミングでわずかに優れていると感じています。それが最初のステップになります。定期的に使用していることを確認してください。多くの人はそれについて奇妙に感じていますが、そのハードルを乗り越えなければなりません。最初は質問するのが奇妙で、常に正しい答えが得られるわけではありません。ですから、実際に遊んで質問の仕方を理解する必要があります。最初のステップは、それを使い始めることだと思います。その後、さらに深く掘り下げたい場合は、ChatGPT APIを検討すると良いと思います。結局のところ重要なのはプロンプトであり、APIは単にプロンプトを送信しているだけなので実際には非常に単純です。ですから、それで遊んでみて何ができるか見てみましょう。

チャーリー:
あなたがプロンプトについて言及したのは面白いです。AI やプロンプトの技術について学ぶ中で、ほとんど同じ単語の集まりをどのように使用し、それらを並べ替えたり、ニュアンスを微調整したりするだけで、エンジンからどのように大きく異なる応答を受け取るかは非常に興味深いことです。

アレックス:
私はプロンプトの様々な方法について多くのことを学び、Alexと呼ばれるものを構築しました。これは、Profound社のテクノロジーに関する質問に答える社内用チャットボットですが、顧客向けの情報だけでなく、内部で文書化されている内容の一部にも答えます。私も開発に携わりましたが、最大の努力はプロンプトを理解することでした。何をするのか、どのような状態でいるかを伝える最初のプロンプトなど、システムプロンプトと呼ばれるものを理解することに比べれば、コーディングや実際のプログラミングはそれほど手間ではありませんでした。私達はそれを繰り返しいじり、私達が望む形で質問に答えられるようになるまで試しました。ですから、自然言語のテキストを書くことが最大の仕事でした。それはプロンプトエンジニアリングと呼ばれますが、それを試してモデルがどのように機能するのか、そしてプロンプトに基づいてどのように答えが生成されるのかを感じなければなりません。

チャーリー:
私がそれを使って遊んでいたとき、私達は同じ質問をしていましたが、プロンプトに特定の人として応答することを追加していました。

アレックス:
おお、そうですか。それは良い例です。

チャーリー:
そして、同じ質問に対して、異なる人格で異なる反応が見られるのはとても興味深いものでした。なぜ私にとってこれがとてもエキサイティングなのかというと、それはが本質的に非常に大きな変革をもたらすものだからです。

アレックス:
ええ、それは実際に良い悪戯です。時々、5年生であるかのようにこれに答えなさい、または博士号を持っているかのようにこれに答えなさい、と言いたいことがあります。モデルにどのレベルの説明を求めるかに応じて、異なる洞察と異なる説明が得られます。

チャーリー:
その通りです。それでは、この話を締めくくる前に難しい質問をします。ChatGPTは1年ほど前に登場し、多少なりとも私達のテクノロジー全体に革命をもたらしたと思います。5年後、10年後、または3年後の未来ですらもChatGPTにどうなるかを尋ねる以外に少しでも正確な予測はできるでしょうか? それとも、それはあまりにも指数関数的すぎて想像すらできないのでしょうか?

アレックス:
それは非常に難しい質問で予測するのは難しいと思いますが、一つだけ確実に言えるのは、それは私達の生活の一部になるだろうということです。それは大きな影響を与えるでしょうが、それがどの位のスピードで成長するのか正確には分かりませんし、それが与える正確な影響も分かりません。どの仕事がどのように影響を受けるかは分かりませんが、大きな変化が起こることは確かです。それは確信を持って言えます。

チャーリー:
とても素晴らしい議論でした。本日はお時間をいただき本当にありがとうございました。AIについてあなたとおしゃべりするのはとても楽しかったです。

アレックス:
これは私にとってとても興奮するテーマなので、このような会話ができてとても嬉しく思います。

チャーリー:
本当にありがとう、アレックス。聞いている皆さんも是非 TechChannelのWebサイトにアクセスしてください。そこには素晴らしいコンテンツが沢山あります。また、アレックスが提案したように、ChatGPTまたは他のプラットフォームのいずれかでアカウントを開設することをぜひ検討してください。そうしたことを後悔することはありません。これは取り組むべき素晴らしいテクノロジーです。来月まで皆さんお元気で。さようなら。

訳注: MochaはNode.jsやブラウザー上で動作するJavaScriptのテストフレームワーク

いいねと思ったらシェア
twitter
facebook
hatena
改めてAIについて学んでみよう 目次を見る

この連載は…

改めてAIについて学んでみよう
関連記事
【AI】第2回「Power10の超速AIをイベントストリーミングと共に使う」
【AI】第2回「Power10の超速AIをイベントストリーミングと共に使う」
【AI】第6回「AIへの道にAPIを構築する」
【AI】第6回「AIへの道にAPIを構築する」
【AI】第3回「人工知能(AI)への旅 -第1部:AIの歴史-」
【AI】第3回「人工知能(AI)への旅 -第1部:AIの歴史-」
あなたにオススメの連載
できるIBM i 温故知新編
7記事
できるIBM i 温故知新編
IBM i の”新”必須言語 〜FFRPG入門〜
14記事
IBM i の”新”必須言語 〜FFRPG入門〜
IBM i アプリの第二の柱 OSS
15記事
IBM i アプリの第二の柱 OSS
PAGE TOP