私の知識の整理も兼ねて、超初心者向けに大規模言語モデルとモデルの種類について解説します!
大規模言語モデル(LLM)
数年前から巷で話題のLLMの事で、Large Language Modelの略です。
大量のテキストデータを学習して作成されたモデルで、自然言語処理を理解して生成することが出来ます。
つまり、人の言語を理解し、言語を生成することが出来るモデルです。
モデルという言葉が理解できない場合、勉強し終わった後の脳みそと考えてもらえればOKです。
育った環境で人の性格が変わるように、LLMも学習の方法や元となったデータによって、様々な個性を発揮します。
厳密には・・
脳みそは思考するものですが、LLMは厳密には思考しているわけではなく、言語パターンにもとづいて確率的に高い文章を生成します。LLMが独創的な文章生成を指示することはできますが、それは独創的な言語パターンを元に独創的っぽいものを生成しているだけで、言語化されていない本当の意味で独創的なものを生成しているわけではないです。
自然言語処理(NLP)ってなに?
LLMとほぼセットで語られることの多い用語で、Natural Language Processingの略です。
コンピュータが人間の自然な言語を理解し、処理/生成できるようにする技術全般を指します。
NLPの技術をもって作成されたモデルがLLMです。
LLMは何ができるの?
前述で触れた通り、NLPを用いて学習されてモデルなので、自然言語を理解し生成することが出来ます。
非常に広いスコープをカバーしているので活用も多岐にわたります。
【対話】
言語を用いる最も一般的な行動は、言語を用いた会話です。
Chat-GPTなどが代表的で、相手の質問を理解し、質問に対する回答を生成することでき、これにより自然な会話を成立させることが出来ます。
最近では音声処理の技術などを組み合わせて、音声による自然な対話を実現するなど、日々の進化が凄まじいジャンルです。
【翻訳】
LLMは言語を理解しているため、文章の文脈を理解し、それを別の言語に置き換える事も得意です。
LLMが流行る前から様々な翻訳サービスが存在しておりましたが、LLMの登場により精度が飛躍的に向上しています。
◆◆ 翻訳の進化の歴史 ◆◆
-
ルールベース期(~1990年代)
- 文法や辞書を元にルール化された処理を通して翻訳する方法
- 人が頑張って作成したルールなので、処理が非常に複雑化する
- ルールにそって翻訳するので回答が安定している(精度は別の話。。)
-
統計ベース期(1990~2010年代)
- 大量の原文と訳文のペアによって作成された統計モデルを用いて、原文に対して確率的に高い翻訳を行います。
- 統計モデルとは言葉ではあるが、現在的なAI技術のモデルとは仕組みが異なり、固定のアルゴリズムを用いて処理される。
-
ニューラル機械翻訳機期(2010年代~)
- 現代的なAI技術によって学習されたLLMを用いて翻訳する方法
- 言語を理解しているため、文脈を理解した自然な表現での翻訳ができる。
【文章の生成】
これまでに触れた機能も含めた包括的な話とはなりますが、LLMは非常に汎用的な仕組みなので、言語に関わるだいだいのタスクはこなせます。
例えば
- メール文章の作成
- 適当に描いた文章を「ビジネス表現に直して」という使い方や、「〇〇という失敗をしてしまった。顧客に不信感を抱かせない事を意識して謝罪文を作って」など
- 教育資料の生成
- 「新入社員向けにAIに関する教材を作って」など
- 結婚式の挨拶の生成
- 「〇〇さんと〇〇さんが結婚します。私は〇〇さんと友達です。当たり障りのない一般的な結婚挨拶を考えて」
などですが、例を見て頂いたらわかる通り、これ以外にも日常生活で文章を生成するケースは沢山あると思います。LLMはそれらのほとんどのタスクをこなすことが出来ます。
ただし・・
LLMは過去の様々の文章を学習したものなので、すごく頭の良いゼネラリストですが、人と同じで以下のような弱点があります。
-
知らない事は答えれない
- 膨大な情報を元にLLMは作成されていますが、すべて過去のデータなので、リアルタイムの情報(今日の天気は?) には対応できない。
- 特定の会社のルールなど、世の中に公開されていない知識は知らない。
-
知らない事でも頑張って回答してしまう
- LLMは言語を生成する仕組みのため、知らない事を知ってる知識で無理に回答してしまう事がある。これにより、自信満々に間違った情報を生成することがある。
- これはハルシネーションと呼ばれる挙動ですが、詳細については別途記事を作成するので、そちらを参照してください。
どのように対策する?
LLMは前述のような弱点がありますが、今では以下のような対策法が確立されており、数多くの実用的なサービスが存在しています。
-
知らない事を覚えさせる
知らない事を知識としてモデルに追加学習させる方法です。
モデルそのものをチューニングする方法でファインチューニングと呼ばれます。
これを比較的簡単に行うサービスも提供されていますが、それでもAIの専門的な知識が必要となるため難易度は高いです。
また、非常に手間もかかるため、変化の多い情報に対しては実用的ではありません。
例えば、「今日の天気」を回答できるようにするために、毎日天気のデータを学習させることは非常に非効率です。 -
知らない事を補足情報として教える
ファインチューニングとは異なり、補足情報として関連データを提供して、関連データと合わせて回答を生成する方法です。
例えば、自分の考えたオリジナルゲームに関する回答を生成してもらう場合、そのゲームのルールを補足情報として与える事で、ルールにそった回答を生成できますね。
ファインチューニングと比較すると実用的になるケースが多いですが、補足情報を探すプロセスが発生するため、ファインチューニングよりは当然処理に時間が掛かります。また、探した情報が間違っていた場合は当然回答の精度にも影響します。やることが増えるため、その時間も掛かるし失敗する機会も増やすことになります。
上記の2つの方法については、別途記事を作成するため、詳細はそちらを参照してください。
以上です!!
※掲載しているイラストはDALL-Eで作成したものです。