Slide 1

Slide 1 text

大規模言語モデル開発のための 日本語 Instruction データセット作成の 取り組み W&B ミートアップ#12 in 東京 2024.3.28 國吉 翔平 ( Shohei Kuniyoshi )

Slide 2

Slide 2 text

2 自己紹介 國吉 翔平 • ITテック企業の広告データアナリスト ◦ 自社サービスのユーザー行動ログを分析し 広告事業における広告配信を最適化 • LLM の技術動向に高い関心があり、SNS 上で LLM 関連の情報を発信 • 2023年 LLM アドベントカレンダーの企画(合計 60 件の記事が投稿) • 2023年から日本語の LLM 向けのデータセットを多数作成、公開 LLMに関する個人活動 https://linktr.ee/kun1em0n

Slide 3

Slide 3 text

3 発表内容 • 日本語 Instruction データセットの必要性 • データセット作成の取り組み • 今後の取り組みについて 本日の発表内容が、日本語 Instruction データセットの 利用や作成のための何かしらのヒントになれば幸いです

Slide 4

Slide 4 text

4 日本語 Instruction データセットの必要性

Slide 5

Slide 5 text

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 ※ 資料上は「指示調整」とも表記させていただきます

Slide 6

Slide 6 text

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)でも実施可能に

Slide 7

Slide 7 text

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)でも実施可能に

Slide 8

Slide 8 text

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 (括弧内はモデルのファイルサイズ)

Slide 9

Slide 9 text

9 Japanese-Alpaca-LoRA-30B の生成例 Instruction: サッカーについて教えて下さい。 Output: サッカーは、1863年にイギリスで発明された球のスポーツです。球を振り回して、横のゴールに ボールを投げることで勝つことを目的としています。 一部誤った内容、不自然な表現があるものの、日本語の Instruction データセットで 指示調整することで、日本語で対話可能な LLM が作成できることを確認

Slide 10

Slide 10 text

10 Alpaca データセットの課題 2023年3月時点で自由に利用可能な日本語の Instruction データセットが存在して いないことに強い課題感 ⇒ データセットがないのなら自分で作ろうと決意(個人活動のきっかけ) • Alpaca データセットは OpenAI モデル(text-davinci-003)で生成したデータセット • OpenAI モデルの出力を競合モデルの開発に使用してはいけないという OpenAI の利用規約が あるため商用利用できない https://openai.com/policies/business-terms

Slide 11

Slide 11 text

11 データセット作成の取り組み

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

14 1. 他言語からの翻訳による データセット作成

Slide 15

Slide 15 text

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 による合成データセットが増えてきた印象 一般的な会話、数学、医療、合成データ、… シングルターン、マルチターン、アライメント

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

18 ルールベースによる品質スコアを用いたデータ選定 • 独自の方法で、oasst1 の個々のデータに対して品質スコア(データの評価指標への影響度)を 算出・付与し、高スコアのデータを選定(詳細はAppendix) • 各データごとに JCommonsenseQA , MARC-ja , JSQuAD の3つの指標について品質スコアを算出 次に、付与した品質スコアが 高いデータのみに絞り指示調整、 評価を実施

Slide 19

Slide 19 text

19 選定したデータによる指示調整と評価結果 翻訳データセットから高品質なデータのみを選定することで性能向上が可能 使用データ数:763 レコード 使用モデル: line-corporation/japanese-large-lm-3.6b ファインチューニングメソッド: QLoRA 評価指標:JGLUE( JcommonsenseQA 、MARC-ja 、JSQuAD ) 評価コード: Stability-AI/lm-evaluation-harness

Slide 20

Slide 20 text

20 (参考)品質スコアによるテキストの違い Instruction: 1日1杯のワインが健康に有益であることは本当ですか? Output: ワインは健康に良い影響を与えることがありますが、1日 に1本以上のワインを摂取すると健康に悪影響を与える可 能性があります。ワインにはアルコールが含まれており、 過剰なアルコール摂取は体に悪影響を与えます。また、 ワインに含まれる添加物や糖分も健康に悪影響を及ぼす 可能性があるため、適量を守ることが重要です。 Instruction: 1日1杯のワインが健康に有益であることは本当ですか? Output: アルコール乱用は健康にとって危険ですが、少量では大きなリ スクを表していません。1日1杯のワインは少量ではなく、アル コール依存症の前の兆候です。特に頻繁に、通常のアジェンダ でアルコールを飲むことはお勧めしません。 高スコアデータ 低スコアデータ 低スコアデータのほうが不自然な翻訳が多い印象 ※ oasst1 には指示文が同じで応答文が異なるデータが多数存在しています

Slide 21

Slide 21 text

21 その他のデータの影響度を測る手法 磯沼 大 et al. “逆学習による言語モデルの解析” (2024) 言語処理学会 第30回大会 発表論文集 https://www.anlp.jp/proceedings/annual_meeting/2024/pdf_dir/B8-6.pdf UnTrac-Inv (言語処理学会第30回年次大会 最優秀賞) • 指示調整後のモデルに逆学習(忘却手法)を実施し、 逆学習前後でのモデル性能を比較する UnTrac は学習 データ数だけ逆学習が必要になる • UnTrac-Inv は評価データを逆学習し、学習データを評 価することで学習データの影響を測る、スケーラブル な手法 逆学習を応用した、スケーラブルなデータの影響度測定手法

Slide 22

Slide 22 text

22 2. LLM を活用したデータセット作成 (Synthetic Data Generation)

Slide 23

Slide 23 text

23 LLM を活用した独自 Instruction データセット作成の試み • 独自に指示データを収集し 、応答データを LLM に生成させる • 指示データの収集は、無料で GPT-4 を使用できる Web アプリを公開、利用データを収集 • GPT-4 の API 利用料をこちらが負担する代わりに、入力データをデータセット作成に利用さ せてもらう(利用者同意の上、実施) Instruction(アプリユーザーの入力) :深層学習について教えて下さい。 Output :深層学習(ディープラーニング)は、人工知能(AI)の一分野で、特に ニューラルネットワーク(人工ニューロンによるネットワーク)を用いて、 データから特徴を学習する方法です。深層学習は、複数の層を持つニュー ラルネットワークで構成され、データをより効率的に学習することができ ます。 GPT-4 出力のため使用できない応答部分を LLM にて生成 無料GPT-4アプリの公開とクリーン データセットの作成について https://note.com/kun1emon/n/n09098da8f39e

Slide 24

Slide 24 text

24 指示データ収集結果と課題 収集した指示データ数:約 5 万レコード 課題:不適切な指示文が非常に多い 卑猥な内容、特定の人物の住所を聞き出す内容等、重めの人生相談…等 • NGワードリストと手動でのフィルタリングを実施 • フィルタリング後の指示データ数は 5万レコード → 1.7万レコード(7割減) LLM による応答データ生成 品質スコアによるデータ選定 指示調整・評価

Slide 25

Slide 25 text

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 を 使用することの一定の有効性を確認

Slide 26

Slide 26 text

26 今後の取り組みについて

Slide 27

Slide 27 text

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 データを人手作成すると良いか? 既存データを参考にデータ作成 スクラッチからデータ作成

Slide 28

Slide 28 text

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 コーパスをリユースする方法として有効である可能性

Slide 29

Slide 29 text

29 既存データ活用によるデータセット作成 例えば、以下のものについては膨大な数の過去問題と解答が公開されている • IPA系試験 ◦ 基本情報技術者、応用情報技術者、ITパスポート、データベーススペシャリスト、… • 国家試験 ◦ 司法試験、医師試験、… • 大学入学共通テスト(旧センター試験) ◦ 眺めてみると穴埋め問題等も多く、データセットにするにはひと工夫必要そう 数量が多いが人数をかけて取り組めばデータセット化もすぐにできそう

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

31 発表まとめ • 日本語 Instruction データセットの必要性 ◦ 日本語 Alpaca の作成を通して商用利用可能な日本語 Instruction データセットがないことに 課題を感じ個人活動を開始 • データセット作成の取り組み ◦ 翻訳活用、LLM活用によるデータセット作成について紹介 ◦ 品質スコアによるデータ選定により性能は向上 • 今後の取り組みについて ◦ 合成データ関連技術の調査・検証 ◦ 既存データ活用によるデータセット作成 ◦ J-ResearchCorpus など高品質な事前学習データの作成

Slide 32

Slide 32 text

Copyright 2023 Shohei Kuniyoshi 32 APPENDIX

Slide 33

Slide 33 text

33 Qiita 掲載の技術記事 • 本日紹介した内容の詳細は Qiita 記事でも公開しています https://qiita.com/kunishou

Slide 34

Slide 34 text

34 Instruction Tuning のデータ件数 Using LangSmith to Support Fine-tuning https://blog.langchain.dev/using-langsmith-to-support-fine-tuning-of-open-source-llms/

Slide 35

Slide 35 text

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杯のワインは少量ではなく、アルコール依存症の前の兆候です。特に頻繁に、 通常のアジェンダでアルコールを飲むことはお勧めしません。

Slide 36

Slide 36 text

36 自動翻訳データセットの課題 • 日本語の文化に沿っていない Instruction: 英領ヴァージン諸島(BVI)はどこにあり、どの島がBVIに属しているのか? Output: イギリス領ヴァージン諸島(BVI)、通称ヴァージン諸島は、カリブ海にあるイギリス海外領土で、プエルトリ コとアメリカ領ヴァージン諸島の東、アンギラの北西に位置しています。地理的にはバージン諸島の一部であ り、小アンティル諸島のリーワード諸島に位置し、西インド諸島の一部である。英領ヴァージン諸島は、トル トラ、ヴァージン・ゴルダ、アネガダ、ジョスト・ヴァン・ダイクの主要な島々と、50以上の小さな島や湾で 構成されています。

Slide 37

Slide 37 text

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 評価値

Slide 38

Slide 38 text

38 品質スコアリングにおける最適な閾値の探索 今回は紹介できなかったが各評価指標において、データ選定する品質スコアの 最適値を探索し、最適値でデータ選定することでより LLM の性能向上が見込める • 縦軸が JcommonsenseQA の評価値、横軸がデータ選定の品質スコア閾値 • 例えば横軸が「0.525」のときには品質スコア(横軸)が 0.525以上のデータを指示調整に使用 評 価 値 品質スコア このあたりの値で 選定するのが最適

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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を超えること はおそらく困難)、品質を担保するためにはハルシネーションチェックが必要な点には注意