このトピックでは、Platform for AI (PAI) が提供するLarge Language Model (LLM) データ処理コンポーネントを使用して、GitHubコードデータをクリーンアップおよび処理する方法について説明します。 このトピックでは、LLMデータ処理コンポーネントを使用して、オープンソースプロジェクトRedPajamaに格納されている少量のGitHubコードデータを処理します。
前提条件
ワークスペースが作成済み。 詳細については、「ワークスペースの作成」をご参照ください。
MaxComputeリソースはワークスペースに関連付けられています。 詳細については、「ワークスペースの管理」をご参照ください。
データセット
このトピックでは、5,000のサンプルデータレコードは、オープンソースプロジェクトRedPajamaの生のGitHubデータから抽出されます。
データ品質とモデルトレーニングの効果を向上させるために、[手順] で説明されている手順を実行してデータをクリーニングおよび処理できます。
手順
Machine Learning Designerページに移動します。
PAIコンソールにログインします。
左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。 [ワークスペース] ページで、管理するワークスペースの名前をクリックします。
ワークスペースページの左側のナビゲーションウィンドウで、 機械学習デザイナーページに移動します。
パイプラインを作成します。
[Visualized Modeling (Designer)] ページで、[プリセットテンプレート] タブをクリックします。
[プリセットテンプレート] タブで、[大規模言語モデル (LLM)] タブをクリックします。 大言語モデル (LLM) タブのLLM (Githubコード) カードで、[作成] をクリックします。
[パイプラインの作成] ダイアログボックスでパラメーターを設定し、[OK] をクリックします。 パラメーターのデフォルト値を使用できます。
Pipeline Data Path (Recommended) パラメーターをObject Storage Service (OSS) バケットのパスに設定します。 パスは、パイプラインのランタイム中に生成されたデータを格納するために使用される。
パイプラインリストで、作成したパイプラインをダブルクリックしてパイプラインを開きます。
次の図に示すように、キャンバス上のパイプラインのコンポーネントを表示します。 システムは、プリセットテンプレートに基づいてパイプラインを自動的に作成します。
コンポーネント
説明
LLM-敏感なコンテンツマスク-1
マスクの機密情報。 例:
メールアドレスを
[電子メール]
に置き換えます。電話番号を
[電話]
または[携帯電話]
に置き換えます。IDカード番号を
IDNUM
に置き換えます。
次の例は、データが処理された後のコンテンツフィールドのデータを示しています。 メールアドレスは
[電子メール]
に置き換えられます。処理前
処理後
LLM-クリーンスペシャルコンテンツ-1
コンテンツフィールドからURLを削除します。
次の例は、データが処理された後のコンテンツフィールドのデータを示しています。 URLがコンテンツフィールドから削除されます。
処理前
処理後
LLM-テキストNormalizer-1
コンテンツフィールドのテキストを標準のUnicode形式で正規化します。
次の例は、データが処理された後のコンテンツフィールドのデータを示しています。 関連するテキストは正規化されます。
LLM-クリーン著作権情報-1
コンテンツフィールドから著作権情報を削除します。
次の例は、データが処理された後のコンテンツフィールドのデータを示しています。 関連著作権情報は、コンテンツフィールドから削除される。
処理前
処理後
LLM-カウントフィルター-1
必要な英数字の比率を満たさないサンプルデータをコンテンツフィールドから削除します。 GitHubコードデータセットのほとんどの文字は、文字と数字です。 このコンポーネントは、特定のダーティデータを削除するために使用できます。
次の例は、削除される特定のデータのリストを示しています。 ほとんどのダーティデータは削除されます。
LLM-長さフィルタ-1
コンテンツフィールドの全長、平均長、および最大行長に基づいてサンプルデータをフィルタリングします。 ラインフィード ("\n") は、データの平均長と最大行長が測定される前にサンプルデータを分割するために使用されます。
次の例は、データセットから削除される特定のデータのリストを示しています。 過度に短い又は過度に長いダーティデータは削除される。
LLM-Nグラム反復フィルター-1
コンテンツフィールドの文字レベルと単語レベルのNグラム繰り返し率に基づいてサンプルデータをフィルタリングします。
このコンポーネントは、Nのサイズのスライディングウィンドウを作成し、文字または単語に基づいてデータを分割して、長さNのセグメントシーケンスを形成します。各セグメントはグラムと呼ばれ、すべてのグラムの発生数が収集されます。 次に、周波数が1より大きい
全グラムの周波数の合計に対する全グラムの周波数の合計
の比が計算され、サンプルフィルタリングの繰り返し比として使用される。説明単語レベルの統計では、繰り返し率が計算される前に、すべての単語が小文字に変換されます。
LLM-長さフィルタ-2
サンプルデータをスペースに基づいて単語のリストに分割し、リストの長さに基づいてサンプルデータをフィルター処理します。 サンプルデータは、ワード数に基づいてフィルタリングされる。
LLM-ドキュメントdeduplicator-1
同様のテキストを削除します。
キャンバスの上部にあるをクリックしてパイプラインを実行します。
パイプラインが期待どおりに実行されたら、[テーブル1の書き込み] ノードを右クリックし、
を選択します。出力サンプルデータは、前の表に記載されているすべての処理コンポーネントによってデータがフィルタリングされ処理された後に取得されたサンプルデータです。
関連ドキュメント
データ処理が完了したら、PAIが提供する一連のLLMコンポーネントを使用して、LLMの開発からLLMの使用までのエンドツーエンドのプロセスを実装できます。LLMコンポーネントは、データ処理コンポーネント、トレーニングコンポーネント、および推論コンポーネントを含む。 詳細については、「E2Eの開発と使用方法: データ処理 + モデルトレーニング + モデル推論」をご参照ください。