The advent of
large language models (LLMs)
marks a significant shift in how industries leverage AI to enhance operations and services. By automating routine tasks and streamlining processes, LLMs free up human resources for more strategic endeavors, thus improving overall efficiency and productivity.
Training and
customizing LLMs
for high accuracy is fraught with challenges, primarily due to their dependency on high-quality data. Poor data quality and inadequate volume can significantly reduce model accuracy, making dataset preparation a critical task for AI developers.
Datasets frequently contain duplicate documents, personally identifiable information (PII), and formatting issues. Some datasets even house toxic or harmful information that poses risks to users. Training models on these datasets without proper processing can result in higher training time and lower model quality. Another significant challenge is the scarcity of data. Model builders are running out of publicly available data to train on, prompting many to turn to third-party vendors or generate synthetic data using advanced LLMs.
In this post, we will describe data processing techniques and best practices for optimizing LLM performance by improving data quality for training. We will introduce
NVIDIA NeMo Curator
and how it addresses these challenges, demonstrating real-world data processing use cases for LLMs.
Text processing pipelines and best practices
Dealing with the preprocessing of large data is nontrivial, especially when the dataset consists of mainly web-scraped data which is likely to contain large amounts of ill-formatted, low-quality data.
Figure 1. Text processing pipelines that can be built using NeMo Curator
Figure 1 shows a comprehensive text processing pipeline, including the following steps at a high-level:
Download the dataset from the source and extract to a desirable format such as JSONL.
Apply preliminary text cleaning, such as Unicode fixing and language separation.
Apply both standard and custom-defined filters to the dataset based on specific quality criteria.
Perform various levels of deduplication (exact, fuzzy, and semantic).
Selectively apply advanced quality filtering, including model-based quality filtering, PII redaction, distributed data classification, and task decontamination.
Blend curated datasets from multiple sources to form a unified dataset.
The sections below dive deeper into each of these stages.
Download and extract text
The initial step in data curation involves downloading and preparing datasets from various common sources such as Common Crawl, specialized collections such as arXiv and PubMed, or private on-prime datasets, each potentially containing terabytes of data.
This crucial phase requires careful consideration of storage formats and extraction methods, as publicly hosted datasets often come in compressed formats (for example, .warc.gz, tar.gz, or zip files) that need to be converted to more manageable formats (such as .jsonl or .parquet) for further processing.
Preliminary text cleaning
Unicode fixing and language identification represent crucial early steps in the data curation pipeline, particularly when dealing with large-scale web-scraped text corpora. This phase addresses two fundamental challenges: improperly decoded Unicode characters, and the presence of multiple languages within the dataset.
Unicode formatting issues often arise from incorrect character encoding or multiple encoding/decoding cycles. Common problems include special characters appearing as garbled sequences (for example, “café” showing as “cafÃ©”). Language identification and separation are equally important, especially for curators who are interested in curating monolingual datasets. Moreover, some of the data curation steps such as heuristic filtering, and model-based quality classifiers are language-specific.
This preliminary preprocessing step ensures clean, properly encoded text in identified languages, forming the foundation for all subsequent curation steps.
Heuristic filtering
Heuristic filtering employs rule-based metrics and statistical measures to identify and remove low-quality content.
The process typically evaluates multiple quality dimensions, such as document length, repetition patterns, punctuation distribution, and structural integrity of the text. Common heuristic filters include:
Word count filter:
Filters out snippets that are too brief to be meaningful or suspiciously long.
Boilerplate string filter:
Identifies and removes text containing excessive boilerplate content.
N-gram repetition filter:
Identifies repeated phrases at different lengths and removes documents with excessive repetition that might indicate low-quality or artificially generated content.
For heuristic filtering, the best practice is to implement a cascading approach. This enables more nuanced quality control while maintaining transparency in the filtering process.  For improved performance, batch filtering can be implemented to process multiple documents simultaneously, significantly reducing computation time when dealing with large-scale datasets.
Deduplication
Deduplication is essential for improving model training efficiency, reducing computational costs, and ensuring data diversity. It helps prevent models from overfitting to repeated content and improves generalization. The process can be implemented through three main approaches: exact, fuzzy, and semantic deduplication. These form a comprehensive strategy for handling different types of duplicates in large-scale datasets, from identical copies to conceptually similar content.
Exact deduplication
Exact deduplication focuses on identifying and removing completely identical documents. This method generates hash signatures for each document and groups documents by their hashes into buckets, keeping only one document per bucket. While this method is computationally efficient, fast and reliable, it’s limited to detecting perfectly matching content and may miss semantically equivalent documents with minor variations.
Fuzzy deduplication
Fuzzy deduplication addresses near-duplicate content using MinHash signatures and Locality-Sensitive Hashing (LSH) to identify similar documents.
The process involves the following steps:
Compute MinHash signatures for documents.
Use LSH to group similar documents into buckets. One document might belong to one or more buckets.
Compute Jaccard similarity between documents within the same buckets.
Based on the Jaccard similarity, transform the similarity matrix to a graph and identify connected components in the graph.
Documents within a connected component are considered fuzzy duplicates.
Remove identified duplicates from the dataset.
This method is particularly valuable for identifying content with minor modifications, detecting partial document overlaps, and finding documents with different formatting but similar content.  It strikes a balance between computational efficiency and duplicate detection capability.
Semantic deduplication
Semantic deduplication represents the most sophisticated approach, employing advanced embedding models to capture semantic meaning combined with clustering techniques to group semantically similar content. Research has shown that semantic deduplication can effectively reduce dataset size while maintaining or improving model performance. It’s especially valuable for identifying paraphrased content, translated versions of the same material, and conceptually identical information.
Semantic deduplication consists of the following steps:
Each data point is embedded using a pretrained model.
The embeddings are clustered into k clusters using k-means clustering.
Within each cluster, pairwise cosine similarities are computed.
Data pairs with cosine similarity above a threshold are considered semantic duplicates.
From each group of semantic duplicates within a cluster, one representative datapoint is kept and the rest are removed.
Model-based quality filtering
Model-based quality filtering employs various types of models to evaluate and filter content based on quality metrics. The choice of model type significantly impacts both the effectiveness of filtering and the computational resources required, making it crucial to select the appropriate model for specific use cases.
Different types of models that can be used for quality filtering include:
N-gram based classifiers:
The simplest approach uses n-gram based bag-of-words classifiers like fastText, which excel in efficiency and practicality, as they require minimal training data (100,000 to 1,000,000 samples).
BERT-style classifiers:
BERT-style classifiers represent a middle-ground approach, offering better quality assessment through Transformer-based architectures. They can capture more complex linguistic patterns and contextual relationships, making them effective for quality assessment.
LLMs:
LLMs provide the most sophisticated quality assessment capabilities, leveraging their extensive knowledge to evaluate text quality. While they offer superior understanding of content quality, they have significant computational requirements thus they are best suited for smaller-scale applications, such as fine-tuning datasets.
Reward models:
Reward models represent a specialized category designed specifically for evaluating conversational data quality. These models can assess multiple quality dimensions simultaneously but similar to LLMs, they have significant computational requirements.
The optimal selection of quality filtering models should consider both the dataset scale and available computational resources. For large-scale pretraining datasets, combining lightweight models for initial filtering with advanced models for final quality assessment often provides the best balance of efficiency and effectiveness. For smaller, specialized datasets where quality is crucial, using models like LLMs or reward models becomes more feasible and beneficial.
PII redaction
Personally Identifiable Information (PII) redaction involves identifying and removing sensitive information from datasets to protect individual privacy and ensure compliance with data protection regulations.
This process is particularly important when dealing with datasets that contain personal information, from direct identifiers like names and social security numbers to indirect identifiers that could be used to identify individuals when combined with other data.
Modern PII redaction employs various techniques to protect sensitive information, including:
Replacing sensitive information with symbols (for example, XXX-XX-1234 for U.S. Social Security Numbers) while maintaining data format and structure.
Substituting sensitive data with non-sensitive equivalents that maintain referential integrity for analysis purposes.
Eliminating sensitive information when its presence is not necessary for downstream tasks.
Overall, PII redaction helps maintain data privacy, comply with regulations, and build trust with users while preserving the utility of their datasets for training and analysis purposes.
Distributed data classification
Data classification plays a vital role in data curation. This process helps organize and categorize data based on various attributes such as domain and quality, ensuring data is well-balanced and representative of different knowledge domains.
Domain classification helps LLMs understand the context and specific domain of input text by identifying and categorizing content based on subject matter. The domain information serves as valuable auxiliary data, enabling developers to build more diverse training datasets while identifying and filtering out potentially harmful or unwanted content. For example, using the AEGIS Safety Model, which classifies content into 13 critical risk categories, developers can effectively identify and filter harmful content from training data.
When dealing with pretraining corpora that often contain billions of documents, running inference for classification becomes computationally intensive and time-consuming. Therefore, distributed data classification is necessary to overcome these challenges. This is achieved by chunking the datasets across multiple GPU nodes to accelerate the classification task in a distributed manner.
Task decontamination
After training, LLMs are usually evaluated by their performance on downstream tasks consisting of unseen test data. Downstream task decontamination is a step that addresses the potential leakage of test data into training datasets, which can provide misleading evaluation results. The decontamination process typically involves several key steps:
Identifying potential downstream tasks and their test sets.
Converting test data into n-gram representations.
Searching for matching n-grams in the training corpus.
Removing or modifying contaminated sections while preserving document coherence.
This systematic approach helps ensure the effectiveness of decontamination while minimizing unintended impacts on data quality, ultimately contributing to more reliable model evaluation and development.
Blending and shuffling
Data blending and shuffling represent the final steps in the data curation pipeline, combining multiple curated datasets while ensuring proper randomization for optimal model training. This process is essential for creating diverse, well-balanced training datasets that enable better model generalization and performance. Data blending involves merging data from multiple sources into a unified dataset, creating more comprehensive and diverse training data. The blending process is implemented using two approaches:
Online: Data combination occurs during training
Offline: Datasets are combined before training
Each approach offers distinct advantages depending on the specific requirements of the training process and the intended use of the final dataset.
Synthetic data generation
Having navigated the intricacies of the preprocessing stage, we now confront a formidable challenge in the realm of LLM development: the scarcity of data. The insatiable appetite of LLMs for vast training datasets, even for fine-tuning purposes, frequently outstrips the availability of domain-specific or language-particular data. To this end,
synthetic data generation (SDG)
is a powerful approach that leverages LLMs to create artificial datasets that mimic real-world data characteristics while maintaining privacy and ensuring data utility. This process uses external LLM services to generate high-quality, diverse, and contextually relevant data that can be used for pretraining, fine-tuning, or evaluating other models.
SDG empowers LLMs by enabling adaptation to low-resource languages, supporting domain specialization, and facilitating knowledge distillation across models, making it a versatile tool for expanding model capabilities. SDG has become particularly valuable in scenarios where real data is scarce, sensitive, or difficult to obtain.
Figure 2. General synthetic data generation architecture with NeMo Curator
The synthetic data pipeline encompasses three key stages: Generate, Critique, and Filter.
Generate:
Use prompt engineering to generate synthetic data for various tasks. Taking
Nemotron-4
as an example, SDG is applied to generate training data for five different types of tasks: open-ended QA, closed-ended QA, writing assignments, coding, and math problems.
Critique:
Use methods like LLM reflection, LLM-as-judge, reward model inference, and other agents to evaluate the quality of synthetic data. The evaluation results can be used as feedback to SDG LLM to generate better results or filter out low quality data. A prime example is the
Nemotron-4-340B reward NIM
, which assesses data quality through five key attributes: Helpfulness, Correctness, Coherence, Complexity, and Verbosity. By setting appropriate thresholds for these attribute scores, the filtering process ensures that only high-quality synthetic data is retained, while filtering out low-quality or inappropriate content.
Filter:
Steps like deduplication and PII redaction to further improve SDG data quality.
Note, however, SDG is not suitable in all cases. Hallucinations from external LLMs can introduce unreliable information, compromising data integrity. Additionally, the generated data’s distribution may not align with the target distribution, potentially leading to poor real-world performance. In such cases, using SDG could actually harm the system’s effectiveness rather than improve it.
Data processing for building sovereign LLMs
As noted previously, open-source LLMs excel in English but struggle with other languages, especially those of Southeast Asia. This is primarily due to a lack of training data in these languages, limited understanding of local cultures, and insufficient tokens to capture unique linguistic structures and expressions.
To fully meet customer needs, enterprises in non-English-speaking countries must go beyond generic models and customize them to capture the nuances of their local languages, ensuring a seamless and impactful customer experience. For example, using NeMo Curator, Viettel Solutions processed
high-quality Vietnamese data
to increase accuracy by 10%, reduce the dataset size by 60% and accelerate training time by 3x.
The main steps for this use case are:
Download several Vietnamese and multilingual datasets (Wikipedia, Vietnamese news corpus,
OSCAR
, and C4) and convert to Parquet for efficient handling and processing of large datasets.
Combine, standardize, and shard into a single dataset
Apply unicode reformatting, exact deduplication, quality filtering (heuristic and classifier-based).
You can
follow along with the full tutorial
.
Improve data quality with NVIDIA NeMo Curator
So far, we have discussed the importance of data quality in improving the accuracy of LLMs and explored various data processing techniques. Developers can now try these techniques directly through
NeMo Curator
. It provides a customizable and modular interface that enables developers to build on top of it easily.
NeMo Curator uses NVIDIA RAPIDS GPU-accelerated libraries like cuDF, cuML, and cuGraph, and Dask to speed up workloads on multinode multi-GPUs, reducing processing time and scale as needed. For example, by using GPUs to accelerate the data processing pipelines,
Zyphra reduced the total cost of ownership (TCO)
by 50% and processed the data 10x faster (from 3 weeks to 2 days).
To get started, check out the
NVIDIA/NeMo-Curator GitHub repository
and available
tutorials
that cover various data curation workflows, such as:
Data processing for pretraining
Data processing for customization
SDG pipelines
You can also gain access through a
NeMo framework container
and request enterprise support with an
NVIDIA AI Enterprise
license.
Reading Time:
2
minutes
大規模言語モデル (LLM)
の出現は、企業が AI を活用して業務とサービスを強化する方法に大きな変化をもたらしました。LLM は日常的な作業を自動化し、プロセスを合理化することで、人的リソースをより戦略的な取り組みに割り当てることで、全体的な効率性と生産性を向上させます。
LLM を高精度にトレーニングおよび
カスタマイズ
するには、高品質なデータが必要となるため、多くの課題を伴います。データの質が低く、量が十分でないと、モデルの精度が大幅に低下する可能性があるため、AI 開発者にとってデータセットの準備は重要な作業の 1 つとなっています。
データセットには往々にして重複したドキュメント、個人を特定できる情報 (PII)、フォーマットに関する問題が存在します。データセットの中には、ユーザーにリスクをもたらす有害な情報や不適切な情報が含まれているものさえあります。適切な処理を行わずにこういったデータセットでモデルをトレーニングすると、トレーニング時間が長引いたり、モデルの品質が低下する場合があります。もう 1 つの大きな課題はデータの不足です。モデル開発者はトレーニング用の公開データを使い果たしつつあり、多くの人々がサードパーティのベンダーに依頼したり、高度な LLM を使用して合成データを生成したりするようになっています。
この記事では、トレーニング用のデータの品質を向上することで LLM のパフォーマンスを最適化するためのデータ処理テクニックとベスト プラクティスについて説明します。また、
NVIDIA NeMo Curator
の概要および前述した課題への対処方法を説明し、LLM の実際のデータ処理のユース ケースもご紹介します。
テキスト処理パイプラインとベスト プラクティス
大規模データの前処理は容易ではありません。特に、データセットが主にWeb スクレイピングされたデータで構成されており、大量の不適切なフォーマットの低品質データが含まれている可能性が高い場合はなおさらです。
図 1. NeMo Curator を使用して構築できるテキスト処理パイプライン
図 1 は、以下の手順を含む包括的なテキスト処理パイプラインの概要を示しています。
ソースからデータセットをダウンロードし、JSONL などの望ましいフォーマットで抽出します。
Unicode の修正や言語による分類など、予備的なテキスト クリーニングを適用します。
特定の品質基準に基づいて、標準的なフィルターとカスタム定義のフィルターの両方をデータセットに適用します。
さまざまなレベルの重複排除 (厳密、曖昧、意味的) を実行します。
モデルベースの品質フィルタリング、個人情報 (PII) の削除、(分散処理による) データ分類、下流タスクの汚染除去などの高度な品質フィルタリングを必要に応じて選択的に適用します。
複数のソースから収集され、精選されたデータセットを一体化し、統合したデータセットを作成します。
以下のセクションでは、これらの各段階について詳しく説明します。
テキストをダウンロードして抽出
データ キュレーションの最初のステップでは、 Common Crawl のような、さまざまな一般的なソース、arXiv や PubMed などの専門的なコレクション、自社保有のプライベート データなどからデータセットをダウンロードして準備します。これらのデータセットには、それぞれテラバイト単位のデータが含まれている可能性があります。
この重要なフェーズでは、保存形式と抽出方法を慎重に検討する必要があります。一般に公開されホストされているデータセットは圧縮形式 (例: .warc.gz、tar.gz、zip ファイル) で提供されることが多いため、後続の処理のためにより扱いやすい形式 (.jsonl や .parquet など) に変換する必要があります。
予備的なテキスト クリーニング
Unicode の修正と言語による分類は、特に大規模な Web スクレイピングによるテキスト コーパスを扱う場合、データ キュレーション パイプラインの重要な初期ステップです。このフェーズでは、不適切にデコードされた Unicode 文字と、データセット内に複数の言語が存在するという 2 つの基本的な課題に対処します。
Unicode 形式に関する問題は、多くの場合、文字エンコードの誤りや、エンコード/デコード サイクルが複数回実行されることによって発生します。よくある問題としては、特殊文字が文字化けした文字列 (例:「café」が「cafÃ©」と表示される) として表示されることが挙げられます。言語の識別と分類は、特に単一言語のデータセットのキュレーションに関心のある開発者にとっては同様に重要です。さらに、ヒューリスティック フィルタリング、モデルベースの品質分類器などのデータ キュレーションのステップの一部は言語に依存しています。
この予備的な前処理ステップでは、識別された言語で適切にエンコードされたクリーンなテキストが確保され、その後のキュレーションステップの基盤となります。
ヒューリスティック フィルタリング
ヒューリスティック フィルタリングでは、ルールベースの評価指標と統計的尺度を使用して、低品質なコンテンツを特定し、削除します。
このプロセスは通常、ドキュメントの長さ、繰り返しパターン、句読点の分布、テキストの構造的整合性など、複数の品質基準で評価されます。一般的なヒューリスティック フィルターには以下のようなものがあります。
単語数フィルター:
意味をなさないほど短すぎる、または疑わしいほどに長すぎるテキストをフィルタリングします。
定型文フィルター:
過剰な定型文を含むテキストを特定し、削除します。
N-gram 反復フィルター:
異なる長さで繰り返されるフレーズを特定し、低品質または人工的に生成されたコンテンツである可能性がある過剰な反復を含む文書を削除します。
ヒューリスティック フィルタリングの場合は、カスケード アプローチを採るのが最善の方法です。これにより、フィルタリング プロセスの透明性を維持しながら、より繊細な品質管理が可能になります。処理パフォーマンスを向上させるために、バッチ フィルタリングを採用して複数のドキュメントを同時に処理すると大規模なデータセットを扱う際の計算時間を大幅に短縮することができます。
重複排除
重複排除は、モデルのトレーニング効率の向上、計算コストの削減、データの多様性の確保に不可欠です。繰り返し出現するコンテンツにモデルが過剰適合するのを防ぎ、汎用性を高めます。このプロセスは、厳密、曖昧、意味という 3 つの主な重複排除アプローチを通じて実装できます。これらは、同一のコピーから概念的に類似したコンテンツまで、大規模データセット内の異なるタイプの重複を処理する包括的な戦略を形成します。
厳密な重複排除
厳密な重複排除は、完全に同一のドキュメントを識別し、削除することに重点を置いています。この方法では、ドキュメントごとにハッシュ署名を生成し、ハッシュごとにドキュメントをグループ化してバケットに格納し、バケットごとに 1 つのドキュメントのみを残します。この方法は計算効率が高く、高速かつ信頼性が高いのですが、完全に一致するコンテンツの検出に限定されるため、意味的には同等なのにわずかに異なる文書を見逃す可能性があります。
曖昧な重複排除
曖昧な重複排除は、MinHash 署名と局所性鋭敏型ハッシュ化 (LSH: Locality-Sensitive Hashing) を使用して、類似したドキュメントを識別し、ほぼ重複するコンテンツに対処します。
このプロセスには、以下のステップが含まれます。
ドキュメントの MinHash 署名を計算します。
LSH を使用して、類似したドキュメントをバケットにグループ化します。1 つのドキュメントが 1 つ以上のバケットに属する場合もあります。
同じバケット内のドキュメント間で Jaccard 類似度を計算します。
Jaccard 類似度に基づいて、類似度行列をグラフに変換し、グラフ内の連結成分を特定します。
連結成分内のドキュメントは曖昧な重複と見なされます。
特定した重複をデータセットから削除します。
この方法は、軽微な変更が加えられたコンテンツの特定、部分的なドキュメントの重複の検出、異なるフォーマットであるが類似したコンテンツを持つドキュメントの検索に特に有用です。計算効率と重複検出能力のバランスが取れています。
意味的な重複排除
意味的な重複排除は、最も洗練されたアプローチであり、高度な埋め込みモデルを使用してセマンティックな意味を捉え、クラスタリング技術と組み合わせて意味的に類似したコンテンツをグループ化します。研究では、意味的な重複排除は、モデルのパフォーマンスを維持または改善しながら、データセットのサイズを効果的に縮小できることが示されています。言い換えられたコンテンツ、同じ素材の翻訳版、概念的に同一の情報を特定するのに特に有用です。
意味による重複排除は、以下のステップで構成されます。
各データ ポイントが、事前学習済みモデルを使用して埋め込まれます。
埋め込みは、k-means を使用して k 個のクラスターにグループ化されます。
各クラスター内で、ペアごとのコサイン類似度が計算されます。
閾値を超えるコサイン類似度を有するデータ ペアは、意味の重複と見なされます。
クラスター内の意味的な重複の各グループから、1 つの代表的なデータポイントが保持され、残りは削除されます。
モデルベースの品質フィルタリング
モデルベースの品質フィルタリングでは、さまざまな種類のモデルを使用して、品質指標に基づいてコンテンツを評価してフィルタリングします。モデルの種類の選択は、フィルタリングの有効性と必要な計算リソースの両方に大きな影響を及ぼすため、特定のユース ケースに適切なモデルを選択することが重要です。
品質フィルタリングに使用できるモデルには、以下の種類があります。
N-gram ベースの分類器:
最も単純なアプローチは、fastText のような N-gram ベースの Bag-of-Words 分類器を使用する方法です。必要なトレーニング データ (10 万～100 万サンプル) が最も少なく済むため、効率性と実用性に優れています。
BERT スタイルの分類器:
BERT スタイルの分類器は中間的なアプローチであり、Transformer ベースのアーキテクチャを通じてより質の高い評価を提供します。より複雑な言語パターンや文脈上の関係を捉えることができ、品質評価に効果的です。
LLM:
LLM は、テキストの品質評価に幅広い知識を活用し、最も洗練された品質評価機能を提供します。コンテンツの品質をより深く理解できますが、計算要件も高いため、ファインチューニング用のデータセットなど、小規模なアプリケーションに向いています。
報酬モデル:
報酬モデルは、会話データの品質を評価に特化し設計された専門カテゴリです。これらのモデルは複数の品質基準を同時に評価できますが、LLM と同じく高い計算要件が求められます。
最適な品質フィルタリング モデルの選択には、データセットの規模と利用可能な計算リソースの両方を考慮する必要があります。大規模な事前学習データセットの場合、初期フィルタリングには軽量なモデルを使用し、最終的な品質評価には高度なモデルを組み合わせることで、効率性と有効性のバランスが得られます。品質が重要となる小規模で専門的なデータセットの場合は、LLM や報酬モデルなどのモデルを使用することが、より実現的で有益となります。
PII の削除
個人を特定できる情報 (PII) の削除には、個人のプライバシーを保護し、データ保護規制に対する遵守を確実にするために、データセット内の機密情報を識別および削除することが含まれます。
このプロセスは、氏名や社会保障番号などの直接的な識別子から、他のデータと組み合わせることで個人を識別できる間接的な識別子まで、個人情報を含むデータセットを扱う場合には特に重要です。
最新の PII 削除では、機密情報を保護するために、以下を含むさまざまな技術が用いられています。
データ形式と構造を維持しながら、機密情報を記号に置き換える (たとえば、米国社会保障番号の場合 XXX-XX-1234 に置き換える)。
分析の目的で参照整合性を維持しながら、機密データを機密でない同等のデータに置き換える。
下流タスクに必要でない場合、その機密情報を削除する。
全体として PII の削除は、データのプライバシーを保護し、規制を遵守し、トレーニングと分析の目的でデータセットの有用性を維持しながら、ユーザーと信頼関係を構築するのに役立ちます。
(分散処理による) データ分類
データ分類は、データ キュレーションにおいて重要な役割を果たします。このプロセスでは、ドメインや品質など多様な属性に基づいてデータを整理し、分類することでデータのバランスを取り、さまざまな知識ドメインを代表するものとなるようにします。
ドメイン分類は、主題に基づいてコンテンツを識別してカテゴリー分けすることで、LLM が入力テキストのコンテキストや特定のドメインを理解するのに役立ちます。ドメイン情報は、開発者が潜在的に有害または不要なコンテンツを特定し、フィルタリングしながら、より多様なトレーニング データセットを構築することを可能にする貴重な補助的情報となります。たとえば、コンテンツを 13 の重大なリスク カテゴリに分類する AEGIS Safety Model を使用することで、開発者はトレーニング データから有害なコンテンツを効果的に識別し、フィルタリングすることができます。
数十億ものドキュメントが含まれていることが多い事前学習コーパスを扱う場合、分類を行うための推論を実行するのに多くの計算処理と時間が必要となります。したがって、これらの課題を克服するには、分散処理が適用できるデータ分類が必要です。これは、データセットを複数の GPU ノードに分割することで、分類タスクを高速化することによって実現されます。
下流タスクの汚染除去
トレーニングの後、LLM は通常、見えないテスト データで構成される下流タスクのパフォーマンスによって評価されます。下流タスクの汚染除去は、テスト データがトレーニング データセットに混入、漏洩する可能性に対処するステップです。これは意図しない評価結果をもたらすリスクを抑えます。汚染除去プロセスには、通常、以下の主要なステップが含まれます。
潜在的な下流タスクとそのテスト セットを特定します。
テスト データを N-gram 表現に変換します。
トレーニング コーパスで一致する N-gram を検索します。
ドキュメントの整合性を維持しながら、汚染されたセクションを削除または修正します。
この体系的なアプローチは、データの品質に対する意図しない影響を最小限に抑えながら、汚染除去の効果を確実なものにして、最終的には、より信頼性の高いモデルの評価と開発に貢献します。
ブレンドとシャッフル
データのブレンドとシャッフルは、データ キュレーション パイプラインにおける最終ステップであり、複数のキュレーションされたデータセットを組み合わせると同時に適切なランダム性を確保し、最適なモデル トレーニングを実現します。このプロセスは、モデルの一般化とパフォーマンスを向上させる、多様でバランスの取れたトレーニング データセットを作成する上で不可欠です。データのブレンドでは、複数のソースからのデータを統合して単一のデータセットに結合し、より包括的で多様なトレーニング データを作成します。ブレンド プロセスは、次の 2 つのアプローチを使用して実装されます。
オンライン: トレーニング中にデータが結合される
オフライン: トレーニング前にデータセットが結合される
それぞれのアプローチには、トレーニング プロセスの特定の要件と最終的なデータセットの使用目的に応じて異なる利点があります。
合成データの生成
前処理フェーズの複雑なプロセスを終えましたが、現在、LLM 開発の分野ではデータの不足という大きな課題に直面しています。LLM が学習用データセットを大量に必要とするのは、チューニングを目的とする場合でも同様であり、その飽くなき要求は、特定のドメインや言語に特化したデータの入手可能性を上回ることも少なくありません。この問題に対処する
合成データ生成 (SDG: Synthetic Data Generation)
は、LLM を活用して、プライバシーの保護とデータの有用性を確保しながら、現実のデータ特性を模倣した人工的なデータセットを生成する強力なアプローチです。このプロセスでは外部 LLM サービスを使用して、事前学習、ファインチューニング、他のモデルの評価に使用できる、高品質で多様かつ文脈的に関連性の高いデータを生成します。
SDG は、低リソース言語に LLM が適応できるようにすることで、ドメインの専門性をサポートし、モデル間の知識の抽出を促進し、モデル機能を拡張する汎用的なツールになります。SDG は、特に実データが不足していたり、機密であったり、取得するのが困難だったりするシナリオにおいて、重要な存在となっています。
図 2. NeMo Curator による一般的な合成データ生成アーキテクチャ
合成データ パイプラインには、生成、批評、フィルターの 3 つの主要なステップがあります。
生成:
プロンプト エンジニアリングを使用して、さまざまなタスク用の合成データを生成します。
Nemotron-4
を例にとると、SDG は、5 種類の異なるタスク (自由形式 QA、選択式 QA、記述式課題、コーディング、数学問題) のトレーニング データを生成するために適用されます。
批評:
LLM Reflection、LLM-as-judge、報酬モデル推論、その他のエージェントなどの手法を使用して、合成データの品質を評価します。評価結果は SDG LLM へのフィードバックとして使用し、より良い結果を生成したり、低品質データをフィルタリングしたりすることができます。代表的な例は
Nemotron-4-340B reward NIM
です。これは、5 つの主要な属性、すなわち Helpfulness (有用性)、Correctness (正確性)、Coherence (一貫性)、Complexity (複雑性)、Verbosity (冗長性) を通じてデータの品質を評価します。これらの属性スコアに適切な閾値を設定することで、フィルタリング処理では、低品質または不適切なコンテンツを除外しながら、高品質な合成データのみが保持されるようになります。
フィルター:
重複排除や PII の削除などのステップで、SDG データの品質をさらに向上させます。
ただし、SDG がすべてのケースに適しているわけではないことに注意してください。外部 LLM による幻覚は、信頼性の低い情報をもたらし、データの整合性を損なう可能性があります。加えて、生成されたデータの分布がターゲットの分布と一致しない可能性があり、現実世界のパフォーマンスに悪影響を及ぼす可能性があります。そのような場合は、SDG を使用することで、システムの効率性を改善するどころか、むしろ低下させる可能性があります。
ソブリン AI LLM 構築のためのデータ処理
オープンソース LLM は英語では優れていますが、その他の言語、特に東南アジアの言語では苦戦しています。この主な原因は、これらの言語のトレーニング データの不足、現地の文化に対する理解が限られていること、独自の言語構造と表現を捉えるのに十分なトークンが不足していることです。
英語圏以外の国々の企業は、顧客のニーズを完全に満たすため、汎用モデルにとどまらず、現地の言語のニュアンスを捉えるためにモデルをカスタマイズし、シームレスでインパクトのある顧客体験を確保する必要があります。例えば、Viettel Solutions は、NeMo Curator を使用して、
高品質なベトナム語データ
を処理し、精度を 10% 向上させ、データセットのサイズを 60% 削減し、トレーニングを 3 倍高速化しました。
このユース ケースの主な手順は次のとおりです。
いくつかのベトナム語および多言語データセット (Wikipedia、ベトナム語ニュース コーパス、
OSCAR
、C4) をダウンロードし、大規模なデータセットを効率的に処理するために、Parquet に変換します。
複数のデータセットを結合、標準化し、単一のデータセットにシャードします。
Unicode の再フォーマット、厳密な重複排除、品質フィルタリング (ヒューリスティックおよび分類器ベース) を適用します。
詳細は、この
チュートリアル
を参照してください。
NVIDIA NeMo Curator によるデータの品質向上
ここまで、LLM の精度向上におけるデータ品質の重要性について、そしてさまざまなデータ処理手法について説明してきました。開発者は、
NeMo Curator
を介して直接これらの手法を試すことができます。NeMo Curator は、カスタマイズ可能なモジュール式のインターフェイスを提供しているため、開発者はそれをベースに簡単に構築することができます。
NeMo Curator は、cuDF、cuML、cuGraph、Dask などの NVIDIA RAPIDS GPU で高速化されたライブラリを使用して、マルチノード、マルチ GPU におけるワークロードを高速化し、必要に応じてスケールさせ、処理時間を削減できます。例えば、GPU を使用してデータ処理のパイプラインを高速化することで、
Zyphra は総所有コスト (TCO)
を 50% 削減し、データを 10 倍高速に処理しています (3 週間から 2 日間)。
まずは、
NVIDIA/NeMo-Curator GitHub リポジトリ
と、以下のさまざまなデータ キュレーションのワークフローを網羅している
チュートリアル
をご覧ください。
事前学習のためのデータ処理
カスタマイズのためのデータ処理
SDG パイプライン
また、
NeMo フレームワーク コンテナー
を介してアクセスし、
NVIDIA AI Enterprise
ライセンスでエンタープライズ サポートをリクエストすることもできます。
関連情報
GTC セッション:
セキュアなエンタープライズ データでカスタム LLM アプリを数分で構築する
GTC セッション:
LLM インフラの構築、トレーニング速度の高速化、生成 AI イノベーションの推進のためのエンドツーエンドのソリューションの設計 (Aivres 提供)
NGC コンテナー:
genai-llm-playground
NGC コンテナー:
rag-application-query-decomposition-agent
ウェビナー:
AI による医療ワークフローの変革: CLLM を深く掘り下げる