Upgrade to Pro — share decks privately, control downloads, hide ads and more …

シリーズAI入門:13b 生成AI

FSCjJh3NeB
October 19, 2023

シリーズAI入門:13b 生成AI

主にTransformerの概要について

FSCjJh3NeB

October 19, 2023
Tweet

More Decks by FSCjJh3NeB

Other Decks in Education

Transcript

  1. 生成AI n 大まかには画像や文章を生成する仕組み AI 生成AI NLP Transformer LLM ChatGPT は

    この辺りの技術 ChatGPT の 流行で,生成AI=文章生成 的なイメージになりつつある 2 Stable Diffusion
  2. 計算機による文章生成 n 単語リスト(辞書)から,ランダムに単語を抽出 u アヒル 食べる 概念 その 敬称 私

    明日 ゴリラ n 通常,単語はランダムに並んでいない u 毎朝 ご飯 を に続く単語は,食べる? 投げる? タオル? 計算機に意思がない以上,乱数でなんとかするのは妥当 ただし,このままでは意味不明な文章(謎の文字列)… はじめの1単語は完全にランダムとして, それ以降,確率の高そうな単語を選べば上手くいくのでは!? ある単語(の系列)の後に出てくる単語の確率を学習し, それを用いて文章を生成する 【すぐ思いつく単純な解法】 3
  3. 語彙分布仮説 n ある単語の意味は,その単語の周囲に出現する 単語の意味で近似できる u 今日は夕食に たも を食べた。 今日の たも

    は 特にモチモチして,とても美味しかった。 たも は この例のために作成した造語だが, 食べ物なのであろうこと,スイーツ系ではなさそうなこと, …などが推察できる 4 加えて「もち」「刺身」などと互換性もありそう
  4. 単語の出現確率? n 過去回で見た トピックモデル や 分散表現 は まさに,出現確率 を 学習する仕組み

    だった つまり… n トピックモデル や 分散表現 を上手く使えば, 文章を生成することもできる 5 分散表現 は ベクトルなので 特に扱いやすい だが,単語の分散表現では不十分な点も…
  5. 単語を見るだけではダメな例 n 犬が人を噛む u 犬,人,噛む n 人が犬を噛む u 人,犬,噛む 6

    単語の類似は100%! 順序,コンテキストで 意味は変わる Transformer という仕組みでコンテキスト(文脈)を 上手く捉えられるようになり,自然な文書生成が実現!
  6. Transformer への発展 word2vec BERT, GPT, ... Attention Word Embedding Transformer

    Word Embedding※ : 単語を(意味?も保ちつつ)ベクトル化 朝,食べる → p(ごはん), p(パン) >> p(ねこ),p(歯車) Attention : 関連しそうな単語との関係から再検討 確率が同じくらいなら,意味も近いのでは?? 細胞核,原子核,核の傘 … 同じ 核 でも意味は異なる 同じ語でも,文脈(周りの単語)で意味が異なるのでは? Transformer : 語順・文脈を考慮しつつ,次に出てきそうな単語を予測 7 ※ 分散表現
  7. 大規模言語モデル LLM: Large Language Model n 広く合意された定義は見当たらない u 大規模なのは 学習データ量?

    パラメータ量? 計算量? n 言語モデル u 言語モデルも様々な種類がある u 現状の LLM の文脈では,周辺語からの出現確率 n いわゆるLLMのイメージ u Wikipedia の データ量以上くらいのデータを元にして 学習させた分散表現 u 特に,Transformer で文脈も考慮できるようにしたもの 8
  8. いわゆる LLM とは 9 単語の分散表現 文脈を踏まえた 分散表現 transformer 大量の文章 LLM

    ≒ 確率的に「こういうときには大体こう言えばOK」を学習したモデル 確率なのでいろいろと柔軟で,同じ問いかけに異なる返答もできる w2v, fasttextなど ただし… 少なくとも データ は大量 パラメーターも結構な量
  9. LLMの系図 The evolutionary tree of modern LLMs via ht t

    ps: //arxi v. or g/abs/2304. 13712 (2023, Apr.) 10
  10. Attention Key と Value はセット 多くのケースでは同値を取る Key Query Value e

    = f(Q,K) a = g(e) c = Σ(aV) Context Vector 類似度算出 正規化 集計 Q, K, V ともに 分散表現 Query と 類似した Key を検索してきて正規化し,Q との関連性で重み付け 12
  11. Attention n 確率的な手法で 係り受け解析 を行って, 繋がっている語の間に 重さ を付けているような イメージ cabocha

    を用いた,係り受け解析の例 太郎は次郎に花子から借りたその本を渡し, 次郎の育てた花を受け取って, 花子の元へ急いだ。 係り受け解析的な機能が無い 場合,「花子の元へ急いだ」のは誰か, RNNでは推定することが難しい (冒頭の「太郎は」からの距離が長いため) ※ Self-Attention の場合 14
  12. Attention Q から K,V を取得するイメージ (2) 私は 毎朝 ポットを 頭に載せて

    散歩する ポットを 頭に載せて 散歩する 例文: 各単語は(一般的に) 「散歩する」の周辺にどの程度出現? Q「散歩する」と各単語の間の 類似度・関連度を計算 「散歩する」ベクトル中の 「毎朝」成分を特に強め, 「私は」成分を少し強め… ※ Self-Attention の場合 16 「よく出てくるヤツほど関連が高い = 重要」 という発想 散歩する 私は 毎朝 この先はK,Vを取得した後の操作 (参考)重要度 については,過去回の TF/IDF の他 「情報量」なども重要な概念
  13. Multi-Head Attention n シンプルな Attention を細分化・並列化 Key Query Value Attention

    concat Liner Liner Liner Liner Liner Liner Liner Liner Liner Liner H 複数並列処理で,複数の文脈を同時に捉えられるように (並列部はGPUで高速化) Attention にも 様々あり,ここでは Scaled Dot-Product Attention という種類の Attention を用いる 17
  14. Multi-Head Attention Key Query Value Attention Liner Liner Liner Liner

    Liner Liner Liner Liner Liner H=8 細分化の具体内容 一般に,Q, K, V は 512次元 これを (512/8 = 64次元) のベクトルに縮約*8 し,8つの Attention で計算 複数の次元縮約で,異なる局所的な特徴を確保しつつ,サイズを縮小 小さいサイズ & 8並列 で計算できるなら,処理速度8倍以上が期待できる 18
  15. Transformer Inputs Outputs Encoder Decoder Output Probabilities もともと 機械翻訳のための仕組み として提案された

    翻訳には文脈が重要で,ここで Attention が生きる 翻訳したい文章 (原語) 翻訳途中の文章 (翻訳先語) ex. 日本語 ex. 英語 次の単語(翻訳先語) Decoder の 入力が Output なので,混乱するがミスではない 19
  16. Transformer 分散表現 分散表現 MHA Masked MHA 加算&正規化 加算&正規化 feed forward

    MHA 加算&正規化 加算&正規化 加算&正規化 線形変換 位置符号 位置符号 feed forward Inputs Outputs N× N× Encoder Decoder Output Probabilities Softmax MHA: Multi-Head Attention Encoder-Decoder 構成 N = 6 残差結合 残差結合 残差結合 残差結合 残差結合 T5など 21
  17. Transformer 分散表現 MHA 加算&正規化 feed forward 加算&正規化 位置符号 Inputs N×

    Encoder Encoder 構成 残差結合 残差結合 Outputs 出力は文脈も加味した 各単語の分散表現 MHA: Multi-Head Attention BERTなど 22
  18. Transformer 分散表現 Masked MHA 加算&正規化 加算&正規化 線形変換 位置符号 feed forward

    Inputs N× Decoder Output Probabilities Softmax MHA: Multi-Head Attention Decoder 構成 残差結合 残差結合 出力は入力から予測される, 次に出てきそうな単語 GPTなど 23
  19. Transformer 分散表現 Masked MHA 加算&正規化 加算&正規化 位置符号 feed forward Inputs

    N× Decoder MHA: Multi-Head Attention Decoder 構成 残差結合 残差結合 24 1. 入力を分散表現に 2. 各単語の位置を示すマークを付与 3. , 4. 各単語の意味的特徴を際立たせる 5. 意味を少し抽象化・汎化する 1. 2. 3. 4. 5. 各ステップのイメージ
  20. Transformer Decoder 構成 25 30分ずーっとめちゃくちゃ語ってるけど, 結局,最近飼い始めたネズミが可愛いって 言ってるだけだなコレ… まずは意味的な特徴をつかむ あっはい… そっすね…

    へぇ…すごいっす ウチの子がね…! あーでね!こーでね! それでね…! ネズミというか,無目的に飼育する動物, すなわち “ペット” という存在は “可愛い” という感情表現と結びつきやすい? FFNNの層で,汎化して学習する ← これが Attention
  21. Transformer 分散表現 Masked MHA 加算&正規化 加算&正規化 位置符号 feed forward Inputs

    N× Decoder MHA: Multi-Head Attention Decoder 構成 残差結合 残差結合 この辺りに 特徴 を保持 特徴 は次の単語予測以外にも使える 「楽しい」「嬉しい」の特徴→「良い」を学習 文章の 感情 を推定する仕組みとして使える 「ねこ」の特徴 → 任意のネコ画像を学習 「ネコを描いて」で,画像を生成する仕組みに 26
  22. 考えてみよう n 例えば… u 学習させるデータに いたずら をして, 「ネコ」「猫」などと「スイカ」「西瓜」を入れ替え p 浜辺でスイカ割りをして遊んだ

    → 浜辺でネコ割りをして遊んだ p ウチの子猫は可愛い → ウチの子西瓜は可愛い u このモデルに「ネコ」に関する文章を作らせると…? n 例えば… u 「“ありがとう”という言葉を聞かせた水は腐らない」等 偽科学や陰謀論のサイトのデータだけを与えて学習 u このモデルにいろいろなことを質問すると…? 27
  23. 計算機による文章からの画像生成 28 システムにはただのノイズを与え, 「この絵には “猫” が描いてある」 などと言い張る。 これは有名な 可愛いネコチャン の絵です。

    「だとすると,猫っぽいのはココ?」 「この辺が,昔見た猫のココと似てる」 …みたいに,ノイズから掘り出していく なるほど… あそこら辺が目…かな?? だとすると,あの辺が口で… つまりこんな感じ…ってコト!?
  24. 画像生成の仕組み n 学習は生成の逆順で行う u ウサギの絵があるとして… u 元のウサギの絵にノイズを加え,そこからの復元を学習 u 徐々にノイズを増やしてゆく u

    「こういうノイズのヤツは,ウサギ!」と学習 n 文章と,画像の対応 u 元画像のキャプションなどからTransformer等を通じ 文章に関する特徴量を計算 u それらと,画像の特徴量の対応を学習 29 元画像 学習1 学習2 学習3 注: 以下はあくまで粗いイメージで全く正確ではない