現在の誇大宣伝にもかかわらず、言語モデルは新しいものではありません。私たちは何年もの間、オートコンプリートを行って、それらを携帯電話に搭載してきました。そして、スペリングで数秒節約できるかもしれませんが、誰もそれらを「スマート」または「感覚的」と呼ぶことはありません。
技術的には、すべての言語モデルはトークンの確率分布にすぎません。それらは、前のものを考慮して、トークン化された次の可能性のある単語または記号を決定するように訓練されています。ただし、言語翻訳や質問応答などの他のタスク用に微調整することもできます。
言語生成は、アルゴリズムにランダムな単語を与えて、トレーニング データから学習した確率に基づいて次の単語を生成し、独自の出力を継続的に供給するプロセスです。たとえば、モデルが「I」を認識した場合、「am」、「fine」などを生成することが期待されます。
意味のある文を作成できるかどうかは、参照ウィンドウのサイズに依存します。私たちの携帯電話に見られるような古い基本モデルは、1 つまたは 2 つの単語しか振り返ることができません。
トランスフォーマー以前は、研究者はリカレント ニューラル ネット (RNN) を使用してショート メモリの問題を修正していました。詳細に入るまでもなく、彼らのトリックは、入力文のすべてのノードに関する情報を含む隠れ状態ベクトルを生成し、導入された新しいトークンごとに更新することであったと言えます。
アイデアは確かに巧妙でしたが、隠れた状態は常に最新の入力に大きく偏っていました。したがって、基本的なアルゴリズムと同様に、RNN は、それほど速くはありませんが、依然として文の開始を忘れる傾向がありました。
その後、Long Short-Term Memory (LSTM) および Gated Recurrent Unit (GRU) ネットワークが導入されました。通常の RNN とは異なり、生成される出力から遠く離れていても、関連する入力のメモリを保持するのに役立つ組み込みのメカニズム (ゲート) がありました。しかし、これらのネットワークは本質的にシーケンシャルであり、アーキテクチャが複雑すぎました。それらは非効率的であり、並列計算を禁止していたため、複数のコンピューターで同時に実行して超高速のパフォーマンスを得る機会はありませんでした。
2017 年、変圧器はGoogleによってこの論文で初めて説明されました。 LSTM や GRU とは対照的に、特定の段階での処理に関連するセグメントを積極的に選択し、見積もりを行う際にそれらを参照する機能がありました。それらはより高速で効率的で、注意の原則に基づいたよりシンプルなアーキテクチャを備えていました。
面白いことに、今この作品を読むと、当時は大量にあった機械翻訳に関する平凡な論文のように聞こえます。著者たちはおそらく、AI の歴史の中で最も重要なアーキテクチャの 1 つを発明した可能性があることに気付いていませんでした。
機械学習のコンテキストでは、注意とは、シーケンス内の位置と他の入力要素に対する重要性に関する情報を含む各トークンに割り当てられたベクトルを指します。モデルは、シリアル処理を必要とせずに予測を行うときにそれらを使用できます。分かりやすいように少し分解してみましょう。
トランスフォーマーが登場する前は、ニューラル言語翻訳などのシーケンスからシーケンスへの処理に対する従来のアプローチは、RNN を使用してすべての入力を単一の隠れ状態にエンコードし、次に別の RNN を使用してターゲット シーケンスをデコードすることでした。エンコーディング側で重要だったのは、最終状態だけでした。
2014 年に、Bahdanau ら。すべての隠れ状態をデコーダーネットワークで利用できるようにし、現在の出力を生成するためにどれが最も重要であるかを判断できるようにするという素晴らしいアイデアを提案しました。ネットワークは関連する部分に注意を払い、残りは無視しました。
4 年後、Google の論文が発表されました。今回、著者は、RNN を完全に捨てて、エンコードとデコードの両方のフェーズに注意を向けることを提案しました。そうするために、彼らは元の注意メカニズムに特定の変更を加える必要があり、それが自己注意の発達につながりました.
セルフアテンションを単一シーケンス内のノード間の通信メカニズムと考えるのがおそらく最も簡単です。そのしくみは、すべての入力トークンに 3 つのベクトル (クエリ (Q)、キー (K)、および値 (V)) が割り当てられることです。これらは、最初の埋め込みのさまざまな側面を表します。
クエリ ベクトル (Q) は、入力が探しているものを示します。 YouTube の検索バーに入力するフレーズと考えてください。
キー ベクトル (K) は入力の識別子として機能し、クエリの一致を見つけるのに役立ちます。これらは、関連するタイトルを含む Youtube の検索結果のようなものです。
値ベクトル (V) は、各トークンの実際のコンテンツを表し、モデルがクエリに関連する関連ノードの重要性を判断し、出力を生成できるようにします。これらは、検索結果からどの動画をクリックするかを決めるのに役立つサムネイルと動画の説明と考えることができます。
注:自己注意では、すべての Q、K、および V は同じシーケンスに由来しますが、交差注意ではそうではありません。
自己注意の式は次のようになります: Attention(Q,K,V) = softmax((QK^T) / sqrt(d_k)V . そして、簡単に言えば手順は次のとおりです。
トランスフォーマーは当初、シーケンスをエンコードするための RNN の単純な代替手段として発明されましたが、過去 5 年間で、コンピューター ビジョンを含む AI 研究のさまざまな分野に適用され、最先端のモデルを頻繁に凌駕してきました。
しかし 2018 年には、(数百万のパラメーターを使用して) 巨大化され、十分な計算能力が与えられ、Web からの膨大で多様なラベルのないテキスト コーパスでトレーニングされた場合に、それらがどれほど強力になるかはわかりませんでした。
それらの機能を最初に垣間見たのは、OpenAI によって開発されたGenerative Pre-trained Transformer (GPT)でした。これには 1 億 1700 万のパラメーターがあり、ラベルのないデータで事前にトレーニングされていました。これらのアルゴリズムはタスク用に特別にトレーニングされており、GPT はそうではなかったという事実にもかかわらず、12 個の NLP タスクのうち 9 個で、差別的にトレーニングされたモデルよりも優れていました。
その後、 GPT-2 モデル(15 億のパラメーターを持つ最大のもの) が登場し、その後に他の多くのトランスフォーマーが続きました。そして 2020 年、OpenAI はついに GPT-3 をリリースしました。その最大のバージョンには 1750 億のパラメーターがあり、そのアーキテクチャは GPT-2 とほぼ同じでした。
OpenAI の目標は、モデルを大きくし、より多くのテキストとパワーを提供するだけで、モデルからどれだけ高いレベルのパフォーマンスを引き出すことができるかを判断することだったようです。結果は驚くべきものでした。
注: 1,750 億のパラメーターは、今日の基準では非常に小さいと見なされます。
GPT-3 は、小説、詩、マニュアル、スクリプト、ニュース記事、プレス リリース、画像キャプション、歌詞、電子メール、対話応答など、さまざまなスタイルと形式のテキストを生成できます。あらゆる情報を言い換え、単純化し、分類するなど、さまざまなことができます。そのすべての機能をリストするだけでも、文字通り別の記事が必要になるでしょう。とはいえ、この野獣は依然として単純なオートコンプリート システムです。
OK、信じられないほど強力な言語モデルができました。チャットボットとしてのみ使用できますか?いいえ。
GPT-3 とその類似体は、依然としてシーケンス補完のためのツールであり、それ以上のものではありません。適切な指示がなければ、彼らはあなたの質問から取り上げた話題についてとりとめもなく、流暢で、まとまりがあり、文法的に申し分ないように見えるかもしれない偽の記事、ニュース、小説などをでっち上げますが、それらが役立つことはめったにありません。
実際に役立つチャットボットを作成するために、OpenAI はモデルの更新バージョンである GPT-3 または GPT 3.5 の広範な微調整を実施しましたが、正確にはまだわかりません.このプロセスに関する詳細の多くはまだ明らかにされていませんが、ボットがその兄弟モデルであるInstructGPTとほぼ同じ方法でトレーニングされたことはわかっています。また、後者は多くの点で、DeepMind の「スマート対話エージェント」のまだ発売されていないバージョンであるSparrowに似ていることにも気付きました。
したがって、すべてのトランスフォーマー ベースのアルゴリズムが事実上同じアーキテクチャを持っていることを知っているので、OpenAI のブログ投稿を読んで、それを Sparrow の論文と比較し、ChatGPT の内部で何が起こっているかについて、知識に基づいた推測を行うことができます。
この記事の微調整プロセスには 3 つの段階がありました。
アシスタントがどのように行動すべきかを AI に表示するためのデータの蓄積。このデータセットは、質問の後に正確で有用な回答が続くテキストで構成されています。幸いなことに、大規模な事前トレーニング済み言語モデルはサンプル効率が非常に高いため、プロセスにそれほど時間がかからなかった可能性があります。
モデルをクエリに応答させ、同じ質問に対して複数の回答を生成させ、人間が各回答を評価することで、モデルを試してみます。同時に、望ましい反応を認識するように報酬モデルをトレーニングします。
OpenAI の Proximal Policy Optimization を使用して分類子を微調整し、ChatGPT の返信がポリシーに従って高いスコアを受け取るようにします。
Sparrow の論文では、同様の方法が説明されていますが、いくつかの追加手順があります。すべての DeepMind のダイアログ エージェントと同様に、Sparrow は、常にプログラマーによってモデルに与えられ、ユーザーには表示されない入力として機能する、特定の手作りのプロンプトを条件としています。 ChatGPT も、この種の「見えない」プロンプトによって導かれる可能性があります。
Sparrow を効果的なアシスタントにするために、 Sparrowは質問を受けて生成された応答を、DeepMind によって提示された有用性の一般原則と倫理規則 (礼儀正しさや正確さなど) に基づいて人間によって評価されました。また、人間が積極的にスパローを失敗させようとする敵対的な訓練もありました。次に、評価のために 2 つのニューラル ネットワーク分類器がトレーニングされました。 1 つは回答の有用性を評価するもので、もう 1 つは回答が DeepMind のルールからどれだけ逸脱しているかを判断するものです。
ChatGPT は今では攻撃的なコンテンツを生成しないことを認識していますが、リリース後に時折無神経な返信を生成していました。 OpenAI は、有害なテキストを通過させないように特別に設計された別のモデルを追加した可能性があると考えています。しかしもちろん、私たちはまだ確実に知ることはできません.ChatGPT自体はこれについて怪しげです.
ChatGPT とは異なり、Sparrow は情報源を引用して Google 検索にアクセスするため、その発言を裏付ける証拠を提供することもできます。モデルがそれを実行できるようにするために、研究者は最初のプロンプトを更新し、さらに 2 つのペルソナ (検索クエリと検索結果) を導入しました。
注:同じ原則が、最近 Google によって発表された ChatGPT の競合相手である Bard にも適用されている可能性があります。
ELI5 データセットと Sparrow の以前の反復の回答を使用して、2 つの分類子でトレーニングした後、モデルは各質問に対して複数の正確で十分に調査された回答を生成できます。ユーザーに表示される回答は、常に、有用性分類子で最高のスコアを獲得し、規則逸脱分類子で最低スコアを獲得したものです。
LaMDA 言語モデルに基づくGoogle のチャットボットである Bard が2 月 6 日に発表されました。すでに話題になっていますが、そのトレーニングに関する具体的な詳細はまだ明らかにされていません。 Sparrow のベータ版も 2023 年にリリースされる予定です。これらのボットのいずれかが ChatGPT とほぼ同じくらい人気になるかどうかはまだわかりません。どちらも、新しいナンバーワンのチャットボットになる可能性を秘めた独自の機能を備えていますが、OpenAI がそのスーパースター チャット アシスタントの更新と改善を停止するとは考えていません。
おそらく、ChatGPT には新しい機能やさらに優れた機能がすぐに表示されるでしょう。市場支配力という点で、最終的にどの企業がトップになるかを予測することは不可能です。しかし、誰が競争に勝っても、AI テクノロジーで達成できると認識されていることの境界をさらに押し広げ、それは確かに刺激的です。