テキストブック品質の合成データを使用して言語モデルをトレーニングする
トレーニングにテキストブック品質の合成データを使用する
マイクロソフトリサーチの論文「テキストブックはすべて必要です」の探求
マイクロソフトリサーチは、モデルのトレーニングにおけるデータの役割に関する議論に新たな火をつける論文を発表しました。具体的には、データの品質と合成データの役割に触れています。この論文はPythonコードのトレーニングモデルに焦点を当てていますが、その示唆はコーディングを超えて広がっています。この研究から得られる知見は、言語モデルのプロジェクトにおける貴重な事例研究として機能するでしょう。
「テキストブックはすべて必要です」のモデルは、その成功を画期的な設計やトレーニング方法には負っていません。実際、著者らは「私たちのモデルのアーキテクチャとトレーニング方法はかなり従来的です。」と述べています。その代わりに、革新はトレーニングデータにあります。論文から引用すると:
「私たちは、このような高品質のデータがコードの言語モデルの学習効率を劇的に向上させると仮説を立てています。なぜなら、それらはコーディングの概念とスキルの明確で独立した具体的で教示的かつバランスの取れた例を提供しているからです。」
データの品質の価値は、ある意味では当然のことです。手元により良い品質のデータが同じ量ある場合、低品質のデータでトレーニングすることを主張する人は想像しにくいです。しかし、データの品質の相対的な重要性に関する意見は、過去数年間で著しく変化しています。
2020年には、OpenAIの論文「ニューラル言語モデルのスケーリング法則」がモデルのサイズを最も重要な要素と位置付けました。「最適な計算効率のトレーニングは、比較的少量のデータに非常に大きなモデルをトレーニングすることを含みます。」と述べています。そして、2022年には、DeepMindの「Chinchilla」論文で、データのサイズが同じくらい重要であると主張しました。「現在の大規模言語モデルは、十分にトレーニングされていません。」しかし、今や2023年において、注目はデータの品質に移っています。これは、最近リークされたGoogleのメモ「私たちには堀がありません」のセクションでも強調されており、「データの品質はデータのサイズよりもスケールする」と宣言しています。
ここで分析されている「テキストブックはすべて必要です」という論文は、この大きな動きの中でのひとつのハイライトにすぎません。もうひとつ注目すべき例としては、「LIMA: Less is More for Alignment」があります。この研究は、小規模ながら高品質なデータセットを使用してモデルのアラインメントを印象的な結果で達成する方法を示しています。
合成データ(モデル自体が生成するデータ)の有用性は、大いに議論の的となっています。AlpacaやVicunaの作成のように、より大きなモデルの出力を使用してより小さなモデルをトレーニングしようとする試みは、懐疑的に受け入れられています。批評家はしばしば、「モデルの模倣は虚偽の約束であり、オープンなLLMとクローズドなLLMの間には大きな能力の差があり、現在の方法では多量の模倣データを使用するか、より能力の高いベースのLLMを使用することでしか埋めることができない」と主張するバークレーの論文「私有LLMの偽りの約束」のような議論を指摘します。
しかし、「テキストブックはすべて必要です」は、この視点に異を唱え、より大きなモデルの出力を単なる模倣以上の目的に活用できることを示しています。驚くべきことに、論文の小さなモデルは、それがトレーニングされた合成データを生成した大きなモデルを上回るパフォーマンスを実現しています。この観察結果は、大きなモデルのパフォーマンスを自身の出力でトレーニングすることで向上させることができるのではないか、という魅力的な問いを提起します。
結果
モデルのトレーニングに使用されたトレーニングデータについて詳しく調べる前に、それらが達成する結果に一目を向けましょう。この論文の3つのモデルは、phi-1-base、phi-1、phi-1-smallです。特筆すべきは、これらのモデルがパラメータにおいてコンパクトであるだけでなく、限定されたデータでトレーニングされていることです。このような条件にもかかわらず、彼らのパフォーマンスは驚くべきものです。
ここでのスコアは、OpenAIのHumanEvalベンチマークでのものであり、その詳細は彼らの論文「Evaluating Large Language Models Trained on Code」で紹介されています。このベンチマークの問題では、モデルに関数のシグネチャとドキュメントストリングが与えられ、関数の本体を書くように求められます。例として、HumanEvalの論文から抜粋した以下の例を考えてみましょう。モデルには以下のシグネチャとドキュメントストリングが与えられます。
この問題では、モデルが次のようなものを生成することを期待しています:
ただし、モデルの評価はこの正確な文字列を生成することに基づいて行われるわけではありません(それにはモデルが問題を同じ方法で解決し、同じ変数名でソリューションを生成する必要があります)。代わりに、モデルが生成する本体は、いくつかの単体テストで評価されます(平均で問題ごとに7.7個の単体テストがあり、各テストは関数のパラメータの選択と生成されたコードが一致する必要のある期待される出力からなります)。コードは、すべての単体テストに合格する場合にのみ正しいと見なされます。上の表のpass@1メトリックは、すべての単体テストに合格する生成された関数本体の割合に過ぎません。より一般的なpass@kメトリックでは、モデルがk個のサンプルを生成し、そのうちのいずれかがすべての単体テストに合格すれば成功と見なされます。
論文のモデルは、3つの異なるソースのデータでトレーニングされました。最初のソースである「The Stack+」は、「The Stack」の35Bトークンの重複排除バージョンとStackOverflowからのコードをPythonに制限したものです。ただし、重要なことは、phi-1およびその派生モデルはこのソースでトレーニングされていないということです。代わりに、これらのモデルは「CodeTextbook」と呼ばれる、The Stack+のテキストブック品質の6Bトークンのフィルタリングされた選択肢と1Bトークンの合成コンポーネント、および「CodeExercises」と呼ばれる、HumanEvalデータセットで見つかる問題スタイルに対応した合成の180Mトークンの演習と解決策のセットでトレーニングされています。その効果は以下の図に示されています。
ここでは、このデータのさまざまなサブセットでトレーニングされたさまざまなパラメータを持つ9つのモデルが表示されています。このチャートのライトグリーンのモデルは、CodeTextbookのみでトレーニングされ、The Stack+ではトレーニングされていないため、CodeTextbookがより優れたソースであることが明らかです。ダークグリーンのモデルによるCodeExercisesでの微調整はさらなる効果をもたらしました。
チャートには次のように名前が付けられたモデルが3つあります:
- phi-1-baseは、CodeTextbookの7Bトークンに「約8回」トレーニングされた13Bパラメータモデルです。これは約50Bのトレーニングデータに相当し、8つのA100で4日間かかりました。
- phi-1は、phi-1-baseをCodeExercisesの180Mトークンで微調整した結果です。この微調整には8つのA100で7時間かかりました。
- phi-1-smallはphi-1と同様のプロセスで作成されたものですが、350Mパラメータモデルの設計であり、CodeTextbookでおよそ11回トレーニングされています。8つのA100で2日間かかります。
CodeTextbookのフィルタリングされた部分(6Bトークン)
CodeTextbookのこの部分では、チャート上でStack+と呼ばれるThe Stackの35Bトークンの重複排除およびPython制限バージョンとStackOverflowからのコードを出発点としました。そして、6Bトークンのテキストブック品質のサブセットに絞り込みました。
このフィルタリングを行うために、GPT-4はまず、全体の35Bトークンのデータセット(100Mトークン)の約0.3%の教育的価値を決定するために使用されます。使用されるプロンプトは「基本的なコーディングの概念を学ぶことを目標とする学生のための教育的価値を決定する」です。
なぜGPT-3.5ではなくGPT-4がこのステップで選ばれたのかは明示されていませんが、タスクが「わずか」100Mトークンの分類であることを考慮すると、GPT-4の使用は過度に高価ではなく、より正確な結果をもたらすでしょう。
次に、これらの注釈を使用して別のモデル(ランダムフォレスト分類器)をトレーニングし、データセットの残りを高い教育的価値または低い教育的価値に分類します。その後、この分類器を使用して元のデータセットを高い教育的品質の6Bトークンのデータセットにフィルタリングします。
CodeTextbookの合成部分(1Bトークン)
ここからはさらに興味深いことが起こります。著者はGPT-3.5を使用して高品質な「Pythonの教科書」を生成します。
LLM(Large Language Models)を使用して小さなモデルをトレーニングするために合成データを生成することは、以前のMicrosoft Researchの論文である「TinyStories: How Small Can Language Models Be and Still Speak Coherent English?」で先例があります。この論文では、幼児のレベルで理解できる明瞭なストーリーを書くために小さな言語モデル(1Mから33Mのパラメータ)をトレーニングすることを目標とし、データセットはすべてGPT-3.5とGPT-4が書いたストーリーで構成されています。TinyStoriesの論文から引用します。
「大規模な言語モデルをトレーニングデータの生成に使用する際の主な課題は、十分に「多様」なデータセットを生成することです。モデルにストーリーを生成させると、生成の温度が高く設定されていても、非常に反復的なデータセットが生成されます。このデータセットの多様性は、子供と同等の言語理解能力を持つ言語モデルをトレーニングするために必要なものとは非常にかけ離れています。」
TinyStoriesが合成データの多様化に使用するトリックは、各プロンプトごとに3つのランダムな単語(名詞、動詞、形容詞)と「ストーリーの特徴」の少数を選ぶことです。例えば、彼らのプロンプトの一つは以下のようなものです。
残念ながら、Microsoft Researchは教科書品質のテキストの多様なコレクションを生成するためのトリックについてはほとんど詳細を提供しておらず、プロジェクトはコードやデータを公開していません。彼らは「推論と基本的なアルゴリズムのスキルを促すトピック」にコンテンツをターゲットにしていると述べており、テキストブックのトピックや対象読者に制約を設けています。以下は、彼らのプロンプトの典型的な応答の例です。
言うまでもなく、このプロセスのこのステップについてもっと詳しく知りたいと思います。具体的なプロンプトは何ですか?トピックはどのように選択されますか?GPT-3.5にはどのような対象読者に対して書くように指示されていますか?CodeTextbookを調査することも興味深いでしょうが、データは公開されていません。
CodeExercises(180Mトークン)
phi-1とphi-1-smallのトレーニングデータの最後の部分(ただし、phi-1-baseには該当しません)は、HumanEvalベンチマーク問題の形式と同様の演習と解答のセットです。再び、このデータは完全に合成され、GPT-3.5によって生成されます。著者は、出力の多様性を関数名の制約によって達成したと述べています。これの正確な意味は私には明確ではありませんが、おそらく別のモデルがまず関数名とシグネチャのリストを生成し、それからGPT-3.5に対して対応するドックストリングと本体を生成するようにプロンプトしています。以下は、典型的な出力の例です。
このデータセットは、180Mトークンしか含まれていないため、著者はこれを小規模なデータセットと呼んでいます。しかし、上記の例が代表的である場合、CodeExercisesにはおよそ100万個の演習問題と解答が含まれていると考えられます。
CodeExercisesがHumanEvalベンチマークと同じ関数に偶然出会っているだけであり、phi-1がテストされる演習問題の解答に対して微調整されている可能性に疑念を持つのは妥当です。著者はこの懸念についての議論にかなりのスペース(セクション5全体)を割いています。まず、CodeExercisesとHumanEvalの間には限られた類似性しかないと主張しています。さらに、HumanEvalとわずかに似ているCodeExercisesの演習問題を削除した場合(類似性は埋め込み距離に基づいて測定されます)、削除されたデータセットで訓練されたモデルは依然として印象的であると主張しています。
コスト
この論文および論文の詳細な解説の焦点はデータの品質にあります。しかし、少なくとも各コンポーネントの相対的なコストを考慮することは興味深いです。
- フィルタリング。 The Stack+のフィルタリングプロセスでは、教育的価値を持つと判断された10万個のファイル、つまり約1億の入力トークンを使用しました。出力トークン(ほとんどないと仮定)を無視し、今日の価格である1K入力トークンあたり0.03ドルの料金を適用すると、約3,000ドルかかります。
- 合成。 CodeTextbookとCodeExercisesの合計で約1280MトークンのGPT-3.5生成テキストが含まれています。今日の価格である1K出力トークンあたり0.002ドルの料金を適用すると、このデータの作成には2,500ドル以上かかります。
- 訓練。 phi-1モデルの訓練には1090時間かかりました。現在の価格であるA100の1時間あたり約1ドルを適用すると、約1,000ドルになります。350Mパラメータのphi-1-smallを訓練するのには400ドルかかります。
phi-1の作成には、およそ6,500ドルの計算が必要でした。
著者は、合成にGPT-4を使用すると大幅な改善が期待できると推測しています。「GPT-3.5のデータには高いエラー率があることに気付いたため、GPT-4を使用して合成データを生成すると、さらなる利益が得られるとも考えています。しかし、これらのコストがなぜ彼らがそれを行わなかったかを示しています。GPT-3.5の価格の30倍になるため、GPT-4を使用してCodeTextbookとCodeExercisesの合成部分を生成するのに約75,000ドルかかります。
結論
Textbooks Are All You Needからの結果は非常に印象的です。特に、モデルのサイズが小さく、限られた訓練データしか与えられていないことを考慮すると、さらにデータの品質がデータの量とモデルのサイズを補うことができることを示しています。
合成データに関する議論は確実に続くでしょう。この概念は魅力的です。高品質のデータが容易に利用できない場合、合成することは可能でしょうか? Textbooks Are All You Needは、この分野でいくつかの有望な可能性を示しています。ただし、CodeTextbookの7Bトークンのうち約10億トークンしか合成されていないため、完璧な実験とは言えません。ただし、他の60億トークンは合成によってフィルタリングされていることを指摘しておく価値があります。
完全に合成データで訓練することは、画像処理の分野で興味深い結果を示しています。Google ResearchのStableRep:Synthetic Images from Text-to-Image Models Make Strong Visual Representation Learnersという研究は、テキストから画像へのモデルを使用し、Stable Diffusionによって完全に合成されたデータで訓練しました。彼らが報告する結果は、Stable Diffusion自体の性能を上回るか、あるいはそれに匹敵します。
TinyStories論文でも同様の手法が採用され、訓練には合成データのみが使用されました。ただし、使用されたモデルは非常に小さいものでした。同じ方法でより大規模な言語モデルを訓練した場合、これが示す潜在能力は非常に興味深く、将来の多くの研究の焦点になることでしょう。
参考文献
Chen, M., Tworek, J., Jun, H., Yuan, Q., de Oliveira Pinto, H. P., Kaplan, J., Edwards, H., Burda, Y., Joseph, N., Brockman, G., Ray, A., Puri, R., Krueger, G., Petrov, M., Khlaaf, H., Sastry, G., Mishkin, P., Chan, B., Gray, S., Ryder, N., Pavlov, M., Power, A., Kaiser, L., Bavarian, M., Winter, C., Tillet, P., Such, F. P., Cummings, D., Plappert, M., Chantzis, F., Barnes, E., Herbert-Voss, A., Guss, W. H., Nichol, A., Paino, A., Tezak, N., Tang, J., Babuschkin, I., Balaji, S., Jain, S., Saunders, W., Hesse, C., Carr, A. N., Leike, J., Achiam, J., Misra, V., Morikawa, E., Radford, A., Knight, M., Brundage, M., Murati, M., Mayer, K., Welinder, P., McGrew, B., Amodei, D., McCandlish, S., Sutskever, I., and Zaremba, W. (2021). Evaluating large language models trained on code. arXiv:2107.03374.
Eldan, R. and Li, Y. (2023). TinyStories: How small can language models be and still speak coherent English? arXiv:2305.07759.
Gudibande, A., Wallace, E., Snell, C., Geng, X., Liu, H., Abbeel, P., Levine, S., and Song, D. (2023). The false promise of imitating proprietary LLMs. arXiv:2305.15717.
Gunasekar, S., Zhang, Y., Aneja, J., Mendes, C. C. T., Giorno, A. D., Gopi, S., Javaheripi, M., Kaumann, P., de Rosa, G., Saarikivi, O., Salim, A., Shah, S., Behl, H. S., Wang, X., Bubeck, S., Eldan, R., Kalai, A. T., Lee, Y. T., and Li, Y. (2023). Textbooks are all you need. arXiv:2306.11644.
Hoffmann, J., Borgeaud, S., Mensch, A., Buchatskaya, E., Cai, T., Rutherford, E., de Las Casas, D., Hendricks, L. A., Welbl, J., Clark, A., Hennigan, T., Noland, E., Millican, K., van den Driessche, G., Damoc, B., Guy, A., Osin- dero, S., Simonyan, K., Elsen, E., Rae, J. W., Vinyals, O., and Sifre, L. (2022). Training compute-optimal large language models. arXiv:2203.15556.
Kaplan, J., McCandlish, S., Henighan, T., Brown, T. B., Chess, B., Child, R., Gray, S., Radford, A., Wu, J., and Amodei, D. (2020). Scaling laws for neural language models. arXiv:2001.08361. Tian, Y., Fan, L., Isola, P., Chang, H., and Krishnan, D. (2023). StableRep: Synthetic images from text-to-image models make strong visual representation learners. arXiv:2306.00984. Zhou, C., Liu, P., Xu, P., Iyer, S., Sun, J., Mao, Y., Ma, X., Efrat, A., Yu, P., Yu, L., Zhang, S., Ghosh, G., Lewis, M., Zettlemoyer, L., and Levy, O. (2023). LIMA: Less is more for alignment. arXiv:2305.11206.
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles