このトピックでは、GitHub 上のオープンソース RedPajama プロジェクトの小さなデータサンプルを使用し、PAI の大規模言語モデル (LLM) 向けデータ処理コンポーネントを使用して、GitHub コードデータをクリーンアップおよび処理する方法をデモンストレーションします。
前提条件
-
ワークスペースを作成済みであること。詳細については、「ワークスペースの作成と管理」をご参照ください。
-
MaxCompute リソースをワークスペースに関連付け済みであること。詳細については、「ワークスペースの管理」をご参照ください。
データセット
このデモンストレーションでは、RedPajama オープンソースプロジェクトの生の GitHub データから抽出された 5,000 個のデータサンプルを使用します。
「データ処理ワークフロー」セクションの手順に従って、データをクリーンアップおよび処理できます。この処理により、データ品質とモデルトレーニングのパフォーマンスが向上します。
データ処理ワークフロー
-
Machine Learning Designer ページに移動します。
-
PAI コンソールにログインします。
-
左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。ワークスペースページで、管理するワークスペースの名前をクリックします。
-
左側のナビゲーションウィンドウで、 を選択します。
-
-
ワークフローを構築します。
-
Machine Learning Designer ページで、[プリセットテンプレート] タブをクリックします。
-
[LLM] タブの [LLM データ処理 - GitHub コード] セクションで、[作成] をクリックします。
-
「[ワークフローの作成]」ダイアログボックスで、パラメーターを設定し、[OK] をクリックします。デフォルト値を使用できます。
ワークフロー データ ストレージ パラメーターは、ワークフローの実行時に生成されるデータを格納するために使用される OSS バケットのパスを指定します。
-
ワークフローリストで、対象のワークフローをダブルクリックして開きます。
-
システムは、次の図に示すように、プリセットテンプレートに基づいてワークフローを自動的に構築します。

コンポーネント
説明
LLM-MaskSensitiveInfo-1
機密情報をマスクします。例:
-
メールアドレスを
[EMAIL]に置き換えます。 -
電話番号を
[TELEPHONE]または[MOBILEPHONE]に置き換えます。 -
IDカード番号を
IDNUMに置き換えます。
次の例は、処理後のコンテンツフィールドのデータを示しています。メールアドレスは
[EMAIL]に置き換えられています。-
処理前

-
処理後:

LLM-RemoveSpecialContent-1
コンテンツフィールドから URL を削除します。
次の例は、処理後のコンテンツフィールドのデータを示しています。URL は削除されています。
-
処理前

-
処理後

LLM-NormalizeText-1
コンテンツフィールドのテキストに Unicode 正規化を適用します。
次の例は、処理後のコンテンツフィールドのデータを示しています。テキストは正規化されています。
LLM-RemoveCopyright-1
コンテンツフィールドから著作権情報を削除します。
次の例は、処理後のコンテンツフィールドのデータを示しています。著作権情報は削除されています。
-
処理前

-
処理結果

LLM-CountFilter-1
コンテンツフィールドから、指定された数字と文字の比率を満たさないサンプルを削除します。GitHub コードデータセットのほとんどの文字は英数字です。このコンポーネントは、一部のダーティデータを削除できます。
次のリストは、削除されたデータの一部を示しています。大量のダーティデータが削除されています。

LLM-LengthFilter-1
コンテンツフィールドの全長、平均行長、および最大行長に基づいてサンプルをフィルターします。平均行長と最大行長は、改行文字 ("\n") でサンプルを分割して計算されます。
次のリストは、削除されたデータセットの一部を示しています。短すぎるまたは長すぎるダーティコードデータの多くが削除されます。

LLM-FilterByNGramRepetitionRatio-1
コンテンツフィールドの文字レベルおよび単語レベルの N-gram 反復率に基づいてサンプルをフィルターします。
このコンポーネントは、文字または単語レベルでサイズ N のスライドウィンドウを使用してテキストを処理します。これにより、グラムと呼ばれる N長のフラグメントのシーケンスが作成されます。このコンポーネントは、各グラムの発生回数をカウントします。反復率は
(複数回出現するグラムの総数) / (すべてのグラムの総数)として計算されます。この比率に基づいてサンプルがフィルターされます。説明単語レベルの統計の場合、反復率が計算される前にすべての単語が小文字に変換されます。
LLM-LengthFilter-2
このコンポーネントは、スペースに基づいてサンプルを単語のリストに分割します。次に、結果のリストの長さにに基づいてサンプルをフィルターします。これにより、単語数でサンプルを効果的にフィルターします。
LLM-DeduplicateByMinHash-1
このコンポーネントは、類似するテキストを削除します。
-
-
-
キャンバス上部の [実行] ボタン
をクリックしてワークフローを実行します。 -
ワークフローが正常に実行された後、Write to Data Table-1 コンポーネントを右クリックし、ショートカットメニューから を選択します。
出力には、前のすべてのコンポーネントによってフィルターおよび処理されたデータサンプルが表示されます。
