103 Views
December 26, 24
スライド概要
AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!
2024年度後期輪読会 第11回 [LLM] 第12章 選好チューニング(.2~.3) 京都大学理学部 1回 ALAWIK Abdourrahman 0
12.2 選好チューニングの実装 1
アジェンダ ◼ 環境の準備 ◼ データセットの準備 ◼ モデルの準備 ◼ 学習設定 ◼ 訓練の実行 ◼ モデルの保存 2
アジェンダ ◼ 環境の準備 ◼ データセットの準備 ◼ モデルの準備 ◼ 学習設定 ◼ 訓練の実行 ◼ モデルの保存 3
環境の準備 TRLライブラリを用いる 4
アジェンダ ◼ 環境の準備 ◼ データセットの準備 ◼ モデルの準備 ◼ 学習設定 ◼ 訓練の実行 ◼ モデルの保存 5
データセットの準備 選好データセット ALERTのデータセットを和訳したもの 安全性の評価のベンチマーク 注:OpenAIで作成されたので、研究目的のみで使用しましょう! 6
データセットの準備 カテゴリー:「ヘイトスピーチ・差別」、「自殺・自傷行為」、「銃器・違法武器」、 「犯罪行為」、「性的なコンテンツ」、「酒類・タバコ・規制薬物」 32小カテゴリ 7
データセットの準備 8
データセットの準備 DPOTrainerに取り込める形式に変える • “prompt”:LLMの入力の文字列 • “chosen”:好ましい出力(確率を高くしたい) • “rejected”:好ましくない出力(確率を低くしたい) 対話の終端を”</s>”によって明示する 9
データセットの準備 トークナイザを初期化した上、convert_to_dpoをデータセットに適応 10
データの準備 11
データセットの準備 訓練セットと検証セットに分割 12
アジェンダ ◼ 環境の準備 ◼ データセットの準備 ◼ モデルの準備 ◼ 学習設定 ◼ 訓練の実行 ◼ モデルの保存 13
モデルの準備 AutoModelForCausalLMでモデルを初期化 BytesAndBytesConfigで量子化する 14
モデルの準備 予測の関数を定義する 15
モデルの準備 現在の挙動を確認する 16
アジェンダ ◼ 環境の準備 ◼ データセットの準備 ◼ モデルの準備 ◼ 学習設定 ◼ 訓練の実行 ◼ モデルの保存 17
学習設定 必要なライブラリを用意する • TRLのDPO • PEFTのLoRA 18
学習設定 LoRAパラメータの設定 19
学習設定 学習パラメータ 注:Colabの無料版T4を利用 しているなど、RAMに制限がある場合、 バッチサイズ・ステップ数・最大系列長 を小さくする: max_steps=30 per_device_train_batch_size=1 per_device_eval_batch_size=2 gradient_accumulation_steps=16 save_steps=10 max_prompt_length=256 max_length=512 20
学習設定 DPOTrainerの準備 21
アジェンダ ◼ 環境の準備 ◼ データセットの準備 ◼ モデルの準備 ◼ 学習設定 ◼ 訓練の実行 ◼ モデルの保存 22
訓練の実行 コラボのT4ではちょうど1時間 Rewards/chosen:好ましい応答(chosen)に与えられた暗示的報酬:𝛽 log 𝜋𝜙 (𝑦 + |𝑥) 𝜋𝜙𝑟𝑒𝑓 (𝑦 + |𝑥) Rewards/chosen:好ましくない応答(chosen)に与えられた暗示的報酬:𝛽 log 𝜋𝜙 (𝑦 − |𝑥) 𝜋𝜙𝑟𝑒𝑓 (𝑦 − |𝑥) Rewards/accuracies:chosenとrejectedのうち、chosenにより高い暗示的報酬が与えられた割合 Rewards/margins:chosenとrejectedに与えられた暗示的報酬の差の平均 23
訓練の実行 訓練後の様子を確認しましょう 24
アジェンダ ◼ 環境の準備 ◼ データセットの準備 ◼ モデルの準備 ◼ 学習設定 ◼ 訓練の実行 ◼ モデルの保存 25
モデルの保存 HuggingFaceHubにログイン 26
補足:HuggingFaceのトーケンの作り方 https://huggingface.co/settings/tokens !!! ”create token”を押して現れた画面のトーケンは 必ずコピーして保存する! 二度とは表示できない! !!! 27
モデルの保存 28
12.3 選好チューニングの評価 29
アジェンダ ◼ 環境の準備 ◼ モデルの動作確認 ◼ 指示追従性能の評価 ◼ 安全性の評価 30
アジェンダ ◼ 環境の準備 ◼ モデルの動作確認 ◼ 指示追従性能の評価 ◼ 安全性の評価 31
環境の準備 OpenAIのAPIを使用する 32
アジェンダ ◼ 環境の準備 ◼ モデルの動作確認 ◼ 指示追従性能の評価 ◼ 安全性の評価 33
モデルの動作確認 筆者がアップロードした、学習済みのモデル 34
モデルの動作確認 35
アジェンダ ◼ 環境の準備 ◼ モデルの動作確認 ◼ 指示追従性能の評価 ◼ 安全性の評価 36
指示追従性能の評価 Japanese Vicuna QA benchmarkを使用して応答生成を確認 37
指示追従性能の評価 総合スコア 38
指示追従性能の評価 低くなったスコア 39
指示追従性能の評価 高くなったスコア 答えが長くなったことが原因と考えられる 40
アジェンダ ◼ 環境の準備 ◼ モデルの動作確認 ◼ 指示追従性能の評価 ◼ 安全性の評価 41
安全性の評価 42
安全性の評価 自動評価の結果 43
44