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
63
Google Cloudで始めるLLM
john_smith
0
730
Other Decks in Technology
See All in Technology
SkiaとImpellerについて
moriya0130
0
150
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
420
Amazon CloudWatch Network Monitor のススメ
yuki_ink
1
220
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
430
Platform Engineering for Software Developers and Architects
syntasso
1
540
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
150
LINEヤフーにおけるPrerender技術の導入とその効果
narirou
2
570
電話を切らさない技術 電話自動応答サービスを支える フロントエンド
barometrica
2
440
Chasing the White Whale of Open Source - ROI
mrbobbytables
0
120
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
490
生成AIが変えるデータ分析の全体像
ishikawa_satoru
0
210
SSMRunbook作成の勘所_20241120
koichiotomo
3
180
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Designing for humans not robots
tammielis
250
25k
Why Our Code Smells
bkeepers
PRO
334
57k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
RailsConf 2023
tenderlove
29
910
Documentation Writing (for coders)
carmenintech
65
4.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
655
59k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
140
Automating Front-end Workflow
addyosmani
1366
200k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
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