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

生成AIのことちゃんと理解していますか?

John Smith
September 05, 2023

 生成AIのことちゃんと理解していますか?

DevelopersIO 2023にて発表した資料です。

John Smith

September 05, 2023
Tweet

More Decks by John Smith

Other Decks in Technology

Transcript

  1. 生成AIのことちゃんと理解していますか?
    データアナリティクス事業本部
    じょんすみす

    View full-size slide

  2. 自己紹介
    生息地
    _人人人人_
    > 札幌 <
     ̄Y^Y^Y^Y^ ̄
    じょんすみす
    データアナリティクス事業本部
    インテグレーション部
    機械学習チーム
    特徴
    • 機械学習やってるっぽい
    • PythonよりRの方が好きらしい
    • Excelだけ全部やれと言われたら出来ないこともない
    • Hadoop, EMRおじさん

    View full-size slide

  3. 本日話す内容
    生成AIと呼ばれるジャンルは、ChatGPTの登場で一躍有名になりました。
    Transformer呼ばれる構造のDeep Learningモデルやそれを人間との会話のために
    ファインチューニングするため仕組みを含めた
    RLHF(Reinforcement Learning from Human Feedback)と呼ばれる手法は
    LLM(Large Language Model)の中核となっています。
    また、画像の生成においてはDiffusion Modelのような手法も存在しています。
    AIをブラックボックスで利用するだけでなく、その仕組みについても理解してみませんか?
    セッション概要に記載させていただいたもの

    View full-size slide

  4. 本日話す内容
    • いろいろ書いてありますが...
    • Deep LearningとTransformerの話を簡単にした後に
    • それを踏まえてのLLM(Large Language Model)との関わり方を
    • 話したいと思いますよ
    セッション概要は風呂敷を広げ過ぎました

    View full-size slide

  5. 生成AI?LLM?
    結局のところ解きたい問題は?
    𝑃𝜃
    (𝑦|𝐱)

    View full-size slide

  6. Transformerでの生成のイメージ
    Transformerの場合だと...
    Embedding
    Positional Encoding
    Masked
    Multi-Head
    Attention
    Add & Norm
    Feed Forward
    Add & Norm
    Linear
    softmax
    𝐱 input
    𝑦
    𝜃
    𝑃𝜃
    (𝑦|𝐱)
    次に来るトークン これまでのトークン
    𝑃𝜃
    (𝑤𝑡
    |𝑤1
    , … , 𝑤𝑡−1
    )
    𝐱をトークン列(𝑤1
    , 𝑤2
    , … , 𝑤𝑡−1
    )、𝑦を𝑤𝑡
    として
    を求める関数𝑓(𝑤1
    , 𝑤2
    , … , 𝑤𝑡−1
    ; 𝜃)の定義としてのTransformer
    出力が与えられた文章のトークン𝑤𝑡
    である確率を最大化する
    パラメータ𝜃を求めることで学習をする
    学習済みモデルを使うことで次の単語の予測が可能になる

    View full-size slide

  7. Transformerでの生成のイメージ
    普通の機械学習と同じようなことしてね?
    BERT
    事前学習は途中の単語を抜いたもので行うが
    fine-tuningで解くタスクのための特徴量獲得
    BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
    GPT-1
    様々なタスクで利用するためのネットワークの
    使い方が記載されている
    Improving Language Understanding by Generative Pre-Training

    View full-size slide

  8. モデルについて今一度考えてみる
    モデルが本当にやりたかったことは何だろう?
    • 真の関数𝑓(𝐱)なんてものは本当に存在するのか?
    • データを使って得られる関数 መ
    𝑓(𝐱; 𝜃)が十分に近似できてればいいんじゃなかろうか?
    • 同じ分布から生成された未知の𝐱′も同様に予測できればいいんじゃないだろうか?
    • 人々はデータとして与えられていない外の世界を本当に見たいのだろうか?

    View full-size slide

  9. モデルについて今一度考えてみる
    日本語で読める中身に関しての情報
    • ニューラルネットワークの万能近似定理
    • 深層学習の統計理論
    • 深層学習の原理に迫る
    • AI技術の最前線
    • ディープラーニングを支える技術2

    View full-size slide

  10. ディープなネットワークと表現学習
    昔から言われてきた「ディープラーニングは特徴抽出も行う」という話
    例えばCNNでは...
    • 浅い層ではエッジなどを抽出
    • 層が深くなるごとにより複合的なパーツを認識していく
    • 学習した中間層は転移学習に利用できる
    特徴量として圧縮された低次元の情報への変換を行う
    • Autoencoderによる非線形の次元圧縮
    • Word2VecをはじめとしたEmbeddingでの表現

    View full-size slide

  11. ディープなネットワークと表現学習
    自然言語の文章も階層的な構造をなす
    • 文章中の係り受け構造
    • 代名詞などのその前の文章も見なければ解決しないもの
    • 物体や概念と言った文章の外側にあるものや常識との紐づけ
    頭が赤い魚を食べる猫
    中村明裕@nakamurakihiro氏のツイッターより
    文章を理解するには様々な要素を加味したうえで考える必要がある
    自然言語で書かれた文章の自由さ
    • 文章のみから構造が一意に決まるわけではない
    • 同じ表現をするのに異なる複数の方法がある

    View full-size slide

  12. Transformerで考える「何を学習するか」
    自己教師あり学習とSelf-Attention
    Query, Key, Valueの3つの引数をもつAttention関数を導入
    要素はそれぞれベクトルで与えられる
    Attention(𝑄, 𝐾, 𝑉)
    この関数は以下のような計算を行うことを想定したもの
    • QueryとKeyで要素間のマッピングを行う
    • それに対してValueでの変換を行ったものを出力する
    Neural Machine Translation by Jointly Learning to Align and Translate
    例) 英語とフランス語のマッピング※
    Source-Target型のAttention
    当時の論文とは用語が異なるので注意

    View full-size slide

  13. Transformerで考える「何を学習するか」
    自己教師あり学習とSelf-Attention
    • Self-AttentionではこのAttention(𝑄, 𝐾, 𝑉)の3つの引数に同じ値を入れる
    • それによって入力された文章の構造を学習する
    • とは言うものの、どういうことなん?ってなりますよね

    View full-size slide

  14. Transformerで考える「何を学習するか」
    自己教師あり学習とSelf-Attention
    Attention関数の中身はどうなってるか?
    まずはScaled Dot-Product Attentionという構造がある(左)
    Attention 𝑄, 𝐾, 𝑉 = softmax
    𝑄𝐾𝑇
    𝑑
    𝑉
    Attention Is All You Need
    前段に全結合層を挟みこの構造を複数並列させる(右)
    MultiHead 𝑄, 𝐾, 𝑉 = Concat(head1
    , … , headℎ
    )𝑊𝑜
    where head𝑖
    = Attention(𝑄𝑊
    𝑖
    𝑄, 𝐾𝑊𝑖
    𝐾, 𝑉𝑊𝑖
    𝑉)
    具体的な動きに関して分かりやすく解説されたサイトがあります
    【Transformerの基礎】Multi-Head Attentionの仕組み

    View full-size slide

  15. Transformerで考える「何を学習するか」
    自己教師あり学習とSelf-Attention
    自己教師あり学習を使ってTransformerを学習させる
    • 最後の単語や途中の単語をマスクした状態にする
    • マスクした部分の単語を推論できるように学習させる
    文章の構造や内容を理解しないと解けない問題によって自然言語の表現学習を内部で行っている
    モデルの性質上、次の単語を連続して予測していくことで文章生成も可能

    View full-size slide

  16. Transformerでの生成のイメージ
    【再掲】普通の機械学習と同じようなことしてね?
    BERT
    事前学習は途中の単語を抜いたもので行うが
    fine-tuningで解くタスクのための特徴量獲得
    BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
    GPT-1
    様々なタスクで利用するためのネットワークの
    使い方が記載されている
    Improving Language Understanding by Generative Pre-Training

    View full-size slide

  17. Transformerで考える「何を学習するか」
    このほかにもTransformerには特徴が多くあるが...
    ここでは、最新の研究によって見えてきた内部の挙動などの
    話は割愛します。
    Attention Is All You Need
    一般向けまとまった日本語情報としてはいかがお勧めです。
    • 大規模言語モデルは新たな知能か

    View full-size slide

  18. LLMをどう使いこなしていくのか?
    ここまでの話はLLMの性質をある程度知っておく内容でした。
    ここからは、この仕組みを踏まえてどのように扱っていくべきか考える。
    • End to Endだけでものごとを考えない
    • 業務フローを考える
    • インターフェースとしての自然言語と制御

    View full-size slide

  19. End to Endだけでものごとを考えない
    AIはよくわからないけど凄いことをしてくれるという印象があります。
    AIに限らずあらゆるツールは単体ですべてをやってくれるわけではありません
    • AIに指示を出せば自ら考えて業務を実施してくれる
    • AIの導入によって人間を介することなく
    自社の新サービスができる
    After
    Before
    • ヒト・モノ・カネといった様々な資源や
    業務のフローが複雑に連携し合う
    • サービス開発時にも様々なシステムが連携しあう

    View full-size slide

  20. End to Endだけでものごとを考えない
    AIはよくわからないけど凄いことをしてくれるという印象があります。
    AIに限らずあらゆるツールは単体ですべてをやってくれるわけではありません
    • AIに指示を出せば自ら考えて業務を実施してくれる
    • AIの導入によって人間を介することなく
    自社の新サービスができる
    After
    Before
    • ヒト・モノ・カネといった様々な資源や
    業務のフローが複雑に連携し合う
    • サービス開発時にも様々なシステムが連携しあう

    View full-size slide

  21. End to Endだけでものごとを考えない
    AIはよくわからないけど凄いことをしてくれるという印象があります。
    AIに限らずあらゆるツールは単体ですべてをやってくれるわけではありません
    • 既存の仕組みの中に新たに組み込まれたり一部を置き換えたりする
    • AIという単一のものをそのまま持ってくるのではなく
    どこでどのように利用できるかを業務フローを含めて検討する必要がある

    View full-size slide

  22. 業務フローを考える
    AIという単一のものを導入しておしまいではないのなら
    どこにどのように組み込むのがいいのかを考える必要があります。
    • 既存業務の置き換えや効率化のための導入
    • 今までに無かった新サービス開発や既存製品の機能強化のための導入
    ここに関して具体的に踏み込むことはしません(みなさんのアイデアの見せどころです!!)
    場合によってはかなり細かく分解して考える必要があるケースもあります

    View full-size slide

  23. インターフェースとしての自然言語と制御
    インターフェースで考えた時に入力と出力の2つに分解できます。
    さらにその入力を受け取って内部で実施する処理とその結果として出力と考えます。
    入力として使うかもしれない
    出力として使うかもしれない
    内部の処理だけでの利用かもしれない

    View full-size slide

  24. インターフェースとしての自然言語と制御
    情報の入力インターフェースとして自然言語が利用する際には
    入力されるすべての情報を制御できないことに注意する。
    • フォームであれば「必須入力」や「選択式」に相当するものを入れることを強制できない
    • 不要な情報まで入れる可能性もある(特に機密情報などは要注意)
    • 誰もが必要な情報を言語化してテキストに落とし込めるとは限らない

    View full-size slide

  25. インターフェースとしての自然言語と制御
    じゃあ、出力インターフェースとして使うときの注意点は?
    • ほとんどのケースで人を不愉快にさせない出力となるが
    どのような文章を生成するかを完全にコントロールすることはできない
    • Hallucinationの発生は避けられないので相手が適切に情報を精査できるか考える必要がある

    View full-size slide

  26. インターフェースとしての自然言語と制御
    利用者が直接見るわけではない内部の処理として利用するようなケースは?
    • コンピュータは自然言語の扱いはあまり得意ではない
    • 確率的な動作をするような処理を許容できる内容を扱うのかを考える

    View full-size slide

  27. LLMとの向き合い方をあたらめて
    今一番熱いのは、チャットとその周辺を扱う仕組みだが誰かが作ったAPI
    として提供される機能の範囲だけで未来を見ないこと
    • LLMは大規模な"言語モデル"であり内部では自然言語の表現学習を行っている
    • 企業が提供するサービスのAPIとしてのエンドポイントの他、OSSも多く出てきている
    • 機能を限定的にしつつも一般的なコンピュータで動かせる規模のモデルも出てきている
    必ずしもチャットという用途のみに限定して利用方法を検討する必要はない

    View full-size slide

  28. まとめ
    これでおしまいです
    • LLMが内部でどんなことをしているのか
    • 性質を知ったうえで使おう

    View full-size slide

  29. セッションアンケート DAY2
    満足度上位のセッションを後日ブログで公開予定!
    回答へのご協力をよろしくお願いします。
    https://forms.gle/Upi2i5PsMTEUyJ6F8

    View full-size slide

  30. プレーンです。自由に文字や図を置けます
    本会場での次のセッションのお知らせ

    View full-size slide