大規模言語モデル(LLM)のエンジン:データセットの解説

本記事は、当社オウンドメディア「Doors」に移転しました。

約5秒後に自動的にリダイレクトします。


このたびブレインパッドは、LLM/Generative AIに関する研究プロジェクトを立ち上げ、この「Platinum Data Blog」を通じてLLM/Generative AIに関するさまざまな情報を発信をしています。
この記事では、大規模言語モデルのデータセットのソース、収集方法、その信頼性と倫理性、そしてデータのクリーニングと前処理についての詳細を解説します。


近年に公開された大規模言語モデルの年表 *1


こんにちは、アナリティクスサービス部の金です。

今回の話題は、ビジネスや研究における大規模言語モデル(Large Language Models、略してLLM)の根幹を成すデータセットです。データセットの内容と構成は、大規模言語モデルの振る舞いに大きく影響を与えます。

この記事では、大規模言語モデルのデータセットのソース、収集方法、その信頼性と倫理性、そしてデータのクリーニングと前処理について詳細に解説します。最後には、データセットに関わる問題点と研究開発の方向性についても言及します。

大規模言語モデルのデータセットに関する理解は、大規模言語モデルのビジネス利用や研究におけるリスクを管理し、最大の利益を得るために不可欠です。これらの情報を通じて、読者が大規模言語モデルのデータセットについての深い理解を得られることを願っています。

本記事では統一性を保つため、「大規模言語モデル」の表現を一貫して使用します。

1. はじめに

1.1 大規模言語モデルとは何か?

2023年3月時点の大規模言語モデルのモデルサイズ(パラメーター数)*2

大規模言語モデルは、人間のように文章を理解したり生成したりすることが可能なAIの一種です。これらのモデルは、数十億から数百億のパラメータを持つことがあり、その訓練には大量のテキストデータが必要となります。大規模言語モデルがもたらす可能性とその重要性は、科学研究からビジネスアプリケーションまで幅広い分野で認識されています。

1.2 データセットの重要性

大規模言語モデルを訓練するためには、大量のテキストデータセットが必要です。このデータセットは、モデルが学習する「世界」を形成し、そのパフォーマンスと能力を大いに左右します。データセットが質的に優れていれば優れているほど、モデルはより良いパフォーマンスを発揮します

2. データセットのソース

大規模な言語モデルの学習は、一般的に二つのフェーズに分けられます:

  • 事前学習: モデルは大規模な自然言語コーパスに対して学習し、言語の基本的なパターンや文脈理解を把握します。
  • ファインチューニング: 事前学習済みのモデルが特定のタスクやドメインに合わせて微調整されます。これにより、モデルは特定のタスクやドメインに対する性能を向上させます。

それぞれのフェーズでは、異なる種類のデータセットが使用されます。この節ではフェーズごとに使用されるデータセットの種類と収集方法を説明します。

2.1 事前学習に使用されるデータ

2.1.1 主なソースの種類
  • ウェブページ:ウェブページは、インターネットの普及により、さまざまな種類のデータが生み出されています。これにより、大規模言語モデルは多様な言語知識を獲得し、その汎化能力を強化することができます。しかし、ウェブから収集されるデータには、Wikipediaなどの高品質なテキストからスパムメールなどの低品質なテキストまで含まれており、フィルタリングと処理が重要です。
  • CommonCrawl: CommonCrawlは最大のオープンソースのウェブクローリングデータベースの一つで、ペタバイトスケールのデータ量を含み、既存の大規模言語モデルの訓練データとして広く使用されています。
  • Redditのリンク: Redditはリンクとテキスト投稿をユーザーが投稿でき、他の人々が“アップボート”または“ダウンボート”で投票できるソーシャルメディアプラットフォームです。高いアップボートを得た投稿はしばしば有用と見なされ、高品質なデータセットを作成するのに利用されます。
  • Wikipedia: Wikipediaは多種多様なトピックについての高品質な記事を大量に含むオンライン百科事典です。ほとんどの大規模言語モデルでは、主に英語版のWikipediaが使用されますが、多言語設定に対応しているため、多言語の大規模言語モデル訓練にも使用できます。
  • 会話テキスト:会話データは、大規模言語モデルの会話能力を強化することができます。例えば、公開されている会話コーパスの一部を利用したり、オンラインのソーシャルメディアから会話データを収集することが可能です。ただし、オンラインの会話データは多くの参加者間での議論を含むため、効果的な処理方法として、会話をツリー構造に変換し、発言が応答するものにリンクする方法があります。
  • 書籍:書籍は、形式的な長いテキストの重要なソースとなります。これは大規模言語モデルが言語知識を学び、長期的な依存性をモデル化し、物語性と一貫性のあるテキストを生成するのに有益です。BookCorpusとProject Gutenbergは大規模な書籍コーパスの例で、様々な話題とジャンルをカバーしています。これらは公開されており、多くの大規模言語モデルの訓練に使用されています。
  • コード:コードデータを収集するためには、主にインターネットからオープンソースライセンスのコードをクロールします。公開されているコードリポジトリやコード関連のQ&Aプラットフォームが主なソースです。

また、特定の目標を達成するためには、一般的なテキストデータだけでなく、特定の目的に特化したデータソースの利用が必要です。それらのデータソースは一部のタスクや特定の能力を強化することを目指しています。

  • 多言語テキスト:多言語能力を向上させるためには、多言語コーパスの統合が有効です。これは各言語の特性や表現を理解するのに役立ちます。また、それらのデータを組み合わせることで、モデルは様々な言語と文化の背景を理解する能力を強化できます。これは翻訳、対話生成、文書要約などの多言語タスクの性能を向上させるために重要です。
  • 科学的テキスト:科学的知識を理解するためには、科学出版物や専門的な科学テキストのデータセットが重要です。これらのデータソースは、モデルが科学的なコンテキストを理解し、科学的な質問に対する適切な回答を生成する能力を強化します。また、これらのデータセットは、具体的な科学的概念の理解、論文の要約、新しい科学的発見の洞察の生成など、科学的なタスクの性能を向上させるのに役立ちます。

これらの特化したデータソースの選択と利用は、大規模言語モデルの性能と能力に大きな影響を与えます。しかし、それらのデータソースの信頼性と質を確保することは極めて重要であり、そのためのデータクリーニングとデータ整形プロセスが必要です。それにより、モデルは高品質な情報を学習し、ユーザーに価値あるインサイトと回答を提供することができます。

2.1.2 収集方法

大規模言語モデルを開発するためには、さまざまなデータソースから自然言語コーパスを大量に収集することが重要です。事前学習の一般的なデータ収集方法としてはウェブクローリングがあります。これはインターネット上の情報を自動的に収集する手法で、多種多様な情報を獲得することが可能です。しかしこの方法では収集される情報の質が高低さまざまであるため、収集したデータは適切なフィルタリングと処理を行うことで品質を向上させる必要があります。

事前学習によく使用されるデータセットとして「The Pile」があります。大規模言語モデルの学習用に設計された800GBのデータセットであり、書籍、ウェブサイト、コード、科学論文、ソーシャルメディアプラットフォーム等から集められた多種多様なテキストデータを提供します。

pile.eleuther.ai

また、コードの事前学習には「The Stack」というデータセットが用いられます。「The Stack」は358個のプログラミング言語をカバーし、6TB以上の許諾済みソースコードファイルを含むデータセットです。

huggingface.co

2.2 ファインチューニングに使用されるデータ

2.2.1 主なソースの種類

ファインチューニング段階においては、モデルが特定のタスクやドメインに対する性能を向上させるため、そのタスクやドメインに特化したデータセットが使用されます。以下に、その主なソースを列挙します:

  • 質問応答タスク用データ: この種類のデータは質問とその回答のペアからなり、モデルが質問に対する適切な応答を学習するのに役立ちます。具体的な例としては、SQuAD(Stanford Question Answering Dataset)やCoQA(Conversational Question Answering)があります。
  • 感情分析タスク用データ: レビューテキストとそれに対応する感情ラベル(例えばポジティブ、ネガティブ)を含むデータです。これはモデルがテキストの感情的なトーンを理解するのに役立ちます。Amazonの商品レビューやIMDBの映画レビューなどがこの例に当たります。
  • 機械翻訳タスク用データ: 特定の言語ペアの対訳テキストを含むデータです。これはモデルが一つの言語から別の言語への翻訳を学習するのに使用されます。具体的な例としては、WMT (Workshop on Machine Translation)のデータセットやUnited Nations Parallel Corpusなどがあります。
  • 人間のフィードバックデータ: モデルの出力に対する人間の評価やフィードバックを含むデータです。これはモデルの出力が人間の価値観や好みにより良く一致するようにするために使用されます。この種のデータはしばしば特定のプロジェクトのために収集され、そのプロジェクトの具体的な目標や価値観に合わせて調整されます。
2.2.2 収集方法

ファインチューニングフェーズでの大規模言語モデルのデータセット収集方法には、事前学習フェーズと比較して特異な要素があります。その一つが「人間のラベラーによるフィードバックの収集」です。この手法では、人間がモデルの出力に対して主観的かつ定性的な評価を行い、そのフィードバックをデータとして収集します。これにより、大規模言語モデルは人間の好みや価値観により適応することが可能となります。

加えて、「大規模言語モデルを用いたデータ拡張」も一つの収集方法として挙げられます。最近では、「self-instruct」という、人間が生成した少数のデータをモデルが拡張し、データセットを増やす手法が注目を集めています。

  • 既存のデータセットの使用: 質問応答、感情分析、機械翻訳などのタスクには、既に大量の公開データセットが存在しています。これらのデータセットは、研究者たちによって収集・公開されており、モデルのファインチューニングに使用されます。
  • 人間のラベラーによるフィードバックの収集: モデルのファインチューニングには、人間のフィードバックが用いられることもあります。モデルの出力に対するフィードバックを得るために、一部の研究プロジェクトでは人間のラベラーが雇われます。これらのラベラーはモデルの出力を評価し、そのフィードバックをデータとして収集します。この方法は、モデルが特定のタスクやドメインに対する性能を向上させるだけでなく、モデルの出力が人間の価値観や好みにより良く一致するようにするためにも用いられます。
  • 大規模言語モデルを用いたデータ拡張: データ拡張とは、既存のデータセットを増やし、多様化する手法です。大規模言語モデルを使用して新たなデータを生成することで、データの多様性を高め、モデルが新たな状況に対応できるようにします。また、データ拡張は、特にデータが不足している場合や特定のタスクに対するパフォーマンスを向上させたい場合に有効です。
「self-instruct」の概要図 *3

3. データ収集の核心:信頼性、倫理性、多様性

データは大規模言語モデル学習のエンジンであり、その質と管理は結果に直接的な影響を与えます。しかし、これらのデータを収集し、管理する際には様々な要素が考慮されなければなりません。

本節では、データセットの信頼性、倫理性、および多様性の観点から、データ収集の核心に迫ります。データの品質と信頼性がなぜ重要なのか、個人情報とライセンスの倫理的な取り扱いについてどのように考えるべきなのかを探ります。さらに、データセットの規模とバランスが学習結果にどのように影響するのかについても詳しく見ていきます。

これらの観点から見たとき、データ収集は単に情報を集める行為ではなく、品質、倫理、多様性を考慮した深い洞察と理解を必要とする工程であることが明らかとなります。

3.1 データソースの信頼性と品質の重要性

大規模言語モデルの学習に使用されるデータセットのソースは、その信頼性と品質に深く関わっています。これは、学習に用いられるデータがモデルの出力に直接影響を及ぼすためです。

信頼性の高いソースから収集されたデータは、モデルの学習結果を信頼性と精度の点で向上させる能力があります。それは、信頼性の高いソースが通常、良好な情報整合性と正確性を持ち、しばしば事実に基づいているためです。一方、低品質のソースから得られるデータは、誤情報や偏見を含んでいる可能性があります。

ウェブページからのデータ収集では、信頼性の高い情報源(例えば、Wikipediaや専門的なニュースサイト)と、信頼性が低い情報源(例えば、スパムメールや信頼性の低いブログ)が混在しているという問題があります。信頼性の低いソースからのデータをそのまま使用すると、モデルが誤情報を学習してしまい、その結果として信頼性の低い出力を生成する可能性があります。

このため、データ収集と処理の段階で、情報の信頼性と品質を確認し、低品質な情報を適切にフィルタリングすることが重要です。これにより、学習データセットの品質を向上させ、モデルのパフォーマンスと信頼性を高めることができます。

さらに、高品質なデータの確保だけでなく、そのデータが多様でバランスの良いものであることも重要です。特定の観点や主題が過度に優先されると、モデルが一側的な視点や偏見を学習する可能性があります。そのため、データのバランスと多様性を維持することも、信頼性と品質の確保に重要な要素となります。

3.2 個人情報とライセンスの倫理的な取り扱い

3.2.1 個人情報の保護の重要性

大規模言語モデルの学習に使用するデータセットは、ウェブサイト、ブログ、ソーシャルメディアなどの公開情報から収集されることが多いです。これらの情報源は、個人の意見、感情、考えを反映しています。そのため、データセットには潜在的に個人情報が含まれている可能性があります

こうした情報を扱う際には、適切な匿名化処理が不可欠です。具体的には、氏名、住所、電話番号、メールアドレスなどの特定の個人を特定できる情報を削除または匿名化します。さらに、これらの個人情報は、ユーザーのプライバシーを保護するため、モデルの訓練プロセスで意図的に考慮されないようにすることが重要です。

3.2.2 ライセンス要件の遵守

データセットの構築に際しては、各データのライセンスを遵守することも重要です。公開情報を収集する際には、その情報がどのような利用条件の下で提供されているかを確認し、ライセンスの要件を遵守しなければなりません。

特に、クリエイティブ・コモンズ(CC)ライセンスなどの一部のライセンスでは、商用利用や派生作品の作成が許可されていない場合があります。このような制限を理解し、データセットの作成と使用に際して適切に対応することが必要です。

大規模言語モデルのビジネス利用に関する詳細な内容については、是非弊社のブログ記事をご覧いただきたいと思います。

blog.brainpad.co.jp
blog.brainpad.co.jp

3.3 データセットの規模とバランス

3.3.1 データの量

大規模言語モデルの訓練においては、データセットの規模は極めて重要な要素となります。この規模とは、通常、単語数や文書数を指し、これらは訓練の質やモデルの性能に直結します。モデルのパラメータの規模が増えるにつれて、訓練に必要なデータの量も増えることが確認されています。一方、適切な量の高品質なデータを収集することは、効果的な大規模言語モデルを訓練するために重要です。

3.3.2 データの多様性
  • 主題の多様性

データセットがカバーする主題の範囲と多様性は、モデルが取り扱うことができる知識の幅と深さを決定します。データの主題が多様であればあるほど、モデルは、より広範な話題に対する予測や解答を行う能力を身につけることができます。モデルが理解し、適切な回答を生成できる質問の種類、特定の課題への対応能力、新たな状況や未知の問題に対する対応力は、訓練データセットが持つ主題の多様性に大きく依存します。

  • 言語と地域の多様性

言語モデルが多様な言語と地域を理解し、それらに適応する能力は、訓練データの多様性に直接依存します。例えば、特定の言語や地域の知識、文化的背景、言語的ニュアンスについての理解は、その言語や地域からのデータが訓練データセットに含まれているかどうかによります。より多くの言語や地域からデータを集め、それを訓練データセットに組み込むことで、モデルはその言語や地域に適応し、特定の言語や地域に関する質問に対応する能力を獲得することができます

3.3.3 データのバランス
事前学習データにおける各種データソースの比率*4
  • サブグループの表現

データセットがバランスが取れているかどうかは、各サブグループが適切に表現されているかどうかで判断できます。特定の人々や視点、トピックが過度に表現されていると、それらの視点を持つテキストが過剰に予測され、モデルの予測は偏ったものになる可能性があります。逆に、特定のサブグループが不足していると、モデルはそのサブグループに対する理解を欠く可能性があります。

  • データバランスの重要性

データのバランスはモデルの性能だけでなく、公平性にも影響を与えます。バランスの取れたデータセットは、様々な視点と経験を反映することができ、モデルが特定のグループや視点に偏らないようにすることができます。その一方で、不均衡なデータセットはモデルのバイアスを生み出し、特定のグループや視点を過剰に表現したり、無視したりする可能性があります。したがって、訓練データセットのバランスを適切に維持することは、公平で無偏なモデルを訓練する上で重要です。

AIの公平性については2016年に発表されたマイクロソフト社の「Microsoft AI principles*5」や2018年に発表されたグーグル社の「Google と AI : 私たちの基本理念(Artificial Intelligence at Google: Our Principles)*6」にも強調されております。

4. データのクリーニングと前処理

4.1 事前学習

典型的な事前学習のデータ前処理パイプラインの図解*7

大量のテキストデータを収集した後、前処理が必要不可欠になります。特にノイズや冗長性、無関係性、そして潜在的に有害なデータの除去などのデータ前処理戦略について詳しく説明します。

4.1.1 データクリーニングのプロセス

データクリーニングのプロセスは主に四つの段階に分けられます:品質フィルタリング、重複の削除、プライバシーの削減、およびトークン化です。

  • 品質フィルタリング:収集したコーパスから低品質のデータを取り除くことが重要です。この作業には主に分類器ベースのアプローチと経験則ベースのアプローチがあります。また、言語に基づくフィルタリング、メトリクスに基づくフィルタリング、統計に基づくフィルタリング、キーワードに基づくフィルタリングなどの具体的な手法もあります。
  • 重複の削除:コーパス内の重複データが言語モデルの多様性を低下させ、訓練プロセスを不安定にする可能性があるため、前処理コーパスの重複を排除することが重要です。特に、重複の削除は文レベル、ドキュメントレベル、データセットレベルで実施することができます。
  • プライバシーの削減:前処理テキストデータの大部分がWebから取得され、ユーザーが生成した内容に敏感情報や個人情報が含まれている場合が多いため、プライバシー侵害のリスクを軽減するために個人を特定できる情報(PII)を前処理コーパスから削除することが必要です。
  • トークン化:生のテキストを個々のトークンのシーケンスに分割することを目指します。これらのトークンは後続の大規模言語モデルの入力として使用されます。
4.1.2 不適切な内容の取り扱い

不適切なコンテンツの取り扱いは、データ前処理の重要な側面です。特に、方言、口語、社会言語などの高品質のテキストが誤って除去される可能性があるため、分類器ベースのアプローチには注意が必要です。そのようなテキストを誤って削除すると、前処理コーパスにバイアスが生じ、コーパスの多様性が損なわれる可能性があります。また、個人を特定できる情報(PII)を取り扱う際には、キーワードスポッティングなどのルールベースの方法を使用して名前、住所、電話番号などを検出し削除することが一般的です。

4.1.3 品質保証とエラーの修正

品質フィルタリング、重複の削除、プライバシーの削減、トークン化などの前処理手法を適用することで、訓練データの品質を向上させ、訓練プロセスの安定性を保つことができます。また、これらの手法を適切に適用することで、モデルのパフォーマンスを大きく向上させることができます。

最終的に、データの前処理は、大規模言語モデルのパフォーマンスと容量に大きな影響を及ぼす可能性があります。データの質と分布は、モデルのパフォーマンスに直接影響を及ぼすため、前処理コーパスを慎重に構築することが特に重要です。

4.2 ファインチューニング

ファインチューニングのためのデータ加工の図示 *8

ここでは、一般的なフォーマット化インスタンスの作成と、インスタンス作成のための主要な要素について説明します。

4.2.1 フォーマット化インスタンスの構築

フォーマット化されたインスタンスは通常、タスク説明(いわゆるインストラクション)、入出力ペア、そしてデモンストレーション(*必須ではない)から成ります。これらは大量のラベル付きデータを使用して作成され、主に以下の二つの方法が存在します。

  • 既存データセットのフォーマット化:既存のNLPデータセットは、人間によるタスク説明を追加することでインストラクション形式にフォーマット化することが可能です。これにより、大規模言語モデルは各タスクの目標を理解できます。具体的には、「この質問に答えてください」というタスク説明が各質問応答タスクの例に追加され、大規模言語モデルはこのタスク説明に従って未見のタスクに対しても適切に応答することができます。
  • 人間のニーズのフォーマット化:多くの訓練インスタンスは指示付きでフォーマット化されていますが、これらは主に公開NLPデータセットから得られ、実際の人間のニーズとは一致しない場合があります。この問題を解決するため、実際のユーザーがOpenAI APIに提出したクエリをタスク説明として取り入れることが提案されています。このようなユーザーのクエリは自然言語で表現されており、大規模言語モデルの指示に従う能力を引き出すのに特に適しています。
4.2.2 インスタンス構築のための主要な要素

フォーマット化インスタンスの品質は、モデルの性能に重大な影響を及ぼします。そのため、インスタンス作成において重要となる要素を以下に挙げます。

  • タスク説明のスケーリング:タスクの数を増やすことで大規模言語モデルの一般化能力が大幅に向上することが広く示されています。一方、一定のタスク数に達すると、モデルの性能向上はほぼ停止します。
  • フォーマット設計:自然言語フォーマットの設計は、大規模言語モデルの一般化パフォーマンスに大きな影響を及ぼします。通常、既存のデータセットの入出力ペアにタスクの説明と任意のデモンストレーションを追加することができます。

5. 結論

5.1 データセットの問題と挑戦

イラストや漫画を中心にした日本のソーシャル・ネットワーキング・サービス”Pixiv”は自動化されたデータ収集ツールやウェブスクレイピングに対抗するために、AI対策機能を強化しています。

https://news.yahoo.co.jp/articles/cbfbf9c230637fbd4cec5e9dde62173bf263e48bnews.yahoo.co.jp

また、全米作家協会は著者の明示的な許可なしに著者の作品をAI技術の訓練に使用することを禁止する新しい条項を作成しました。

authorsguild.org

これらの記事から明らかなように、データの収集には法的な制限が存在します。公共機関や企業は、AIのトレーニング用途でのデータの使用を制限するために法的な手段を導入することを推奨しています。これはデータ収集者にとって新たな課題をもたらします。また、著作権法やプライバシー法、欧州連合の一般データ保護規則(GDPR)などの個人情報保護法規もデータ収集のプロセスを複雑化しています。

5.2 研究と開発の方向性

大規模言語モデルのデータセットの進化に対応するための研究と開発の方向性は多岐にわたります。ここでは、特に有望と考えられる「自己指示型学習」、「合成データの使用」について詳述します。

  • 合成データの使用

新たなデータセットの生成や拡張においては、拡散生成モデルを用いた合成データの使用も有望な方法の一つとされています。

拡散生成モデルは、元のデータ分布から徐々にデータを変化させることで、新たなデータを生成します。この手法を用いることで、既存のデータセットを拡張したり、新たなデータセットを生成したりすることが可能となります。

以下の論文では、拡散生成モデルを使って生成した合成データを加えて学習することでモデルの精度向上に成功した研究が紹介されています。

arxiv.org

  • 自己指示型学習

自己指示型学習は、モデル自体が一部の学習データを生成する新しいアプローチです。モデルは自分自身に対して指示を出し、それに従って新たなデータや情報を生成します。生成されたデータは、新たな学習データとして再利用され、これによりモデルは繰り返し学習を行い、パフォーマンスを向上させます

自己指示型学習は、データセットの問題と挑戦を克服する有望な方向性を示しています。特に、法的な制約やプライバシー問題によりデータ収集が難しい場合でも、モデル自身が安全で倫理的な方法でデータを生成することが可能になります。

以下の論文では、関連研究が紹介されています。

arxiv.org

5.3. 生成AIの未来への問い

これまで、大規模言語モデルのデータセットに関する様々なテーマについて触れてきました。大規模言語モデルをはじめとする生成AIの進歩に伴い、社会的な議論や協議が活発化しています。その中で、私たちは次のような重要な問いに直面しています。

  • 個人のプライバシーはどのように保護すべきでしょうか? データは集められ、AIの訓練に用いられ、それによって価値を持つ一方、個人のプライバシー保護はどのように確保すべきでしょうか? そしてそれをどのように実現できるでしょうか?
  • AIが公平であるとは何を意味するのでしょうか? AIモデルがデータを公平に扱い、公平な結果を生み出すためにはどうすべきでしょうか?
  • AIの責任はどこにあるのでしょうか? AIが誤った結果を出した場合、誰が責任を負うべきでしょうか? また、AIが自己指示型学習や拡散生成モデルなどを用いて自己生成したデータを学習した場合、その結果に対する責任はどのように分配すべきでしょうか?

これらの問いには明確な答えがあるわけではなく、それぞれが私たちが進むべき未来を形成する上で重要な役割を果たしています。

ブレインパッドは「データ活用を通じて、持続可能な未来を創る」という理念を掲げています。これらの重要な問題について、皆さんと一緒に考え、学び、解決策を見つけていくことを心から願っています。