Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
生成AIのことちゃんと理解していますか?
Search
John Smith
September 05, 2023
Technology
0
1.1k
生成AIのことちゃんと理解していますか?
DevelopersIO 2023にて発表した資料です。
John Smith
September 05, 2023
Tweet
Share
More Decks by John Smith
See All by John Smith
LLMの気持ちになってRAGのことを考えてみよう
john_smith
0
120
Google Cloudで始めるLLM
john_smith
0
730
Other Decks in Technology
See All in Technology
The Rise of LLMOps
asei
9
2k
あなたの知らない Function.prototype.toString() の世界
mizdra
PRO
4
1.9k
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
12
1.6k
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
4
1.2k
【LT】ソフトウェア産業は進化しているのか? #Agilejapan
takabow
0
120
Zennのパフォーマンスモニタリングでやっていること
ryosukeigarashi
0
570
LINEヤフーにおけるPrerender技術の導入とその効果
narirou
2
1.1k
JAWS UG 青森(弘前)クラウド・AWS入門
hiragahh
0
110
OCI Security サービス 概要
oracle4engineer
PRO
0
6.6k
VideoMamba: State Space Model for Efficient Video Understanding
chou500
0
260
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
130
CDCL による厳密解法を採用した MILP ソルバー
imai448
3
340
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
20
1.1k
A Modern Web Designer's Workflow
chriscoyier
693
190k
The Cost Of JavaScript in 2023
addyosmani
45
6.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
GitHub's CSS Performance
jonrohan
1030
460k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Agile that works and the tools we love
rasmusluckow
327
21k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
380
What's in a price? How to price your products and services
michaelherold
243
12k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Gamification - CAS2011
davidbonilla
80
5k
Transcript
生成AIのことちゃんと理解していますか? データアナリティクス事業本部 じょんすみす
自己紹介 生息地 _人人人人_ > 札幌 <  ̄Y^Y^Y^Y^ ̄ じょんすみす データアナリティクス事業本部 インテグレーション部
機械学習チーム 特徴 • 機械学習やってるっぽい • PythonよりRの方が好きらしい • Excelだけ全部やれと言われたら出来ないこともない • Hadoop, EMRおじさん
本日話す内容 生成AIと呼ばれるジャンルは、ChatGPTの登場で一躍有名になりました。 Transformer呼ばれる構造のDeep Learningモデルやそれを人間との会話のために ファインチューニングするため仕組みを含めた RLHF(Reinforcement Learning from Human Feedback)と呼ばれる手法は
LLM(Large Language Model)の中核となっています。 また、画像の生成においてはDiffusion Modelのような手法も存在しています。 AIをブラックボックスで利用するだけでなく、その仕組みについても理解してみませんか? セッション概要に記載させていただいたもの
本日話す内容 • いろいろ書いてありますが... • Deep LearningとTransformerの話を簡単にした後に • それを踏まえてのLLM(Large Language Model)との関わり方を
• 話したいと思いますよ セッション概要は風呂敷を広げ過ぎました
生成AI?LLM? 結局のところ解きたい問題は? 𝑃𝜃 (𝑦|𝐱)
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 出力が与えられた文章のトークン𝑤𝑡 である確率を最大化する パラメータ𝜃を求めることで学習をする 学習済みモデルを使うことで次の単語の予測が可能になる
Transformerでの生成のイメージ 普通の機械学習と同じようなことしてね? BERT 事前学習は途中の単語を抜いたもので行うが fine-tuningで解くタスクのための特徴量獲得 BERT: Pre-training of Deep Bidirectional
Transformers for Language Understanding GPT-1 様々なタスクで利用するためのネットワークの 使い方が記載されている Improving Language Understanding by Generative Pre-Training
モデルについて今一度考えてみる モデルが本当にやりたかったことは何だろう? • 真の関数𝑓(𝐱)なんてものは本当に存在するのか? • データを使って得られる関数 መ 𝑓(𝐱; 𝜃)が十分に近似できてればいいんじゃなかろうか? •
同じ分布から生成された未知の𝐱′も同様に予測できればいいんじゃないだろうか? • 人々はデータとして与えられていない外の世界を本当に見たいのだろうか?
モデルについて今一度考えてみる 日本語で読める中身に関しての情報 • ニューラルネットワークの万能近似定理 • 深層学習の統計理論 • 深層学習の原理に迫る • AI技術の最前線
• ディープラーニングを支える技術2
ディープなネットワークと表現学習 昔から言われてきた「ディープラーニングは特徴抽出も行う」という話 例えばCNNでは... • 浅い層ではエッジなどを抽出 • 層が深くなるごとにより複合的なパーツを認識していく • 学習した中間層は転移学習に利用できる 特徴量として圧縮された低次元の情報への変換を行う
• Autoencoderによる非線形の次元圧縮 • Word2VecをはじめとしたEmbeddingでの表現
ディープなネットワークと表現学習 自然言語の文章も階層的な構造をなす • 文章中の係り受け構造 • 代名詞などのその前の文章も見なければ解決しないもの • 物体や概念と言った文章の外側にあるものや常識との紐づけ 頭が赤い魚を食べる猫 中村明裕@nakamurakihiro氏のツイッターより
文章を理解するには様々な要素を加味したうえで考える必要がある 自然言語で書かれた文章の自由さ • 文章のみから構造が一意に決まるわけではない • 同じ表現をするのに異なる複数の方法がある
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 当時の論文とは用語が異なるので注意 ※
Transformerで考える「何を学習するか」 自己教師あり学習とSelf-Attention • Self-AttentionではこのAttention(𝑄, 𝐾, 𝑉)の3つの引数に同じ値を入れる • それによって入力された文章の構造を学習する • とは言うものの、どういうことなん?ってなりますよね
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の仕組み
Transformerで考える「何を学習するか」 自己教師あり学習とSelf-Attention 自己教師あり学習を使ってTransformerを学習させる • 最後の単語や途中の単語をマスクした状態にする • マスクした部分の単語を推論できるように学習させる 文章の構造や内容を理解しないと解けない問題によって自然言語の表現学習を内部で行っている モデルの性質上、次の単語を連続して予測していくことで文章生成も可能
Transformerでの生成のイメージ 【再掲】普通の機械学習と同じようなことしてね? BERT 事前学習は途中の単語を抜いたもので行うが fine-tuningで解くタスクのための特徴量獲得 BERT: Pre-training of Deep Bidirectional
Transformers for Language Understanding GPT-1 様々なタスクで利用するためのネットワークの 使い方が記載されている Improving Language Understanding by Generative Pre-Training
Transformerで考える「何を学習するか」 このほかにもTransformerには特徴が多くあるが... ここでは、最新の研究によって見えてきた内部の挙動などの 話は割愛します。 Attention Is All You Need 一般向けまとまった日本語情報としてはいかがお勧めです。
• 大規模言語モデルは新たな知能か
LLMをどう使いこなしていくのか? ここまでの話はLLMの性質をある程度知っておく内容でした。 ここからは、この仕組みを踏まえてどのように扱っていくべきか考える。 • End to Endだけでものごとを考えない • 業務フローを考える •
インターフェースとしての自然言語と制御
End to Endだけでものごとを考えない AIはよくわからないけど凄いことをしてくれるという印象があります。 AIに限らずあらゆるツールは単体ですべてをやってくれるわけではありません • AIに指示を出せば自ら考えて業務を実施してくれる • AIの導入によって人間を介することなく 自社の新サービスができる
After Before • ヒト・モノ・カネといった様々な資源や 業務のフローが複雑に連携し合う • サービス開発時にも様々なシステムが連携しあう
End to Endだけでものごとを考えない AIはよくわからないけど凄いことをしてくれるという印象があります。 AIに限らずあらゆるツールは単体ですべてをやってくれるわけではありません • AIに指示を出せば自ら考えて業務を実施してくれる • AIの導入によって人間を介することなく 自社の新サービスができる
After Before • ヒト・モノ・カネといった様々な資源や 業務のフローが複雑に連携し合う • サービス開発時にも様々なシステムが連携しあう
End to Endだけでものごとを考えない AIはよくわからないけど凄いことをしてくれるという印象があります。 AIに限らずあらゆるツールは単体ですべてをやってくれるわけではありません • 既存の仕組みの中に新たに組み込まれたり一部を置き換えたりする • AIという単一のものをそのまま持ってくるのではなく どこでどのように利用できるかを業務フローを含めて検討する必要がある
業務フローを考える AIという単一のものを導入しておしまいではないのなら どこにどのように組み込むのがいいのかを考える必要があります。 • 既存業務の置き換えや効率化のための導入 • 今までに無かった新サービス開発や既存製品の機能強化のための導入 ここに関して具体的に踏み込むことはしません(みなさんのアイデアの見せどころです!!) 場合によってはかなり細かく分解して考える必要があるケースもあります
インターフェースとしての自然言語と制御 インターフェースで考えた時に入力と出力の2つに分解できます。 さらにその入力を受け取って内部で実施する処理とその結果として出力と考えます。 入力として使うかもしれない 出力として使うかもしれない 内部の処理だけでの利用かもしれない
インターフェースとしての自然言語と制御 情報の入力インターフェースとして自然言語が利用する際には 入力されるすべての情報を制御できないことに注意する。 • フォームであれば「必須入力」や「選択式」に相当するものを入れることを強制できない • 不要な情報まで入れる可能性もある(特に機密情報などは要注意) • 誰もが必要な情報を言語化してテキストに落とし込めるとは限らない
インターフェースとしての自然言語と制御 じゃあ、出力インターフェースとして使うときの注意点は? • ほとんどのケースで人を不愉快にさせない出力となるが どのような文章を生成するかを完全にコントロールすることはできない • Hallucinationの発生は避けられないので相手が適切に情報を精査できるか考える必要がある
インターフェースとしての自然言語と制御 利用者が直接見るわけではない内部の処理として利用するようなケースは? • コンピュータは自然言語の扱いはあまり得意ではない • 確率的な動作をするような処理を許容できる内容を扱うのかを考える
LLMとの向き合い方をあたらめて 今一番熱いのは、チャットとその周辺を扱う仕組みだが誰かが作ったAPI として提供される機能の範囲だけで未来を見ないこと • LLMは大規模な"言語モデル"であり内部では自然言語の表現学習を行っている • 企業が提供するサービスのAPIとしてのエンドポイントの他、OSSも多く出てきている • 機能を限定的にしつつも一般的なコンピュータで動かせる規模のモデルも出てきている 必ずしもチャットという用途のみに限定して利用方法を検討する必要はない
まとめ これでおしまいです • LLMが内部でどんなことをしているのか • 性質を知ったうえで使おう
セッションアンケート DAY2 満足度上位のセッションを後日ブログで公開予定! 回答へのご協力をよろしくお願いします。 https://forms.gle/Upi2i5PsMTEUyJ6F8
プレーンです。自由に文字や図を置けます 本会場での次のセッションのお知らせ
31