コンテンツにスキップ
この記事はパブリックドメイン(CC0)です。自由にご利用ください。 CC0 1.0 Universal

自然言語機械学習

従来の機械学習は、数値計算が得意なコンピュータを活用して、数値データを使って学習し、数値化されたパラメータを獲得する、というパラダイムの中にあります。

一方で、私たちは数値的な仕組みによる学習だけでなく、言葉を通した学習も可能です。経験を言葉として整理したり書き留め、その言葉を思い出したり読んだりして活用します。

大規模言語モデルは、同じように言葉で知識を記述したり、言葉を読んで活用することができます。

この自然言語プロセッサである大規模言語モデルを利用すれば、数値ベースの機械学習ではなく、自然言語ベースの機械学習も可能になります。

このため、大規模言語モデルの登場により、自然言語機械学習という新しい分野が開けてきました。

大規模言語モデルの事前学習は、従来の数値的な機械学習です。ここで示している自然言語機械学習は、事前学習済みの大規模言語モデルを利用した、新しい機械学習を指しています。

自然言語機械学習の基本モデル

自然言語機械学習は、従来の数値型の機械学習と似ている側面と全く異なる側面を併せ持っています。

まず、自然言語機械学習のイメージをつかむために、従来の数値型の機械学習と似た形の部分を基本モデルとして説明します。

ここからは、事前学習済みの大規模言語モデルをLLMと書きます。この学習の中で、LLMのパラメータは一切変化しないという点に注意してください。

基本モデルは、教師あり学習で、分類問題を対象とします。

学習用の正解データとして、入力文と分類の組を複数用意します。

例えば、ある会社に総務課と庶務課があるとしましょう。

この2つの課は業務の役割分担があり、「オフィスの電球が切れた」「入館証を忘れた」「本社の大ホールを予約したい」などの入力文に対し、分類としてそれぞれ総務課と庶務課のどちらが担当かが書かれています。

この学習用のデータから、入力文だけを取り出して、LLMに入力します。

ここで、システムプロンプトとして「この問い合わせの担当部署が総務課と庶務課のどちらであるかを回答してください。総務課、庶務課以外の文字は回答に含めないでください」という形で、あえて回答を制限します。

すると、LLMは初めはこの会社の知識がない状態で、回答を生成します。当然、外れることもあれば、偶然当たることもあります。

その回答に対して、教師システムはアタリとハズレを判定します。そして入力文、LLMの回答、判定結果の組みをナレッジベースに保存します。

これを学習データの半分くらいまで繰り返します。

そして、学習データの残りの半分は、LLMにナレッジベースに記録したすべての情報をシステムプロンプトに加えて、同じことを行います。

この時点で、ナレッジベースには、この会社の総務課と庶務課の分担している業務についての情報が含まれていますので、最初の半分のデータより正解する可能性は高くなるはずです。

このようにして、LLMとナレッジベースを組み合わせたシステムは、この会社の総務課と庶務課の業務分担を学習することができます。

これは、学習の仕組み自体は、従来の数値型の機械学習と同じような仕組みです。違いは、LLMの中のニューラルネットワークのパラメータではなく、ナレッジベースに学習結果が反映されるという点です。そして、ナレッジベースには数値ではなく、自然言語が記録されます。

これが自然言語機械学習の基本モデルです。

基本モデルのリアリティ

LLMを活用している人はすぐに気がつくと思いますが、この基本モデルにはリアリティがありません。

なぜなら、教師システムでアタリとハズレの判定結果をつけるような手間をかけなくても、初めから学習データそのものをシステムプロンプトに入力してしまえば良いからです。

一方で、基本モデルを応用して少しシナリオを変えれば、リアリティが出てきます。

例えば、総務課と庶務課が合同で問い合わせ窓口を作り、その窓口に来た問い合わせを、人間が逐一、適切な課に振り分けるということをしているとします。

その問い合わせと振り分け結果を、ナレッジベースに追加していくシンプルなシステムを作ります。

すると、このナレッジベースを使って、LLMが人間に変わって新規の問い合わせを課に振り分けることができるようになります。

この際に、LLMが間違って庶務課の担当する問い合わせを総務課に振り分けてしまった場合、総務課の担当者が改めて庶務課に問い合わせを振り分け直します。この振り分け直したという情報も、ナレッジベースに記録します。

このシンプルな振り分けのログを記録する仕組みと、LLMとナレッジベースを組み合せたシステムは、リアリティのある自然言語機械学習の教師ありモデルになるでしょう。

ここでのポイントは、繰り返しになりますが、LLMの中のニューラルネットワークのパラメータは一切変化していないという点です。そして、フィードバックされた学習結果は、数値ではなく自然言語の文の集まりです。

そして、間違いなく人間ではなく機械が学習しているシステムになっています。

従って、これは自然言語による機械学習という新しい機械学習の形態なのです。

自然言語機械学習の強み

数値型の機械学習と違い、自然言語学習には多くの利点があります。

その特徴を一言で言えば、圧倒的な学習効率の高さです。

数値型の機械学習では、一般に大量の学習データと反復的な学習が必要になります。また学習データの前処理も必要です。

大量の学習データが必要になるのは、学習してほしい特徴量が単一のデータだけに含まれているわけではなく、大量のデータの間に存在しているためです。

このため、真に学習してほしい特徴量の次元数の2乗のオーダーの学習データが必要になります。

反復的な学習が必要になるのは、ニューラルネットワークのパラメータが局所解に陥ることなく適切に学習されるようにするために、一度のフィードバックでのパラメータの変化量を小さくする必要があるためです。

正規化やエッジ抽出などの学習データの前処理が必要になるのは、真に学習してほしい特徴量を際立たせるためです。この前処理にも大きな労力が必要になります。

例えば庶務課と総務課の業務分担を従来のニューラルネットワークでの学習に当てはめた場合、その特徴が50次元であれば、およそ少なくとも1000件以上の学習データが必要になります。加えて、この1000件以上の学習データを、100回程度繰り返し学習させなければ適切な学習精度が得られないかもしれません。

さらに、この1000件の学習データに、余分な言葉が入っていたり、単語の表記ゆれが含まれていたり、様々な語順や構文が使われていると、学習効率が落ちたり、無関係の特徴量を学習してしまいます。

このため余分な言葉を除去し、表記ゆれがないように言葉を統一し、語順や構文を統一化するという前処理が不可欠です。

一方で、自然言語機械学習では、学習データが少なく、同じ学習データでの反復も不要で、多くの場合、前処理も不要です。

庶務課と総務課の業務分担の特徴量が50次元であれば、それぞれの次元に対応した50の情報があれば十分です。

しかも。これは50個の別々の文が必要になるという意味ではありません。

A、B、C、Dに関する業務は庶務課の担当です、という一文で4次元の情報を含めることができます。

さらに、言葉を抽象化することで複数の次元の情報を集約することもできます。「ビルの消耗品や設備の保守は庶務課の担当です」という一文で、電球交換や自動ドアの故障などを含む広範な次元の情報が集約されます。

この抽象化は、LLMが事前学習した知識や推論の能力を活かすことで、学習データを減らしていると言えます。

そして、基本的に自然言語学習は反復学習を必要としません。ナレッジベースに先ほどの文が一度追加されれば、それで学習は完了です。

さらに、ナレッジの前処理も不要です。様々な文章に混ざって庶務課や総務課の説明が書かれていても、それをナレッジとして利用することもできます。

あるいは先ほどの例のように問い合わせと割り振りの記録のような生データも、前処理なしに即座に学習データとして活用できます。

このように、自然言語機械学習は、数値型の機械学習よりもはるかに効率的に学習ができます。

さいごに

コンピュータの高速な数値演算能力に比べて、大規模言語モデルの自然言語処理能力は、非常に低速です。

しかし、数値型の機械学習に比べると自然言語機械学習は、効率的な学習が可能です。

それは、高速な数値演算能力と低速な自然言語処理能力のギャップをはるかに上回ります。

また、数値型の学習により驚異的な進化をしてきた大規模言語モデルも、スケーリング則により、単純なスケールアップでは能力の向上に限界に達しようとしているように思えます。

そうなると、自然言語機械学習による能力の向上に、焦点がシフトしてくる可能性も十分に考えられます。