Slide 1

Slide 1 text

AI完全初⼼者でも 最新の⽣成AIの仕組が わかった気になれるプレゼン ChatGPT , Stable Diffusion編 @shimap_sampo (株式会社Polyscape 代表取締役)

Slide 2

Slide 2 text


 最新⽣成AIの仕組を、 
 AI完全初⼼者に向けて 
 数式を使わずにざっくり解説する資料です。 
 
 株式会社Polyscapeの 
 社内勉強会向けに作られた資料です。 この資料について

Slide 3

Slide 3 text

なぜやるか

Slide 4

Slide 4 text

ゲーム制作含め、 
 ⽣成AIはクリエイティブ⾯に侵⾷。 あらゆる職業がAIに置き換わりそうな予感。

Slide 5

Slide 5 text

残る職業第⼀位は?

Slide 6

Slide 6 text

残る職業第⼀位は? AIを使える⼈ / 作る⼈ (第⼀位かはわからないけど、そこそこ上位にいそう)

Slide 7

Slide 7 text

残る職業第⼀位は? AIを使える⼈ / 作る⼈ (第⼀位かはわからないけど、そこそこ上位にいそう) 喰われる側ではなく、喰う側になろう

Slide 8

Slide 8 text

使いこなすには Promptをこねくり回すのも⼤事だけど、 基礎・原理を知ることが重要

Slide 9

Slide 9 text

画像⽣成:Stable Diffusion やること (GPT / Transformer) (潜在拡散モデル) テキスト⽣成:CHAT GPT

Slide 10

Slide 10 text

発表者について ⼀応海外院でAI修⼠の 
 学位があります・・ ※わかりやすさを重視して、⼀部正確でない表現もあります

Slide 11

Slide 11 text

CHAT GPT 
 (Transformer)

Slide 12

Slide 12 text

GPT:Generative Pretrained Transformer 
 TransformerXL + 事前学習 + (ファインチューニング) ※GPT 2以降はファインチューニングはしていない

Slide 13

Slide 13 text

GPT:Generative Pretrained Transformer 
 TransformerXL + 事前学習 + (ファインチューニング) でかいTransformerを⼤量に事前学習させたやつ。 ※GPT 2以降はファインチューニングはしていない

Slide 14

Slide 14 text

パラメータ数 前バージョンとの違い 作った⼈ 発表年 Transformer - - Google 2017 GPT1 1億1700万 (12レイヤー) 事前学習, ファインチューニング Open AI 2018 GPT2 15億 
 (48レイヤー) 語彙数増やした 正規化レイヤーの位置変えた ファンチューニングやめた Open AI 2019 GPT3 1750億 特になし 
 (でかくなっただけ) Open AI 2020/5 GPT4 未公開 画像が読めるようになった 
 強化学習(RLHF) Open AI 2023/3

Slide 15

Slide 15 text

パラメータ数 前バージョンとの違い 作った⼈ 発表年 Transformer - - Google 2017 GPT1 1億1700万 (12レイヤー) 事前学習, ファインチューニング Open AI 2018 GPT2 15億 
 (48レイヤー) 語彙数増やした 正規化レイヤーの位置変えた ファンチューニングやめた Open AI 2019 GPT3 1750億 特になし 
 (でかくなっただけ) Open AI 2020/5 GPT4 未公開 画像が読めるようになった 
 強化学習(RLHF) Open AI 2023/3 基本モデルは、Transformerのまま。ただ(クソ)でかくなっただけ。

Slide 16

Slide 16 text

Attention のみに基づいたseq2seq伝達モデル Transformerってなに? 並列化できて学習早い! 精度⾼い! 汎⽤的!

Slide 17

Slide 17 text

Attention のみに基づいたseq2seq伝達モデル Transformerってなに? ⽂中のどの単語に注⽬すればいいのか 
 を表すスコアを出すモデル。 並列化できて学習早い! 精度⾼い! 汎⽤的!

Slide 18

Slide 18 text

Attention のみに基づいたseq2seq伝達モデル Transformerってなに? ⽂中のどの単語に注⽬すればいいのか 
 を表すスコアを出すモデル。 並列化できて学習早い! 精度⾼い! 汎⽤的! ⼊⼒seqから出⼒seqを予測する 
 モデル。

Slide 19

Slide 19 text

seq2seqモデル なんか喋って Speak something はい、喜んでお話しします! なんか喋って 翻訳を学習したモデル Chatを学習したモデル

Slide 20

Slide 20 text

seq2seqモデル なんか喋って Speak something はい、喜んでお話しします! なんか喋って 翻訳を学習したモデル Chatを学習したモデル テキストToテキストならいろんなことに使えて汎⽤的!

Slide 21

Slide 21 text

Transformerは⾔語モデルになる! ポイント そしてGPTは⼤規模⾔語モデル(LLM)である

Slide 22

Slide 22 text

⾔語モデルって何? 「むかしむかし」 ときたら…?

Slide 23

Slide 23 text

⾔語モデル:単語の出現確率を答えるモデル P(あるところに | むかしむかし) > P(ウェイヨッシャ | むかしむかし) 「むかしむかし」のあとに「あるところに」が出現する確率は、 「むかしむかし」のあとに「ウェイヨッシャ」が出現する確率より⾼い P(おじいさん, が, いました) > P(が, いました, おじいさん) 「おじいさんがいました」という⽂字列の出現確率は、 「がいましたおじいさん」という⽂字列の出現確率より⾼い

Slide 24

Slide 24 text

⼀番単純な⾔語モデル (n-gram) P(あるところに | むかしむかし) = C(むかしむかし, あるところに) C(むかしむかし) は学習データにおける むかしむかし の出現回数 C(むかしむかし)

Slide 25

Slide 25 text

ChatGPTは⾔語モデルで、 
 ⽣成したsequenceの最後の単語の次に来る確率の最も⾼い単語を次々に⽣成している

Slide 26

Slide 26 text

Transformerを解説していく 論⽂:Attention is All You Need (Google, 2017)

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Τϯίʔμ σίʔμ ʮࢲ͸ՈΛݐͯͨʯ )PVTF *CVJMUB ࠷ऴembedding ຋༁લͷจষΛՃຯͨ͠දݱ Ґஔ৘ใΛ΋ͬͨදݱ จதͰͷॏཁ౓ΛՃຯͨ͠දݱ Ґஔ৘ใΛ΋ͬͨදݱ จதͰͷॏཁ౓ΛՃຯͨ͠දݱ ຋༁લͷจষ ࣍ʹདྷͦ͏ͳ୯ޠ ࠓ·Ͱͷग़ྗ 1PTJUJPOBM&ODPEJOH .VMUJ)FBE"UUFOUJPO ''// 1PTJUJPOBM&ODPEJOH .VMUJ)FBE"UUFOUJPO ''// .VMUJ)FBE"UUFOUJPO .VMUJ)FBE"UUFOUJPO ࠷ऴembedding º/૚ º/૚

Slide 29

Slide 29 text

Τϯίʔμ σίʔμ ʮࢲ͸ՈΛݐͯͨʯ )PVTF *CVJMUB ຋༁લͷจষ ࣍ʹདྷͦ͏ͳ୯ޠ ࠓ·Ͱͷग़ྗ

Slide 30

Slide 30 text

Τϯίʔμ σίʔμ ʮࢲ͸ՈΛݐͯͨʯ )PVTF *CVJMUB ຋༁લͷจষ ࣍ʹདྷͦ͏ͳ୯ޠ ࠓ·Ͱͷग़ྗ 「いままで⽣成した⽂章を⼊れて次の⼀単語を出す」 というデコーダの基本動作に、 エンコーダがインプット⽂の情報を⾜すイメージ

Slide 31

Slide 31 text

Τϯίʔμ σίʔμ ʮࢲ͸ՈΛݐͯͨʯ )PVTF *CVJMUB ࠷ऴembedding ຋༁લͷจষΛՃຯͨ͠දݱ Ґஔ৘ใΛ΋ͬͨදݱ จதͰͷॏཁ౓ΛՃຯͨ͠දݱ Ґஔ৘ใΛ΋ͬͨදݱ จதͰͷॏཁ౓ΛՃຯͨ͠දݱ ຋༁લͷจষ ࣍ʹདྷͦ͏ͳ୯ޠ ࠓ·Ͱͷग़ྗ 1PTJUJPOBM&ODPEJOH .VMUJ)FBE"UUFOUJPO ''// 1PTJUJPOBM&ODPEJOH .VMUJ)FBE"UUFOUJPO ''// .VMUJ)FBE"UUFOUJPO .VMUJ)FBE"UUFOUJPO ࠷ऴembedding º/૚ º/૚ "UUFOUJPOϨΠϠʔΛט·ͤͯɺจதͷॏཁ౓ΛՃຯ͠ ͨදݱʹ͢Δ͜ͱͰਫ਼౓Λ্͛Δͷ͕ϙΠϯτ

Slide 32

Slide 32 text

This is a pen. This 0.17 0.2 0.03 0.6 is 0.2 0.47 0.15 0.18 a 0.03 0.15 0.75 0.07 pen. 0.6 0.18 0.07 0.15 Self Attention:各単語間での関連性のスコアを出す ⽂中でどこが重要かわかる ※値は例です

Slide 33

Slide 33 text

合算 8つの異なる Attention Head で別々に計算し合算 1個でやるよりも精度が⾼かった!

Slide 34

Slide 34 text

⽂法は教えてないけど、Attentionにより Making … more difficult 
 という⽂法構造が浮かび上がる わりと⻑い複雑な⽂章でも意味を汲み取った 返事をしてくれるのはAttentionによる特徴抽 出のおかげ? Ҿ༻ݩɿIUUQTEFFQMFBSOJOHIBUFOBCMPHDPNFOUSZUSBOTGPSNFS

Slide 35

Slide 35 text

Positional Encodingや トークナイズ(BPE)の話は⽬的から逸れるので割愛 ( )

Slide 36

Slide 36 text

学習データ Transformer : English → German の翻訳を例として、 450万のEnglish - German のセンテンスペア GPT2 : ⼈間によってフィルタリングされた 
 良質なWEBクロールデータ800万(40GB)

Slide 37

Slide 37 text

学習データ Transformer : English → German の翻訳を例として、 450万のEnglish - German のセンテンスペア GPT2 : ⼈間によってフィルタリングされた 
 良質なWEBクロールデータ800万(40GB) Reddit のレビュー★3以上の記事に貼られた 外部リンク(4500万)のHTMLからTextを抽出

Slide 38

Slide 38 text

ChatGPTでのUpdate事項 ⽂脈保持: RLHF: 前のプロンプトの内容を保持する仕組み 
 例)「続けて」で続きを書かせる GPT3が極端に⻑いインプットを受け付けられるので、 前のプロンプトを結合したものをインプットとしている模様 といったFBで強化学習する いろいろ⼯夫はしてそうだが、詳細は⾮公開。

Slide 39

Slide 39 text

まとめ Transformerはインプットと今まで⽣成した⽂ をもとに、次の単語を予測。 Attentionの⼒+学習データの量がすさまじいので、 
 ⼈間みたいに⾒えるが、 
 知能をもっているわけではなく(今はね)、 
 あくまで確率的に⾼いものを出しているだけ。 「だけ」ということはないけど・・

Slide 40

Slide 40 text

Stable Diffusion

Slide 41

Slide 41 text

Ҿ༻ݩɿIUUQTBSYJWPSHBCT

Slide 42

Slide 42 text

“ Unicorn Cat ” ① 適当なノイズ 
 を⽤意します ②ノイズを特徴マップに 
  エンコードします ③ ⼊⼒テキストも 
  エンコードします ④テキストとノイズの  特徴を結合します ⑤UNetを使って、 
 ノイズ除去を1Step⾏います ×N Image Decoder UNet Image 
 Encoder Text 
 Encoder UNet ⑥ ⑤をN回繰り返します ⑦ 最終的に得られた 
 特徴マップを画像にデ コードします UNetには毎回⼊⼒テキストを⼊れる ※ 特徴マップを潜在表現ともいうので、Latent Diffusion Modelという concat

Slide 43

Slide 43 text

Image 
 Decoder Image 
 Encoder いろいろ いわば画像の圧縮表現 VAEというやつでつくる Variational Auto Encoder これは何? 特徴マップ(潜在表現) これにより元画像が1/48くらいの サイズになり、計算量が削減

Slide 44

Slide 44 text

AutoEncoder Ҿ༻ݩɿIUUQTUJL[OFUBVUPFODPEFS 圧縮(潜在)表現 ⼊⼒ 出⼒ 正解 問 ⾃分⾃⾝を⼊⼒とし、⾃分⾃⾝を出⼒しようとするニューラルネットワーク 
 からホクホクの中間層を抜き取ることにより、⾃分の圧縮表現を作る

Slide 45

Slide 45 text

“ Unicorn Cat ” Text 
 Encoder テキストもまた違う⽅法で 
 ベクトルにする テキストをベクトル化したものは、 「埋め込み表現(embeddings)」と⾔われたりする (2.1, 0.3, 0.8, 1.2, 3.2) (⼀般に、⾼次元のものを低次元で表現したものを「埋め込み」という)

Slide 46

Slide 46 text

どうやってるの?:CLIPという⼿法 テキストと画像のペアを⼤量に学習して、画像とテキストを同⼀の空間に埋め込む Ҿ༻ݩɿIUUQTBSYJWPSHBCT

Slide 47

Slide 47 text

Forward Process(かんたん) Reverse Process(むずかしい) 学習⽤に、ノイズ画像と元画像のペアをたくさん作る Forward Process で得られたデータをニューラルネットワークで学習 ノイズ除去ってどうやってるの? 正解 問 こういうデータセットを ⼤量につくる 正確には、ノイズを形成する正規分布のパラメータ(分散, 平均)を予測 Diffusion Processともいう

Slide 48

Slide 48 text

“ Unicorn Cat ” ① 適当なノイズ 
 を⽤意します ②ノイズを特徴マップに 
  エンコードします ③ ⼊⼒テキストも 
  エンコードします ④テキストとノイズの  特徴を結合します ⑤UNetを使って、 
 ノイズ除去を1Step⾏います ×N Image Decoder UNet Image 
 Encoder Text 
 Encoder UNet ⑥ ⑤をN回繰り返します ⑦ 最終的に得られた 
 特徴マップを画像にデ コードします UNetには毎回⼊⼒テキストを⼊れる ※ 特徴マップを潜在表現ともいうので、Latent Diffusion Modelという concat

Slide 49

Slide 49 text

UNetの詳細については時間がないので割愛。 毎ステップごとにテキスト情報を⼊れて 
 ノイズ除去を⾏う。 ( )

Slide 50

Slide 50 text

まとめ ノイズ画像からちょっとづつノイズを除くという処理を、 エンコーディングした⼊⼒テキストの特徴を⼊れながらやる。 画像とテキストのペアを⼤量に学習しているので、 
 正確にテキストの情報が画像の特徴に反映される。