対話型AIの基幹記述の一つである「大規模言語モデル(LLM)」とはなにか?

対話型AIの基幹記述である「大規模言語モデル(LLM)」とは何か、どういう仕組みになっているのか、LLMになぜプロンプト・エンジニアリングが有効なのかを解説します。

公開日: 2023.4.13

大規模言語モデル(LLM)は「文章の予測」技術

大規模言語モデル(LLM)は、自然言語処理の分野において開発が進んでいる技術の1つです。大量の文章データを学習して、人間の言語表現を理解することができるモデルです。

人間が言葉を覚えるのと似た仕組み

至極簡単に言えば、LLMの仕組みは人間が言葉を覚える仕組みと似ています。

例えば、子供が言葉を覚えるには、親や友達、近所の人からたくさんの言葉を聞いて、使い方を身に付ける必要があります。LLMも同じように、大量の文章データを学習して、言語表現を理解しています。その点で両者は似ていると言えます。

ただし、人間とLLMの違いは、LLMはコンピュータで実行させているという点です。

LLMは、数百万、数千万、場合によっては数百億もの文章データをリソースの限り無限に学習することができますし、コンピュータが稼働する限り、24時間365日学習することが可能です。

大規模言語モデル(LLM)の問題点

代表的な対話型AIであるChatGPTのLLM「GPT-3」では、数千億もの文章データを学習していますが、それでもまだ人間に近づけない部分があります。

そのため、人間、もしくは人類の知識の総量と比較すると、データの不足や偏り、または倫理的な判断に不足があるため、回答の正確性が低かったり、差別的な言語表現を生成することがあります。

現在のLLMは、大量の文章データを学習することで、様々なタスクにおいて人間に近い性能を発揮することができますが、回答の正確性や倫理的な判断に欠けることがあり、そのために人間によるチューニングが必要になることがあります。

例えば、

  1. 学習データの収集や指定
  2. モデルのチューニング
  3. テストと評価

などです。

今後は人間の介入を減らし、自動化を進めることで、より高度な自然言語処理技術が開発されることが期待されています。

大規模言語モデル(LLM)とプロンプト・エンジニアリング

大規模言語モデル(LLM)は「何かすごいことが行われている」ことは確かですが、プロンプト・エンジニアリングを行う上では考え方は非常にシンプルです。

基本は人間の会話と同じ考え方

人間が誰かと会話をする際に、突然質問をされたとしても正しい回答ができるとは限りません。

人間が正しい回答を答えることができるのは、

  1. 会話の前後の文脈
  2. 自身の体験
  3. 現在の状況

などを瞬時に判断して回答をするからです。

LLMをベースとした対話型AIに質問を投げかける際に、「適切な学習」を下に「前後関係や状況を明確にして」質問をすれば、適切な答えに辿り着ける可能性が高くなります。これがプロンプト・エンジニアリングです。

LLMがやっている処理は「数千億もの文章データから、文章の中での単語の出現パターンや文法的な構造を学習・把握し、次に出現する単語や文章を予測すること」なので、「文章を生成しやすい状況」や「意味を正確に理解できる文章」を作ってあげると考えれば良いでしょう。

大規模言語モデル(LLM)はなぜ「嘘をつく」と言われてしまう?

ChatGPTなどの対話型AIが「嘘をつく」と言われますが、それは「学習済みのデータから推測できる”それらしい”文章を作成している」からです。

例えば、Prompt Engineering Guideで紹介されている例で見てみましょう。

The sky is(空は・・・)

と質問をすると、どうでしょうか?人によりますが、「青い」という回答を期待するのではないでしょうか。

しかし、答えは、

The sky is...

と返ってきました。

Prompt Engineering Guideの例では、

blue. The sky is blue on a clear day. On a cloudy day, the sky may be gray or white.

と返ってきたようです。何回かやると「The sky is blue.」と答えてくれることもあります。

では、確実に「青い」と答えさせるにはどうしたら良いかというと、

Complete the sentence: 
The sky is

「以下の文章を完成させなさい。空は・・・」としたわけです。こうすることで前後関係が明らかになり類推の確率が上がります。これがプロンプト・エンジニアリングです。

LLMの対話型AIがこちらが想定する回答が出来ない場合、「学習していない」もしくは「正しい回答をするための、前後関係や文脈が提供されていない」、その限られた状況の中で最善のものを回答するためです。プロンプト・エンジニアリングでは、”それらしい答え”を”まさにその答え”に近づけるために、入力側が創意工夫をするのです。

ただし、プロンプト・エンジニアリングが常に最適な回答を生み出すわけではありません。プロンプト自体が十分に具体的でない場合や、LLMが十分に学習していないトピックに関しては、正確な回答を生成することはできません。

プロンプト・エンジニアリングは、より正確な回答を得るために役立つ手法ですが、完全に正確な回答を得ることができるわけではないことも理解しておきましょう。

新着記事