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

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

    View Slide


  2. 最新⽣成AIの仕組を、

    AI完全初⼼者に向けて

    数式を使わずにざっくり解説する資料です。


    株式会社Polyscapeの

    社内勉強会向けに作られた資料です。
    この資料について

    View Slide

  3. なぜやるか

    View Slide

  4. ゲーム制作含め、

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

    View Slide

  5. 残る職業第⼀位は?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. 発表者について
    ⼀応海外院でAI修⼠の

    学位があります・・
    ※わかりやすさを重視して、⼀部正確でない表現もあります

    View Slide

  11. CHAT GPT

    (Transformer)

    View Slide

  12. GPT:Generative Pretrained Transformer

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

    View Slide

  13. GPT:Generative Pretrained Transformer

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

    View Slide

  14. パラメータ数 前バージョンとの違い 作った⼈ 発表年
    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

    View Slide

  15. パラメータ数 前バージョンとの違い 作った⼈ 発表年
    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のまま。ただ(クソ)でかくなっただけ。

    View Slide

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

    View Slide

  17. Attention のみに基づいたseq2seq伝達モデル
    Transformerってなに?
    ⽂中のどの単語に注⽬すればいいのか

    を表すスコアを出すモデル。
    並列化できて学習早い! 精度⾼い! 汎⽤的!

    View Slide

  18. Attention のみに基づいたseq2seq伝達モデル
    Transformerってなに?
    ⽂中のどの単語に注⽬すればいいのか

    を表すスコアを出すモデル。
    並列化できて学習早い! 精度⾼い! 汎⽤的!
    ⼊⼒seqから出⼒seqを予測する

    モデル。

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  25. ChatGPTは⾔語モデルで、

    ⽣成したsequenceの最後の単語の次に来る確率の最も⾼い単語を次々に⽣成している

    View Slide

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

    View Slide

  27. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  32. 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:各単語間での関連性のスコアを出す
    ⽂中でどこが重要かわかる
    ※値は例です

    View Slide

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

    View Slide

  34. ⽂法は教えてないけど、Attentionにより
    Making

    more difficult

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

    View Slide

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

    View Slide

  36. 学習データ
    Transformer : English → German の翻訳を例として、
    450万のEnglish - German のセンテンスペア
    GPT2 : ⼈間によってフィルタリングされた

    良質なWEBクロールデータ800万(40GB)

    View Slide

  37. 学習データ
    Transformer : English → German の翻訳を例として、
    450万のEnglish - German のセンテンスペア
    GPT2 : ⼈間によってフィルタリングされた

    良質なWEBクロールデータ800万(40GB)
    Reddit のレビュー★3以上の記事に貼られた
    外部リンク(4500万)のHTMLからTextを抽出

    View Slide

  38. ChatGPTでのUpdate事項
    ⽂脈保持:
    RLHF:
    前のプロンプトの内容を保持する仕組み

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

    View Slide

  39. まとめ
    Transformerはインプットと今まで⽣成した⽂
    をもとに、次の単語を予測。
    Attentionの⼒+学習データの量がすさまじいので、

    ⼈間みたいに⾒えるが、

    知能をもっているわけではなく(今はね)、

    あくまで確率的に⾼いものを出しているだけ。
    「だけ」ということはないけど・・

    View Slide

  40. Stable Diffusion

    View Slide

  41. Ҿ༻ݩɿIUUQTBSYJWPSHBCT

    View Slide

  42. “ Unicorn Cat ”
    ① 適当なノイズ

    を⽤意します
    ②ノイズを特徴マップに

     エンコードします
    ③ ⼊⼒テキストも

     エンコードします
    ④テキストとノイズの
     特徴を結合します
    ⑤UNetを使って、

    ノイズ除去を1Step⾏います
    ×N
    Image
    Decoder
    UNet
    Image

    Encoder
    Text

    Encoder
    UNet
    ⑥ ⑤をN回繰り返します
    ⑦ 最終的に得られた

    特徴マップを画像にデ
    コードします
    UNetには毎回⼊⼒テキストを⼊れる
    ※ 特徴マップを潜在表現ともいうので、Latent Diffusion Modelという
    concat

    View Slide

  43. Image

    Decoder
    Image

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

    View Slide

  44. AutoEncoder
    Ҿ༻ݩɿIUUQTUJL[OFUBVUPFODPEFS
    圧縮(潜在)表現
    ⼊⼒ 出⼒
    正解

    ⾃分⾃⾝を⼊⼒とし、⾃分⾃⾝を出⼒しようとするニューラルネットワーク

    からホクホクの中間層を抜き取ることにより、⾃分の圧縮表現を作る

    View Slide

  45. “ Unicorn Cat ”
    Text

    Encoder
    テキストもまた違う⽅法で

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

    View Slide

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

    View Slide

  47. Forward Process(かんたん)
    Reverse Process(むずかしい)
    学習⽤に、ノイズ画像と元画像のペアをたくさん作る
    Forward Process で得られたデータをニューラルネットワークで学習
    ノイズ除去ってどうやってるの?
    正解

    こういうデータセットを
    ⼤量につくる
    正確には、ノイズを形成する正規分布のパラメータ(分散, 平均)を予測
    Diffusion Processともいう

    View Slide

  48. “ Unicorn Cat ”
    ① 適当なノイズ

    を⽤意します
    ②ノイズを特徴マップに

     エンコードします
    ③ ⼊⼒テキストも

     エンコードします
    ④テキストとノイズの
     特徴を結合します
    ⑤UNetを使って、

    ノイズ除去を1Step⾏います
    ×N
    Image
    Decoder
    UNet
    Image

    Encoder
    Text

    Encoder
    UNet
    ⑥ ⑤をN回繰り返します
    ⑦ 最終的に得られた

    特徴マップを画像にデ
    コードします
    UNetには毎回⼊⼒テキストを⼊れる
    ※ 特徴マップを潜在表現ともいうので、Latent Diffusion Modelという
    concat

    View Slide

  49. UNetの詳細については時間がないので割愛。
    毎ステップごとにテキスト情報を⼊れて

    ノイズ除去を⾏う。
    ( )

    View Slide

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

    正確にテキストの情報が画像の特徴に反映される。

    View Slide