Cosmopedia: LLM事前学習のための大規模合成データ

Hugging Faceは、MicrosoftのPhiモデルの学習手法を再現することを目的とした大規模合成データセット、Cosmopediaをリリースしました。このデータセットは3,000万以上のファイルと250億トークンを含み、スクラッチから大規模言語モデル(LLM)を事前学習させるために利用可能な最大規模のオープン合成データセットとなります。

事前学習のための合成データのスケーリング

合成データは通常、指示チューニングに使用されますが、Cosmopediaは事前学習用に数千サンプルから数百万の高品質サンプルへとスケールさせる課題に焦点を当てています。この取り組みは、主に合成の「教科書スタイル」データで学習したモデルが、一般的なウェブデータで学習したより大規模なモデルを上回ることを示したPhiシリーズの性能に触発されました。

データセット生成の方法論

CosmopediaはMixtral-8x7B-Instruct-v0.1を使用して生成されました。主要な課題は、3,000万のプロンプト全体で多様性を保ち、重複コンテンツを最小限に抑えることでした。Hugging Faceはプロンプトのキュレーションにおいて、主に3つの戦略を採用しました。

1. キュレーションされたソース

スタンフォードのコース、Khan Academy、OpenStax、WikiHowといった教育リソースからアウトラインとトピックを抽出しました。限られたソースの有用性を最大化するため、チームは受け手とスタイルの多様性を活用しました。1つのトピックを異なる対象読者(幼児、高校生、大学生、研究者)や異なる形式(教科書、ブログ記事、wikiHow記事)に再利用しました。

2. ウェブデータ

ウェブデータはプロンプトの80%以上を占めました。チームはRefinedWebなどのデータセットから得られた数百万のウェブサンプルを145のクラスターにクラスタリングしました。その後、Mixtralを用いて各クラスターの共通トピックを特定しました。セレブのゴシップや成人向けコンテンツなど、教育価値の低い内容は除外され、112のトピックが残されました。これらのトピック内のウェブサンプルに基づいて教科書を生成するようモデルに指示し、プロンプトを作成しました。

3. 指示データセットとストーリー

初期モデルに常識や基礎的な小学校レベルの知識が不足している問題に対処するため、チームはUltraChatとOpenHermes2.5をシードデータとして使用し、日常的な知識を組み込んだストーリーを生成しました。

技術スタックと実装

250億トークンの生成には、H100 GPU上で10,000時間以上のGPU時間が必要でした。技術的な実装には以下が含まれます。

  • テキストクラスタリング: text-clustering リポジトリを使用してウェブデータを整理しました。
  • 大規模生成: llm-swarm ライブラリを使用し、TGI(Text Generation Inference)とvLLMを用いてMixtral-8x7Bをローカルにデプロイしました。
  • デコンタミネーション: ベンチマーク漏洩を防ぐため、10-gram のオーバーラップと difflib.SequenceMatcher を使用したパイプラインを実装しました。ベンチマークサンプルとの一致率が0.5を超える場合、サンプルは破棄されました。
  • 学習と評価: nanotron ライブラリを介してLlama2アーキテクチャを使用し、1Bパラメータのモデル(cosmo-1b)を学習させ、lighteval で評価しました。

Cosmo-1B の性能

cosmo-1bモデルの評価では、ARC-easy、ARC-challenge、OpenBookQA、MMLUにおいてTinyLlama 1.1Bよりも優れた性能を示しました。ARC-challengeとOpenBookQAに関してはQwen-1.5-1Bと同等ですが、Phi-1.5に比べると依然として性能差があります。

今後の方向性

Hugging Faceは、歴史的事実や数学的推論における幻覚(ハルシネーション)を主な改善課題として特定しています。提案された解決策として、生成プロセス中にWikipediaなどの外部情報源を取り込むRetrieval Augmented Generation(RAG)の活用や、問題のある領域を特定するための幻覚測定手法の実装が挙げられます。

Sources