ホームページ  >  記事  >  テクノロジー周辺機器  >  Transformer を汎用コンピュータとして使用することで、コンテキスト学習アルゴリズムを実行することもでき、非常に想像力に富んだ研究です。

Transformer を汎用コンピュータとして使用することで、コンテキスト学習アルゴリズムを実行することもでき、非常に想像力に富んだ研究です。

王林
王林転載
2023-04-13 11:31:02716ブラウズ

Transformer はさまざまな機械学習タスクで人気の選択肢となり、良好な結果を達成していますが、他にどのように使用できるでしょうか?優れた想像力を持つ研究者は、実際にそれをプログラマブル コンピューターの設計に使用したいと考えています。

Transformer を汎用コンピュータとして使用することで、コンテキスト学習アルゴリズムを実行することもでき、非常に想像力に富んだ研究です。

##この論文の著者はプリンストン大学とウィスコンシン大学の出身で、タイトルは「プログラマブル コンピュータとしてのループ変圧器」です。 " そしてその目的は、Transformer を使用して汎用コンピューターを実装する方法を模索していることです。

具体的には、著者らは、変圧器ネットワークを特定の重みでプログラムし、ループ内に配置することで、変圧器ネットワークを汎用コンピュータとして使用するためのフレームワークを提案しています。このフレームワークでは、入力シーケンスはパンチカードとして機能し、データの読み取り/書き込みのための命令とメモリで構成されます。

著者らは、一定数のエンコーダ層で基本的な計算ブロックをシミュレートできることを実証しました。これらの構成要素を使用して、小型の命令セット コンピューターをシミュレートしました。これにより、ループされた 13 層トランスフォーマーによって実行できるプログラムに反復アルゴリズムをマッピングできるようになりました。これらは、この変換器が、その入力に基づいて、バックプロパゲーションを使用して、基本的な計算機、基本的な線形代数ライブラリ、およびコンテキスト内学習アルゴリズムをどのようにシミュレートできるかを示しています。この研究は、アテンション メカニズムの多用途性を強調し、浅いトランスフォーマーでも本格的な汎用プログラムを実行できることを示しています。

論文の概要

Transformer (TF) は、さまざまな機械学習タスクで一般的な選択肢となっており、自然言語処理などの分野の多くの問題で成果を上げています。およびコンピュータービジョンの最先端の結果。 Transformer の成功の主な理由は、アテンション メカニズムを通じて高次の関係と長距離の依存関係をキャプチャできることです。これにより、TF はコンテキスト情報をモデル化できるようになり、機械翻訳や言語モデリングなどのタスクでより効果的になり、Transformer は常に他の方法よりも優れたパフォーマンスを発揮します。

GPT-3 (175B パラメータ) や PaLM (540B パラメータ) など、数千億のパラメータを持つ言語モデルは、多くの自然言語で最先端のパフォーマンスを達成しています。言語処理タスク。興味深いことに、これらの大規模言語モデル (LLM) の一部は、インコンテキスト学習 (ICL) も実行でき、短いプロンプトといくつかの例に基づいて特定のタスクをオンザフライで適応および実行できます。 LLM の ICL 機能はトレーニングしなくても利用できるため、これらの大規模なモデルは重みを更新せずに新しいタスクを効率的に実行できます。

驚くべきことに、LLM は ICL を通じてアルゴリズム タスクと推論を実行できます。[Nye et al. [2021]、Wei et al. [2022c]、Lewkowycz et al. [2022]、 Wei et al. [2022b]、Zhou et al. [2022]] などがその実現可能性を証明しています。 [Zhou et al. [2022]] などによる研究では、マルチビット加算アルゴリズムといくつかの加算例を含むプロンプトが与えられた場合、LLM が未知のユースケースで加算演算を正常に実行できることが実証されています。これらの結果は、LLM が、あたかも自然言語をコードとして解釈するかのように、アルゴリズム原理に基づいて、推論時に指定された入力に対して事前に指示されたコマンドを実行できることを示しています。

Transformer が十分な深さのチューリング マシンまたはアテンション層間の再帰的リンクをシミュレートできるという証拠があります [Pérez et al. [2021]、Pérez et al. [2019]、Wei et al. .[2022a]]。これは、入力によって指定されたアルゴリズム命令に正確に従う Transformer ネットワークの可能性を示しています。ただし、これらの構造は比較的一般的なものであり、特定のアルゴリズム タスクを実行できる Transformer の作成方法については深く理解できません。

ただし、よりプロフェッショナルな設計により、TF はより高度なプログラムを実行できます。たとえば、[Weiss et al. [2021]] は、単純な選択および集計コマンドをインデックス入力トークンにマッピングする計算モデルとプログラミング言語を設計しました。この言語を使用すると、トークンのカウント、並べ替え、ヒストグラムの作成、Dyck-k 言語の識別など、さまざまな興味深いアルゴリズムを作成できます。 Restricted Access Sequence Processing Language (RASP) で書かれたプログラムは、通常、プログラムのサイズに応じてサイズが変化する Transformer ネットワークにマッピングできます。

別の研究では、線形回帰モデルを動的に学習するための最適化アルゴリズムとして使用する Transformer モデルの重みを選択し、トレーニング データを入力として与えられた推論時に暗黙的な操作を実行する方法を実証しました。これらの方法は通常、学習アルゴリズムの反復回数に比例した数の層を必要とし、単一の損失関数とモデルのアンサンブルに限定されます。

チューリング マシンの抽象計算をシミュレートする Transformer モデル、RASP などの言語に特化したコマンド、および ICL に固有のアルゴリズムをプログラミングする機能は、多用途のプログラマブル コンピューターとしての Transformer ネットワークの可能性を際立たせます。

著者の研究の目的は、この有望な見通しを探求し、アテンション メカニズムが命令セット アーキテクチャにインスピレーションを得た汎用コンピュータをどのようにシミュレートできるかを明らかにすることです。

プログラマブル コンピュータとしてのトランスフォーマー

この記事では、著者らは、トランスフォーマー ネットワークを特定の重みでハードコーディングし、ループ内に配置することで作成できることを示します。複雑なアルゴリズムとプログラムをシミュレートします。著者らは、入力シーケンス、非線形関数、関数呼び出し、プログラム カウンター、条件分岐などの編集操作など、基本的な計算ブロックをシミュレートするリバース エンジニアリングによってこれを実現しました。著者らの論文は、単一ループまたは再帰を使用して Transformer の出力シーケンスを入力に連結し、それによって深いモデルの必要性を回避することの重要性を示しています。

Transformer を汎用コンピュータとして使用することで、コンテキスト学習アルゴリズムを実行することもでき、非常に想像力に富んだ研究です。

論文アドレス: https://arxiv.org/pdf/2301.13196.pdf ##著者は、SUBLEQ (A,B,C) と呼ばれる単一命令の一般的なバージョンで書かれたプログラムを実行できるトランスフォーマーを設計することでこれを実現しました。つまり、ゼロ以下の場合は減算とブランチを結合します。 SUBLEQ は、1 命令セット コンピューター (OISC) を定義する単一命令言語です。 SUBLEQ は 3 つのメモリアドレスオペランドで構成されており、実行時にはメモリアドレス A の値からメモリアドレス B の値が減算され、その結果が B に格納されます。 B の結果が 0 以下の場合はアドレス C にジャンプし、それ以外の場合は次の命令の実行を継続します。しかし、この命令は汎用コンピュータを定義します。

作者は、SUBLEQ のようなプログラムを実装する明示的な Transformer を構築します。作者はそれを FLEQ と呼びます。

# 形式のより柔軟な単一命令です。

Transformer を汎用コンピュータとして使用することで、コンテキスト学習アルゴリズムを実行することもでき、非常に想像力に富んだ研究です。## ここで、f_m は、ネットワークにハードコードできる一連の関数 (行列乗算/非線形関数/多項式など) から選択できます。 FLEQ プログラムを実行できるループ Transformer の深さは、プログラムの深さやコードの行数には依存せず、単一の FLEQ 命令を実装するのに必要な深さ (一定) に依存します。これは、CPU の動作と同様に、入力シーケンスに対してループ内で Transformer を実行することによって実現されます。

著者はこのフレームワークを使用して、推論中に基本的な計算機、基本的な線形代数ライブラリ (行列の転置、乗算、逆行列、べき乗反復) を含むさまざまな関数をシミュレートする機能を実証します。 ICL は、暗黙的に完全に接続されたネットワーク上でバックプロパゲーションを実装します。入力シーケンスまたはプロンプトはパンチカードのように機能し、Transformer が実行する必要がある命令を含むと同時に、プログラムで使用される変数を保存および処理するためのスペースを提供します。これらの手順を実行するために使用される Transformer ネットワークはすべて、深さが 13 以下であり、これらすべてのモデルの重み行列が提供されます。次の定理は、著者の主な発見を要約したものです:

定理 1: 汎用コンピューターをシミュレートできる、13 層未満の循環トランスフォーマーが存在します (記事のセクション 5) 、基本的な計算機 (記事のセクション 7)、近似行列反転やべき乗反復などの数値線形代数手法 (記事のセクション 8)、ニューラル ネットワークに基づく ICL アルゴリズム (SGD など) (記事のセクション 9) )。

Transformer を汎用コンピュータとして使用することで、コンテキスト学習アルゴリズムを実行することもでき、非常に想像力に富んだ研究です。

#図 1: シーケンス ストレージ コマンドが含まれるループ Transformer アーキテクチャの概略図データを書き込むためのメモリと中間結果を保存するためのスクラッチパッドから入力および読み取りが行われます。入力はネットワークによって処理され、出力は新しい入力として使用されるため、ネットワークは暗黙的な状態を繰り返し更新し、複雑な計算を実行できます。

著者の研究は、アテンション メカニズムの柔軟性と単一ループの重要性を強調しています。これにより、複雑な反復アルゴリズムをシミュレートし、一般的なプログラムを実行できるモデルの設計が可能になります。さらに、Transformer モデルが複雑な数学的およびアルゴリズム的なタスクを効率的に実行できることを実証しました。 GPT-3 などの最新のトランスフォーマーは、さまざまなタスクを実行するときに同様の内部サブルーチンを使用すると考えられます。これらのモデル固有の手法やアルゴリズムの機能は、関数呼び出しと同様に、コンテキストに沿った例や説明が与えられると、ある程度理解できます。ただし、作成者が構造を設計した方法は、現実世界の言語モデルがトレーニングされる方法とはまったく似ていないため、この仮定は慎重に扱う必要があります。

著者らは、自分たちの研究が、注意メカニズムの可能性とアルゴリズム命令を実行する言語モデルの能力についてのさらなる研究を促進することを望んでいます。著者が提案した設計は、特定のアルゴリズム タスクを実行するために必要な Transformer ネットワークの最小サイズを決定するのに役立ちます。さらに、著者らは、その発見が、特定のアルゴリズム タスクを達成するために、より小規模なリバース エンジニアリングされた Transformer ネットワークを活用することによって、言語モデルをトレーニングする能力を強化する方法の開発に役立つことを期待しています。

一般的なコンピューティング用の Transformer モジュールの構築

Transformer ネットワークを使用して一般的なコンピューティング フレームワークを構築するには、特殊なコンピューティング ブロックが必要です。これらのブロックを組み立てて、目的の最終機能を作成します。以下では、Transformer レイヤーが実行できるさまざまな操作に焦点を当てます。これらの操作は、より複雑なルーチンやアルゴリズムを作成するための基礎となります。これらの操作は相互運用できるように設計されており、近似順列行列の生成やシグモイド関数による一般関数の近似など、さまざまなタスクを実行する Attend の機能を活用します。

Transformer を汎用コンピュータとして使用することで、コンテキスト学習アルゴリズムを実行することもでき、非常に想像力に富んだ研究です。

# 図 2: 小型命令セット コンピューターを実装するためのビルディング ブロックとして使用される 3 つの Transformer ブロック回路図。これらのブロックは、入力シーケンスでの編集操作 (あるブロックから別のブロックへの移動やコピーなど)、プログラム カウンタの追跡、指定された条件が満たされた場合のプログラム カウンタ ジャンプの実行を処理します。

#位置エンコーディング、プログラム カウンタ、およびデータ ポインタ

通常、Transformer は実行する必要があります。反復アルゴリズム または一連のコマンドを実行します。これを実現するために、作成者はコマンドをループするプログラム カウンターを使用します。カウンタには、次のコマンドが保存される場所のコードが含まれています。さらに、コマンドには、コマンドが読み書きする必要があるデータの場所を指すデータ ポインターが含まれる場合があります。プログラム カウンタとデータ ポインタは両方とも、前の段落で説明したのと同じ位置エンコーディングを使用します。

Transformer を汎用コンピュータとして使用することで、コンテキスト学習アルゴリズムを実行することもでき、非常に想像力に富んだ研究です。

著者の位置エンコーディング スキームは、読み取りまたは書き込みのために特定のデータの場所を指すために使用することもできます。以下で説明します。1 つのセクションで説明します。これは、プログラム カウンタとデータ ポインタの位置エンコーディングとして同じバイナリ ベクトルを使用することによって実現されます。さらに、特定のデータの場所を指すこの手法により、Transformers は、実装するために構築されたアルゴリズムまたは一連のコマンドの実行中に、効率的にデータの読み取り/書き込みを行うことができます。

##読み取り/書き込み: 一時レジスタとの間でデータと命令をコピーします

Transformer を汎用コンピュータとして使用することで、コンテキスト学習アルゴリズムを実行することもでき、非常に想像力に富んだ研究です。

## 図 3: 読み取り操作の概略図。矢印は、スクラッチパッド コマンドに割り当てられた入力部分からコピーされたコマンド ブロックを示しています。命令はポインタのセットです。位置コードとカウンターは、どのコンテンツがどこにコピーされたかを追跡するために使用されます。

#次の補題は、プログラム カウンターが指すコマンド、または現在のコマンドで指定された場所にあるデータをスクラッチパッドにコピーできることを示しています。さらに計算。プログラム カウンタの位置は通常、スクラッチパッドの内容の直下にありますが、任意に変更できます。計算全体を通じて特定の位置に保持すると、構造を適切に整理するのに役立ちます。

次の補題は、スクラッチパッドに格納されているベクトル v は、スクラッチパッド自体によって指定されているメモリ内の指定された場所にコピーできることを説明しています。これにより、データをスクラッチパッドからメモリ内の特定の場所に転送して、さらに使用したり保存したりできるようになります。

Transformer を汎用コンピュータとして使用することで、コンテキスト学習アルゴリズムを実行することもでき、非常に想像力に富んだ研究です。

# 図 4: 書き込み操作の概略図。矢印は、データのブロックがスクラッチパッドからメモリに割り当てられた入力セクション内の指定された場所にコピーされていることを示します。位置エンコーディングは、ターゲットの位置を追跡し、データが正しいメモリ位置に書き込まれることを保証するために使用されます。

Transformer を汎用コンピュータとして使用することで、コンテキスト学習アルゴリズムを実行することもでき、非常に想像力に富んだ研究です。

条件分岐 #このパートでは、条件を評価し、条件が true の場合にプログラム カウンタを指定された位置に設定し、条件が false の場合にプログラム カウンタを 1 つインクリメントする条件付き分岐命令を実装します。

コマンドの形式は次のとおりです。mem[a]≤0 の場合、i に進みます。ここで、mem[a] は、メモリ部分の位置の値です。入力シーケンス。このコマンドは、不等号の判定とプログラム カウンタの変更の 2 つの部分で構成されます。

ユニバーサル単一命令セット コンピューターのシミュレーション

SUBLEQ トランスフォーマー

Mavaddat と Parhami が復帰1988 2001 年に、命令が存在し、あらゆるコンピュータ プログラムをこの命令のインスタンス化からなるプログラムに変換できることが実証されました。この命令のバリエーションとして SUBLEQ があり、異なるレジスタまたはメモリ位置にアクセスできます。

SUBLEQ の仕組みはシンプルです。メモリ内の 2 つのレジスタにアクセスし、その内容の差分を取得してレジスタの 1 つに戻します。結果が負の場合は、事前に定義された別のコード行にジャンプするか、現在の行の次の命令に進みます。 SUBLEQ プログラムを実行するために構築されたコンピューターは、単一命令セット コンピューターと呼ばれ、汎用コンピューターです。つまり、無限のメモリにアクセスできる場合、それはチューリング完全になります。

Transformer を汎用コンピュータとして使用することで、コンテキスト学習アルゴリズムを実行することもでき、非常に想像力に富んだ研究です。#以下では、特定の命令セットで書かれたプログラムを実行できるループ Transformer の構築について説明します。 Transformer は、入力のメモリ部分をメモリ レジスタとして使用し、コマンド部分をコード/命令の行として使用して、コードの行、メモリの場所、およびプログラム カウンターを追跡します。一時レジスタは、各命令、読み出し、書き込み、条件分岐操作などに伴う加算やポインタを記録するために使用されます。

Transformer を汎用コンピュータとして使用することで、コンテキスト学習アルゴリズムを実行することもでき、非常に想像力に富んだ研究です。# 図 5: OISC 命令ブロックの実装をグラフィカルに表現。最初の 2 つのブロックはデータ/コマンドをスクラッチパッドに転送し、2 番目と 3 番目のブロックは減算を実行して結果を保存し、最後のブロックは命令を完了する if goto コマンドを実行します。

FLEQ: より柔軟なアテンションベースのコンピューター

このセクションでは、著者が FLEQ を紹介します。紹介すると、これは SUBLEQ を一般化したもので、より柔軟な縮小命令セット コンピューターを定義します。この暗黙的な追加命令セットは、SUBLEQ のより高度なバージョンに基づいており、複数の機能を同じ Transformer ネットワークに実装できます。著者らは、FLEQ という用語を、それが定義する命令、言語、および注意ベースのコンピュータを指すために使用しています。

FLEQ は、単純な減算よりも一般的な関数を生成することで、行列の乗算、平方根計算、活性化関数などの複雑なアルゴリズムを実装できるように設計されています。

アテンションベースのコンピュータ実行サイクル。ループ Transformer の各反復で、プログラム カウンターに基づいて入力内の命令セットから命令がフェッチされます。次に、命令がスクラッチパッドにコピーされます。実装される関数に応じて、関数の結果をローカルに記録するために異なる関数ブロックの場所が使用されます。結果が計算されると、その結果は命令によって提供された指定されたメモリ位置にコピーされて戻されます。

実行サイクルは、前のセクションの単一命令セット コンピューター (OISC) のサイクルと似ていますが、主な違いは、各命令に対して事前に実行される命令のリストから選択できることです。 -selected 関数: 関数は、行列、ベクトル、スカラーなどの任意の配列として入力を受け取ります。

#入力シーケンスの形式。図 6 に示すように、ループ Transformer の入力 X は、一連の FLEQ 命令で構成されるプログラムを実行できます (X は一時レジスタ、メモリ、命令の 3 つの部分で構成されます)。

Transformer ベースの機能ブロックの形式。図 6 に示すように、各機能ブロックは入力 X の左下部分にあります。

Transformer を汎用コンピュータとして使用することで、コンテキスト学習アルゴリズムを実行することもでき、非常に想像力に富んだ研究です。

#図 6: FLEQ コマンドを実行するための入力 X の構造

技術的な詳細と例については、元の論文を参照してください。

以上がTransformer を汎用コンピュータとして使用することで、コンテキスト学習アルゴリズムを実行することもでき、非常に想像力に富んだ研究です。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。