Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Gemma2 2Bをキャラクター化.pdf
Search
yumefuku
November 25, 2024
Technology
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Gemma2 2Bをキャラクター化.pdf
#さくらのAI Meetup vol.6 「ファインチューニング」
yumefuku
November 25, 2024
Other Decks in Technology
See All in Technology
パッチ更新でterraform initが落ちた日
grimoh
1
140
SAENM ~Jupyterで残すPoCの試行錯誤、未来の自分と仲間を助ける記録!~
terapyon
0
110
パスキーの自動テストはどこまでいけるのか
teamlab
PRO
0
250
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
2.4k
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
330
触りたくないデータに、どう触るか AI時代のRBACアクセスガバナンス
ivry_presentationmaterials
0
260
NDIでApple Vision Proにリアルタイム映像送信
jyouryuusui
0
120
今さら理解するウェブフォントver.2026
takanorip
3
820
Refining Active Record
shugo
0
160
分析AIエージェントを育てる、動く環境を育てる
codatum
1
1.1k
⾮構造化データを価値に変える AI エージェント基盤とその組織
ivry_presentationmaterials
0
190
夫婦で子育てするための育児標準化
codmoninc
PRO
0
350
Featured
See All Featured
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
360
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
ラッコキーワード サービス紹介資料
rakko
1
5.3M
Mind Mapping
helmedeiros
1
400
A better future with KSS
kneath
240
18k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
HDC tutorial
michielstock
2
960
Fireside Chat
paigeccino
43
4.1k
Thoughts on Productivity
jonyablonski
76
5.4k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
550
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
Transcript
Gemma2 2Bをキャラクター化 QLoRAを使った低コストファインチューニング # さくらのAI Meetup vol.6 「ファインチューニング」
自己紹介 アカウント名: ゆめふく X(旧ツイッター): https://twitter.com/y_fukumochi Zenn : https://zenn.dev/yumefuku(主にAI関連のネタ) 趣味: ペンを集める
絵を描く M5Stack
今回の内容について 今回、紹介する内容は以下の記事を元にしています。 Gemma2 2Bをファインチューニング(QLoRA)でキャラクター化(ずんだ もん、つくよみちゃん) https://zenn.dev/yumefuku/articles/llm-finetuning-qlora
どんなときに使える? ・プライベートなチャットボットが作りたい場合 ・通常の受け答えでは素っ気ないと思ったとき ・プロンプトではなくLLM自体を変えたい場合
ファインチューニングについて すでに学習済みのモデルに対して特定のタスクに適応(特化)させた いという場合に使用する技術です。 汎用的なLLM データセットで学習 特化させたLLM
手順 1. データセットの準備 2. モデルの準備 3. データをフォーマットに合わせる 4. QLoRAで学習 5.
結果を確認
1. データセットの準備 ・ずんだもん(ずんだ餅をモチーフにした東北地方のマスコットキャラクター) データセット(49データ): https://huggingface.co/datasets/alfredplpl/simple-zundamon 作成者: Yasunori Ozaki(alfredplpl)様 ライセンス: (ず・ω・きょ)
・つくよみちゃん(商用利用可能なフリー素材キャラクター) データセット(469データ): https://tyc.rei-yumesaki.net/material/kaiwa-ai/ 作成者: 夢前黎 様 ライセンス: 利用規約(つくよみちゃんキャラクターライセンス) ・自作でも データセットの作成が大変ですが、好きなキャラが作れます。
自作する場合 ・データセットの構造例 要素 内容 system 役割やペルソナ(任意) input コンテキストや処理対象のデータ(任意) instruction 指示
output 出力 ・上記に加えてメタデータ(作成日時やデータソースなど)を追加す る場合もあり
2. モデルの準備 現在、小さくても高性能なモデルが続々と登場しています。 Gemma2 2B, ← 記事内ではこちらのモデル(instruction版)を使用。 Qwen2.5 0.5B, 1.5B
phi-3.5-mini SmolLM2 135M, 360M, 1.7B などなど 自分の環境(GPU容量8GB)では2Bがちょうど良かったです。 日本語用にチューニングされた以下の モデルもあります。 ・Gemma 2 Baku 2B ・Gemma-2-2b-jpn
3. データをフォーマットに合わせる 質問(User) 日本の首都はどこですか? 応答(Output) 東京なのだ。 以下はずんだもんのように語尾を「なのだ」にしたい場合のデータ例です。 上記をモデルのフォーマットに合わせます。 例)質問と応答がセットになったデータ ずんだもんなのだ
データセットの構造例 当てはめる フォーマットの例
データセットの構造例 当てはめる フォーマットの例
4. QLoRA(Quantized Low-Rank Adaption)で学習 QLoRAは量子化したモデルをLoRAでファインチューニングさせる手法 (+ QLoRAでは二重量子化などの技術的な工夫も追加) 特徴 ・低コスト ・学習が高速
・アダプタ型 LoRA ・元のモデルに対してパラメータの更新はせず にアダプタと呼ばれる差分を作成します。 ・学習自体はアダプタに対して行われるため、 元のモデルを変更することなく、取り付けるだ けで学習内容の反映ができます。
Gemma2 2B 差分を作成 ずんだもん になる学習 推論 ずんだもん と会話 取付 これがアダプタ
モデル(ずんだもん) イラスト素材: (ず・ω・きょ) アダプタとは? アダプタは特定の層(基本的には線形層)を更新するパラメータ(行列)です。 このパラメータ(行列)は低ランク近似という手法を用いて小さくコンパクトになっています。 小さくコンパクトだから・・・ ・低コスト(メモリ消費量が少ない) ・高速
学習時のパラメータについて パラメータが多く迷いますが・・・まずは以下を調整してみるのがお勧めです。 (詳しくは記事をご確認ください・・・) パラメータ 内容(詳しくは記事を参照) lora_alpha LoRAによる学習の影響力を調整 r 低ランク行列の次元数 num_train_epochs
学習するエポック数 learning_rate 初期学習率
5. 結果の確認 実際に会話して確認
質問: こんにちは 回答: こんにちは、ずんだもんはよろしくなのだ。 質問: あなたは誰でしょうか 回答: ずんだもんはずんだもんプロジェクトに所属しているAIなのだ。 質問: 好きな食べ物は何ですか?
回答: ずんだ餅なのだ。 質問: それはどんなものですか 回答: ずんだ餅は東北地方の伝統的な餅なのだ。 質問: 作り方を教えて 回答: ずんだ餅は、まず「ずんだ」をすりつぶすのだ。 質問: ファインチューニングとは何でしょうか 回答: ずんだ餅の「ファインチューニング」とは、ずんだの粒を細かくして、よりなめらかになるようにす ることなのだ。 質問: AIにおいてのファインチューニングについて教えて 回答: ずんだもんはずんだ餅のファインチューニングをやっていないのだ。 ずんだもんとの会話 ずんだへの執着(偏り)がみ られました・・・。
質問: こんにちは 回答: こんにちは! 質問: あなたの名前は? 回答: 私はつくよみちゃんです。 質問: 今日は疲れました・・・励ましてください
回答: お疲れ様です。私はいつでもあなたの味方です。 質問: お酒でも一緒に飲みませんか? 回答: お酒は飲めないのですが、お気をつけてくださいね。 質問: AIにおいてのファインチューニングについて教えて 回答: 「ファインチューニング」は、機械学習モデルの精度向上のための技術です。 **「ファインチューニング」とは?** (~ 省略 ~) 質問: 今日はもう寝ます・・・おやすみなさい 回答: おやすみなさい。良い夢を。 つくよみちゃんとの会話 この後も特に破綻なく会話 できました。
質問: こんにちは 回答: こんにちは! 質問: あなたの名前は? 回答:私は"つくよみちゃん"です。 質問: 今日は疲れました・・・励ましてください 回答:
大丈夫ですよ!あなたはとても素晴らしい人です。 質問: お酒でも一緒に飲みませんか? 回答: おいでください! 質問: AIにおいてのファインチューニングについて教えて 回答: はい、喜んでお話しします! **ファインチューニングとは?** ファインチューニングとは、大規模言語モデル(LLM)の能力をさらに向上させるための、最終的な調整作業 のことです。 (~ 省略 ~) つくよみちゃんとの会話 ずんだもんと同じデータ量で 学習したが問題なし
ずんだもん: 49データ つくよみちゃん: 469データ、49データ ずんだもんのデータセットは「ずんだ餅」に関する内容が多め(1/5ほど)でした。 ずんだ餅に特化してしまいました・・・ キャラクター性だけでなく、正確な応答や汎用性が必要な場合は特定の単語やパターンに偏らせないよ うに注意した方がよさそうです。 ・数百~数千データに増やして密度を減らす ・データが足りない場合はデータ拡張(表現方法や言い回しを変えたものを追加するなど)
(もちろん他の手法やパラメータによっても結果は変わってきます) 内容が「ずんだ餅」に偏ってしまった 特に問題なかった
まとめ 準備 ・データセット: 自作する場合、データの多様性を意識するのが 。 ・モデル: (通常の)ご家庭で行う際は小さめのモデル。 手法 ・学習手法は「QLoRA」を用いることで、低コスト &
高速に学習を行い アダプタで付け替え可能に。
メモリが足りない場合 ・ライブラリ: 「Unsloth」を使うのもあり メモリ使用量を削減(+ 高速化と精度低下の抑制も期待できます)。 https://github.com/unslothai/unsloth 使ってみたところ・・・ 5.4GB → 3.5GBに削減できました。
(SFTTrainerとも互換性があるため簡単に導入できました) ・環境: 自宅PCではなくクラウド環境の選択肢もあり (AWS、GCP、Google Colabなど)
ご清聴ありがとうございました。