大規模言語モデル (LLM) のデータ処理アルゴリズムを使用すると、データサンプルの編集、変換、フィルター、重複排除ができます。さまざまなアルゴリズムを組み合わせて、適切なデータをフィルターし、要件を満たすテキストを生成できます。このプロセスにより、LLM トレーニング用の高品質なデータが準備されます。このトピックでは、オープンソースの RedPajama arXiv データセットからの少量のデータを例として使用します。PAI の LLM データ処理コンポーネントを使用して arXiv データをクリーンアップおよび処理する方法を説明します。
データセットの説明
Machine Learning Designer のプリセットテンプレート「LLM データ処理 - arXiv (論文データ)」では、5,000 サンプルのデータセットを使用します。これらのサンプルは、オープンソースの RedPajama プロジェクトの生データから抽出されたものです。
パイプラインの作成と実行
Machine Learning Designer ページに移動します。
PAI コンソールにログインします。
左上隅で、リージョンを選択します。
左側のナビゲーションウィンドウで、[ワークスペース管理] をクリックします。ワークスペースの名前をクリックして開きます。
左側のナビゲーションウィンドウで、[モデル開発とトレーニング] > [Machine Learning Designer] を選択して Machine Learning Designer ページを開きます。
パイプラインを作成します。
[プリセットテンプレート] タブで、[ビジネスドメイン] > [LLM 大規模言語モデル] を選択します。[LLM データ処理 - ArXiv (論文データ)] テンプレートカードで、[作成] をクリックします。

パイプラインパラメーターを設定するか、デフォルト設定のままにして、[OK] をクリックします。
パイプラインリストで、作成したパイプラインを選択し、[パイプラインに入る] をクリックします。
パイプラインの説明:

パイプラインには、次の主要なアルゴリズムコンポーネントが含まれています。
LLM-機密情報マスク (MaxCompute)-1
"text" フィールド内の機密情報をマスクします。例:
メールアドレスを
[EMAIL]に置き換えます。携帯電話番号を
[TELEPHONE]または[MOBILEPHONE]に置き換えます。ID カード番号を
IDNUMに置き換えます。
LLM-特殊コンテンツ削除 (MaxCompute)-1
"text" フィールドから URL を削除します。
LLM-テキスト正規化 (MaxCompute)-1
"text" フィールドのテキストに対して Unicode 正規化を実行します。また、繁体字中国語を簡体字中国語に変換します。
LLM-カウントフィルター (MaxCompute)-1
"text" フィールドから、指定された英数字の数または比率を満たさないサンプルを削除します。arXiv データセットのほとんどの文字は英数字です。このコンポーネントは、一部のダーティデータを削除できます。
LLM-長さフィルター (MaxCompute)-1
"text" フィールドの平均行長に基づいてサンプルをフィルターします。平均長は、サンプルを改行文字 (
\n) で分割して計算されます。LLM-N-Gram 繰り返しフィルター (MaxCompute)-1
"text" フィールドのサンプルを、文字レベルの N-gram 繰り返し率に基づいてフィルターします。コンポーネントは、N 文字のスライドウィンドウをテキスト上で移動させて、セグメントのシーケンスを作成します。各セグメントはグラムです。コンポーネントは各グラムの出現回数をカウントします。繰り返し率は、数式
(複数回出現するグラムの総頻度) / (すべてのグラムの総頻度)を使用して計算されます。サンプルはこの率に基づいてフィルターされます。LLM-禁止用語フィルター (MaxCompute)-1
システムプリセットの禁止用語ファイルを使用して、"text" フィールド内の禁止用語を含むサンプルをフィルターします。
LLM-長さフィルター (MaxCompute)-2
"text" フィールドの最大行長に基づいてサンプルをフィルターします。最大行長は、サンプルを改行文字 (
\n) で分割して計算されます。LLM-Perplexity フィルター (MaxCompute)-1
"text" フィールドのテキストの perplexity を計算し、指定された perplexity のしきい値に基づいてサンプルをフィルターします。
LLM-特殊文字比率フィルター (MaxCompute)-1
"text" フィールドから、指定された特殊文字の比率を満たさないサンプルを削除します。
LLM-長さフィルター (MaxCompute)-3
"text" フィールドの長さに基づいてサンプルをフィルターします。
LLM-トークン化 (MaxCompute)-1
"text" フィールドのテキストをトークン化し、結果を新しい列に保存します。
LLM-長さフィルター (MaxCompute)-4
"text" フィールドのサンプルを、スペース文字 (
" ") を区切り文字として使用して単語のリストに分割します。次に、リストの長さ (単語数) に基づいてサンプルをフィルターします。LLM-N-Gram 繰り返しフィルター (MaxCompute)-2
"text" フィールドのサンプルを、単語レベルの N-gram 繰り返し率に基づいてフィルターします。繰り返し率を計算する前に、すべての単語が小文字に変換されます。コンポーネントは、N 単語のスライドウィンドウをテキスト上で移動させて、セグメントのシーケンスを作成します。各セグメントはグラムです。コンポーネントは各グラムの出現回数をカウントします。繰り返し率は、数式
(複数回出現するグラムの総頻度) / (すべてのグラムの総頻度)を使用して計算されます。サンプルはこの率に基づいてフィルターされます。LLM-MinHash 重複排除 (MaxCompute)-1
MinHash アルゴリズムに基づいて類似したサンプルを削除します。
パイプラインを実行します。
パイプラインの実行が完了したら、[データテーブルに書き込む-1] コンポーネントを右クリックし、[データの表示] > [出力] を選択して、先行するコンポーネントによって処理されたサンプルを表示します。

リファレンス
詳細については、「LLM データ処理 (MaxCompute)」をご参照ください。