GPT解説2 アテンションの仕組み (Attention, Transformer) | Chapter6, 深層学習
ฝัง
- เผยแพร่เมื่อ 7 มิ.ย. 2024
- この動画は3Blue1Brownの動画を東京大学の学生有志団体が翻訳・再編集し公式ライセンスのもと公開しているものです。
チャンネル登録と高評価をよろしくお願いいたします。
日本語版Twitter
/ 3b1bjp
元チャンネル(英語)
/ 3blue1brown
元動画(英語)
• Attention in transform...
訂正
冒頭でAttention機構は2017年の論文ではじめて登場したと紹介していましたが、正しくは2014年にBahdanauらによって初めて導入されていました。もちろんそれ以前にも、人々がこのアイディアについて実験していたのではないかと思います。コメントのご指摘、ありがとうございます!
Attention Is All You Needは従来のシーケンス処理モデルに使われていた回帰型ニューラルネットワークに対して、文字通りAttentionのみでシーケンス処理を可能にし、また多くのアテンションブロックを使用することでモデルの性能を向上させるアプローチが広く受け入れられるきっかけを作ったと言えるのではないでしょうか。
新チャンネルUfolium
• 【ガザ地区】イスラエル・パレスチナ対立の歴史
• アメリカ大統領選挙の仕組み
資料
Andrej Karpathy
• Let's build GPT: from ...
vcubingx
• What does it mean for ...
Anthropic
transformer-circuits.pub/2021...
www.gptandchill.ai/codingprob...
LLMの歴史 Brit Cruise
• ChatGPT: 30 Year Histo...
arxiv.org/pdf/1301.3781
訳注
「シングルヘッドのアテンション」と訳されている部分は、英語では"Single head of attention"、"Single-headed attention"、"single-head attention"などと表現されています。意味としては「アテンションのヘッド1つ分」という使い方もあれば、「シングルヘッド」という「ある種の特徴や仕様を表現する言葉」として使っている場合もあります。日本語訳では前者のように受け取れる部分でもいくつかは後者で訳していて、これはMulti-head Attentionとの対比をより明確にするためにこのように訳しています。
----------------------------------------
英語版翻訳元チャンネルの支援
/ 3blue1brown
アニメーションはmanimで作られています
github.com/3b1b/manim
英語版公式ソーシャルメディア
Webサイト: www.3blue1brown.com
Twitter: / 3blue1brown
Facebook: / 3blue1brown
Reddit: / 3blue1brown
----------------------------------------
Music by Vincent Rubinetti
Download the music on Bandcamp:
vincerubinetti.bandcamp.com/a...
Stream the music on Spotify:
open.spotify.com/album/1dVyjw...
初心者すぎて、12:00あたりの説明がわからない……
1文を区切ることで、入力された文章自体を学習の材料に出来ちゃうというのは分かった。
でも、今回の例は形容詞は後に続く名詞を説明しているから大丈夫だけど、後置修飾の場合だったら、後ろのトークンが前に影響を及ぼせるようにしないといけないのでは?
後置修飾の情報は、どうやって反映されるんだ?
例えば後置修飾の場合、前の名詞が逆に後ろの形容詞の意味を深めることができます。
重要なのは、モデルは必ずしも我々人間と同じ方法で処理しているとは限りません。実際、形容詞と名詞の説明は想像上の例の一つで、実際の処理は人間にはずっと解釈しづらいものになっているでしょう。
例えば文章の意味が文末の「!」や「?」に焼き付けられるのではないかという示唆もあります。
投稿主も書いているように、人間は後ろ単語から前の単語に修飾してると考えるけど、transformerせよ他の機械学習モデルにせよ人間のように後ろから予測するようなことはしてません。その上で人間が見て自然に思えるような文章を出力してます。
人間の感覚に惑わされないように。
@@3Blue1BrownJapan
@user-st1lh8bg7f
お二人共返信有り難うございます!
例えば23:20で、後のトークンから前のトークンにも線が伸びて干渉しているような演出がなされているので、後ろから前にも影響を及ぼすのかと勘違いしてしまいました
演出のことは気にしないことにします!
@@user-zf8gs6ol2lあ、そこは予測と学習の違いですね。
予測して文字列を生成する際には上の説明で正しいのですが、学習段階ではすでに後ろに来る文字が分かっているので、文脈に応じて単語ベクトルを調節しています。
説明不足でした
@@user-st1lh8bg7f
すみません、よく分かりません……
maskingというのは予測をするために行う行為で、一方で23:20の演出は事前の学習段階を示している、ということなのでしょうか?
長い間コンテキストを共有してきた家族は単語に対する結びつきの解釈がすでにパラメータとして調整されているので、少ない会話でコミュニケーションが取れるってことか
難しかったので、自分なりに動画の内容をまとめました。間違っている部分や補足あればコメントお願いします!
一言でいえば、Attentionは各単語(厳密にはトークン)間の関連度合いに応じて、それぞれのトークンからの意味的な更新を行列の掛け算を用いて実現する機構。ここで掛け算する行列は最初はランダムであり、学習を通してうまく機能するような数値を探すことになる。
もう少し具体的に解説すると、まず、モデルのパラメータの一部となるクエリ行列とキー行列を用いて、各トークン間の関連度合いを内積で計算する。
この関連度合いを0~1に正規化して表にしたものをAttentionパターンという。
その後、Attentionパターンで定義される関連度合いの重み比率に基づいて、モデルのパラメータの一部となるバリュー行列を使って、各トークンの埋め込みベクトルを更新する(= 各トークンに他のトークンからの意味、文脈を取り込む)。
クエリ行列、キー行列、バリュー行列は学習の初期段階においてはほぼランダムな行列だが、学習を繰り返して最適化していくことで、トークンに他のトークンからの意味を関連度合いに応じて取り込み、文脈を含んだトークンのベクトルが生成されるようになる。
ちなみに、ここまでの工程を別の96パターンのキー、クエリ、バリュー行列でも実施することでさらにモデルのパラメータを増やす(ちょうどNNを多層にして精度を上げたように)。
最終的には、もとの文章の一番最後のたった一つのトークンに全文脈が内包され、これをもとに次のトークンの存在確率ベクトルを算出することで次の単語を生成していく(前回の動画)。
翻訳ありがとうございます!
翻訳解説とてもありがたいですね。
翻訳動画をありがとうございました!😀
動けばいいだろの精神でネットに転がっているコードいじって使ってたけど、やっぱりGPT関連はえぐいぐらいむずかしいわ。
翻訳動画をありがとうございました。😀
レイヤーごとのattention計算を通して、徐々に各トークンの埋め込みが別トークンの情報を重み付きで吸収していく感じだよね
バニラのtransformerの計算ではattention計算は入力トークン数の2乗オーダーになるからLinear attentionを始めとして別の計算方法だったり、GPUのメモリ割り当て効率化が行われているね
すごい
素晴らしい!素晴らしすぎますって。
今後は強化学習の分野もやって欲しいです。
論文名“Attention is all you need“はかっこよすぎだろ
"*** is all you need" っていうフレーズはこの後に発表される色々な論文で使われるくらい人気
@@caffe-nt はえー
ただし,学術論文ではタイトルだけで内容が分かるようなものが望ましいので,学者は「うーんこのタイトルでいいのか?」と思いがち.
Googleの広告会社としてのアイデンティティを抑えきれなかった末路
このタイトル知ってるかいないかでモグリかどうかは判別できる
AttentionとTransformerはLLMの革命児だよなあ
興味深い動画をありがとうございます。
2つのGPT解説動画を見て、neural networkを大量のデータ処理のために大規模化するためには、どうしても、重み係数を削減する必要があるのだなと思いました。
単純なneural networkでは一階層のnode間の接続は入力の次元Nの2乗になり重み係数もそうなりますよね。GPTの場合は約15,000次元の要素を2,000個処理するので、これをストレートに2乗すると600兆の重み係数が1階層だけでも必要になります。これをGPTのように何階層も重ねると数京のパラメタになってしまい、ベクタの要素を浮動小数点とすると数千テラバイトになりかねず、実装が難しいのだろうと思います。
それと、ふと、感じたのですが、GPT解説動画は、他の動画とちょっと違って、数学の美しさ(?)ではなく、如何に実装するかの話をしているので、ちょっと不思議な気がしました。
このバリュー行列って無くてもアテンション機構としては成立しそうな気がしたけど、パラメータスペース作るために入れたら上手く行ったみたいなことなのかな
こんだけ行列, しかもかなり高次元な行列を何十回も何万回も計算して単語を出すのに数秒くらいしかかかってないの化け物すぎる
やっぱGPUの並列計算(?)がつよいからなのか?
すごいわかりやすかったです
LLMの文脈で言えば、transformerはWord2vecの次元が一つ上がったものという感じなんでしょうか
続編きた~~~!!!
Multi-Head Attentionにする意味がわからない...
20:50で96個のquery, key, valueのセットを並列にニューラルネットワークで学習させてるようだけど、
6:20のqueryの質問を96パターン考えることで、多角的にその単語の意味を理解してるってことなのか?
でもどうやって96パターンの異なるqueryを生成するんだ?
ニューラルネットワークの初期値を確率的に変えることでqueryが分散するのか?
これどうやってその単語らが「関連がある」って学習するの?セルフアテンションなので入力は自分自身でラベルはないと思いましたが、そこがいまいち不明でした。人間がそれ関連してるよって言ってるのであれば理解できるのですが。。どなたか教えてください。
今回の内容難しくないか?俺がアホになっただけ?
Attention機構が「Attention is all you need」で初めて登場しましたってのは間違いですね。Attention層自体は2015年あたりにすでに登場しています
ご指摘ありがとうございます! まったくその通りですね。概要欄で訂正させていただきます。
逆に言えば、人間はこれより複雑な会話ができるってことか。ある意味、ChatGPTのような明快で論理的な回答の方が、複雑な思考ではない気がする。
32bitcpuと同じ人かと思ったけど違った
ひたすら行列の計算をしてるね。
CUDAで囲ったNVIDIAのGPUが必要になるわけだ…
1+1=1と認識している
私には理解できない世界。
でも、GPTを知りたいと
思っていたので助かります
寝落ちするぐらいには理解できない
いちこめれれれ!