Share
Embed
Transcript
29 slides
-
生成AI n 大まかには画像や文章を生成する仕組み AI 生成AI NLP Transformer LLM ChatGPT は
この辺りの技術 ChatGPT の 流行で,生成AI=文章生成 的なイメージになりつつある 2 Stable Diffusion -
計算機による文章生成 n 単語リスト(辞書)から,ランダムに単語を抽出 u アヒル 食べる 概念 その 敬称 私
明日 ゴリラ n 通常,単語はランダムに並んでいない u 毎朝 ご飯 を に続く単語は,食べる? 投げる? タオル? 計算機に意思がない以上,乱数でなんとかするのは妥当 ただし,このままでは意味不明な文章(謎の文字列)… はじめの1単語は完全にランダムとして, それ以降,確率の高そうな単語を選べば上手くいくのでは!? ある単語(の系列)の後に出てくる単語の確率を学習し, それを用いて文章を生成する 【すぐ思いつく単純な解法】 3 -
語彙分布仮説 n ある単語の意味は,その単語の周囲に出現する 単語の意味で近似できる u 今日は夕食に たも を食べた。 今日の たも
は 特にモチモチして,とても美味しかった。 たも は この例のために作成した造語だが, 食べ物なのであろうこと,スイーツ系ではなさそうなこと, …などが推察できる 4 加えて「もち」「刺身」などと互換性もありそう -
単語の出現確率? n 過去回で見た トピックモデル や 分散表現 は まさに,出現確率 を 学習する仕組み
だった つまり… n トピックモデル や 分散表現 を上手く使えば, 文章を生成することもできる 5 分散表現 は ベクトルなので 特に扱いやすい だが,単語の分散表現では不十分な点も… -
単語を見るだけではダメな例 n 犬が人を噛む u 犬,人,噛む n 人が犬を噛む u 人,犬,噛む 6
単語の類似は100%! 順序,コンテキストで 意味は変わる Transformer という仕組みでコンテキスト(文脈)を 上手く捉えられるようになり,自然な文書生成が実現! -
Transformer への発展 word2vec BERT, GPT, ... Attention Word Embedding Transformer
Word Embedding※ : 単語を(意味?も保ちつつ)ベクトル化 朝,食べる → p(ごはん), p(パン) >> p(ねこ),p(歯車) Attention : 関連しそうな単語との関係から再検討 確率が同じくらいなら,意味も近いのでは?? 細胞核,原子核,核の傘 … 同じ 核 でも意味は異なる 同じ語でも,文脈(周りの単語)で意味が異なるのでは? Transformer : 語順・文脈を考慮しつつ,次に出てきそうな単語を予測 7 ※ 分散表現 -
大規模言語モデル LLM: Large Language Model n 広く合意された定義は見当たらない u 大規模なのは 学習データ量?
パラメータ量? 計算量? n 言語モデル u 言語モデルも様々な種類がある u 現状の LLM の文脈では,周辺語からの出現確率 n いわゆるLLMのイメージ u Wikipedia の データ量以上くらいのデータを元にして 学習させた分散表現 u 特に,Transformer で文脈も考慮できるようにしたもの 8 -
いわゆる LLM とは 9 単語の分散表現 文脈を踏まえた 分散表現 transformer 大量の文章 LLM
≒ 確率的に「こういうときには大体こう言えばOK」を学習したモデル 確率なのでいろいろと柔軟で,同じ問いかけに異なる返答もできる w2v, fasttextなど ただし… 少なくとも データ は大量 パラメーターも結構な量 -
LLMの系図 The evolutionary tree of modern LLMs via ht t
ps: //arxi v. or g/abs/2304. 13712 (2023, Apr.) 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 -
Attention n Attention により,座標位置を再計算 u Attentionを通じて,周囲の語との関係で座標(意味)を見直し p 単に共起語で調整するのではなく,関係性(重み)も考慮 p これにより「原子力」の話題と,「植物細胞」の話題で,「核」の意味を変え
る 核 • • 細胞 • ミトコンドリア • 植物 •(細胞核) “…… 植物 の 細胞 の 中 にある 核 ……” 13 -
Attention n 確率的な手法で 係り受け解析 を行って, 繋がっている語の間に 重さ を付けているような イメージ cabocha
を用いた,係り受け解析の例 太郎は次郎に花子から借りたその本を渡し, 次郎の育てた花を受け取って, 花子の元へ急いだ。 係り受け解析的な機能が無い 場合,「花子の元へ急いだ」のは誰か, RNNでは推定することが難しい (冒頭の「太郎は」からの距離が長いため) ※ Self-Attention の場合 14 -
Attention これに似たヤツください Query 弊社の在庫中で それに似たのだと, この辺ですかね? 類似度:0.9 類似度:0.7 類似度:0.8 Key-Value
Q から K,V を取得するイメージ (1) 15 -
Attention Q から K,V を取得するイメージ (2) 私は 毎朝 ポットを 頭に載せて
散歩する ポットを 頭に載せて 散歩する 例文: 各単語は(一般的に) 「散歩する」の周辺にどの程度出現? Q「散歩する」と各単語の間の 類似度・関連度を計算 「散歩する」ベクトル中の 「毎朝」成分を特に強め, 「私は」成分を少し強め… ※ Self-Attention の場合 16 「よく出てくるヤツほど関連が高い = 重要」 という発想 散歩する 私は 毎朝 この先はK,Vを取得した後の操作 (参考)重要度 については,過去回の TF/IDF の他 「情報量」なども重要な概念 -
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 -
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 -
Transformer Inputs Outputs Encoder Decoder Output Probabilities もともと 機械翻訳のための仕組み として提案された
翻訳には文脈が重要で,ここで Attention が生きる 翻訳したい文章 (原語) 翻訳途中の文章 (翻訳先語) ex. 日本語 ex. 英語 次の単語(翻訳先語) Decoder の 入力が Output なので,混乱するがミスではない 19 -
Transformer 処理の流れ Inputs Outputs Encoder Decoder Output Probabilities 1. 2.
3. 4. 5. 1 → 2 → 3 → 4 → 5 20 -
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 -
Transformer 分散表現 MHA 加算&正規化 feed forward 加算&正規化 位置符号 Inputs N×
Encoder Encoder 構成 残差結合 残差結合 Outputs 出力は文脈も加味した 各単語の分散表現 MHA: Multi-Head Attention BERTなど 22 -
Transformer 分散表現 Masked MHA 加算&正規化 加算&正規化 線形変換 位置符号 feed forward
Inputs N× Decoder Output Probabilities Softmax MHA: Multi-Head Attention Decoder 構成 残差結合 残差結合 出力は入力から予測される, 次に出てきそうな単語 GPTなど 23 -
Transformer 分散表現 Masked MHA 加算&正規化 加算&正規化 位置符号 feed forward Inputs
N× Decoder MHA: Multi-Head Attention Decoder 構成 残差結合 残差結合 24 1. 入力を分散表現に 2. 各単語の位置を示すマークを付与 3. , 4. 各単語の意味的特徴を際立たせる 5. 意味を少し抽象化・汎化する 1. 2. 3. 4. 5. 各ステップのイメージ -
Transformer Decoder 構成 25 30分ずーっとめちゃくちゃ語ってるけど, 結局,最近飼い始めたネズミが可愛いって 言ってるだけだなコレ… まずは意味的な特徴をつかむ あっはい… そっすね…
へぇ…すごいっす ウチの子がね…! あーでね!こーでね! それでね…! ネズミというか,無目的に飼育する動物, すなわち “ペット” という存在は “可愛い” という感情表現と結びつきやすい? FFNNの層で,汎化して学習する ← これが Attention -
Transformer 分散表現 Masked MHA 加算&正規化 加算&正規化 位置符号 feed forward Inputs
N× Decoder MHA: Multi-Head Attention Decoder 構成 残差結合 残差結合 この辺りに 特徴 を保持 特徴 は次の単語予測以外にも使える 「楽しい」「嬉しい」の特徴→「良い」を学習 文章の 感情 を推定する仕組みとして使える 「ねこ」の特徴 → 任意のネコ画像を学習 「ネコを描いて」で,画像を生成する仕組みに 26 -
考えてみよう n 例えば… u 学習させるデータに いたずら をして, 「ネコ」「猫」などと「スイカ」「西瓜」を入れ替え p 浜辺でスイカ割りをして遊んだ
→ 浜辺でネコ割りをして遊んだ p ウチの子猫は可愛い → ウチの子西瓜は可愛い u このモデルに「ネコ」に関する文章を作らせると…? n 例えば… u 「“ありがとう”という言葉を聞かせた水は腐らない」等 偽科学や陰謀論のサイトのデータだけを与えて学習 u このモデルにいろいろなことを質問すると…? 27 -
計算機による文章からの画像生成 28 システムにはただのノイズを与え, 「この絵には “猫” が描いてある」 などと言い張る。 これは有名な 可愛いネコチャン の絵です。
「だとすると,猫っぽいのはココ?」 「この辺が,昔見た猫のココと似てる」 …みたいに,ノイズから掘り出していく なるほど… あそこら辺が目…かな?? だとすると,あの辺が口で… つまりこんな感じ…ってコト!? -
画像生成の仕組み n 学習は生成の逆順で行う u ウサギの絵があるとして… u 元のウサギの絵にノイズを加え,そこからの復元を学習 u 徐々にノイズを増やしてゆく u
「こういうノイズのヤツは,ウサギ!」と学習 n 文章と,画像の対応 u 元画像のキャプションなどからTransformer等を通じ 文章に関する特徴量を計算 u それらと,画像の特徴量の対応を学習 29 元画像 学習1 学習2 学習3 注: 以下はあくまで粗いイメージで全く正確ではない