Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

AI完全初心者でも最新の生成AIの仕組がわかった気になれるプレゼン

 AI完全初心者でも最新の生成AIの仕組がわかった気になれるプレゼン

AI完全初心者でも数式を使わずにStableDiffusionやChatGPTのの仕組がわかった気になれるプレゼンです。非専門家が「わかった気になれる」ことがゴールなので、ざっくりとした説明なのはご了承ください!

株式会社Polyscapeの社内勉強会用の資料です。

作成者:https://twitter.com/shimap_sampo

Hiroki Shimada

May 29, 2023
Tweet

More Decks by Hiroki Shimada

Other Decks in Technology

Transcript

  1. パラメータ数 前バージョンとの違い 作った⼈ 発表年 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
  2. パラメータ数 前バージョンとの違い 作った⼈ 発表年 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のまま。ただ(クソ)でかくなっただけ。
  3. ⾔語モデル:単語の出現確率を答えるモデル P(あるところに | むかしむかし) > P(ウェイヨッシャ | むかしむかし) 「むかしむかし」のあとに「あるところに」が出現する確率は、 「むかしむかし」のあとに「ウェイヨッシャ」が出現する確率より⾼い

    P(おじいさん, が, いました) > P(が, いました, おじいさん) 「おじいさんがいました」という⽂字列の出現確率は、 「がいましたおじいさん」という⽂字列の出現確率より⾼い
  4. Τϯίʔμ σίʔμ ʮࢲ͸ՈΛݐͯͨʯ )PVTF *CVJMUB ࠷ऴembedding ຋༁લͷจষΛՃຯͨ͠දݱ Ґஔ৘ใΛ΋ͬͨදݱ จதͰͷॏཁ౓ΛՃຯͨ͠දݱ Ґஔ৘ใΛ΋ͬͨදݱ

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

    จதͰͷॏཁ౓ΛՃຯͨ͠දݱ ຋༁લͷจষ ࣍ʹདྷͦ͏ͳ୯ޠ ࠓ·Ͱͷग़ྗ 1PTJUJPOBM&ODPEJOH .VMUJ)FBE"UUFOUJPO ''// 1PTJUJPOBM&ODPEJOH .VMUJ)FBE"UUFOUJPO ''// .VMUJ)FBE"UUFOUJPO .VMUJ)FBE"UUFOUJPO ࠷ऴembedding º/૚ º/૚ "UUFOUJPOϨΠϠʔΛט·ͤͯɺจதͷॏཁ౓ΛՃຯ͠ ͨදݱʹ͢Δ͜ͱͰਫ਼౓Λ্͛Δͷ͕ϙΠϯτ
  6. 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:各単語間での関連性のスコアを出す ⽂中でどこが重要かわかる ※値は例です
  7. 学習データ Transformer : English → German の翻訳を例として、 450万のEnglish - German

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

    のセンテンスペア GPT2 : ⼈間によってフィルタリングされた 
 良質なWEBクロールデータ800万(40GB) Reddit のレビュー★3以上の記事に貼られた 外部リンク(4500万)のHTMLからTextを抽出
  9. “ Unicorn Cat ” ① 適当なノイズ 
 を⽤意します ②ノイズを特徴マップに 


     エンコードします ③ ⼊⼒テキストも 
  エンコードします ④テキストとノイズの  特徴を結合します ⑤UNetを使って、 
 ノイズ除去を1Step⾏います ×N Image Decoder UNet Image 
 Encoder Text 
 Encoder UNet ⑥ ⑤をN回繰り返します ⑦ 最終的に得られた 
 特徴マップを画像にデ コードします UNetには毎回⼊⼒テキストを⼊れる ※ 特徴マップを潜在表現ともいうので、Latent Diffusion Modelという concat
  10. Image 
 Decoder Image 
 Encoder いろいろ いわば画像の圧縮表現 VAEというやつでつくる Variational

    Auto Encoder これは何? 特徴マップ(潜在表現) これにより元画像が1/48くらいの サイズになり、計算量が削減
  11. “ Unicorn Cat ” Text 
 Encoder テキストもまた違う⽅法で 
 ベクトルにする

    テキストをベクトル化したものは、 「埋め込み表現(embeddings)」と⾔われたりする (2.1, 0.3, 0.8, 1.2, 3.2) (⼀般に、⾼次元のものを低次元で表現したものを「埋め込み」という)
  12. Forward Process(かんたん) Reverse Process(むずかしい) 学習⽤に、ノイズ画像と元画像のペアをたくさん作る Forward Process で得られたデータをニューラルネットワークで学習 ノイズ除去ってどうやってるの? 正解

    問 こういうデータセットを ⼤量につくる 正確には、ノイズを形成する正規分布のパラメータ(分散, 平均)を予測 Diffusion Processともいう
  13. “ Unicorn Cat ” ① 適当なノイズ 
 を⽤意します ②ノイズを特徴マップに 


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