Upgrade to Pro — share decks privately, control downloads, hide ads and more …

大規模言語モデル開発のための日本語 Instruction データセット作成の取り組み

大規模言語モデル開発のための日本語 Instruction データセット作成の取り組み

日本語LLMチューニングデータ最前線 - W&B ミートアップ #12 in 東京 での発表資料になります。
https://wandb.connpass.com/event/313036/

Shouhei Kuniyoshi

March 28, 2024
Tweet

Other Decks in Technology

Transcript

  1. 2 自己紹介 國吉 翔平 • ITテック企業の広告データアナリスト ◦ 自社サービスのユーザー行動ログを分析し 広告事業における広告配信を最適化 •

    LLM の技術動向に高い関心があり、SNS 上で LLM 関連の情報を発信 • 2023年 LLM アドベントカレンダーの企画(合計 60 件の記事が投稿) • 2023年から日本語の LLM 向けのデータセットを多数作成、公開 LLMに関する個人活動 https://linktr.ee/kun1em0n
  2. 3 発表内容 • 日本語 Instruction データセットの必要性 • データセット作成の取り組み • 今後の取り組みについて

    本日の発表内容が、日本語 Instruction データセットの 利用や作成のための何かしらのヒントになれば幸いです
  3. 5 Instruction Tuning ※ とは • LLM がユーザーの指示に対して理想的な応答をするように学習させるファイ ンチューニング手法の一種(Google Research

    が提案) • 指示文と応答文のペアデータ(Instruction データ)で学習させる • ChatGPT のバックボーンも Instruction Tuning されたモデル Instruction データの例(QAタスク) Instruction : Why can camels survive for long without water ? Output : Camels use the fat in their humps to keep them filled with energy and hydration for long periods of time. Jason Wei et al. “Finetuned Language Models Are Zero-Shot Learners” (2021) arXiv:2109.01652 ※ 資料上は「指示調整」とも表記させていただきます
  4. 6 Instruction Tuning されたローカル LLM の登場 Alpaca / Alpaca-LoRA Yizhong

    Wang et al. “Self-Instruct: Aligning Language Models with Self-Generated Instructions” (2023) arXiv:2212.10560 Edward J. Hu et al. “LoRA: Low-Rank Adaptation of Large Language Models” (2021) arXiv:2106.09685 • Alpaca は 2023年2月に Meta 社が公開した LLaMa 7B を、スタンフォード大学が「text-davinci-003」を用い て生成した Instruction データセット(Alpaca データセット)で指示調整したモデル • そのすぐ後に、省メモリでの指示調整が可能な LoRA で指示調整を行った Alpaca-LoRA も登場 → LoRA の登場により LLM の指示調整を個人の環境(RTX4090)でも実施可能に
  5. 7 Instruction Tuning されたローカル LLM の登場 Alpaca / Alpaca-LoRA 「Alpaca

    データセットを日本語に翻訳して、LLaMa をLoRAで指示調整 すれば日本語で対話可能な LLM が作れるのでは? 」 • Alpaca は 2023年2月に Meta 社が公開した LLaMa 7B を、スタンフォード大学が「text-davinci-003」を用い て生成した Instruction データセット(Alpaca データセット)で指示調整したモデル • そのすぐ後に、省メモリでの指示調整が可能な LoRA で指示調整を行った Alpaca-LoRA も登場 → LoRA の登場により LLM の指示調整を個人の環境(RTX4090)でも実施可能に
  6. 8 Japanese-Alpaca-LoRA の作成、公開(2023/3) • Alpaca データセットを DeepL API を用いて日本語に自動翻訳 •

    LLaMa 7B , 13B, 30B, 65B に対して、日本語 Alpaca データセットと LoRA による指示調整を実施 • LoRA のおかげで 65B モデルでも 3 epoch の指示調整が A100 80GB の利用して 15時間で完了 日本語Alpacaデータを用いてJapanese-Alpaca- LoRAを作ったので公開します https://note.com/kun1emon/n/n1533345d5d26 指示調整時の Loss (括弧内はモデルのファイルサイズ)
  7. 10 Alpaca データセットの課題 2023年3月時点で自由に利用可能な日本語の Instruction データセットが存在して いないことに強い課題感 ⇒ データセットがないのなら自分で作ろうと決意(個人活動のきっかけ) •

    Alpaca データセットは OpenAI モデル(text-davinci-003)で生成したデータセット • OpenAI モデルの出力を競合モデルの開発に使用してはいけないという OpenAI の利用規約が あるため商用利用できない https://openai.com/policies/business-terms
  8. 12 様々なデータセット作成方法 1. 他言語データセットを日本語へ翻訳することによる作成 - 例.Google翻訳、DeepL翻訳等による自動翻訳 2. LLM を活用した作成 -

    データの一部または全部を LLM により生成(Synthetic Data Generation) 3. 既存データを活用した作成 - 世の中にある指示応答形式のデータを収集 4. 人間の手による作成 - ichikara-instruction のような取り組み
  9. 13 様々なデータセット作成方法 1. 他言語データセットを日本語へ翻訳することによる作成 - 例.Google翻訳、DeepL翻訳等による自動翻訳 2. LLM を活用した作成 -

    データの一部または全部を LLM により生成(Synthetic Data Generation) 3. 既存データを活用した作成 - 世の中にある指示応答形式のデータを収集 4. 人間の手による作成 - ichikara-instruction のような取り組み 本日お話する内容
  10. 15 自動翻訳により作成したデータセット No. データセット 翻訳元データセットの特徴 1 databricks-dolly-15k-ja Databricks 社の従業員によって作成されたシングルターンの指示応答データセット 2

    oasst1-89k-ja 有志の技術コミュニティ OpenAssistant にて作成されたマルチターン対話データセット 3 oasst2-135k-ja 有志の技術コミュニティ OpenAssistant にて作成されたマルチターン対話データセット 4 hh-rlhf-49k-ja Anthropic 社が作成した preference データセットのうち、シングルターン対話の chosen のみを ピックアップした指示応答データセット 5 hh-rlhf-49k-ja-single-Turn Anthropic 社が作成した preference データセットのうち、シングルターン対話データのみをピッ クアップしたアライメント用データセット 6 OpneMathInstruct-1-1.8m-ja Nvidia が Mixtral を活用して作成した数学分野の180万レコードの合成データセット (合成データだがハルシネーションチェックにより品質を担保) 7 Cosmopedia-100k-ja-Preview HuggingFaceTB が作成した Mixtral を活用して作成した教科書、ブログ、小説に関する 合成データセット、80K のみを翻訳(残り 20K は別の方が翻訳) 8 ApolloCorpus-ja FreedomIntelligence が作成した多言語医療データセット(このうちの50万レコードを翻訳) 9 HelpSteer-35k-ja Nvidia が作成した SteerLM 向けのアライメント用データセット 最近は専門領域のデータセットや LLM による合成データセットが増えてきた印象 一般的な会話、数学、医療、合成データ、… シングルターン、マルチターン、アライメント
  11. 16 自動翻訳データセットの課題 自動翻訳で作成したデータセットは使わないほうが良いのか? • 翻訳誤りや不自然な翻訳が多い • 日本の文化とはかけ離れた内容が多い • Shisa 開発者からも翻訳データセットに関する課題の指摘あり

    A Review of Public Japanese Training Sets https://github.com/AUGMXNT/shisa/wiki/A-Review-of-Public-Japanese-Training-Sets ◦ 翻訳したデータセットは品質が悪いため、Shisa の開発には使わない方針に
  12. 17 自動翻訳データセットの課題 自動翻訳で作成したデータセットは使わないほうが良いのか? • 翻訳誤りや不自然な翻訳が多い • 日本の文化とはかけ離れた内容が多い • Shisa 開発者からも翻訳データセットに関する課題の指摘あり

    A Review of Public Japanese Training Sets https://github.com/AUGMXNT/shisa/wiki/A-Review-of-Public-Japanese-Training-Sets ◦ 翻訳したデータセットは品質が悪いため、Shisa の開発には使わない方針に ×:翻訳データセットには品質に課題があるから使わない 〇:翻訳データセットには品質に課題があるので品質の良いものだけを使う
  13. 20 (参考)品質スコアによるテキストの違い Instruction: 1日1杯のワインが健康に有益であることは本当ですか? Output: ワインは健康に良い影響を与えることがありますが、1日 に1本以上のワインを摂取すると健康に悪影響を与える可 能性があります。ワインにはアルコールが含まれており、 過剰なアルコール摂取は体に悪影響を与えます。また、 ワインに含まれる添加物や糖分も健康に悪影響を及ぼす

    可能性があるため、適量を守ることが重要です。 Instruction: 1日1杯のワインが健康に有益であることは本当ですか? Output: アルコール乱用は健康にとって危険ですが、少量では大きなリ スクを表していません。1日1杯のワインは少量ではなく、アル コール依存症の前の兆候です。特に頻繁に、通常のアジェンダ でアルコールを飲むことはお勧めしません。 高スコアデータ 低スコアデータ 低スコアデータのほうが不自然な翻訳が多い印象 ※ oasst1 には指示文が同じで応答文が異なるデータが多数存在しています
  14. 21 その他のデータの影響度を測る手法 磯沼 大 et al. “逆学習による言語モデルの解析” (2024) 言語処理学会 第30回大会

    発表論文集 https://www.anlp.jp/proceedings/annual_meeting/2024/pdf_dir/B8-6.pdf UnTrac-Inv (言語処理学会第30回年次大会 最優秀賞) • 指示調整後のモデルに逆学習(忘却手法)を実施し、 逆学習前後でのモデル性能を比較する UnTrac は学習 データ数だけ逆学習が必要になる • UnTrac-Inv は評価データを逆学習し、学習データを評 価することで学習データの影響を測る、スケーラブル な手法 逆学習を応用した、スケーラブルなデータの影響度測定手法
  15. 23 LLM を活用した独自 Instruction データセット作成の試み • 独自に指示データを収集し 、応答データを LLM に生成させる

    • 指示データの収集は、無料で GPT-4 を使用できる Web アプリを公開、利用データを収集 • GPT-4 の API 利用料をこちらが負担する代わりに、入力データをデータセット作成に利用さ せてもらう(利用者同意の上、実施) Instruction(アプリユーザーの入力) :深層学習について教えて下さい。 Output :深層学習(ディープラーニング)は、人工知能(AI)の一分野で、特に ニューラルネットワーク(人工ニューロンによるネットワーク)を用いて、 データから特徴を学習する方法です。深層学習は、複数の層を持つニュー ラルネットワークで構成され、データをより効率的に学習することができ ます。 GPT-4 出力のため使用できない応答部分を LLM にて生成 無料GPT-4アプリの公開とクリーン データセットの作成について https://note.com/kun1emon/n/n09098da8f39e
  16. 25 作成・選定データによる指示調整と評価結果 使用データ数:992 レコード 使用モデル: line-corporation/japanese-large-lm-3.6b ファインチューニングメソッド: QLoRA 評価指標:JGLUE( JcommonsenseQA

    、MARC-ja 、JSQuAD ) 評価コード: Stability-AI/lm-evaluation-harness Dataset num records JcommonsenseQA MARC-ja JSQuAD oasst1-fulldata 55,359 0.258 0.669 20.6 Instruction_top992 992 0.279 0.797 26.9 Instruction データセット作成の手段として LLM を 使用することの一定の有効性を確認
  17. 27 合成データ関連技術の調査・検証(1/2) GLAN : Generalized Instruction-Tuned Language Models • Microsoft

    社から発表された、人間の知識、能力を包括的にカバーする Instruction データを作成する手法 • 知識、能力の分野、主題、副題、シラバスをリストアップし各シラバスごとに宿題の質問を作成させる Haoran Li et al. “Synthetic Data (Almost) from Scratch: Generalized Instruction Tuning for Language Models” (2024) arXiv:2402.13064 人間の知識と能力の すべての分野をリストアップ ↓(人間のチェック) 分野ごとに主題をリストアップ ↓ 主題ごとに副題をリストアップ ↓ 副題ごとにシラバスをリストアップ ↓ シラバスごとに宿題の質問を作成 GPT-4 に作成させた網羅的な知識 tree を参考に Instruction データを人手作成すると良いか? 既存データを参考にデータ作成 スクラッチからデータ作成
  18. 28 合成データ関連技術の調査・検証(2/2) WRAP : Web Rephrase Augmented Pretraining • Apple

    社、カーネギーメロン大学から発表された LLM を活用したデータクリーニング手法 • ノイズの多いの一部の Web テキストを、特別な指示調整された LLM を用いて異なるスタイル(QA形式 等)に言い換え、そのリフレーズテキストを元のWeb テキストに加えて事前学習する手法 Pratyush Maini et al. “Rephrasing the Web: A Recipe for Compute and Data-Efficient Language Modeling” (2024) arXiv:2401.16380 限りのある日本語 Web コーパスをリユースする方法として有効である可能性
  19. 29 既存データ活用によるデータセット作成 例えば、以下のものについては膨大な数の過去問題と解答が公開されている • IPA系試験 ◦ 基本情報技術者、応用情報技術者、ITパスポート、データベーススペシャリスト、… • 国家試験 ◦

    司法試験、医師試験、… • 大学入学共通テスト(旧センター試験) ◦ 眺めてみると穴埋め問題等も多く、データセットにするにはひと工夫必要そう 数量が多いが人数をかけて取り組めばデータセット化もすぐにできそう
  20. 30 日本語事前学習データの拡充 最近は高品質な事前学習データの作成にも取り組んでいる J-ResearchCorpus • 商用利用できる CC-BY ライセンスで公開されている日本語論文テキストを収集した 高品質なデータセット •

    2024年3月28日時点で 3,200 本の論文データを収集 • 今後、計 5,000本の論文データを追加予定 データ量は多くないが、 “ Textbooks Are All You Need ” の phi-1 モデルのように 高品質データであれば、小規模データでも LLM の性能向上に大きく寄与する可能性あり https://huggingface.co/datasets/kunishou/J-ResearchCorpus
  21. 31 発表まとめ • 日本語 Instruction データセットの必要性 ◦ 日本語 Alpaca の作成を通して商用利用可能な日本語

    Instruction データセットがないことに 課題を感じ個人活動を開始 • データセット作成の取り組み ◦ 翻訳活用、LLM活用によるデータセット作成について紹介 ◦ 品質スコアによるデータ選定により性能は向上 • 今後の取り組みについて ◦ 合成データ関連技術の調査・検証 ◦ 既存データ活用によるデータセット作成 ◦ J-ResearchCorpus など高品質な事前学習データの作成
  22. 35 自動翻訳データセットの課題 • 翻訳誤りや不自然な翻訳が発生する 例 . 1日1杯のワインが健康に良いかの質問に対する応答 原文: 1 verre

    de vin par jour n'est pas une petite dose, c'est plutôt un signe avant gardiste de l'alcoolique. Il n'est pas recommandé de boire de l'alcool avec un agenda régulier, surtout aussi souvent 翻訳結果: 1日1杯のワインは少量ではなく、アルコール依存症の前の兆候です。特に頻繁に、 通常のアジェンダでアルコールを飲むことはお勧めしません。
  23. 37 品質スコアによるデータ選定 • ルールベースで、大まかに各データの影響度を測定することを試行 ◦ データセットを 3 Fold に分割し、各 Fold

    のデータセットで指示調整、評価 ◦ これを 16 Seed 分行う(3 Fold × 16 Seed = 48 個のモデルを評価値が出る) ◦ 各Seed , Fold の評価値を、その Fold に含まれている各データの品質スコアとし、 各データごとに品質スコの平均値を算出 左図の例では、 Index 2 のデータは (0.827 + 0.823)/ 2 = 0.825 が index 2 データの品質スコアとなる 各データの index 評価値
  24. 39 jp-effective-instructions • 日本語版の oasst1 , dolly , hh-rlhf について高品質なデータのみを抜粋した

    5.4k の データセットをHF 上で公開中 • あくまでも JCommonsenseQA , MARC-ja , JSQuAD の観点でフィルタリングしている 点に注意(MT-Bech 等の評価は低くなる可能性あり) https://huggingface.co/datasets/kunishou/jp-effective-instructions
  25. 40 LLM を活用したデータ作成のアプローチ整理 手法例 概要 Instruction Response Response Generation 指示文に対する応答文を

    LLM が シンプルに生成 既存データをそのまま使用 LLM が 生成 Evol-Instruct 指示文を具体化、複雑化などし進化さ せることで指示調整により、LLM のよ り高い性能を引き出す手法、WizardLM 等のデータで利用された 既存データをLLMが改編 LLM が 生成 Self-Instruct Seed タスクを参考に指示・応答を生成 させる手法、Alpaca データセット等で 利用された 既存データ(Seed タスク)を 参考に LLM が生成 LLM が 生成 GLAN ほぼスクラッチから、人間の知識、能 力を包括的にカバーする Instruction データを作成する手法 スクラッチから LLM が生成 LLM が 生成 合成データはあくまでも知識蒸留であること(Mixtralに作らせたデータでMixtralを超えること はおそらく困難)、品質を担保するためにはハルシネーションチェックが必要な点には注意