大規模言語モデル(LLM)
大規模言語モデル(LLM)とは
大規模言語モデル(LLM)は、自然言語処理(NLP)モデルの新しいクラスです。自由形式の質問への回答、チャット、コンテンツの要約、任意に近い命令の実行、翻訳、コンテンツやコードの生成などのさまざまなタスクにおいて、従来のモデルを大きく上回る性能と能力があります。LLM は、高度な機械学習アルゴリズムを使用して膨大なデータセットからトレーニングされ、人間の言語のパターンや構造を学習します。
Databricks についてさらに詳しく
大規模言語モデル(LLM)の動作原理
大規模言語モデル(LLM)には、3 つの構成要素があります。
- エンコーダー:トークナイザーが大量のテキストを数値化されたトークンに変換したあと、エンコーダーはトークンの意味のある埋め込みを作成し、類似の意味を持つ単語をベクトル空間で近くに配置します。
- 注意機構:これらのアルゴリズムは、LLM がモデルを特定の入力テキストの部分に集中させ、関連するテキストの単語にフォーカスするために使用されます。エンコーダーやデコーダーとは切り離されていません。
- デコーダー:トークナイザーは、トークンを単語に戻して理解できる形にします。このプロセスで、LLM は何百万もの単語について、次々と予測します。モデルがトレーニングプロセスを完了すると、質問に答えたり、言語翻訳を行ったり、意味検索をしたりといった新しいタスクをこなせるようになります。
LLM の機能
LLM のトレーニングプロセスを簡単に表すと、次のようになります。
全ての LLM の基盤であるトランスフォーマーについての詳細は、次の動画をご覧ください。
大規模言語モデル(LLM)の歴史
LLM で使用されている技術は、1940 年代に始まった人工知能の分野での研究と取り組みの集大成です。
1940 年代
ニューラルネットワークに関する最初の科学論文は、1943 年に発表されました。
1989
Lecun によって数字認識に関する科学論文が発表され、誤差逆伝播ニューラルネットワークが画像認識問題に適用可能であることが示されました。
2012
Hinton らの論文では、深層ニューラルネットワークが音声認識の従来のどのモデルよりも大幅に優れていることが示されました。
畳み込みニューラルネットワーク(AlexNet)は、Imagenet の視覚認識において従来の誤差率を半減させ、はじめて 75% の精度を達成しました。これにより、モデルのトレーニングに GPU を使用するなどの新しい技術が注目されました。
2017
画期的な論文である「Attention is All you Need」は、全ての LLM モデルの基礎となるトランスフォーマーアーキテクチャを紹介しました。
2018
Google は BERT(Bidirectional Encoder Representations from Transformers:トランスフォーマーからの双方向エンコーダー表現)を導入しました。アーキテクチャにおける大きな飛躍であり、将来の大規模言語モデルへの道を切り開きました。
2020
OpenAI が、GPT-3 をリリースしました。1,750 億のパラメータを持つ最大のモデルで、言語関連のタスクに対する新たな性能基準を設定しました。
2022
ChatGPT がローンチされ、GPT-3 や類似のモデルは Web インターフェースを通じてユーザーが広くアクセスできるサービスになりました。LLM や生成 AI に対する一般の認知度が飛躍的に高まりました。
2023
オープンソースの LLM は、LLaMA 2、Falcon、MosaicML MPT などのリリースにより、ますます素晴らしい結果を示しています。GPT-4 もリリースされ、パラメータサイズと性能の両方で新たな基準を確立しました。
LLM のユースケース
LLM は、さまざまなユースケースや異なる産業においてビジネスに影響をもたらします。例えば、次のようなユースケースがあります。
- チャットボットとバーチャルアシスタント:LLM は、チャットボットに使用され、顧客と従業員が自由回答形式の会話をすることで、カスタマーサポート、Web サイトのリードフォローアップ、パーソナルアシスタントを支援します。
- コード生成とデバッグ:LLM は、有用なコードスニペットを生成し、コード内のエラーを特定して修正し、入力指示に基づいてプログラムを完成させることができます。
- 感情分析:LLM は、テキストの感情を自動的に理解し、顧客満足度の理解を自動化できます。
- テキストの分類とクラスタリング:LLM は、大量のデータを整理、分類、並べ替えをして共通のテーマや傾向を特定し、情報に基づいた意思決定を支援します。
- 言語翻訳:LLM は、文書や Web ページをさまざまな言語に翻訳できます。
- 要約と言い換え:LLM は、論文、記事、顧客との電話や会議を要約し、最も重要なポイントを提示できます。
- コンテンツの作成:LLM は、アウトラインを作成したり、新しいコンテンツを執筆することができます。作成の出発点としてのよい第一原稿になり得ます。
LLM を効果的に導入されたお客さまの事例
ジェットブルー航空
ジェットブルー航空は、Databricks が提供する企業データによって補完されたオープンソースの生成 AI モデルを使用するチャットボット「BlueBot」を導入しました。このチャットボットは、ジェットブルー航空の全チームが使用でき、役割ごとに管理されたデータにアクセスできます。例えば、財務チームは SAP や規制当局への提出書類のデータを見ることができますが、オペレーションチームはメンテナンス情報しか見ることができません。
シェブロンフィリップス
シェブロンフィリップスケミカルは、Databricks を使用して文書プロセスの自動化を含む生成 AI イニシアチブをサポートしています。
Thrivent Financial
Thrivent Financial では、より適切な検索、より要約された利用しやすい知見の作成、エンジニアリングの生産性向上のために生成 AI に注目しています。
大規模言語モデル(LLM)が突然人気になった理由
LLM が脚光を浴びるようになったのは、最近の多くの技術的進歩によるものです。
- 機械学習技術の進歩
- LLM は、多くの ML 技術の進歩を活用しています。最も注目すべきは、ほとんどの LLM モデルの基盤となるトランスフォーマーアーキテクチャです。
- アクセシビリティの向上
- ChatGPT のリリースにより、インターネットにアクセスできる人なら誰でも、シンプルな Web インターフェースを介して最先端の LLM と対話できるようになりました。これにより、世界が LLM の力を理解できるようになりました。
- 計算能力の向上
- GPU(画像処理ユニット)のようなより強力なコンピューティングリソースや、より優れたデータ処理技術が利用可能になったことで、研究者はより大規模なモデルをトレーニングできるようになりました。
- トレーニングデータの量と品質
- 大規模なデータセットの利用が可能になり、それらを処理できるようになったことで、モデルの性能は飛躍的に向上しました。例えば、GPT-3 は、ビッグデータ(約 5,000 億トークン)で学習されました。これには、品質に重点を置いた公開されている Web ページなどの WebText2 データセット(1,700 万の文書)のような高品質なサブセットが含まれています。
組織のデータを利用して LLM をカスタマイズする方法
組織のデータで LLM アプリケーションをカスタマイズする際に考慮すべきアーキテクチャパターンは、4 つあります。これらの手法の概要は、次のとおりです。また、これらは、相互に排他的なものではありません。むしろ、それぞれの長所を活かすために組み合わせることが可能であり、そうすべきです。
手法 | 定義 | 主なユースケース | データ要件 | 利点 | 考慮事項 |
---|---|---|---|---|---|
LLM の動作を導く専門的なプロンプトの作成 | 迅速なオンザフライモデルガイダンス | なし | 迅速、費用対効果、トレーニング不要 | ファインチューニングよりもコントロール性が劣る | |
LLM と外部ナレッジ検索の組み合わせ | 動的データセットと外部ナレッジ | 外部ナレッジベース、またはデータベース(ベクトルデータベースなど) | 動的に更新されるコンテキスト、精度の向上 | プロンプトの長さと推論計算が増加 | |
事前トレーニングされた LLM を特定のデータセットやドメインに適応 | ドメイン、またはタスクの専門化 | 何千ものドメイン固有、またはインストラクションの例 | きめ細かなコントロール、高い専門性 | ラベル付きデータが必要、計算コスト | |
ゼロからの LLM トレーニング | 独自のタスク、またはドメイン固有のコーパス | 大規模データセット(数十億~数兆のトークン) | 特定のニーズにあわせた最大限のコントロール | 極めて資源集約的 |
どのような手法を選択するかにかかわらず、適切に構造化され、モジュール化された方法でソリューションを構築することで、組織は反復し、適応するための準備を整えることができます。このアプローチについて詳しくは、MLOps のビッグブックをご覧ください。
大規模言語モデル(LLM)に関連するプロンプトエンジニアリングとは
プロンプトエンジニアリングとは、LLM に与えられたテキストプロンプトを調整して、より正確で適切な回答を引き出すことです。プロンプトエンジニアリングはモデル固有のため、どの LLM モデルでも同じ品質の応答を生成するわけではありません。多くのモデルに有効な一般的なヒントには、次のようなものがあります。
- 明確で簡潔なプロンプトを使用します。これには、指示、コンテキスト(必要な場合)、ユーザークエリまたは入力、および希望する出力タイプやフォーマットの説明が含まれることがあります。
- プロンプトに例を提供する(フューショット学習)と、LLM があなたの意図を理解するのに役立ちます。
- 質問に答えられない場合は、それを認めるように指示するなど、モデルに行動を指示します。
- モデルに段階的な思考方法や推論の説明を指示します。
- プロンプトにユーザー入力が含まれる場合は、プロンプトのハッキングを防ぐためのテクニックを使用します。例えば、プロンプトのどの部分が指示か、ユーザー入力かを明確にするといった方法があります。
大規模言語モデル(LLM)に関連する検索拡張生成(RAG)とは
検索拡張生成(RAG)は、カスタムデータを活用することで大規模言語モデル(LLM)アプリケーションの有効性を向上させるアーキテクチャアプローチです。質問やタスクに関連するデータや文書を検索し、LLM のコンテキストとして提供することによって行われます。RAG は、最新の情報を維持したり、ドメイン固有の知識にアクセスする必要があるチャットボットや Q&A システムのサポートに活用されています。RAG について詳しくは、こちらをご覧ください。
大規模言語モデル(LLM)のファインチューニング
ファインチューニングとは、事前にトレーニングされた LLM を、個々のドメインやタスクに特化した比較的小規模なデータセットに適応させるプロセスです。ファインチューニングの過程では、モデル全体と比べて比較的少ない数の重みを調整することで、短時間のトレーニングを継続します。
「ファインチューニング」という言葉には、いくつかの概念があります。最も一般的な形態は、次の 2 つです。
- 教師あり学習のファインチューニング:このアプローチでは、事前にトレーニングされた LLM を、入出力のトレーニング例のデータセットで継続的にトレーニングします。通常、数千のトレーニング例を使用します。
- 継続的な事前トレーニング:このファインチューニング手法は入出力例に依存せず、代わりにドメイン固有の非構造化テキストを使用して、同じ事前トレーニングプロセスを継続します。(例:次のトークン予測や、マスク言語モデリングなど)
大規模言語モデル(LLM)の事前トレーニング
LLM モデルの事前トレーニングとは、既存のモデルからの事前知識や重みを使用せずに、大規模なデータコーパス(テキストやコードなど)で言語モデルをトレーニングするプロセスを指します。これは、既に事前トレーニングされたモデルを特定のタスクやデータセットに適応させるファインチューニングとは対照的です。完全な事前トレーニングの出力は、直接使用したり、後工程のタスクにさらにファインチューニングすることもできるベースモデルです。事前トレーニングは、一般的に最も大規模で、最も費用のかかるトレーニングであり、多くの組織が行うようなものではありません。
最も一般的な LLM とその違い
大規模言語モデルの分野には、多くの選択肢があります。一般的には、LLM はプロプライエタリなサービスと、オープンソースモデルの 2 つに分類できます。
プロプライエタリなサービス
最も人気のある LLM は、大々的な発表とともにリリースされた OpenAI の ChatGPT です。ChatGPT は、ユーザーがプロンプトを送り、迅速かつ適切な応答を受け取れるフレンドリーな検索インターフェイスを提供します。開発者は ChatGPT API にアクセスすることで、LLM を自分のアプリケーションや製品、サービスに組み込むことができます。その他のサービスには、Google Bard や Anthropic の Claude があります。
オープンソースモデル
もう 1 つの選択肢は、LLM を自己ホストすることです。オープンソースで商用利用可能なモデルを使用します。オープンソースコミュニティは、プロプライエタリなモデルの性能に急速に追いついています。人気のあるオープンソースの LLM モデルには、Meta の Llama 2 や MosaicML の MPT(Databricks により買収)があります。
最良の選択を評価する方法
クローズドなサードパーティーベンダーの API を使用する場合と、独自のオープンソース(またはファインチューニングされた)LLM モデルを自己ホストする場合の最大の検討事項とアプローチの違いは、将来性、コスト管理、データを競争上の優位性として活用することです。プロプライエタリなモデルは、非推奨となり削除される可能性があります。既存のパイプラインやベクトルインデックスを壊す恐れがあります。一方、オープンソースモデルは、永久にアクセスが可能です。オープンソースやファインチューニングされたモデルは、アプリケーションにより適した選択肢を提供し、性能とコストのトレードオフをより良く実現できます。将来的に独自のモデルをファインチューニングする計画を立てることで、組織のデータを競争上の優位性として活用し、一般に公開されているモデルよりも優れたモデルを構築できます。プロプライエタリなモデルは、「ブラックボックス」としての LLM のトレーニングプロセスや重みの監視をあまり許さないため、ガバナンス上の懸念を引き起こす可能性があります。
独自のオープンソース LLM モデルをホストすることは、プロプライエタリな LLM を使用するよりも多くの作業を必要とします。Databricks の MLflow を使用すると、Python の経験があれば、トランスフォーマーモデルを取り込んで Python オブジェクトとして使用できます。
一定の評価基準に基づいて利用する LLM を選択する
LLM の評価は、異なるタスク間での性能にばらつきが見られるため、難しく進化する分野です。LLM は、あるベンチマークでは優れているかもしれませんが、プロンプトや問題のわずかな違いが、そのパフォーマンスに大きく影響することがあります。
LLM の性能の評価に使用される主要なツールやベンチマークには、次のようなものがあります。
- MLflow
- モデル評価のための LLMOps ツールセットを提供します。
- Mosaic モデルガントレット
- 単一の一元的な指標にまとめるのではなく、モデルの能力を 6 つの広範な領域(下図)に分類する集約的な評価手法です。
- Hugging Face は、オープンな LLM コントリビューターから何十万ものモデルを収集しています。
- BIG-bench(Imitation Game - 模倣ゲームを超えたベンチマーク)
- 現在、200 以上のタスクをホストしている動的なベンチマークフレームワークで、将来の LLM の能力に適応することに重点を置いています。
- EleutherAI 言語モデル評価ハーネス
- BIG-bench や MMLU(大規模マルチタスク言語理解)のような評価を統合し、再現性と比較可能性を促進する、200 以上のタスクでモデルを評価する総合的なフレームワークです。
RAG アプリケーションにおける LLM 評価のベストプラクティスもご覧ください。
大規模言語モデル運用(LLMOps)による大規模言語モデル(LLM)の管理
大規模言語モデル運用(LLMOps)には、運用環境における大規模言語モデルの運用管理に使用されるプラクティス、テクニック、ツールが含まれます。
LLMOps は、大規模言語モデルの効率的なデプロイメント、モニタリング、メンテナンスを可能にします。LLMOps は、従来の機械学習運用(MLOps)と同様に、データサイエンティスト、DevOps エンジニア、IT プロフェッショナルのコラボレーションを必要とします。LLMOps について詳しくは、こちらをご覧ください。
大規模言語モデル(LLM)に関する詳細情報
LLM に関する多くの資料がございます。ぜひご覧ください。
トレーニング
- LLM:基本から学ぶ基礎モデル(EDX と Databricks のトレーニング)— LLM の基礎モデルについて詳しく説明している Databricks が提供する無料トレーニング
- LLM:アプリケーションの本番運用(EDX と Databricks のトレーニング)— 最新かつ最も有名なフレームワークを使用して、LLM にフォーカスしたアプリケーションを構築する方法に重点を置いた Databricks が提供する無料のトレーニング
eBook
技術ブログ
- RAG アプリケーションにおける LLM 評価のベストプラクティス
- MLflow AI Gateway と Llama 2 を使用した生成 AI アプリの構築(独自データを用いた RAG を使用してより高い精度を達成)
- 検索拡張生成(RAG)、Llama2-70B(MosaicML 推論)、ベクトル検索を使用した LLM チャットボットの展開
- LLMOps:LLM を管理するための全てがここに
次のステップ
- 大規模言語モデル(LLM)プロジェクトについてのデモやご相談は、Databricks にお問い合わせください。
- Databricks の LLM 向けサービスについて読む
- 検索拡張生成(RAG)のユースケース(最も一般的な LLM アーキテクチャ)について詳しく読む