データ活用やDXがどんどん解る用語集    
コンテキスト内学習(ICL: In-Context Learning)

「コンテキスト内学習(ICL: In-Context Learning)」

データ活用やDX成功に必要な考え方を、各種キーワードの解説で理解できる用語解説集です。
今回は、IT活用で現在大変に注目されている機械学習において学習をどのように行うかについて考えてみましょう。

コンテキスト内学習(ICL: In-Context Learning)とは

コンテキスト内学習(ICL: In-Context Learning)とは、ChatGPTなどの大規模言語モデル(LLM)をベースにした生成AIになどにおける、利用時に一時的な学習を行う能力のこと。
機械学習の利活用においては従来、学習済みモデルの挙動を変更するためにはファインチューニングなどの追加学習が必要になっていました。これに対し、利用時にプロンプトを通じて与えた追加の学習データや挙動の変更依頼などにより、再学習を行ったかのような挙動変更を行える能力のことをそのように呼びます。

機械学習を活用するには「学習済みモデル」の準備が必要(どうやって用意する?)

現在世間で「AI」がよく話題になっていますが、ほとんどの場合「AI」とは「機械学習」のことです。機械学習はデータから価値を生みだすことができる手段でもあり、データを活用する取り組みにおいても、機械学習の活用は重要なテーマとなっています。

機械学習を活用したいが、学習済みモデルの用意が大変

機械学習を業務で活用するためには、「自分たちの用途(ビジネス)」で必要なタスクをこなすことができる「学習済みモデル」を用意する必要があります。

例えば画像データから、その画像に映っているものが「りんご」か「みかん」かを自動判定したいのなら、このようなことができる学習済みモデルが必要です。

  • 画像データ(入力) ⇒ 学習済みモデル ⇒ 「りんごです」「みかんです」(出力)

自社で学習済みモデルを作成するためには、「データを用意して学習させる」必要があります。データの用意だけでも大変なことがあり、ハイスキルなエンジニアも必要になり、多量の計算をしなければならないことが多く、容易ではないことがあります。

  • 「入力データ+教師データ」を訓練データとして用意 (画像データを用意し、人が「これはみかん」「これはリンゴ」とラベルをつける)
  • そのデータを用いて学習させて、「学習済みモデル」を得る

なかなかうまく行かないことが多い「ファインチューニング」

そこで、ゼロから学習済みモデルを用意する代わりに、「既にある学習済みモデル」の流用が試みられることもあります。追加でデータを与えて学習させ、自分たちの用途にあわせて能力を調整変更する(「ファインチューニング」と呼ばれます)ことで、自社の業務で役に立つものを用意する方法です。

  • 「りんご」と「みかん」を画像判別できる学習済みモデルがすでにある。
  • 追加で「入力データ+教師データ」を訓練データとして用意
    (画像に「これは青りんごです」を用意する)
  • そのデータを用いて追加学習させて(ファインチューニング)、青りんごの判別能力を追加したモデルを作る

一般的に優れたアイディアにも思えるファインチューニングですが、この例ならば「いろいろ頑張ってみたが青りんごの識別能力を獲得できない」ことや、「青りんごを新たに覚えたが、みかんをうまく判別できなくなった」など、挙動変更が狙った通りにできないことがあります。

いずれにしても、専門の人材を確保し、データを用意して「学習させなければいけない」時点でハードルが高く、容易に取り組めないところがあります。

さらに難しい「生成AI(大規模言語モデル)」での事情

昨今、ChatGPTの大ブームで代表されるように生成AIが大変な話題になっており、ビジネスでの活用も試みられつつあります。

実務においても、文書要約での活用や、一般的な話題についてのアイディア出し支援などで活用されている話も聞くようになりました。しかし、そのような業務を補助的する程度の利用ではなく、自社のビジネス活動そのものを生成AIで直接支援するような活用がなされているかというと、なかなかそこまでの取り組みはできていないことが多いと思います。

自社ビジネスで生成AIを十分に活躍させるためには、生成AI(大規模言語モデル)が「自社に関連する個別の事情を十分に理解していること」が必要になってきます。しかし、例えばChatGPT、インターネット上で取得できるデータなどの「一般的なデータ」を用いてトレーニングされているだけです。しかしそれでは「一般的な知識で答えられること」しか応答が出来ません。

例えば、社内規定の交通費精算ルールについて生成AIに聞いたら答えてくれるとか(社内規定を知っている必要があります)、西日本事業部の新製品の評判が今一つなので何か改善アイディアを出してほしい(自社のビジネス状況を知っている必要があります)、のようなことを生成AIに行わせたいと思っているのなら、何らかの方法で「自社についての知識を持っている生成AI」を用意する必要があります。

自社独自の大規模言語モデル(LLM)は大変すぎる

生成AIは「大規模言語モデル」により実現されています。ならば、自社で独自に大規模言語モデルを開発することにし、その学習の過程で自社に関するデータを与えて作れば、まさしく「自社の事情をしっかり考慮した回答をするChatGPTみたいなもの」を利用することができるようになります。

しかしながら大規模言語モデルとは「途方もない量のデータ」を用意して「想像を絶するような大量の計算」をさせて作られているものです。ほとんどの企業において、このような大変な手間のかかる取り組みを、自社独自に行うことは現実的ではないはずです。

※ただしこれは「執筆時点」での常識です。今後状況が変わり、きちんとした会社なら「自社専用の大規模言語モデルを開発しているのが当たり前」の時代になる可能性もあります

ファインチューニングでは自社向けの大規模言語モデル(LLM)はうまく作れない

ゼロからの開発が難しいのであれば、「既にある大規模言語モデル」をうまく流用する必要があります。例えば、世の中に既に存在する大規模言語モデルベースに、自社に関する知識を用意して追加学習させることで、自社に関する知識が追加された大規模言語モデルを開発する取り組みが考えられます。

このような方法(ファインチューニング)で、自社についての話題で的確な回答ができる生成AIを開発しようとする試みは、ゼロからの開発に比べて現実的に実施可能なアプローチだといえます。

しかしながら実際に試してみると、大規模言語モデルをファインチューニングしてみても望んだ知識をうまく追加することができないことが多く、この方法での取り組みは「効果がないわけではないが、どうも思った通りにできない」ままとなっています。

※ただしこれも「執筆時点」での話です。今後情勢が大きく変わり「自社専用にファインチューニングした大規模言語モデルの活用が当たり前」になる可能性もあります

いずれにしても「大規模言語モデルを学習させる」こと自体が容易ではない

ゼロから作るにせよファインチューニングにせよ、ChatGPTなどの汎用の大規模言語モデルを(クラウドサービスなどとして)そのまま利用する手軽さと比べると、明らかにハードルが高く、どの会社でもお手軽に取り組めることとは言い難いところがあります。

既存の大規模言語モデルのまま、「挙動」を変更する技術

そのような状況で発見された「第三の選択肢」が、コンテキスト内学習(ICL: In-Context Learning)です。

プロンプトを通じて追加学習させたような挙動変更ができる

通常、機械学習の挙動を変更したいなら「学習済みモデル自体を変更する」必要がありました。しかし、大規模言語モデルでは、学習済みモデルを変更することなく、利用時にプロンプトを工夫するにことにより「追加データで学習させたかのような挙動変更」が出来ることが解っています。

「コンテキスト内学習」の例として、プロンプトの利用テクニック(プロンプトエンジニアリング)として知られる「Few-Shot プロンプティング」があります。

たとえばChatGPTに、HULFTとはどういうカテゴリの製品なのか聞くと、執筆時点ではEAIやEDIと答えてしまいます(嘘を平気で答えており、いわゆる「ハルシネーション」が発生している状態)。

HULFTはどんなカテゴリの製品ですか?


 

HULFTは、データ統合およびデータ転送ソリューションを提供するカテゴリの製品です。具体的には、異なるシステム間でのデータの収集、変換、転送、同期を効率的に行うためのミドルウェアとして位置づけられます。企業内部の異なるシステムや、企業間のデータ連携を実現するために用いられることが多く、データインテグレーション(統合)やEAI(Enterprise Application Integration:企業アプリケーション統合)、EDI(Electronic Data Interchange:電子データ交換)などの用途に適しています。

これはつまり、我々の製品やビジネスを想定して利用するには、「知識が足りていない」状況だと言えます。しかしHULFTについて知識のある大規模言語モデルを自社独自に用意することは現実的ではありませんし、ファインチューニングでの知識の追加はうまく行かないことが多いのでした。では、どうすればよいでしょうか。

通常の機械学習の利用なら、学習済みモデルを変更しなければ挙動変更は難しいのですが、大規模言語モデルでは追加学習を行うことなく、「プロンプト経由」で「追加の知識」を与えることができます。上記の入力に引き続いての例です。

以下は、それぞれのソフトウェア製品の名前と製品カテゴリをまとめたものです。以後、覚えて回答してください。

  • HULFT : MFT
  • DataSpider : EAI
  • HULFT Square : iPaaS

 

了解しました。これらのソフトウェア製品とそのカテゴリを覚えておきます。

  • HULFT : MFT (Managed File Transfer)
  • DataSpider : EAI (Enterprise Application Integration)
  • HULFT Square : iPaaS (Integration Platform as a Service)

HULFTはどんなカテゴリの製品ですか?


 

HULFTはMFT (Managed File Transfer) カテゴリの製品です。

プロンプト経由で追加の知識を与えたところ、「HULFTはMFTである」と正しく答えるようになりました。

しかも、「MFT」と略語で例を示して教えただけで、MFTと略される言葉は他にあるにもかかわらず「HULFT : MFT (Managed File Transfer)」と適切に理解をしています。ただ言われたパターンをそのまま丸暗記しているのではなく、それ以上の高度な能力であることも解ります。

この挙動、人の会話としては自然に見えるかもしれませんが、「これは機械学習である」ことを意識してください。大規模言語モデル(学習済みモデル)そのものには、何も変更を行っていないにもかかわらず、プロンプト内で「追加の学習データ」を与えたところ、そのデータに応じた応答の変更が実現出来ています。

つまり「追加の学習を行っていない」にもかかわらず、「大規模言語モデルに追加で学習を行ったかのような挙動変更」が実現できています。

コンテキスト内学習はどういう仕組みで動作しているか

プロンプトを通じて大規模言語モデル自体が書き換えられたわけではありません。にもかかわらず、再学習したかのような挙動をしています。何が起こっているのでしょうか。

ChatGPTはチャット(対話)をしますから、話の流れを覚えています。例えば「はじめましてChatGPTさん、私の名前は渡辺です。」と言ったなら、ChatGPTは「はじめまして、渡辺さん。どうぞよろしくお願いします。」と答えます。そしてその後も名前を憶えた状態で会話を続けてくれます。「今日は雲一つなく暑かったですね」と言ったなら、「今日の天気は晴れ」であることや「暑かった」ことを憶え、さらには「今は天気の話題をしている」ことを踏まえて応答を生成します。

つまりChatGPTは、大規模言語モデル自体が覚えている知識以外に、「会話の流れ(文脈)」を理解し記憶して応答を生成しています。このような「対話の文脈(コンテキスト)を理解し保持する能力」を使って、追加データで学習をしたような挙動変更が実現されています。

  • 通常の機械学習での挙動の変更:
    「学習済みモデル」自身に変更を加える必要がある
  • コンテキスト内学習(ICL: In-Context Learning):
    「学習済みモデル(大規模言語モデル)」は自体はそのままでも、「実行時に保持している状態」(対話のコンテキスト)だけで追加で学習を行ったかのような挙動変更ができる能力がある

技術的には、大規模言語モデルを実現しているディープラーニングの学習モデルである「Transformer」が実行時に保持している状態において、追加学習を行ったかのような挙動変更がなされています。

このような仕組みのために、コンテキスト内学習で覚えさせたことを今後もずっと覚えたままにすることは出来ません。なぜなら大規模言語モデル自体には何も変更がなされていないからです。その対話(コンテキスト)の間だけ保持され、対話が終わると教えたことは忘れてしまいます。この例ならば、利用するたびに毎回最初に「HULFTはMFTである」と、プロンプト経由で知識を与える必要があります。

※ただし執筆時点において。今後、新しい技術が登場してコンテキスト内学習で覚えたことを大規模言語モデル自体に永続的に取り込めるようになるかもしれません。

大規模言語モデルに創発的に発現した能力

もう一つ興味深いことがあります。コンテキスト内学習は、誰かがこのような能力を作りこもうとしてできたものではないという、驚くべき事実があります。

大規模言語モデルは、単に莫大な量のテキストデータを読み込ませて作った学習済みモデルであり、ChatGPTを実現しているGPTでは「このテキストで次に出てくる単語は何か」という予測問題を解く訓練しか受けていません。

しかしながら大規模言語モデルでは、学習で用いるデータ量が増えモデルのパラメータ数を増えるにしたがって(つまり巨大化させると)、どういうわけか「直接に教えていない高度な能力を創発(Emergent)的に獲得する」不思議な現象が起こります。

翻訳するトレーニングをしていないのに翻訳する能力を獲得した、計算を教えていないのに(間違えたりもするものの)計算する能力を獲得していた、などの現象です。

「コンテキスト内学習(ICL: In-Context Learning)」も同じように、大規模言語モデルが巨大化する過程で創発的に発現した能力の一つです。作って使ってみると、なぜかこのような能力が備わっていることが事後に発見されたものです。どうして新しい能力が発現するのか、今後どのような能力が発現するのかなどは、現時点ではまだよくわかっていません。

関係するキーワード(さらに理解するために)

機械学習に関連したキーワード

生成AI/ChatGPTに関係するキーワード

データ連携やシステム連携に関係するキーワード

  • EAI
    • -システム間をデータ連携して「つなぐ」考え方で、様々なデータやシステムを自在につなぐ手段です。IT利活用をうまく進める考え方として、クラウド時代になるずっと前から、活躍してきた考え方です。
  • ETL
    • -昨今盛んに取り組まれているデータ活用の取り組みでは、データの分析作業そのものではなく、オンプレミスからクラウドまで、あちこちに散在するデータを集めてくる作業や前処理が実作業の大半を占めます。そのような処理を効率的に実現する手段です。
  • MFT(Managed File Transfer)
    • -ファイルによる連携処理を、企業活動を支えられるだけの高度な水準の「安全安心確実さ」で実現する連携基盤です。単にファイルの転送処理ができるだけではなく、転送処理が間違いなく確実に行われることや、セキュアで安全な転送、転送ログをきちんと残して確認や管理ができる機能などが揃えられているファイル転送やそれを実現する基盤のことをそう呼びます。
  • iPaaS
    • -様々なクラウドを外部のシステムやデータと、GUI上での操作だけで「つなぐ」クラウドサービスのことをiPaaSと呼びます。

「iPaaS」や「つなぐ」技術に興味がありますか?

オンプレミスにあるITシステムからクラウドサービスまで、様々なデータやシステムを自在に連携し、IT利活用をうまく成功させる製品を実際に試してみてください。

「つなぐ」ツールの決定版、データ連携ソフトウェア「DataSpider<」および、データ連携プラットフォーム「HULFT Square」

当社で開発販売しているデータ連携ツール「DataSpider」は長年の実績がある「つなぐ」ツールです。データ連携プラットフォーム「HULFT Square」はDataSpiderの技術を用いて開発された「つなぐ」クラウドサービスです。

通常のプログラミングのようにコードを書くこと無くGUIだけ(ノーコード)で開発できるので、自社のビジネスをよく理解している業務の現場が自ら活用に取り組めることも特徴です。

DataSpider / HULFT Squareの「つなぐ」技術を試してみてください:

簡易な連携ツールならば世の中に多くありますが、GUIだけで利用でき、プログラマではなくても十分に使える使いやすさをもちつつ、「高い開発生産性」「業務の基盤(プロフェッショナルユース)を担えるだけの本格的な性能」を備えています。

IT利活用の成功を妨げている「バラバラになったシステムやデータをつなぐ」問題をスムーズに解決することができます。無料体験版や、無償で実際使ってみることができるハンズオンも定期開催しておりますので、ぜひ一度お試しいただけますと幸いです。

 

「HULFT Square」で貴社のビジネスが変えられるか「PoC」をしてみませんか:

貴社のビジネスで「つなぐ」がどう活用できるのか、データ連携を用いた課題解決の実現可能性や得られる効果検証を行ってみませんか?

  • SaaSとのデータ連携を自動化したいが、その実現可能性を確認したい
  • データ利活用に向けて進めたいがシステム連携に課題がある
  • DXの実現に向けてデータ連携基盤の検討をしたい

用語集 コラム一覧

英数字・記号

あ行

か行

さ行

た行

な行

は行

ま行

や行

ら行

わ行

技術コラム一覧

おすすめコンテンツ

まずは無料で「つなぐ」をご体験ください

評価版ダウンロード

DataSpider Servistaのデータ連携を、まずはお確かめください。30日間無料でお試しいただけます。

無料体験セミナーに参加する

DataSpider Servistaの「つなぐ」を体験できる製品紹介・オンラインセミナーを開催しています。

Change Location

Are you visiting HULFT.com (Japanese language) outside Japan ?
When connecting "HULFT" to Japan from overseas, please select "HULFT8".

日本国外からHULFT.com(日本語)にアクセスされようとしています。
海外から日本の「HULFT」と接続する製品をお探しの場合、「HULFT8」をお選びください。