TECH BLOG
⼤規模⾔語モデル (LLM) による新規データ⽣成、合成データの活⽤
ARISE analytics の澁⾕です。本記事では⼤規模⾔語モデル (LLM) 開発においてよく使われるようになってきた合成データについて紹介していきます。
合成データとは⼈間が直接作成しないデータ、最近では特に LLM が⽣成したデータを合成データと呼びます。データサイエンスでは例えば、LLM を含む機械学習モデル⽤の学習データの⽣成や、性能評価のための正解データの⽣成などへの活⽤が考えられます。
背景として、昨年の中頃までは⼀部疑問視されていた[1] LLM などで⽣成された合成データの活⽤は、昨今のオープンソース LLM の⾼性能化を受けて急速に進んでいます。合成データは AI モデルの学習や、評価など活⽤できる領域が広く、今後も利⽤が拡⼤していくと考えられます。
本記事の前半では Google DeepMind の研究者らが発表した合成データのサーベイ論⽂、Best Practices and Lessons Learned on Synthetic Data [2] を基に、現状どのような活⽤ができ、どこに課題があるのかを紹介いたします。後半では、弊社ではどのように活⽤しているのかを簡単にご紹介させていただきます。本記事の内容が実務での合成データ活⽤に役⽴つと幸いです。尚本記事の前半部分は 25/03/28 に開催した ARISE LLM勉強会の内容を基にしております。
合成データの概要 (Ref. "AI models collapse when trained on recursively generated data")
⼤量で質の良いデータを準備するのは難しい
良い LLM を作るには、学習&評価⽤の⼤量で、多様で、質が良いデータを収集することが重要です。しかし、このようなデータを準備するには、そもそもデータが不⾜している、プライバシーへの配慮が必要、⾼品質なデータの収集・アノテーションコストなど、困難さがあります。
また、⼀説によれば 2026 年には学習するためのデータが枯渇するのでは、ということが⾔われています[3]。
解決策となり得る合成データとは︖
AI モデルなどで⽣成した、⼈間が直接作成していないデータを合成データと呼びます。合成データを⽤いることで、⽐較的容易に⼤量で質の良いデータを収集できる可能性があります。また、プロンプトなど⼊⼒情報で出⼒を制御できるために、様々な要求に合わせて調整ができるということと、個⼈情報を含まないデー
タを⽣成することができるため、プライバシーへの懸念が少ないということも利点として挙げられます。
合成データはどのように使える︖
合成データの活⽤⽅法について学習領域と評価領域に分けて紹介していきます。
学習領域
合成データは例えば LLM の学習で活用できます。新しいもので言えば、論理やツール使用、マルチモーダル、多言語、人の意図に沿う能力を高める使われ方が提案されています。 具体例は下記のようになっています。
- 論理
- WizardMath: 数学問題に特化した論理的推論力を鍛えるため、複雑な数式やステップバイステップの解答を含む合成データを GPT を用いて学習している※[4]。
- ツール使用・プランニング
- Voyager: Minecraft 内での探索タスクを通じてエージェントがツールを選択・計画できるように、環境に応じた行動計画データを合成し強化する[5]。
- マルチモーダル
- LLaVA: 画像と caption を入力とし、画像に関する QA データを生成し、視覚と言語の統合能力を高めるためのマルチモーダル学習に活用している[6]。
- 多言語
- QA セットで言語を混ぜる: 英語やその他の言語を組み合わせた QA ペアを合成し、多言語対応力やコードスイッチング(言語切り替え)への耐性を養っている[7]。
- アライメント
- UltraChat: 大規模かつマルチターンの合成対話データセットであり、2 つの別々の ChatGPT Turbo API モデル を使って生成された[8]。
※OpenAI の GPT を学習に用いることは基本的にライセンス違反になりますので、実務では注意してください。合成データを使用するときはモデルやデータセットのライセンスをよく確認するのが安全です。
学習における日本語モデルの活用事例として、東大松尾研発のモデル Tanuki が挙げられます。Calm3 などで生成した大量の会話データを学習させることで会話に特化したモデルとなったとのことでした[9]。
評価領域
合成データは評価をする時にも活用できます。生成された情報の事実性や安全性を評価したり、人手評価のサポートにもされています。 具体例は下記のようになっています。
-
事実性
- LongFact:GPT-4 を使って生成された、38 のトピックにわたる数千の質問を含んだプロンプトセット[10]。
-
安全性
- バックドア攻撃のシナリオ合成: 特定のトリガー入力に対して悪意ある応答を引き出すようなバックドア攻撃を再現するため、攻撃パターンを含むプロンプトと期待応答を合成し、安全性評価に利用している[11]。
-
人手評価の支援
- MT-Bench: マルチターンの QA セットであり、データセットの内の合成された正解と比較してモデルの出力がどのくらい良い内容か自動評価することができる[12]。
合成データの課題
現状の合成データには未だ課題があります。例えば、間違った合成データによるハルシネーションの増加や回答のあいまいさの増幅、評価データが学習データに混じることが挙げられます。
展望
今後も合成データの量と質は向上が見込まれます。それに伴うモデルの忠実性強化や振る舞いの監視も重要になってくると考えられます。自身の生成を使った自己強化能力も注目されます。
前半のまとめ
昨今のオープンソース LLM の高性能化を背景に、合成データの活用が急速に進展しており、モデル学習においては、論理的推論や多言語能力の付与、人間の嗜好への適応といった機能拡張の領域で活用が進んでいます。また、評価においても、事実性や安全性といった生成情報の質を測る手段として利用されており、人手による評価を支援する目的でも活用されています。一方で、現状の合成データには、悪用による誤情報の拡散や、低品質なデータが引き起こす意図しないモデルの振る舞い、さらには評価データの汚染といった課題も存在します。今後は、モデルや手法の進化に伴い、合成データは質・量の両面でさらに発展していくと考えられており、その活用可能な領域も今以上に広がっていくことが期待されています。
合成データ具体手法の紹介
シード情報を用いた合成
合成データの手法としてよく使われるのがシード情報を基にして新しいプロンプトや回答を作る方法だと思います。ここで言うシード情報とは「○○ を参考にして ×× して」という指示をする時の ○○ のイメージです。例えば、既存のデータセットをシード情報として同じような形式でのデータが欲しければ、「下記のデータと同じような形式で全く違う内容のデータを作成して」と指示すれば合成してくれます。また、シード情報にネットからスクレイピングした情報を入れ、その情報を基にした QA を作らせることもできます。このように、人に指示するような形で LLM にシード情報を基に多様なデータを作らせることができます。ただし、モデルによっては画一的な答えしか出してくれない場合があります。その場合は、毎回シード情報を変更する、1 回の合成で複数個のデータを作らせるなど工夫が必要です。
Persona Hub
シード情報としてペルソナを付与してデータを合成する手法はいくつか提案されているものの、今回は"Scaling Synthetic Data Creation with 1,000,000,000 Personas" [13] で提案された Persona Hub を紹介します。
この手法は非常にシンプルで、プロンプトをCreate {data} with {persona}
とし、LLM に生成させるだけです。data には例えば「数学の問題」が入り、ペルソナには「引っ越し会社のドライバー」が入ります。この 2 つを変数とすることで、多様なデータを作成できるという手法になります。
ペルソナの作成方法は 2 種類提案されており、1 つ目が Text-to-Persona で、スクレイピングした Web テキストから、書くまたは読む人はどんな人か LLM に質問することで、作成します。2 つ目は Persona-to-Persona という手法で、既存のペルソナと関係を持ちそうな新規のペルソナを考えさせる方法です。こちらは 1 つ目の手法で漏れてしまう Web を見ないような人々をカバーするための手法となっています。
前述の Tanuki でもこの手法を用いて合成データが作成されているそうです[Ref. ]。
シード情報用いない合成
モデルにもよりますが、シード情報無しで多様なデータを作成するのは一般に難しいです。例えば、「中学 1 年生の数学問題を作ってください」と指示しても同じような回答をしてしまうことがあります。一方、シード情報無しのデータ合成手法 Magpie では多様なプロンプトを作りやすいことが示唆されており、この手法について紹介していきます[14]。
Magpie
Magpie は下記の図のようなステップで表される手法になっています。
- これから user が入力することを表す prefix のみをプロンプトとして LLM に入力する LLM への入力:
<|start_header_id|>user<|end_header_id|>
- LLM の出力をユーザークエリとし、これから assistant が入力することを表す prefix を加え入力することで、回答を生成する LLM への入力:
<|start_header_id|>user<|end_header_id|> ノーベル物理学賞を受賞した日本人は? <|eot_id|><|start_header_id|>assistant<|end_header_id|>
- 得られたユーザークエリと回答を QA セットとし、データクレンジングをした後に学習用データとして使用する
<|start_header_id|>user<|end_header_id|> ノーベル物理学賞を受賞した日本人は? <|eot_id|><|start_header_id|>assistant<|end_header_id|> ノーベル物理学賞を受賞した日本人は湯川秀樹、朝永振一郎、南部陽一郎、... <|eot_id|>
この手法のキモは Step1 で、これから user が入力することを表す prefix のみをプロンプトとして入力するというところです。この手法により、モデルは user が言いそうなことを考えて出力してくれます。合成データで重要な要素の 1 つがデータの多様性です。この手法では、非常にシンプルなプロンプトを使用することで、多様なユーザークエリを引き出すことが出来ると提案されています。
後半のまとめ
後半では、実際に合成データを生成するための具体的な手法として、「シード情報を用いた合成」と「シード情報を用いない合成」の 2 つのアプローチを紹介しました。シード情報を用いた手法では、既存のデータやペルソナを起点として多様なデータを生成する方法が主流であり、特に「Persona Hub」では、1 億人規模のペルソナを掛け合わせることで、バリエーション豊かなデータ生成が可能となる点が特徴でした。一方で、シード情報を使わない Magpie では、プロンプト最小限の設計によって、モデル自身が多様なユーザー入力を想定することにより、自然かつ幅広い QA データの生成がすることが提案されています。どちらの手法も、合成データの質と多様性を両立させるための工夫が込められていて、今後も様々な手法や応用が提案されていくでしょう。
総括
合成データは、従来の人手によるデータ収集やアノテーションのコスト・制約を乗り越える有力な手段として、注目を集めています。前半ではその活用領域として、LLM の学習や評価の場面での実践例を紹介し、後半では実際の合成手法に踏み込んで、Persona Hub や Magpie などの最先端のアプローチを解説しました。これらの手法に共通するのは、「多様性」と「制御性」のバランスを取りながら、効率的に高品質なデータを生み出すという工夫です。
現在生成できる合成データの質は必ずしも良いとは限りません。実際に実務で使用する場合は人手で合成データの質を検証をした後に、活用するとより意図に沿った結果が得られそうです。今後も引き続き発展していく分野だと思うので、提案される手法を継続的にキャッチアップすることでより良いで合成データを作れるかもしれません。本記事の内容が少しでもどなたかのお役に立てれば幸いです。
参考文献
[1] Shumailov, I., Shumaylov, Z., Zhao, Y. et al. AI models collapse when trained on recursively generated data. Nature 631, 755–759 (2024). https://doi.org/10.1038/s41586-024-07566-y [2] R. Liu, J. Wei, F. Liu, C. Si, Y. Zhang, J. Rao, S. Zheng, D. Peng, D. Yang, D. Zhou, et al. Best practices and lessons learned on synthetic data for language models. ArXiv preprint, 2024. [3] “Will We Run Out of Data? Limits of LLM Scaling Based on Human-Generated Data”, EPOCH AI [4] Haipeng Luo, Qingfeng Sun, Can Xu, Pu Zhao, Jianguang Lou, Chongyang Tao, Xiubo Geng, Qingwei Lin, Shifeng Chen, and Dongmei Zhang. Wizardmath: Empowering mathematical reasoning for large language models via reinforced evol-instruct. ArXiv preprint, abs/2308.09583, 2023a. URL https://arxiv.org/abs/2308.09583. [5] Guanzhi Wang, Yuqi Xie, Yunfan Jiang, Ajay Mandlekar, Chaowei Xiao, Yuke Zhu, Linxi Fan, and Anima Anandkumar. Voyager: An open-ended embodied agent with large language models. ArXiv preprint, abs/2305.16291, 2023. URL https://arxiv.org/abs/2305.16291. [6] Haotian Liu, Chunyuan Li, Qingyang Wu, and Yong Jae Lee. Visual instruction tuning. Advances in neural information processing systems, 36, 2024b. [7] Akari Asai, Xinyan Yu, Jungo Kasai, and Hanna Hajishirzi. One Question Answering Model for Many Languages with Cross-lingual Dense Passage Retrieval. Advances in neural information processing systems, 34, 2021. [8] Ning Ding, Yulin Chen, Bokai Xu, Yujia Qin, Zhi Zheng, Shengding Hu, Zhiyuan Liu, Maosong Sun, and Bowen Zhou. Enhancing chat language models by scaling high-quality instructional conversations. ArXiv preprint, abs/2305.14233, 2023. URL https://arxiv.org/abs/2305.14233. [9] "大規模言語モデル Tanuki-8B, 8x8B の位置づけや開発指針など" [10] Sewon Min, Kalpesh Krishna, Xinxi Lyu, Mike Lewis, Wen-tau Yih, Pang Wei Koh, Mohit Iyyer, Luke Zettlemoyer, and Hannaneh Hajishirzi. Factscore: Fine-grained atomic evaluation of factual precision in long form text generation. arXiv preprint arXiv:2305.14251, 2023. [11] Evan Hubinger, Carson Denison, Jesse Mu, Mike Lambert, Meg Tong, Monte MacDiarmid, Tamera Lanham, Daniel M Ziegler, Tim Maxwell, Newton Cheng, et al. Sleeper agents: Training deceptive llms that persist through safety training. ArXiv preprint, abs/2401.05566, 2024. URL https://arxiv.org/abs/2401.05566. [12] Lianmin Zheng, Wei-Lin Chiang, Ying Sheng, Siyuan Zhuang, Zhanghao Wu, Yonghao Zhuang, Zi Lin, Zhuohan Li, Dacheng Li, Eric. P Xing, Hao Zhang, Joseph E. Gonzalez, and Ion Stoica. Judging llm-as-a-judge with mt-bench and chatbot arena, 2023. [13] Tao Ge, Xin Chan, Xiaoyang Wang, Dian Yu, Haitao Mi, Dong Yu. Scaling synthetic data creation with 1,000,000,000 personas. arXiv preprint arXiv:2406.20094. [14] Zhangchen Xu, Fengqing Jiang, Luyao Niu, Yuntian Deng, Radha Poovendran, Yejin Choi, Bill Yuchen Lin. Magpie: Alignment data synthesis from scratch by prompting aligned LLMs with nothing. arXiv preprint arXiv:2406.08464.