ChatGPTをはじめとする、AIチャット。この背景にあるのがLLMで、日本語では、大規模言語モデルと呼ばれています。どのような仕組みで、テキストの意味を理解して、テキストを生成しているのか。LLMに関する用語を中心に解説します。
LLMとNLP(自然言語処理)の関係
人間が使う言語をコンピュータに理解させるための技術として「NLP(自然言語処理)」があります。
たとえば、日本語や英語などで書かれた文章が与えられたとき、その質問に答えたり、翻訳したり、要約したりすることが該当します。これらの処理をするためには、与えられた文章の文法的な構文を把握しなければなりません。
英語であれば、スペースで区切れば単語を区切ることはできますが、日本語では単語の区切りとしてスペースなどがないため、「形態素解析」などの技術が使われます。また、係り受けなどを理解するためには「構文解析」や「意味解析」といった技術も必要です。そのうえで、人間が理解できるように、自然な言語で情報を伝達しなければなりません。
このようにNLPはさまざまな技術が組み合わさってできており、LLM(Large Language Model:大規模言語モデル)もNLPの一部です。
LLMは、ニューラルネットワークなどの人工知能(AI)の技術を使い、大量のテキストデータを学習します。そして、文章生成、文章理解、要約生成、質問応答生成など、多岐にわたるタスクに使用されます。
具体的なLLMとして、OpenAIの「GPT-3」、「GPT-3.5」、「GPT-4」のほか、Googleの「BERT」など、さまざまな種類があります。
LLMの「大規模」という言葉に明確な基準はありませんが、たとえばBERTでは「25億語の英語版Wikipediaデータ」と「8億語のGoogle BookCorpusデータ」を使ってトレーニングしたとされています。
このように、多くのWebページや書籍、論文などを分析し、その中のパターンを学習しています。この学習のプロセスにより、新しいテキストを生成したり、既存のテキストを理解したりする能力を獲得しています。
Transformerとは
GPTは「Generative Pre-trained Transformer」の略、BERTは「Bidirectional Encoder Representations from Transformers」の略です。つまり、これらのLLMについて学ぶには、Transformer (トランスフォーマー)という技術について知っておかなければなりません。
トランスフォーマーは、「Attention」という仕組みで、文章中のどの単語に注目するのか、入力された言葉そのものが全体の中でどのように組み合わさっているのかを理解する技術です。
たとえば、「ご飯を食べたい」という文章があると、トランスフォーマーは「食べたい」が「ご飯」と結びついていることを理解します。
このように、テキストの意味を把握するときに、文章内のそれぞれの単語が他の単語とどの程度関連しているかを見積もります。これにより、単語間の関連性や文脈を理解することが可能になります。
■パラメーター数を表す数字
このとき、たとえば1万種類の単語があり、Transformerがそれぞれの単語に用意した隠れ層の数が1024であれば、そのパラメータ数は1万×1024なので約1000万となります。
大規模言語モデルで有名なBERTは3億4000万、GPT-3は1750億、GPT-3.5は3550億もの膨大なパラメーターを持っています。
そして、これを100万単位であればM(Million)、10億単位であればB(Billion)という記号で表現します。つまり、3億4000万であれば「340M」、1750億であれば「175B」と表現しています。
事前学習とは
機械学習における学習には主に2つの段階があります。
1つ目は、大量のデータを用いて典型的な知識を学ぶことです。NLPであれば、単語やフレーズがどう組み合わさるのか、文の意味をどのように理解するのかを学びます。これは、私たちが本を読んで新しい単語を学んだり、日常の会話を通してコミュニケーションの方法を理解したりするのと同じです。
そして2つ目は、その基本的な知識の上に特定のタスクを学びます。これを「ファインチューニング」と呼びます。たとえば、業界に特化した言葉を学ぶようなものです。
このような段階的な学習プロセスにより、高度なタスクにも対応できるようになります。GPTの「P」である「Pre-trained」は「事前学習」と訳され、上記の1つ目のステップです。一般的な知識があればあるほど、新しいスキルを身につける時間が短くなるのと同じように、事前学習はAIの学習速度を早め、新しいタスクにすばやく適応できるようになります。これは、新しい情報が与えられた人が、既存の知識と結びつけながら理解しようとするのと似ています。
そして、GPTはこのファインチューニングを行わなくても、NLPのタスクで人間に近い性能が出たことで注目されているのです。そして、ファインチューニングすることで、さまざまな業務に応用できます。
AIチャットはどうやって学習するの?
BERTの「B」は「Bidirectional」であり、「双方向」であることが特徴です。これは、ある事象を2つの異なる視点から考えるという概念です。
たとえば、物語を読むときに人間が内容を理解するときは、その文章を最初から最後まで順番に読む方法が自然です。しかし、学校での試験問題であれば、文章の一部が穴埋めになっていて、前後の文章からその空白を埋めることがあります。
これと同じようなことをAIの学習においても取り入れる手法です。たとえば「むかしむかしあるところにおじいさんとおばあさんが〜」のような文章があったとします。これを学習させるときに、「むかしむかし○○○○○○おじいさんとおばあさんが〜」というように文章の一部を目隠しします。そして、ここに入るものをAIに考えさせるのです。
次に「むかしむかしあるところに○○○○○○おばあさんが〜」「むかしむかしあるところにおじいさんと○○○○○○〜」のようにさまざまなパターンを考えて、そこに入るものを学習させます。
これにより、文章に登場する単語など相互に関連する情報をAIに理解させるだけでなく、より人間らしい答えを出すのに一役買っています。
AIチャットの性能をどう評価するの?
LLMの技術を使って学習させたとき、その学習状況をどうやって評価するのか、という問題があります。ChatGPTなどであれば、さまざまな入力に対する応答を人間が確認する方法もありますが、どのような入力を与えれば結果を正しく評価できるのかは難しいものです。
このとき、LLMの評価指標としてさまざまなベンチマークが用意されています。学校でテストを受けるときに、各教科での成績を見るだけでなく、すべての教科での成績をもとに全体的な学力を評価することがあるのと同じように、さまざまな指標が考えられます。
■GLUEスコア
たとえば、「GLUEスコア」(General Language Understanding Evaluationスコア)は、英語の自然言語理解能力を評価するベンチマークの1つです。文法の正しさや感情分析などについて評価され、その結果が全体のGLUEスコアに反映されます。
■SQuAD
質問応答の分野では、SQuADが有名です。Stanford Question Answering Dataset(スタンフォード質問応答データセット)の略で、AIが文章の中から必要な情報を抽出して質問に答えられるかを評価するためのものです。
このようなベンチマークを使うことで、開発したAIの強みや弱み(ある分野で優れていても、他の部分で弱いなど)が見えてきます。もちろん、すべてのタスクで高いパフォーマンスを出すことが最終的なゴールです。
そして、特定の領域でもっとも高いパフォーマンスを出せる技術や方法は「SOTA(State of the Art)」と呼ばれています。新しいアイデアや技術は日々発展しているため、その「チャンピオン」は日々変化しています。さまざまな領域でのSOTAは以下のサイトで確認できます。
https://paperswithcode.com/sota
SOTAの目指す先には「人間」があります。人間ならではの表現、理解、応答などをAIが再現できることを目指し、AIの開発は日々進められているのです。