大規模言語モデル(LLM)は、人間の言語テキストを理解し、生成することができる機械学習モデルです。膨大な言語のデータセットを分析することで機能します。
この記事を読み終えると、以下のことができるようになります。
関連コンテンツ
是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!
記事のリンクをコピーする
大規模言語モデル(LLM)とは人工知能(AI)プログラムの一種で、テキストを認識し、生成するなどのタスクをこなすことができます。LLMは、膨大なデータセットでトレーニングされるため「Large(大規模)」という名前になっています。LLMは、機械学習、具体的にはトランスフォーマーモデルと呼ばれるニューラルネットワークの一種に基づいて構築されています。
平たく言えば、LLMとは、人間の言語や他の種類の複雑なデータを認識し解釈できるよう、十分な例を与えられたコンピュータプログラムのこととなります。多くのLLMは、インターネットから収集されたデータ(数千から数百万ギガバイト相当のテキスト)を使って訓練されます。しかし、サンプルの質がLLMによる自然言語の学習度合いに影響するため、LLMのプログラマーはより精選されたデータセットを使用することになります。
LLMは、ディープラーニングと呼ばれる機械学習の一種を用い、文字、単語、文章がどのように機能するかを理解します。ディープラーニングは、非構造化データを確率的に分析することで、最終的にはディープラーニングモデルが人手を介さずにコンテンツ間の区別を認識することを可能にします。
LLMはその後、チューニングによってさらに訓練されます。質問を解釈して回答を生成したり、ある言語から別の言語へテキストを翻訳したりなど、プログラマーがLLMにやらせたい特定のタスクに合わせ微調整やプロンプトチューニングが行われます。
LLMは、多くのタスクをこなすように訓練することができます。最もよく知られている使い方のひとつは、生成系AIとしてのアプリケーションがあります。たとえば、公開されているLLM ChatGPTでは、ユーザーの入力に応じてエッセイや詩などのテキストを生成することができます。
LLMの訓練には、プログラミング言語を含め、どんな大規模で複雑なデータセットでも使用できます。LLMの中には、プログラマーがコードを書くのを手助けできるものもあります。リクエストに応じて関数を書くこともでき、出発点となるコードがあれば、プログラムを書き上げることもできます。LLMはまた、次のような用途にも使われています:
実際のLLMの例としては、ChatGPT(OpenAI)、Bard(Google)、Llama(Meta)、Bing Chat(Microsoft)などがあります。GitHubのCopilotもその一例ですが、こちらは自然な人間の言葉ではなく、コーディングのためのものとなっています。
LLMの重要な特徴は、予測不可能なクエリに対応できることです。従来のコンピュータプログラムは、コンピュータが理解できる構文で、あるいはユーザーからの一連の特定の入力によりコマンドを受け取ります。ビデオゲームには数の決まったボタンの集合があり、アプリケーションにはユーザーがクリックしたり入力したりできるものの数の決まった集合があり、プログラミング言語は正確なif/then文で構成されています。
対照的に、LLMは自然な人間の言葉に反応し、データ分析を使って構造化されていない質問やプロンプトに意味を成す答えを提供できます。典型的なコンピュータプログラムでは、「歴史上偉大なファンクバンド4つは何?」のようなプロンプトを認識できないものの、LLMではこの質問に該当する4つのバンドをリスト化し、そのバンドが医大とされる理由について理路整然とした弁明を答えられます。
しかし、LLMが提供する情報の信頼性は、LLMが取り込むデータと同じものしかなり得ません。虚偽の情報が与えられれば、ユーザーの問い合わせに対して虚偽の情報を提供することになります。LLMはまた、「幻覚を見る」こともあります。正確な答えが出せないとき、偽の情報を作り出すのです。例えば、2022年にFast CompanyがChatGPTにテスラ社の前四半期決算について質問したところ、ChatGPTは関連するニュース記事を首尾一貫して提供したものの、その中の情報の多くは創作でした。
セキュリティの面では、LLMをベースにしたユーザー向けのアプリでは、他のアプリと同様にバグが発生しやすくなっています。LLMはまた、悪意のある入力によって操作され、危険であったり非倫理的であったりする内容を含む応答を提供する場合があります。最後に、LLMのセキュリティ上の問題の一つとして、ユーザーが自分の生産性を上げるために、安全を守るべき機密データをLLMにアップロードしてしまうことが挙げられます。しかし、LLMは受け取った入力を使ってモデルをさらに訓練します。LLMは安全な保管庫として設計されているわけではなく、他のユーザーからの問い合わせに応じて機密データを漏洩してしまう可能性があるのです。
基本的なレベルでは、LLMは機械学習に基づいて構築されていいます。機械学習はAIのサブセットであり、大量のデータをプログラムに与え、人間の介入なしにデータの特徴を特定する方法を学習させることを指しています。
LLMは、ディープラーニングと呼ばれる機械学習の一種を使用しています。ディープラーニングモデルは基本的に、人間が介入することなく自らを訓練して区別を認識することができるものの、通常は人間による微調整が必要となります。
ディープラーニングは、確率を使って「学習」します。例えば、「The quick brown fox jumped over the lazy dog」という文章があるとすると、「e」と「o」の文字が最も頻出しており、それぞれ4回ずつ登場します。このことから、ディープラーニングモデルは当該の文字が英語のテキストに登場する可能性が最も高いと(正しく)結論づけることができます。
現実的には、ディープラーニングモデルは1つの文章から何かを結論づけることはありません。しかし、何兆もの文章を分析するうちに、不完全な文章を論理的に終わらせる方法を予測したり、あるいは独自の文章を生成したりするのに十分な学習を積み上げることになります。
こうしたディープラーニングを可能にするため、LLMはニューラルネットワーク上に構築されています。人間の脳が互いに接続して信号を送るニューロンで構成されているように、人工ニューラルネットワーク(通常、「ニューラルネットワーク」と略します)は、互いに接続するネットワークノードで構成されています。入力層、出力層、そしてその間の1つ以上の層からなる、複数の「レイヤー」で構成されます。各レイヤーでは、それぞれの出力がある閾値を超えた場合にのみ互いに情報を受け渡しします。
LLMに使用される特定の種類のニューラルネットワークは、トランスフォーマーモデルと呼ばれます。トランスフォーマーモデルは、文脈を学習することができます。文脈に大きく依存する人間の言語では、このことは特に重要です。トランスフォーマーモデルは、自己注意と呼ばれる数学的テクニックを使い、シーケンス内の要素の相ごとの繊細な関連を検出すします。これにより、他のタイプの機械学習よりも文脈を理解することに長けていいます。例えば、文末と文頭がどのようにつながっているのか、段落内の文が互いにどのように関連しているのかを理解できるようになります。
これによってLLMは、人間の言語が曖昧であったり、定義が曖昧であったり、これまでに経験したことのない組み合わせであったり、新しい文脈であったりしても、解釈することができるようになります。あるレベルでは、何百万回、何十億回とグループ化された単語や概念を目にすることで、その意味によって単語や概念を関連付けることができるため、意味を「理解」できます。
LLMアプリの構築には、開発者が複数のデータセットに簡単にアクセスする必要があり、それらのデータセットを置く場所が必要になります。こうした目的でのクラウドストレージもオンプレミスストレージも、開発者の予算の範囲外のインフラ投資を伴うことになります。さらに、トレーニングデータセットは通常複数の場所に保存されており、そのデータを中央の場所に移動させると多額のエグレス料金が発生することになります。
Cloudflareでは、これに対応しながら開発者がLLMアプリや他のタイプのAIを素早く立ち上げることができるよう、いくつかのサービスを提供していいますVectorizeは、無料オブジェクトストレージ(R2)に保存されたデータや、Workers Key Valueに保存されたドキュメントの照会を目的とした、グローバルに分散したベクトルデータベースです。開発プラットフォームであるCloudflare Workers AIと組み合わせることで、開発者はCloudflareを活用して独自のLLMの実験をスピーディに始められます。