見出し画像

イリヤ・シュツケヴァー | AI ニューラルネットワークのデモンストレーション | GPTの初期モデル

皆さん、お待たせして申し訳ありません。これは研究成果の発表です。私の名前はイリヤ・シュツケヴァーです。これは優秀な共同研究者であるオレル・ヴィニャルとキューレ・ルとともに行った研究です。
まず、ジョークから始めましょうか。「プロジェクターをセットアップするのに、何人のPhD取得者が必要でしょうか?」
さて、この研究の基礎となっているのはディープニューラルネットワークです。ディープニューラルネットワークには、非常に望ましく魅力的な2つの特性があります。
第一の特性は、ディープニューラルネットワークが強力であるということです。これは、驚くほど幅広い計算を実行できることを意味します。私たちが関心を持つ関数を計算できる可能性が非常に高いのです。
第二の特性は、ディープニューラルネットワークが訓練可能であるということです。強力で訓練可能であるという事実は、難しい問題に直面したとき、最適なニューラルネットワークを見つけて問題を解決し、良い結果を得ることができるということを意味します。
重要なポイントは、強力なモデルを使用することが絶対に不可欠だということです。使用するモデルが強力でない場合、データ量や学習アルゴリズムの良さに関係なく、本当に良い結果を得ることはできません。
例えば、線形モデルや線形SVMあるいは小さなニューラルネットワークを使用すると、本当に難しい問題で良い結果を得ることはほぼ不可能です。小さな畳み込みネットワークも同様で、ニューロンの数が少ないため、私たちが望む正しい種類の関数を計算することができません。
ディープニューラルネットワークの良いところは、特に知覚タスクにおいて高いパフォーマンスを達成するパラメータの良い設定が存在することを、合理的に確信できることです。これは私が「ディープラーニング仮説」と呼んでいるものですが、1970年代にはコネクショニストたちによってすでに知られていました。
議論は次のようになります。人間は非常に興味深い多くの問題を、特に知覚、視覚、音声の問題を一瞬で解決することができます。しかし、私たちのニューロンはとても遅いのです。これは、10回の大規模な並列ステップを使用して、非常に複雑な知覚問題を解決できることを意味します。
したがって、人間が一瞬でできることは、大きな10層のニューラルネットワークでも同様にできると結論付けることができます。これにより、難しい問題がある場合は、大きなディープニューラルネットワークを使用すれば解決できるという確信が得られます。もちろん、多くのデータも必要です。そして便利なことに、これらのモデルは勾配降下法で訓練することが可能です。
しかし、ディープニューラルネットワークの大きな力にもかかわらず、シーケンスからシーケンスへのマッピングを学習することはできません。ベクトルからベクトルへのマッピングしかできないのです。
例えば、視覚認識では、画像をベクトルとして入力し、小さなカテゴリーを出力として得ることは明らかです。また、音声認識では、ニューラルネットワークは通常、小さな音声の塊を小さなカテゴリーにマッピングして、それがどの種類の音素であるかを教えてくれます。
シーケンスからシーケンスへのマッピングは、少なくとも私たちがこの研究を行っていた当時は、ニューラルネットワークができないことでした。しかし、これには多くの興味深い応用があります。
例えば、機械翻訳、音声認識、最近の画像キャプション生成、質問応答、要約など、これらの問題はすべて、入力としてシーケンスを受け取り、出力を生成するという形で表現できます。
私たちの目標は、この一般的なシーケンスからシーケンスへの問題を解決することでした。私たちは非常にシンプルなアプローチを取り、すぐに説明しますが、機械翻訳において良好な結果を達成しました。
この論文では、私たちのパフォーマンスはWMT14の英語からフランス語へのタスクの優勝エントリーに近いものでした。これは実際の大規模な機械翻訳問題です。そして、その後の研究でこの結果を上回りました。
しかし、本当の意味合い、この研究からの本当のメッセージは、機械翻訳ができるということではありません。むしろ、任意のシーケンスからシーケンスへの問題を解決できるということです。
なぜなら、機械翻訳はすでにかなり良いものになっています。Google翻訳を使えば良い翻訳が得られます。それでも、このシステムはそれに匹敵し、翻訳について特に何も仮定していません。他のシーケンスからシーケンスへの問題を解決したい場合、考えることなくそれをプラグインして、合理的な結果、さらには良い結果を得ることができます。
では、ディープニューラルネットワークの問題点は何でしょうか?ディープニューラルネットワークがシーケンスからシーケンスへの問題を解決できない理由は何でしょうか?
答えは、異なるニューロンが異なる接続を持っているという事実にあります。例えば、このニューロンは独自の接続セットを持ち、隣のニューロンは異なる接続セットを持っていることがわかります。
これは、ニューラルネットワークが時間的なパターンを一般化する良い方法を持っていないことを意味します。ある時間ステップでパターンを見て、別の時間ステップで同じパターンを見ても、まったく異なって見えるのです。
では、リカレントニューラルネットワークについてはどうでしょうか?リカレントニューラルネットワークはシーケンスを扱います。シーケンスからシーケンスへの問題をリカレントニューラルネットワークで解決できないのでしょうか?
この図にリカレントニューラルネットワークがあります。リカレントニューラルネットワークは基本的に、各時間ステップで同じ接続を使用する通常の従来型ニューラルネットワークです。
これは、入力のシーケンスを受け取り、それを隠れユニットのシーケンスにマッピングし、出力のシーケンスを得ることができることを意味します。ある意味では、リカレントニューラルネットワークでもシーケンスからシーケンスへのマッピングを行っています。
しかし、私はそれが私たちのニーズに適していないと主張します。なぜでしょうか?リカレントニューラルネットワークの主な問題は、入力と出力の間に一対一の対応関係があることです。
ご覧のように、各入力に対して出力があります。入力のシーケンスがあり、出力のシーケンスを生成することはできますが、両方のシーケンスは同じ長さになり、同じアラインメントを持つことになります。
リカレントニューラルネットワークのもう一つの問題は、学習が少し困難だということです。なぜなら、勾配消失問題と勾配爆発問題があるからです。これらの問題はJürgen Schmidhuberによって発見され、その後Yoshua Bengio他によって再発見されました。
幸いなことに、ニューラルネットワーク研究の状況は進歩し、現在では勾配爆発問題と勾配消失問題の両方に対処することができます。私はすぐにその解決方法を簡単に説明します。
勾配爆発問題は基本的に、リカレントニューラルネットワークが摂動に対して非常に大きな感度を示すことがあるということです。つまり、勾配が非常に大きくなります。そこで、非常にシンプルなアプローチを取ります。勾配が非常に大きい場合は、このように縮小します。
勾配消失問題に関しては、Long Short-Term Memory(LSTM)を使用します。LSTMは特定のRNNアーキテクチャで、通常のRNNアーキテクチャとは異なり、勾配が消失しないようになっています。
モデルはRNNと異なるわけではありません。同じ関数を計算できる同じモデルですが、勾配が消失しないように異なる方法でセットアップされています。
その仕組みは非常にシンプルです。RNNについて考えると、RNNは各時間ステップで完全に新しい隠れ状態を計算します。図に戻ると、完全に新しい隠れ状態を得ていることがわかります。隠れ状態を重みと組み合わせ、非線形性を通過させて新しい隠れ状態を得ます。
LSTMでは、新しい隠れ状態を計算する代わりに、隠れ状態に加えるデルタを計算します。これは小さな違いのように見えますが、その意味は大きいのです。
LSTMでは、隠れ状態に加えるデルタを計算しますが、シーケンスの最後では、最終的な隠れ状態は多くの小さなデルタの合計になります。したがって、シーケンスの始めにLSTMの隠れ状態に小さなデルタを加えたとしても、合計は勾配を均等に分配するので、各時間ステップが勾配を受け取り、勾配は合計のために消失しません。
LSTMはまだ入力の順序に敏感です。「でも、合計なのに順序をどうやって知るの?」と思うかもしれません。その理由は、LSTMがシーケンスに基づいて何を加えるかを決定するからです。何を加えるかについてスマートですが、それでも合計なので、勾配は均等に逆伝播されます。
LSTMはこのように見えます。これはかなり威圧的な図ですね。そのため、20年近く前に発明されたにもかかわらず、最近まで本当に人気が出なかった理由の一つです。
しかし、LSTMを実装すると、勾配チェックが通過し、それ以上考える必要がなくなります。ただ動作するのです。動作したがるのです。これは非常に良い特性です。
さて、これで私たちの研究の背後にある主なアイデアを理解する準備ができました。そのアイデアは非常にシンプルです。LSTMを使用し、入力シーケンスを与え、そして出力シーケンスを予測するよう要求します。それだけです。
はい、これが本研究の主な技術的貢献です。最小限のイノベーションで最大限の結果を得ています。ご覧のように、入力シーケンスを受け取り、それをLSTMのHステートに供給します。そして、このシーケンスが終了したことを示す特別なシンボルを供給します。
そして、「さあ、出力シーケンスを予測してください」と言うのです。非常にシンプルで、モデリングの観点からはそれほど多くのことが起こっていません。
しかし、これが本当に何を意味するのか理解しようとしてみましょう。目的関数の観点から見ると、入力シーケンスが与えられた場合の出力シーケンスの分布を定義し、確率的勾配降下法を使用して正解の対数確率を最大化します。
ここで、隠れ状態というボトルネックがあることに気づくかもしれません。長い入力シーケンスをベクトルにマッピングし、そこからターゲットシーケンスを生成する必要があります。これは隠れ状態に多くのことを要求しているように見えるかもしれません。
そこで私たちが取った対応策は、大きな隠れ状態を使用することです。モデルがこのようになるようにします。前の図からの小さな変更点ですが、大きな深いLSTMを使用します。再び、モデルは非常に均一です。
この大きな深いLSTMを使用するので、ここにある隠れ状態は大きく、望む入力を何でも覚えるための大きな容量を持っています。
これがモデルです。そして、ただ訓練するだけです。ディープニューラルネットワークは非常に強力なので、問題の解決方法を見つけ出します。
ここで、言及する必要がある重要な関連研究があります。このような種類のモデルについて議論した最初の出版物は、Nal Kalchbrennerとphil Blunsom によるものでした。彼らはほぼ同じモデルを使用しましたが、エンコーダーには畳み込みニューラルネットワークを、デコーダーにはリカレントネットワークを使用しました。
その後、Kyunghyun Cho他が私たちとほぼ同じモデルを使用しました。この研究は私たちと同時期に行われましたが、主に統計的機械翻訳システムの提案を再スコアリングするために使用されたという違いがあります。
最後に、関連する研究として、Dzmitry Bahdanau と Yoshua Bengio による注意機構を使用した研究があります。これにより、大きな隠れ状態を使用する必要がなくなりました。これは非常に興味深い研究で、非常に興味深いモデルです。
私たちの研究の主な強調点は、このシンプルで均一で創造性のないモデルが、モデルが大きければ良い結果を達成できることを示すことでした。私たちの主な動機は、モデルから直接翻訳を生成することに本当に努力を注ぐことでした。
これをどのように考えるべきかというと、この研究は素朴なアプローチが機能するという証明なのです。
では、私たちが実験を行ったデータセットについて説明します。WMT14の英語からフランス語へのデータセットです。機械翻訳では、WMTが毎年これらのコンペティションを開催し、データセットをリリースし、多くのチームが競争します。
このデータセットには約7億語が含まれていますが、技術的・歴史的な理由から、私たちは訓練データの30%だけで訓練しました。詳細は省略します。
大規模な実験に使用したモデルは小さくありませんでした。16万の入力語と88万の出力語を持ち、1000セルを持つ4層のLSTMがありました。これは8000次元の状態を意味します。なぜなら、1000のLSTMセルは2000次元の状態を意味するからです。
また、入力と出力に異なるLSTMを使用しました。これにより、合計で3億8400万のパラメータを持つことになります。
モデルはこのように見えます。この巨大なものです。エンコーダー用に1つのLSTM、デコーダー用に異なるLSTMがあります。入力には16万語の語彙があり、出力には88万語があります。
ここではソフトマックスを使用しています。88万のサイズの単純なソフトマックスを使用しています。そして、1000次元がそこに入ります。おそらく、これは今までに試みられた中で最大の素朴なソフトマックスの1つでしょう。
はい、これは大きなモデルです。そして、本当に単純に確率的勾配降下法で訓練します。
本当に重要な点は、このモデルは動作したがるということです。ニューラルネットワークの訓練とチューニングがブラックマジックであるという状況はもはやありません。このモデルに必要だったチューニングの量は少なく、すべてがこの1枚のスライドに記述されています。
バッチサイズは128、学習率は0.7をバッチサイズで割ったもの、初期スケールは-0.08から+0.08の間の一様分布、勾配のノルムを5以下に制御し、最後に5エポック後に半エポックごとに学習率を下げます。
これだけです。これだけでこのモデルを動作させることができます。これは本当に重要です。一般的に、ニューラルネットに取り組みたいと思っても、「ああ、このチューニングは本当に複雑だ。どうすればいいんだ」と感じるかもしれません。
しかし、多くの場合、チューニングは複雑ではありません。90%のケースでニューラルネットワークをチューニングするために知っておく必要があるのは4つのことだけです。
学習率が適切であること、ランダム初期化の初期スケールが適切であること、リカレントニューラルネットワークを使用する場合は勾配のノルムをクリップすること、そして最後に学習率を下げることを忘れないことです。
これら4つのことを行えば、それで十分です。これが私たちがここで行ったすべてです。この4つのことだけです。モメンタムさえ使用しませんでした。非常にシンプルで基本的なアプローチで、ここでは十分でした。
より大きなモデルをより速く訓練するためにもう1つ行ったことは、並列化です。この研究では、8つのGPUを搭載した1台のマシンを使用し、LSTMの各層を異なるGPUに配置することでモデルを並列化しました。
これにより、3.5倍のスピードアップを実現できました。これはクレイジーなものではありませんが、悪くもありません。また、これにより8倍のRAMを得ることができました。
ただし、このモデルは単一のK40(12ギガバイトのRAM)で実行できることを指摘しておく必要があります。RAMが主な制限要因です。K40は私たちが持っていたGPUよりも高速なので、おそらく2倍遅くなるでしょう。
並列化はかなりきれいです。その仕組みをお見せしましょう。各GPU、LSTMの各層が異なるGPUに存在します。この図に示されているように、各層が独立して活性化を計算し、その活性化を次のLSTMに送ります。
このような計算になります。このようにして3.5倍のスピードアップを得ています。繰り返しになりますが、これは少しエンジニアリングの詳細です。最大速度を得たい場合のものですが、モデル自体は、先ほど言ったように、非常にシンプルで非常に均一な深いLSTMです。
このモデルの1つの素晴らしい特性は、シーケンスをベクトルに埋め込むことができることです。可変サイズのオブジェクトを単一の埋め込みに変換する素晴らしい方法を得ました。
このものはベクトルであり、それが何をするのかを見ることができます。そして、かなり興味深い、素晴らしい効果を得ることができます。
例えば、次の6つの文を取りました。「メアリーはジョンを賞賛している」「メアリーはジョンに恋をしている」「メアリーはジョンを尊敬している」、そして「ジョンはメアリーを賞賛している」「ジョンはメアリーに恋をしている」「ジョンはメアリーを尊敬している」。
これら6つの文のベクトル表現を計算し、2次元PCAを行いました。そして、この素晴らしい自動クラスタリングを得ました。
モデルが埋め込みについて何か非自明なことを学習したことは明らかです。動詞の順序を保持しながら、同時に人々の順序も考慮しています。
同様に、この例も非常に興味深いです。ここでは、同じことを言う3つの方法と、異なることを言う3つの方法があります。
「彼女は庭で私にカードをくれた」「庭で彼女は私にカードをくれた」「彼女は庭で私にカードをくれた」。これらの文はすべて同じことを言っていますが、異なる方法で言っています。そして、これらの文は反対のことを言っています。
モデルは自動的にこれらをクラスタリングするほど賢かったのです。これは素晴らしい効果です。これは、シーケンスをベクトルに埋め込む目的関数がある場合、深いLSTMや浅いLSTMを使用するだけで、おそらく非常に合理的になるということを意味します。
基本的に、結果はBLEUスコアを使用して評価しました。高いほど良いです。WMT14コンテストの優勝者は37.0を獲得し、私たちのLSTMモデルの5つの例では34.8を獲得しました。これは、WMT14の最高エントリーにかなり近いですが、まだそこには達していません。
少しエラー分析を行うことができます。長いシーケンスではどうなるでしょうか?より長い文ではパフォーマンスが低下するでしょうか?答えは基本的にノーです。35語の文でも基本的に問題ありません。79語まで行って初めてわずかなパフォーマンスの低下が見られます。
赤い曲線はベースラインで、チューニングされていないフレーズベースのシステムのようなものです。
私たちのシステムが苦戦するのは、語彙外の単語に関してです。テスト文を語彙外単語の数でソートすると、パフォーマンスが非常に急速に低下することがわかります。これは問題です。
私たちのフォローアップ研究について言及したいと思います。これは主にThang Luongがグーグルにインターンシップで滞在していた時に、私自身、Quoc Le、Oriol Vinyals、Wojciech Zarembと一緒に行ったものです。
私たちは、語彙外問題に対処するために非常にシンプルなアイデアを使用しました。これはコーディングがほとんど必要なく、BLEUポイントを37.5まで引き上げました。WMT14の最高エントリーは37.0でした。
この論文はarXivと私たちのウェブサイトで入手可能です。
結論として、私たちはシーケンスからシーケンスへの問題を解決するための一般的で単純なプリミティブなアプローチを提示し、機械翻訳でそれが機能することを示しました。機械翻訳はすでに良いソリューションがある問題です。
したがって、シーケンスからシーケンスへの問題がある場合、またはシーケンスからシーケンスへの問題として定式化したいものがある場合、これを適用するだけで機能します。
このようなアイデアの注目すべき最近の応用例として、最近の画像キャプション生成があります。
私は本当にこれを、教師あり学習問題を完全に解決するための一歩だと考えています。したがって、現在の本当の結論は、大規模なビッグデータセットがあり、非常に大きなディープニューラルネットワークを試してみれば、成功は保証されているということです。
ありがとうございました。質問はありますか?少し時間がありますので、短い質問を受け付けます。
こんにちは。
はい、こんにちは。
簡単な質問です。入力シーケンスと出力シーケンスの次元に大きな不一致がある場合はどうなりますか?
不一致とはどういう意味ですか?例えば、入力シーケンスが音符で、出力シーケンスが巨大なアナログ信号の場合などです。
基本的に、このモデルの主な制限は、非常に長いシーケンスを好まないということです。シーケンスが非常に長くない限り、問題ありません。気にしません。ただ方法を見つけるでしょう。
ありがとうございます。
素晴らしい講演をありがとうございました。これらの表現を学習した後、多くのことを試みることができます。入力文の特性を予測したり、入力文を再現したり、NLPシステムが文から抽出したいと思うものを抽出したりすることができます。
2つの質問があります。おそらくどちらもフォローアップ研究になると思いますが。1つ目は、機械翻訳やオートエンコーディングを行うようにシステムを訓練した後、重みを固定してこれらの表現から何を得ることができるかということです。
2つ目の質問は、マルチタスク学習を行うことでパフォーマンスを向上させることができるかどうかです。つまり、翻訳だけでなく、一部の文に対して監督を行う場合です。
はい、基本的に、私たちは表現の特性を非常に徹底的に調査していません。教師なし表現に関しては、状況は常に少し複雑です。なぜなら、目的関数は本当に他のタスクに便利な表現を作ろうとしないからです。
一般的に、マルチタスク学習は特に、データが多くない状況で役立つことは確かです。データが多い場合、マルチタスク学習は実際に害を及ぼす可能性さえあります。なぜなら、大規模なデータセットに焦点を当て、解決したい問題にネットワークのリソースをすべて専念させたいからです。
ソース言語とターゲット言語が異なるほど、1つを他方に変換するためにより興味深い言語的特徴をエンコードする必要があるかもしれないと予想されます。
それは間違いなく可能です。ネットワークは...正確にどのように機能するかを理解することは興味深いでしょうが、非常に興味深い言語的特徴をエンコードする可能性が高いです。
最後の質問です。
はい、私は興味があります。あなたは訓練で4つのことだけをすれば、任意のシーケンスからシーケンスへのモデルを解決できるという大胆な主張をしていますが、このモデルを他のどのようなシーケンスからシーケンスへの問題に適用したのでしょうか?
数週間後にオンラインで論文を公開する予定です。かなり興味深いものです。
タスクを言うことはできないのですか?
申し訳ありませんが、数週間後です。約束します。
わかりました。もう一度拍手で感謝しましょう。
ありがとうございました。

この記事が気に入ったらサポートをしてみませんか?