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

Ask-LLM論文紹介: How to Train Data-Efficient LLMs

S. Ota
March 17, 2024

Ask-LLM論文紹介: How to Train Data-Efficient LLMs

Ask-LLMの論文紹介、プロトタイプ実装と予備実験

Ask-LLMは、DeepMindが2024年2月にarXivに発表した論文で使用されている手法です。LLMの事前学習データを代理LLMを使ってスコア付けし、高品質なデータのみフィルタリングすることで、事前学習のデータ効率を向上させます。最大で90%のデータを削除しても全データでの性能を上回り、最大で70%高速化します。

S. Ota

March 17, 2024
Tweet

More Decks by S. Ota

Other Decks in Technology

Transcript

  1. Ask-LLM論文紹介 How to Train Data-Efficient LLMs Noveen Sachdeva et al.,

    2024. arXiv preprint arXiv:2402.09668 Susumu Ota 2024-03-17 1
  2. 実験 モデル : T5-Small (60M), T5-Large (800M) 代理 LLM: FLAN-T5

    データセット : C4 (184Bトークン ) サンプリング : {10, 20, 40, 60, 80}% 計算資源一定 (iso-compute setting) 524Bトークン 例 : 184B x 2.8 epoch = 524B 評価 : 111個の下流評価タスク オーバースケーリング (右図 ) 0% 同サイズ fullと同等 100% 上のサイズ fullと同等 6
  3. 結果 3: 推論する LLMのサ イズにスケーリング傾向 がある Ask-LLMでは代理 LLM(スコア付け するモデル )のサイズを大きくする

    と性能が向上する Perplexityフィルターにはこの傾向 は見られない 訓練する LLMのサイズが大きくな るほど、より大きな代理 LLMがま すます有益になる 10
  4. 議論 スコアリングのコストは償却されるのか? スコアを計算するために、学習サンプル 1個につき 1回の LLM推論が必要 しかし、そのコストは大量の事前学習コストの削減によって償却される LLMの事前学習は 1回限りのコストと思われがちだが、実際にはそうではない モデルによって生成されたデータを再帰的に学習させると、拡散モデルや

    LLMの性能が 劣化 (Shumailov et al., 2023; Alemohammad et al., 2023; Briesch et al., 2023) インターネットが今後も有効な学習データの供給源であり続けるかどうかが注目さ れている LLMベースのフィルターが自己消費ループへの介入として機能し、 LLMの自己改善 を可能にするか、という重要な問題を提起 11
  5. 感想 LLMにタスクを実行させ、 yes の生成確率をスコアとするという部分が面白い AIにタスクを実行させる際は、ロバストな指示を出すことが重要 指示が不十分 or あいまいだと、タスク性能が低下したり、 意図しない結果を 引き起こすことがある

    (e.g. 目標の誤汎化・報酬ハッキング等 ) 通常、スコアを出力させる際は「 5段階でスコア付けしなさい。 1点は〜。 5点 は〜。 」とするが、指示チューニングによって同様のタスクを学習している必要があ る (→高品質な代理 LLMが必要 ) 生成確率をスコアとする手法は、生成確率が事前学習で学習されていることと、複 雑な指示チューニングが必要ない (→低品質な代理 LLMで十分な可能性 ) 111個の下流評価タスクでサンプリングの有効性が確認されている C4において、サンプリング 20%で下流タスクの性能を最大 33%向上 mC4 日本語や同種のデータセットでも同様の結果が得られる可能性が高い 13
  6. Ask-LLMプロトタイプ実装 入力を forward して logits を softmax して yes の確率の和を出力

    def ask(self, datapoints: list[str]) -> torch.Tensor: prompts = self.get_prompts(datapoints) inputs = self.tokenizer(prompts, return_tensors="pt", padding=True) with torch.no_grad(): outputs = self.model.generate( **inputs, max_new_tokens=1, output_logits=True, return_dict_in_generate=True, ) logits = outputs.logits[0] probs = torch.nn.functional.softmax(logits, dim=-1) yes_probs = probs[:, self.yes_ids] return torch.sum(yes_probs, dim=-1) 16
  7. Ask-LLMプロンプト (Flan-T5用 ) Flan-T5の場合、元論文の図 3のプロンプトをそのまま使用 ### {datapoint} ### Does the

    previous paragraph demarcated within ### and ### contain informative signal for pre-training a large-language model? An informative datapoint should be well-formatted, contain some usable knowledge of the world, and strictly NOT have any harmful, racist, sexist, etc. content. OPTIONS: - yes - no yes の表記揺れがあるので以下を yes とする ["yes", "Yes"] 17
  8. Ask-LLMプロンプト (gemma用 ) gemmaの場合、元論文図 3のプロンプトそのままでは yes , no 以外のトークンの生成 確率が高かったため、

    OPTIONS 以下を調整 ### {datapoint} ### Does the previous paragraph demarcated within ### and ### contain informative signal for pre-training a large-language model? An informative datapoint should be well-formatted, contain some usable knowledge of the world, and strictly NOT have any harmful, racist, sexist, etc. content. OPTIONS: yes/no ANSWER: yes の表記揺れがあるので以下を yes とする ["yes", "Yes", "YES", " yes", " Yes", " YES"] 18
  9. 予備実験 Ask-LLMのプロトタイプを実装し、予備実験を行った 入力データから図 3のプロンプトを作り、代理 LLMで推論しスコアを出力 実装レポジトリ https://github.com/susumuota/nano-askllm 事前学習データ : C4

    英語 , mC4 日本語 https://huggingface.co/datasets/allenai/c4 代理 LLM: google/flan-t5-small , google/gemma-2b-it https://huggingface.co/google/flan-t5-small https://huggingface.co/google/gemma-2b-it 19
  10. 元論文再現実験 Appendix E にて、 Ask-LLMによって選択された高品質 /低品質データの例が示されてい る Appendix E.1. High-quality

    Samples Identified by ASK-LLM Appendix E.2. Low-quality Samples Identified by ASK-LLM Appendix E.3. Increasing-quality Samples Identified by ASK-LLM Appendix E.4. Decreasing-quality Samples Identified by ASK-LLM 上記データに関してはスコアが判明しているので、 E.1. と E.2. について、スコアを再現 出来るかどうか実験を行った 21
  11. 結果 : C4 英語 高品質データ 1 上位 10トークンの生成確率 1 'no'

    0.6384 2 'yes' 0.3604 3 'it' 0.0006 4 'No' 0.0001 5 'Yes' 0.0000 6 '' 0.0000 7 'doesn' 0.0000 8 'is' 0.0000 9 'none' 0.0000 10 'nothing' 0.0000 スコア : 0.3605 元論文では 0.9333 スコアの絶対値が結構違う 23
  12. 結果 : C4 英語 高品質データ 2 上位 10トークンの生成確率 1 'no'

    0.6434 2 'yes' 0.3483 3 'it' 0.0015 4 'No' 0.0012 5 'Yes' 0.0006 6 'can' 0.0004 7 '' 0.0003 8 'is' 0.0003 9 'do' 0.0002 10 'doesn' 0.0002 スコア : 0.3488 元論文では 0.9986 スコアの絶対値が結構違う 25
  13. 結果 : C4 英語 高品質データ 3 上位 10トークンの生成確率 1 'no'

    0.5273 2 'yes' 0.4714 3 'it' 0.0003 4 'No' 0.0003 5 'Yes' 0.0001 6 '' 0.0000 7 'NO' 0.0000 8 'do' 0.0000 9 'none' 0.0000 10 'doesn' 0.0000 スコア : 0.4715 元論文では 0.9881 高品質 3個目も結構違う 27
  14. 結果 : C4 英語 低品質データ 1 上位 10トークンの生成確率 1 'no'

    0.7475 2 'yes' 0.2505 3 'it' 0.0005 4 'No' 0.0003 5 '' 0.0001 6 'Yes' 0.0001 7 'is' 0.0001 8 'yeah' 0.0000 9 'doesn' 0.0000 10 'okay' 0.0000 スコア : 0.2505 元論文では 0.0001 低品質でも結構違うが、高品質と比べて若干低いスコアになっている 29
  15. 結果 : C4 英語 低品質データ 2 上位 10トークンの生成確率 1 'no'

    0.8692 2 'yes' 0.1290 3 'it' 0.0008 4 'No' 0.0001 5 '' 0.0001 6 'is' 0.0001 7 'nothing' 0.0000 8 'okay' 0.0000 9 'doesn' 0.0000 10 'none' 0.0000 スコア : 0.1290 元論文では 0.0541 低品質でも結構違うが、高品質と比べて若干低いスコアになっている 31
  16. 結果 : C4 英語 低品質データ 3 上位 10トークンの生成確率 1 'no'

    0.8942 2 'yes' 0.1037 3 'it' 0.0007 4 'No' 0.0002 5 '' 0.0001 6 'is' 0.0001 7 'doesn' 0.0000 8 'none' 0.0000 9 'nothing' 0.0000 10 'okay' 0.0000 スコア : 0.1038 元論文では 0.0108 低品質でも結構違うが、高品質と比べて若干低いスコアになっている 33
  17. 論文再現実験結果 元論文スコアを再現出来ていないが、高品質 > 低品質 という傾向は一致 データセット 代理 LLM 品質 元論文スコア

    再現実験スコア C4 英語 flan-t5-small 高品質 0.9333 0.3605 C4 英語 flan-t5-small 高品質 0.9986 0.3488 C4 英語 flan-t5-small 高品質 0.9881 0.4715 C4 英語 flan-t5-small 低品質 0.0001 0.2505 C4 英語 flan-t5-small 低品質 0.0541 0.1290 C4 英語 flan-t5-small 低品質 0.0108 0.1038 34
  18. 結果 : mC4 日本語 データ 1 "生八つ橋のタグまとめ | エキサイトブログ 生八つ橋のタグまとめ

    「生八つ橋」のタグが ついている新着記事と人気記事をまとめました。エキサイトブログには生八つ橋に関連 するブログ(日記、記録、写真、レビュー、噂、まとめ)がたくさん投稿されていま す。 「生八つ橋」タグの記事( 4) 生八つ橋いろいろ 京都旅行のお土産 (我が家用 )に 色々な生八つ橋を買ってきました。我が家はみんな八つ橋ファンなのです~。地元の方 達や京都を案内してくれた Yさんは「八つ橋なんてもう何年も食べたことないわ~~~」 と仰っていましたが、いやいや、美味しいですよ~~!!私は大好きです!まぁ確かに 私は東京出身ですが、雷おこしや人形焼きは食べませんからね~。それと同じことでし ょうか^^;とはいえ、舟和の芋ようかんや東京ばな奈 ... 2020/03/06 23:54 - NYの 小さな灯り ~ヘアメイク日記~ 黒糖きな粉 冬限定の生 ... (省略 )" 38
  19. 結果 : mC4 日本語 データ 1 上位 10トークンの生成確率 1 '

    yes' 0.9473 2 ' no' 0.0289 3 ' Yes' 0.0152 4 ' No' 0.0056 5 ' the' 0.0016 6 ' The' 0.0007 7 ' ' 0.0001 8 ' ' 0.0001 9 ' YES' 0.0001 10 ' answer' 0.0001 スコア : 0.9626 yes の表記揺れがある yes と no 以外のトークン確率が低い 39
  20. 結果 : mC4 日本語 データ 2 "廃棄物をチップ/ペレットに - Gneuss フィルム、繊維、更には市場回収品である

    PET ボトルフレークなどのリサイクル可能な廃棄物は、高水準の純度で高品質ペレット /チッ プに加工し、生産押出機でバージン材料と混ぜることができます。 Startseite アプリケ ーション例 Granulat & Regranulat 繊維、フィルムやダンゴなどのリサイクル可能な廃棄 物は、シュレッダーに入れられ、金属セパレーター付コンベアでアジエータ―を搭載し た容器に投入されます。そこから、材料はオーガや詰め込みフィーダーによって押出機 に運ばれます。 あるいは、サイズを圧縮し塊となったリサイクル可能な廃棄物は、 MRS 押出機に直接入れることができます。サイズ圧縮と押し出しの処理工程を切り離すこと の長所は、材料の投下(そしてさらにスループット率も)が均一にされ ... (省略 )" 40
  21. 結果 : mC4 日本語 データ 2 上位 10トークンの生成確率 1 '

    yes' 0.8664 2 ' no' 0.1045 3 ' No' 0.0151 4 ' Yes' 0.0121 5 ' the' 0.0009 6 ' The' 0.0004 7 ' ' 0.0001 8 ' this' 0.0001 9 ' YES' 0.0001 10 ' ' 0.0001 スコア : 0.8787 データ 1よりも有用そうに見えるがスコアは低い 41
  22. Ask-LLM予備実験まとめ Ask-LLMのプロトタイプを実装し、予備実験を行った 元論文のスコアを再現出来なかったが、高品質 > 低品質 という傾向は一致 スコアがプロンプトの OPTIONS 以下の部分に敏感 yes

    の表記揺れを考慮する必要がある 日本語データセットに対してもスコア付けを行うことが可能 今後の課題 スコアが人間の評価とどの程度一致するか プロンプトエンジニアリング (日本語・ CoT・マルチターン ) 日本語下流タスクに対してサンプリングが有効かどうか 日本語の代理 LLMとの比較 推論の計算時間・コストの見積もり 43
  23. まとめ Ask-LLMの論文を紹介した 代理 LLMを使って、事前学習データセットのサンプリングを行うことで、事前学習 のデータ効率を向上 事前学習データセット C4に対して、サンプリング 20%でも下流タスクの性能を 33%向上 Flan-T5-XL

    (3B)という比較的小さな代理 LLMでも有効 Ask-LLMのプロトタイプを実装し、予備実験を行った 日本語データセットに対してもスコア付けを行うことが可能 日本語下流タスクに対してサンプリングが有効かどうかは今後の課題 実装リポジトリ https://github.com/susumuota/nano-askllm 44