翻訳者|朱 仙中 レビュー | Chonglou 導入GPT などの言語モデルは最近非常に人気が高まっており、 ChatGPT やその他の会話型 AI システムなど、さまざまなテキスト生成タスクに適用されています。通常、これらの言語モデルはサイズが非常に大きく、数百億を超えるパラメータを使用することが多く、実行するには膨大な量のコンピューティング リソースと資金が必要です。 英語モデルの文脈では、これらの大規模なモデルは、英語をモデル化するだけでなく、モデルのパラメータを使用して世界の側面を記憶し学習するため、過剰にパラメータ化されています。言語とその構造を理解するだけのモデルを必要とするアプリケーションを開発する場合は、おそらくはるかに小さなモデルを使用することになります。 注:トレーニング済みモデルで推論を実行するための完全なソース コードは、この記事に付属のJupyter ノートブックにあります。 問題の説明携帯電話で次に入力する単語を予測するスライド キーボード システムを構築しているとします。スライディングモードによって追跡されたパターンに基づいて、ユーザーが望む単語には多くの可能性があります。ただし、これらの可能性のある単語の多くは英語の実際の単語ではないため、削除できます。この最初の整理と排除のステップを経た後でも、まだ多くの候補が残っており、そのうちの1 つをユーザーへの推奨として選択する必要があります。 この候補リストをさらに絞り込むには、提供されたコンテキストを調べてどの候補が文を完成させる可能性が最も高いかを教えてくれるディープラーニング ベースの言語モデルを使用できます。 たとえば、ユーザーが「これをスケジュールしました」という文を入力し、次のようにモーダルをスライドするとします。 ユーザーが求める可能性のある英語の単語は次のとおりです。
しかし、よく考えてみると、文の前半に「予定されている」という言葉があることから、ユーザーは「トラブルを起こす」という意味ではなく「会議をする」という意味を意図していた可能性が高いです。 これまでにわかっていることすべてを考慮すると、これをプログラムで調整するためのオプションは何でしょうか?以下のセクションでいくつかの解決策をブレインストーミングしてみましょう。 ブレインストーミングによる解決策アルゴリズムとデータ構造第一原理を使用して、データのコーパスから始めて、一緒になる単語のペアを見つけ、単語のペアが文に現れる確率を予測するようにマルコフモデルをトレーニングするのが合理的であると思われます。ただし、このアプローチには 2 つの重大な問題があることに気付くでしょう。
次に、英語の本質を活用したソリューションに焦点を移し、それが役立つかどうかを見てみましょう。 自然言語処理歴史的に、NLP (自然言語処理) の分野は、文の品詞を理解し、この情報を使用してそのような剪定や予測の決定を行うことに重点を置いてきました。各単語に関連付けられたPOSタグを使用して、文中の次の単語が有効かどうかを判断する状況を想像することができます。 しかし、文の品詞を計算するプロセス自体は、 NLTK の品詞タグ付けページからもわかるように、言語の専門的な理解を必要とする複雑なプロセスです。 次に、より多くのラベル付きデータが必要でありながら、構築にそれほど多くの言語の専門知識を必要としない、ディープラーニング ベースのアプローチを見てみましょう。 ディープラーニング(ニューラルネットワーク)ディープラーニングの出現により、NLP 分野に革命が起こりました。 LSTM と Transformer ベースの言語モデルの発明により、解決策としては通常、モデルに高品質のデータを与え、次の単語を予測するようにトレーニングすることになります。 これが基本的に GPT モデルが行っていることです。 GPT モデルは常に、文の接頭辞が与えられた場合に次の単語 (トークン) を予測するようにトレーニングされます。 たとえば、文の接頭辞「It is so would a would」が与えられた場合、モデルは文中に続く単語に対して次のような高い確率の予測を提供する可能性が高くなります。
次の単語も、文の接頭辞を完成させる可能性は低いかもしれません。
Transformer モデル アーキテクチャ(machine_learning_model)は、ChatGPT のようなシステムの中心です。ただし、英語の意味を学習するというより制限されたアプリケーションシナリオでは、 LSTM (Long Short-Term Memory) モデルなどの実行コストが安いモデルアーキテクチャを使用できます。 LSTM モデル次に、単純な LSTM モデルを構築し、トークンのプレフィックスが与えられた場合に次のトークンを予測するようにトレーニングします。さて、タグとは何かと疑問に思うかもしれません。 トークン化通常、言語モデルの場合、トークンは次のものを表します。
単一の文字 (またはバイト) をトークンにマッピングすることは、トークンの発生場所に関する多くのコンテキストを保持するためにトークンをオーバーロードする必要があるため、非常に制限があります。たとえば、「c」という文字はさまざまな単語に出現し、「c」を見た後に次の文字を予測するには、その誘導となる文脈を注意深く観察する必要があるからです。 英語自体には 250,000 から 1,000,000 の単語があるため、単語をトークンにマッピングすることも問題になります。さらに、言語に新しい単語が追加されると何が起こるでしょうか?この新しい単語を考慮するために、モデル全体を再度トレーニングする必要がありますか? サブワードのトークン化は、 2023 年までに業界標準になると考えられています。頻繁に一緒に出現するバイトの部分文字列を一意のタグに割り当てます。通常、言語モデルには数千 (例: 4,000) から数万 (例: 60,000) の固有トークンが含まれます。トークンを構成するものを決定するアルゴリズムは、BPE (バイトペアエンコーディング)アルゴリズムによって決定されます。 語彙内の一意のトークンの数 (語彙サイズと呼ばれる) を選択するには、いくつかの点に留意する必要があります。
したがって、語彙のサイズを選択する際にはバランスを取る必要があります。この例では、 6600 個のトークンを選択し、語彙サイズ 6600 でトークナイザーをトレーニングします。次に、モデル定義自体を見てみましょう。 PyTorch モデルモデル自体は非常にシンプルです。次のレイヤーを作成しました。
モデル全体には約 31M のトレーニング可能なパラメータがあり、合計サイズは約 120MiB です。 以下にモデルの PyTorch コードを示します。 以下は、 torchinfoライブラリを使用して出力されたモデルの概要情報です。 LSTM モデルの概要
説明精度: P100 GPU で約 8 時間にわたって 1200 万の英語の文章でモデルをトレーニングした結果、損失値4.03 、トップ 1 精度 29%、トップ 5 精度 49% が得られました。これは、モデルが次のトークンを正しく予測できた時間が 29% であり、トレーニングセット内の次のトークンがモデルの上位 5 つの予測の 1 つであった時間が 49% であることを意味します。 では、成功の指標は何であるべきでしょうか?私たちのモデルのトップ 1 とトップ 5 の精度の数値は印象的ではありませんが、私たちの問題にとってそれほど重要ではありません。候補となる単語は、スライドパターンに適合する可能性のある単語の小さなセットです。私たちのモデルは、文法的にも意味的にも一貫性のある文を完成させるために理想的な候補を選択できるようにしたいと考えています。私たちのモデルはトレーニング データを通じて言語の特性を学習するため、一貫性のある文に高い確率を割り当てることが期待されます。たとえば、 「野球選手」という文と、可能な補完語(「ran」、「swim」、「hid」)がある場合、「ran」という単語は他の 2 つの単語よりも後続の使用に適しています。したがって、モデルが「ran」という単語を他の単語よりも高い確率で予測した場合、そのモデルはうまく機能していることになります。 損失値の解釈: 損失値が 4.03 の場合、予測の負の対数尤度は 4.03 です。つまり、次のトークンを正しく予測する確率は e^-4.03 = 0.0178、つまり 56 分の 1 です。ランダムに初期化されたモデルの損失値は通常約 8.8 で、これは -log_e(1/6600) です。これは、モデルがトークンの 1/6600 (6600 は語彙サイズ) をランダムに予測するためです。損失値4.03 は大きくないように思えるかもしれませんが、トレーニングされたモデルはトレーニングされていない (またはランダムに初期化された) モデルよりも約 120 倍優れていることを覚えておくことが重要です。 次に、このモデルを使用してスライドキーボードの候補を改善する方法を見てみましょう。 モデルプルーニングの無効な提案の使用実際の例を見てみましょう。 「私は思う」という部分的に完成した文章があり、ユーザーが以下の青色で示すように、文字「o」から始めて文字「c」と文字「v」の間を通り、文字「e」と文字「v」の間で終わるスライド パターンを作成したとします。 このスライドパターンで表現できる可能性のある単語には次のようなものがあります。
これらの提案の中で、最も可能性が高いのはおそらく「I’ve」でしょう。これらの提案をモデルに入力して、どのような結果が生成されるかを見てみましょう。 = 記号の後の値は、その単語が文を完成させるための有効な接頭辞である確率です。この場合、「I have」という単語に最も高い確率が割り当てられていることがわかります。したがって、これは文頭辞「I think」の後に続く可能性が最も高い単語です。 次の質問は、次の単語の確率をどのように計算するかです。 次の単語の確率を計算する単語が文の接頭辞の有効な補完である確率を計算するには、モデルを eval (推論) モードで実行し、トークン化された文の接頭辞を入力します。また、単語に空白の接頭辞を追加した後、その単語をトークン化します。これを実行するのは、HuggingFace の事前トークナイザーが単語の先頭のスペースで単語を区切るため、入力が HuggingFace トークナイザーが使用するトークン化戦略と一致していることを確認するためです。 候補単語が 3 つのトークン T0、T1、T2 で構成されていると仮定します。
「probs」リストには、タグT0、T1、T2 を順番に生成する個々の確率が含まれています。これらのトークンは候補語のトークン化に対応しているため、これらの確率を掛け合わせると、候補語が文の接頭辞を完成させる総合的な確率が得られます。 完了確率を計算するコードを以下に示します。
以下にさらに例を示します。 これらの例は、単語が前の文を完成させる確率を示しています。候補となる単語は確率の降順で並べられます。 Transformer は、シーケンスベースのタスクで LSTM モデルと RNN モデルを徐々に置き換えつつあるため、同じ目的に対して Transformer モデルがどのようなものになるかを見てみましょう。 トランスフォーマーモデルトランスフォーマーベースのモデルは、文中の次の単語を予測する言語モデルをトレーニングするための非常に一般的なアーキテクチャです。私たちが使用する具体的な技術は因果的注意メカニズムです。 PyTorch のトランスフォーマー エンコーダー レイヤーをトレーニングするために、因果的注意を使用します。因果的注意とは、シーケンス内の各トークンが、その前にあったトークンのみを参照できるようにすることを意味します。これは、順方向のみのトレーニング時に単方向 LSTM レイヤーによって使用される情報に似ています。 ここで説明する Transformer モデルは、 PyTorchのnn.TransformerEncoderとnn.TransformerEncoderLayerを直接ベースにしています。 このモデルは API と互換性があるため、以前使用した LSTM モデルの代わりに使用できます。同じ量のトレーニング データの場合、このモデルのトレーニングにはより長い時間がかかりますが、パフォーマンスは同等です。 Transformer モデルは長いシーケンスに適しています。この場合、長さが 256 のシーケンスがあります。次の単語の補完を実行するために必要なコンテキストのほとんどはローカルである傾向があるため、ここでトランスフォーマーの力に頼る必要はほとんどありません。 結論はこの記事では、 LSTM (RNN) と Transformer モデルに基づくディープラーニング技術を使用して、非常に実用的な NLP 問題を解決する方法を学びました。すべての言語タスクに数十億のパラメータを持つモデルが必要なわけではありません。大量の情報を記憶することなく言語自体をモデル化する必要がある特殊なアプリケーションは、現在見られる大規模な言語モデルよりも簡単かつ効率的に展開できる小さなモデルを使用して処理できます。 注:この記事のすべての画像は著者によって作成されたものです。 翻訳者紹介Zhu Xianzhong 氏は、51CTO のコミュニティ エディターであり、51CTO の専門ブロガー兼講師であり、濰坊の大学のコンピューター教師であり、フリーランス プログラミング コミュニティのベテランです。 原題:文完成のための言語モデル、著者: Dhruv Matani |
<<: 自動運転におけるマルチモーダル融合認識アルゴリズムを説明する記事
>>: クラウドベースの生成 AI システムを実行するためのベスト プラクティス
[[234677]]画像出典: Visual China韓国がドイツを2対0で破った後、私の別のグル...
機械は識別や配送などの一連の機能を統合した後、自然に俳優と「対話」します。相互作用のプロセスにおける...
生成型人工知能 (GenAI) は技術革新の最前線にあり、さまざまな業界の変革と発展に新たな可能性を...
[[436560]]世界中の IT プロフェッショナルは、膨大なデータに圧倒され、本当に重要な洞察を...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
人工知能(AI)とモノのインターネット(IoT)の組み合わせにより、自律走行車やスマートウェアラブル...
[[278802]]この記事はAI系新メディアQuantum Bit(公開アカウントID:QbitA...
25秒で何ができるでしょうか?人間の記者たちがまだショックを受けている間に、ロボットはデータマイニン...
状態空間モデル (SSM) は、最近注目を集めている Transformer の代替手段です。その利...
人工知能は非常にホットな話題になっています。普通のプログラマーとして、人工知能に転向する方法。プログ...
[[206375]]まず、Python とは何でしょうか? Python の作成者である Guido...
ディープラーニングは機械学習手法の一種であり、人工知能を実現するための重要な基盤です。最近、一部の学...