曲突徙薪(きょくとつししん)第8号

言語データの学習方法

 ベクトル化された言語データは、前回説明したトランスフォーマーのアルゴリズムにて学習に使用されます。言語データの機械学習は、単純に言うと、大量の穴埋め問題を解く「教師あり学習」となります。そしてその穴埋め問題は、既存の文章の情報から大量に作り出すことが可能です。

<元の文>
春は曙。やうやうしろくなり行、やまぎはすこしあかりて、
<問題1>
( )は曙。やうやうしろくなり行、やまぎはすこしあかりて、
<問題2>
春( )曙。やうやうしろくなり行、やまぎはすこしあかりて、

 こうすれば、一つの文章から、その文章を構成する単語の数と同じだけの穴埋め問題を作成できます。LLMはこの大量の穴埋め問題に対して、見えている単語をヒントに、穴にあてはまる単語の確率の計算式をひたすら考え、最終的には、正解となる単語の確率が最も高くなるように計算式を調整していきます。ここでいう計算式とは、ニューラルネットワークの巨大なかたまりのことですから、実際にやっていることは、単語穴埋め問題によるニューラルネットワークのパラメータを最適化する計算ということになります。

 2020年5月にOpenAI社が発表した、ChatGPTの前身となるGPT3というトランスフォーマーは、最大で1750億個ものパラメータを持っていますが、基本的にこれらのパラメータは、この大量の穴埋め問題によって計算されています。この学習に使用されたのが、世界中のインターネットサイトをクローリングしてかき集めたテキスト情報です。また現行のChatGPTは、Wikipedia英語版のすべてのテキストデータを事前学習用データとして使用していることを公表しています。

 これほど大量のパラメータを計算するためには、膨大な量のテキストデータと、そのデータを処理するための高スペックなソフトウェア、ハードウェア環境が必要になることは想像に難くありません。高精度のトランスフォーマーの学習は、トランスフォーマーという革新的なロジックに加えて、AWSやMicrosoft Azureに代表される無限とも言うべき計算リソースによっても支えられています。