Skip to main content

大規模言語モデルの基本を学ぶ

学習の目的

この単元を完了すると、次のことができるようになります。

  • 大規模言語モデル について説明する。
  • LLM のトレーニング方法を説明する。
  • LLM のファインチューニングについて理解を深める。

大規模言語モデルとは?

非常に優秀なデジタルアシスタントがいると想像してください。このアシスタントは本、記事、Web サイト、その他の 2021 年までに記述されたコンテンツからの大量のテキストを読み込み済みです。ただし、ライブラリのように本全体を「保存」しているのではなく、トレーニング対象となるテキストデータからパターンを処理します。

このデジタルアシスタントにはどんなことでも質問できます。アシスタントは「読んだ」内容に基づいて答えを返そうとします。人間のように実際に「理解」しているわけではありませんが、情報を記憶したり、つなぎあわせたりすることには長けています。

このデジタルアシスタントと大規模言語モデル は似ています。LLM はテキストを人間のように理解したり生成したりするように設計された高度なコンピューターモデルです。大量のテキストデータでトレーニングすることで、パターン、言語構造、言葉と文の間の関係を学習します。

大規模言語モデルのしくみ

中枢部分では、GPT-3 のような LLM は一度に 1 つずつトークン (単語や文字など) を予測して、最初から最後までの並びを構築しています。要求に応じて、次のトークンの予測が試みられ、次のトークン、またその次へと続きます。

LLM による予測とは、トレーニングで検出したパターンに基づいてテキストを生成または完成させる機能のことであり、大量のテキストに対する驚異的なパターン認識が実行されます。幅広いトピックについて一貫性がありコンテキストに関連するコンテンツを生成できます。

大規模言語モデルの「大規模」の部分は、モデルの規模と複雑さを示しています。複数のプロセッサーと大量のメモリを持つ強力なサーバーなど、膨大な計算リソースが使用されます。そのリソースを利用してモデルが大量のデータを処理することで、高品質なテキストを理解したり生成したりする能力が高まります。

LLM は規模によって異なりますが、一般に数十億個のパラメーターが含まれています。パラメーターは、モデルがトレーニングプロセス中に学習する変数であり、データから得られた知識や理解を表します。パラメーターが多いほど、モデルがデータ内の複雑なパターンを学習して捕捉すべき容量が大きくなります。

LLM でどれだけの数のパラメーターが使用されるかというと、GPT (generative pre-trained transformer) モデルの初期のバージョン、たとえば GPT-3 には約 1750 億個のパラメーターがあります。このようなモデルはかなり大型であるとみなされ、言語処理の非常に高度な機能を持っています。GPT-4 は 1 兆個を超えるパラメーターを持つと言われています。

この数字は確かにすごいですが、モデルが大きくなるとトレーニングに必要な計算リソースや、環境への影響、バイアスの可能性などの課題も大きくなります。

大規模言語モデルはとてつもなく知識のあるバーチャルアシスタントのようなもので、言語に関連する幅広い範囲の作業に役立ちます。記述のサポート、情報の提供、クリエイティブな提案、さらには会話への参加などが可能です。モデル作成者の目標は、テクノロジーとのやりとりをサポートし、より自然で人間に近いものにすることです。ただし、ユーザーは制限事項を知り、完全無欠な情報源としてではなく、ツールとして使用する必要があります。

LLM トレーニングとは?

LLM のトレーニングは、ロボットに人間の言葉を理解して使用する方法を教えるようなものです。では、どのようにしてロボットに人間の言葉を理解して使用することを教えるでしょうか? その 1 つの方法は次のようなものです。

  1. 書籍や記事を収集する。ロボットに教えるために、大量の書籍、記事、その他の文章を集めることを想像してください。
  2. 読むことを練習する。ロボットに文を読ませて、次の単語を推測するように指示します。最初はまだ学習中であるため、推測はでたらめかもしれません。
  3. 答えをチェックする。ロボットが推測を行ったら、実際のテキストから正しい単語を見せます。ロボットの推測が間違っていれば、「それは正しくないよ」というようにフィードバックを与えます。
  4. 繰り返す。大量の文章を使用して、この「推測してチェックする」を何度も繰り返します。ロボットは多くの文を読むうちに、次の単語を推測するのが上手になっていきます。
  5. テストする。ときどき、ロボットがまだ見たことのない文を使用してロボットをテストし、本当に学習しているのか、それともただ記憶しているだけなのかを調べます。
  6. 特化する。たとえば医学用語に特に詳しいロボットにしたい場合には、医学書を使用して補習を行うことが考えられます。
  7. 卒業する。ロボットが非常にうまくテキストを理解して生成できるようになったら、「よくやったね」と言って、実際に人間のさまざまな言語作業のサポートをさせます。

以上です! トレーニングは、ロボットが言語のエキスパートになるまでの読む練習、テスト、特別レッスンを組み合わせたようなものです。基本的に同じ考え方が LLM にも適用されます。

ファインチューニングのしくみ

ファインチューニングは、事前トレーニングされたモデルを、元のトレーニングデータセットよりも小さくて特化した新しいデータセットで追加トレーニングするプロセスです。

世界一大きな料理本を使用して、ロボットに世界中の料理を作ることを教えたと想像してください。それが基本トレーニングです。次に、このロボットをイタリア料理専用にしたいとしましょう。その場合、より規模が小さくて詳細なイタリア料理の本を与えて、そのレシピを練習させます。この特化した練習がファインチューニングと似ています。

ファインチューニングは、広く浅い知識を持っているロボット (またはモデル) を特定のトピックについてさらにトレーニングし、その領域のエキスパートにすることです。

ファインチューニングが重要である理由

  • 転移学習: 事前にトレーニングされたモデルは、すでに広範囲にわたるトレーニングデータセットから多くの一般的な特徴を学習済みです。ファインチューニングを行うことでモデルは、比較的小さなデータセットを使用して特定のタスクに対してその汎用知識を転移することができます。
  • 効率: 深層学習モデルをゼロからトレーニングするには、大量のデータと計算リソースが必要です。ファインチューニングでは、すでに多くを知っているモデルから始めるため、より少ないデータと時間で優れたパフォーマンスを達成できます。
  • パフォーマンスの向上: 多くの場合、特定のタスクについてファインチューニングされたモデルは、そのタスクについてゼロからトレーニングされたモデルよりもパフォーマンスが高くなります。これは、初期トレーニングでより幅広い知識を獲得しているためです。

バージョンとは?

各バージョンでは、基盤となるアーキテクチャは類似していますが、規模、トレーニングデータ、特定のパラメーターは異なる可能性があります。新しいバージョンは、前のバージョンの弱点を強化したり、より幅広いタスクに対応したり、バイアスやエラーを削減したりすることを目的としています。 簡略化した説明は次のとおりです。

バージョン 1 (OpenAI の GPT-1 や Google の BERT-base など)

  • 始まり: モデルの最初のリリース。十分に機能しますが、小説の初稿のようなもので、改善の余地があります。
  • サイズとデータ: 特定の量のデータを使用し、特定の数のパラメーター (モデルの「脳細胞」のようなもの) があります。

バージョン 2 (OpenAI の GPT-2)

  • 改善: 最初のバージョンからの学習に基づき、調整が行われます。これは、フィードバックに基づいて小説を編集するようなものです。
  • サイズとデータ: 多くの場合、より大きくなりパラメーターも増えます。より多様または大規模なデータセットでトレーニングされることもあります。

バージョン 3 (OpenAI の GPT-3)

  • さらに向上: より多くのフィードバック、調査、技術の進歩を取り込みます。
  • サイズとデータ: 大幅に大きくなります。たとえば、GPT-3 には 1750 億個のパラメーターがあり、能力がさらに高くなっていますが、同時に多くのリソースも必要となります。

ファインチューニングされたバージョン

  • メインバージョンがリリースされた後に、特定のタスクに向けてファインチューニングされた特殊バージョンがあることもあります。これは、一般的な小説をミステリー、ロマンス、SF バージョンに応用するようなものです。

その他の反復

  • BERT のようなモデルにはバリエーション (RoBERTa、DistilBERT など) があります。これは、トレーニング方法やアーキテクチャを調整した基本的に異なる「バージョン」です。

LLM のバージョンはシリーズ書籍の連続する版のようなもので、新しいリリースごとに、より高品質かつ広範囲で魅力的になることを目指しています。

次は、Salesforce で LLM をどのように使用できるかを見ていきましょう。

リソース

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む