6.9K Views
August 22, 23
スライド概要
ACES, Inc. 共同創業者 ← 東大松尾研 ← 鹿児島・鶴丸 / Web&深層学習 / 画像認識・生成 / 大規模モデル・生成AI / blog ( http://tech.acesinc.co.jp ) / Qiita ( http://qiita.com/shizuma )
LLMをファインチューニング して対話⽤のLLMを作成する 株式会社 ACES 久保 静真 LLM: Large Language Model、⼤規模⾔語モデル
⾃⼰紹介 久保 静真 (くぼ しずま) Twitter: @seishin55 Qiita: @shizuma 東京⼤学⼤学院⼯学系研究科(松尾研究室)修了。 在学中より、エンジニアとして複数のプロジェクトに参画。 その後、データ分析・機械学習の開発や教育にも関わりつつ、ファッション分野における 画像⽣成の研究に従事。2017年、ACESを共同創業。現在はDeep Learningを含むアルゴリズ ムの開発等の開発マネジメントを担当。 Human Digital Twin Mobility ⾏動・属性のデジタル再現 ⾞両の内外データの活⽤ Communication コミュニケーションの科学
LLMの活⽤: 議事録まとめの⽣成 (ACES Meet) AIまとめ機能の⽣成にLLMを活⽤ 実際にプロダクトとして活⽤される 詳細はブログで! [ACES Developers’ Blog] ChatGPT API を活⽤したAIまとめ機能リリースの裏側
LLMの活⽤: チャットボットの開発 (ACES ChatHub) チャットボットの構築する チャットボットに質問・命令する 設定したプロンプトによるチャットボットからの返答を確認しながら、 作成したチャットボットをチームで共有できます。チャットボットに質 チャットボットを作成できます。 問・命令した内容が他のユーザーから閲覧されることはありません。 その他の機能 ユーザー管理 請求・ご利⽤状況の確認 チャットボットが参照する社内ドキュメント管理 社内コミュニケーションツールとの連携
話す内容 LLMをファインチューニングして 対話⽤のLLMを作成するお話をします。
対話⽤のLLMとは? • 皆さんご存知のChatGPT。⼈間同⼠で会話をするような感覚でやり取り可能
ChatGPT • OpenAIによって開発されたLLM。対話⽤にチューニング • LLMとしてはGPT-3を中⼼に2020年から存在し、後継にあたるChatGPTによる性能向上 によって話題に (2022/11にリリースし、公開から2ヶ⽉でユーザー1億⼈超え)
ChatGPTはどのように学習されているのか? ⼈間の好みにあった出⼒⽂の調整 対話⽤のチューニング GPT-3などの事前学習モデルの学習 ChatGPTのような対話モデルなど
事後学習とは何をするのか? ChatGPTは⼈間の好みにあった出⼒⽂に調整するために、教師ありのファインチューニング (Instruction tuning)と⼈間のフィードバックを活⽤した強化学習(RLHF)が⾏われている ステップ1 ステップ2 ステップ3 • ⼊⼒⽂に対して⼈間が適 切な応答を作成 • 作成されたデータを使っ て教師ありのファイン チューニングを実⾏ (こ こで作成されたモデルを SFTモデルと呼ぶ) • ⼊⼒⽂に対して、SFTモ デルが⽣成した複数の⽂ 章を⼈間がランク付けす る • ランク付の結果から報酬 モデル (⽂のよさを出⼒ するモデル)を学習 • ステップ2の報酬モデル を最⼤化するようにSFT モデルを学習 (PPOとい う⼿法による学習) • ステップ3後、ステップ2 とステップは3は繰り返 される ※ 上記はinstructGPTの説明だが、ChatGPTはinstructGPTと同様の⼿法の利⽤がOpenAIのブログにて⾔及されている ※ [Ouyang+ 2022] Training language models to follow instructions with human feedback より図を引⽤
学習の整理 (事前学習と事後学習) 「事前学習」、「Instruction tuning」、「RLHF」の3つの学習をおさえる必要がある。 「事前学習」がコストがかかる部分であり、その後の学習は現実的な学習が可能なチューニング。 強いプレイヤーが しのぎを削る 事後学習部分。 事前学習のモデル のパフォーマンス が良ければ、以降 のチューニングは ⾏いやすい 事前学習 学習には⼤量のデータ・計算リソースが必要。 このフェーズで知識が獲得されるといわれる。 学習は⽂章の次のトークン(単語)を予測する形で⾏われる。 Instruction tuning 質問と回答のようなペアのデータを使って教師あり学習。 ⽐較的少ないデータ量でも効果あり。 適切な形式の応答を返してくれるようになる。 RLHF ⽣成された⽂章を⼈間が評価(順位付け)をしたデータを 活⽤した評価関数を⽤いた強化学習。 ⽐較的少ないデータ量でも効果あり。 意図するニュアンスの⽂章を⽣成できるようになる。
ファインチューニングを⾏うためのステップ 「事前学習」、「Instruction tuning」、「RLHF」の3つの学習をおさえる必要がある。 「事前学習」がコストがかかる部分であり、その後の学習は現実的な学習が可能なチューニング。 強いプレイヤーが しのぎを削る 事後学習部分。 事前学習のモデル のパフォーマンス が良ければ、以降 のチューニングは ⾏いやすい 事前学習 ① 公開された事前学習モデルを選択 Instruction tuning ② ①のモデルに事後学習の実施 RLHF
公開された事前学習済みモデル ⽇本語LLMとして有望な⾔語モデル (これに限らず⽇本語のLLMは公開されているがここで は抜粋) • [CyberAgent社] OpenCALM (6種類で、最⼤7B=70億パラメータ) • [rinna社] japanse-gpt-neox-3.6b (3.6b=36億パラメータ) • Japanese-gpt-neox-3.6b-instruction-sft-v2 (Instruction tuning済) • Japanese-gpt-neox-3.6b-instruction-ppo-v2 (RLHF済) オープンソースで公開されているモデルのほどんどは英語で学習されており、⽇本語能⼒が ⾼いといえない傾向にある。⽇本語で学習されたモデルはいずれも英語のモデルに対して データセットサイズが⼩さい。
具体的な学習⽅法 モデルの位置づけは以下の通り。 強いプレイヤーが しのぎを削る 事前学習 japanese-gpt-neox-3.6b (rinna社) OpenCALM (CyberAgent社) ① 公開された事前学習モデルを選択 事後学習部分。 事前学習のモデル のパフォーマンス が良ければ、以降 のチューニングは ⾏いやすい Instruction tuning Japanese-gpt-neox-3.6binstruction-sft-v2 (rinna社) ここをやってみます ② ①のモデルに事後学習の実施 RLHF Japanese-gpt-neox-3.6binstruction-ppo-v2 (rinna社) 汎⽤チャット向けに学習公開したものも存在
[結果例1] オープンソースのinstructionデータセットでの学習 • • データセット: databricks-dolly-15k-ja (databricks社で⼈⼿で作成した15,000件のデータ) 学習⽅法: OpenCALM-7BをPEFT⼿法のLoRAで学習 質問: ⼈⼯知能って何? AIの回答: AIは、⼈間の知的能⼒をコンピュータ上で実現する技術である。具体的には、⼈間の使う⾃然 ⾔語を理解したり、論理的な推論を⾏ったり、経験から学習したりするコンピュータプログラムを開発 することを指す。近年の技術進歩により、⾳声認識や画像認識の精度は⼤幅に向上した。また、機械に よる⾃動翻訳の精度も向上しており、近い将来、通訳がいらない時代が来ると予想されている。 質問: 広島の世界遺産を教えて AIの回答: 世界遺産に登録されているのは、厳島神社と原爆ドームの2つです。厳島神社は宮島で、原爆 ドームは広島平和記念公園にあります。
[結果例2] 社内ドキュメントを活⽤したの学習 • • データセット: 社内ドキュメントを活⽤してQAデータをLLMで⽣成 (9,000件程度) • コンテキストを付与したデータセット 学習⽅法: OpenCALM-7BをPEFT⼿法のLoRAで学習 ⼊⼒: (回答情報が含まれる⽂章) 社内のドキュメント + (質問) 正社員と時短正社員の違いはなんです か? AIの回答: 正社員と時短正社員の違いは、勤務時間です。 ファインチューニングがなしのモデルはドキュメントをオウム返しするような返答 結果例1の学習でもコンテキスト込みの質問には返答がうまくいかない
LLMをファインチューニングすると何が嬉しいのか? 1. プライベートな環境でLLMを動作させることができる Ø 活⽤例 Ø Ø Ø セキュリティ的要件の厳しい情報を扱うことができる オフライン環境で利⽤することができる 対話⽤のLLMを活⽤したいときに、⾼い性能の対話⽤のチューニング済みの モデルが⼿に⼊るのであればそれで⼗分 (⾼い性能の⽇本語LLMがでれば) 2. 特定の領域に特化したLLMを動作させることができる Ø 活⽤例 Ø Ø 特定領域の専⾨⽤語や独⾃のいい回しを反映させることができる ⼤量のデータが学習させ、特定の専⾨⽤語や独⾃のいい回しへの対応が汎⽤⽂ 脈でできるのであればそれで⼗分 (ただし、局所的には活⽤したい領域は⼀定 残りそう)
LLMのオープンソース化の流れ • オープンソースでLLMを開発する流れは活発でMeta社のLlamaなど。⽇本語版のLLMは ⽐較的少ないがCyberAgent社のOpenCALMやその他の動きも存在 • さらに、Llama2が公開され商⽤利⽤可能でチャット⽤にチューニングされたモデルは、 GPT-3.5-turbo (ChatGPT)を上回るスコア (⽇本語性能が⾼いかは微妙かも)
まとめ • LLMをファインチューニングして対話⽤のLLMを作成するお話 • ChatGPTのような対話⽤のLLMは事前学習と事後学習によって学習される • • 事後学習: Instruction tuningとRLHF 公開されているLLMの事前学習モデルに事後学習を適⽤することで⼿元で対話⽤のモ デルを動作させる検証の紹介 • • ChatGPTのように対話ができるようになる プライベートな環境で動作させたり、特定の領域に特化したLLMを動作させるために ファインチューニングは有効 • オープンソース化の流れがあるため、常に動向をウォッチする必要がある