GPT解説2 アテンションの仕組み (Attention, Transformer) | Chapter6, 深層学習

Поделиться
HTML-код
  • Опубликовано: 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...

Комментарии • 45

  • @user-zf8gs6ol2l
    @user-zf8gs6ol2l Месяц назад +10

    初心者すぎて、12:00あたりの説明がわからない……
    1文を区切ることで、入力された文章自体を学習の材料に出来ちゃうというのは分かった。
    でも、今回の例は形容詞は後に続く名詞を説明しているから大丈夫だけど、後置修飾の場合だったら、後ろのトークンが前に影響を及ぼせるようにしないといけないのでは?
    後置修飾の情報は、どうやって反映されるんだ?

    • @3Blue1BrownJapan
      @3Blue1BrownJapan  Месяц назад +16

      例えば後置修飾の場合、前の名詞が逆に後ろの形容詞の意味を深めることができます。
      重要なのは、モデルは必ずしも我々人間と同じ方法で処理しているとは限りません。実際、形容詞と名詞の説明は想像上の例の一つで、実際の処理は人間にはずっと解釈しづらいものになっているでしょう。
      例えば文章の意味が文末の「!」や「?」に焼き付けられるのではないかという示唆もあります。

    • @user-st1lh8bg7f
      @user-st1lh8bg7f Месяц назад +9

      投稿主も書いているように、人間は後ろ単語から前の単語に修飾してると考えるけど、transformerせよ他の機械学習モデルにせよ人間のように後ろから予測するようなことはしてません。その上で人間が見て自然に思えるような文章を出力してます。
      人間の感覚に惑わされないように。

    • @user-zf8gs6ol2l
      @user-zf8gs6ol2l Месяц назад +2

      ​@@3Blue1BrownJapan
      ​@user-st1lh8bg7f
      お二人共返信有り難うございます!
      例えば23:20で、後のトークンから前のトークンにも線が伸びて干渉しているような演出がなされているので、後ろから前にも影響を及ぼすのかと勘違いしてしまいました
      演出のことは気にしないことにします!

    • @user-st1lh8bg7f
      @user-st1lh8bg7f Месяц назад +1

      @@user-zf8gs6ol2lあ、そこは予測と学習の違いですね。
      予測して文字列を生成する際には上の説明で正しいのですが、学習段階ではすでに後ろに来る文字が分かっているので、文脈に応じて単語ベクトルを調節しています。
      説明不足でした

    • @user-zf8gs6ol2l
      @user-zf8gs6ol2l Месяц назад +1

      ​@@user-st1lh8bg7f
      すみません、よく分かりません……
      maskingというのは予測をするために行う行為で、一方で23:20の演出は事前の学習段階を示している、ということなのでしょうか?

  • @user-ld4je6vb5e
    @user-ld4je6vb5e Месяц назад +26

    長い間コンテキストを共有してきた家族は単語に対する結びつきの解釈がすでにパラメータとして調整されているので、少ない会話でコミュニケーションが取れるってことか

  • @morchan844
    @morchan844 Месяц назад +7

    翻訳ありがとうございます!

  • @hitoshiyamauchi
    @hitoshiyamauchi Месяц назад +1

    翻訳動画をありがとうございました!😀

  • @MidnightSoulEclipse
    @MidnightSoulEclipse Месяц назад +1

    翻訳解説とてもありがたいですね。

  • @user-bf6ot8ql2m
    @user-bf6ot8ql2m Месяц назад +9

    動けばいいだろの精神でネットに転がっているコードいじって使ってたけど、やっぱりGPT関連はえぐいぐらいむずかしいわ。

  • @hitoshiyamauchi
    @hitoshiyamauchi Месяц назад

    翻訳動画をありがとうございました。😀

  • @shinsogayborg
    @shinsogayborg Месяц назад +1

    素晴らしい!素晴らしすぎますって。
    今後は強化学習の分野もやって欲しいです。

  • @hellohello-kl1cx
    @hellohello-kl1cx Месяц назад +6

    レイヤーごとのattention計算を通して、徐々に各トークンの埋め込みが別トークンの情報を重み付きで吸収していく感じだよね
    バニラのtransformerの計算ではattention計算は入力トークン数の2乗オーダーになるからLinear attentionを始めとして別の計算方法だったり、GPUのメモリ割り当て効率化が行われているね

  • @user-ey3et6bb9q
    @user-ey3et6bb9q Месяц назад +5

    難しかったので、自分なりに動画の内容をまとめました。間違っている部分や補足あればコメントお願いします!
    一言でいえば、Attentionは各単語(厳密にはトークン)間の関連度合いに応じて、それぞれのトークンからの意味的な更新を行列の掛け算を用いて実現する機構。ここで掛け算する行列は最初はランダムであり、学習を通してうまく機能するような数値を探すことになる。
    もう少し具体的に解説すると、まず、モデルのパラメータの一部となるクエリ行列とキー行列を用いて、各トークン間の関連度合いを内積で計算する。
    この関連度合いを0~1に正規化して表にしたものをAttentionパターンという。
    その後、Attentionパターンで定義される関連度合いの重み比率に基づいて、モデルのパラメータの一部となるバリュー行列を使って、各トークンの埋め込みベクトルを更新する(= 各トークンに他のトークンからの意味、文脈を取り込む)。
    クエリ行列、キー行列、バリュー行列は学習の初期段階においてはほぼランダムな行列だが、学習を繰り返して最適化していくことで、トークンに他のトークンからの意味を関連度合いに応じて取り込み、文脈を含んだトークンのベクトルが生成されるようになる。
    ちなみに、ここまでの工程を別の96パターンのキー、クエリ、バリュー行列でも実施することでさらにモデルのパラメータを増やす(ちょうどNNを多層にして精度を上げたように)。
    最終的には、もとの文章の一番最後のたった一つのトークンに全文脈が内包され、これをもとに次のトークンの存在確率ベクトルを算出することで次の単語を生成していく(前回の動画)。

  • @mizuchin36
    @mizuchin36 Месяц назад +3

    すごい

  • @user-wu1dm7nt6z
    @user-wu1dm7nt6z Месяц назад +32

    論文名“Attention is all you need“はかっこよすぎだろ

    • @caffe-nt
      @caffe-nt Месяц назад +15

      "*** is all you need" っていうフレーズはこの後に発表される色々な論文で使われるくらい人気

    • @user-wu1dm7nt6z
      @user-wu1dm7nt6z Месяц назад +4

      @@caffe-nt はえー

    • @user-mj9fk5hs3e
      @user-mj9fk5hs3e Месяц назад +8

      ただし,学術論文ではタイトルだけで内容が分かるようなものが望ましいので,学者は「うーんこのタイトルでいいのか?」と思いがち.

    • @rorona1350
      @rorona1350 Месяц назад +5

      Googleの広告会社としてのアイデンティティを抑えきれなかった末路

    • @Arin177
      @Arin177 Месяц назад +3

      このタイトル知ってるかいないかでモグリかどうかは判別できる

  • @user-my7yz2ou4x
    @user-my7yz2ou4x Месяц назад +3

    AttentionとTransformerはLLMの革命児だよなあ

  • @Ryotaro-bu8lu
    @Ryotaro-bu8lu Месяц назад +4

    続編きた~~~!!!

  • @KI-kr1mu
    @KI-kr1mu Месяц назад +2

    このバリュー行列って無くてもアテンション機構としては成立しそうな気がしたけど、パラメータスペース作るために入れたら上手く行ったみたいなことなのかな

  • @PGW90RU14
    @PGW90RU14 17 дней назад

    興味深い動画をありがとうございます。
    2つのGPT解説動画を見て、neural networkを大量のデータ処理のために大規模化するためには、どうしても、重み係数を削減する必要があるのだなと思いました。
    単純なneural networkでは一階層のnode間の接続は入力の次元Nの2乗になり重み係数もそうなりますよね。GPTの場合は約15,000次元の要素を2,000個処理するので、これをストレートに2乗すると600兆の重み係数が1階層だけでも必要になります。これをGPTのように何階層も重ねると数京のパラメタになってしまい、ベクタの要素を浮動小数点とすると数千テラバイトになりかねず、実装が難しいのだろうと思います。
    それと、ふと、感じたのですが、GPT解説動画は、他の動画とちょっと違って、数学の美しさ(?)ではなく、如何に実装するかの話をしているので、ちょっと不思議な気がしました。

  • @wswsan
    @wswsan Месяц назад +1

    こんだけ行列, しかもかなり高次元な行列を何十回も何万回も計算して単語を出すのに数秒くらいしかかかってないの化け物すぎる
    やっぱGPUの並列計算(?)がつよいからなのか?

  • @user-pu8vn8rq7v
    @user-pu8vn8rq7v Месяц назад

    すごいわかりやすかったです
    LLMの文脈で言えば、transformerはWord2vecの次元が一つ上がったものという感じなんでしょうか

  • @supermariio2326
    @supermariio2326 Месяц назад

    これどうやってその単語らが「関連がある」って学習するの?セルフアテンションなので入力は自分自身でラベルはないと思いましたが、そこがいまいち不明でした。人間がそれ関連してるよって言ってるのであれば理解できるのですが。。どなたか教えてください。

  • @underscoress
    @underscoress Месяц назад +7

    今回の内容難しくないか?俺がアホになっただけ?

  • @user-rq9hu4rv7n
    @user-rq9hu4rv7n Месяц назад

    32bitcpuと同じ人かと思ったけど違った

  • @SSS-100M
    @SSS-100M Месяц назад

    逆に言えば、人間はこれより複雑な会話ができるってことか。ある意味、ChatGPTのような明快で論理的な回答の方が、複雑な思考ではない気がする。

  • @TU-od3rh
    @TU-od3rh 14 дней назад

    Attention機構が「Attention is all you need」で初めて登場しましたってのは間違いですね。Attention層自体は2015年あたりにすでに登場しています

    • @3Blue1BrownJapan
      @3Blue1BrownJapan  14 дней назад +1

      ご指摘ありがとうございます! まったくその通りですね。概要欄で訂正させていただきます。

  • @user-ml4qd8kh4l
    @user-ml4qd8kh4l 2 дня назад

    Multi-Head Attentionにする意味がわからない...
    20:50で96個のquery, key, valueのセットを並列にニューラルネットワークで学習させてるようだけど、
    6:20のqueryの質問を96パターン考えることで、多角的にその単語の意味を理解してるってことなのか?
    でもどうやって96パターンの異なるqueryを生成するんだ?
    ニューラルネットワークの初期値を確率的に変えることでqueryが分散するのか?

  • @user-wm6iw2so7w
    @user-wm6iw2so7w Месяц назад

    1+1=1と認識している
    私には理解できない世界。
    でも、GPTを知りたいと
    思っていたので助かります

  • @user-kw5qr4xe8o
    @user-kw5qr4xe8o 11 дней назад

    寝落ちするぐらいには理解できない

  • @KOCHAN.__
    @KOCHAN.__ Месяц назад +1

    いちこめれれれ!