Data Prep Kitとは。

ダッシュボードを表示しているモニターをペンで指差す人の手

執筆者

Jobit Varughese

Technical Content Writer

IBM

Shalisha Witherspoon

Software Engineer

IBM Research

Data Prep Kitとは。

効率的な人工知能(AI)システムと大規模言語モデル(LLM)アプリケーションを開発するには、質の高いデータ・ソースからの信頼できるデータ・セットが必要です。データデータ準備には、生の非構造化データを使用可能なデータ・セットに整理するためのクリーニング、トランスフォーメーション、高度なプロセスが含まれます。品質問題は隠れてソフトウェア開発ライフサイクルの後半に顕在化する可能性があり、デバッグ作業が困難になったり、プロジェクト全体の時間に遅れが生じたりする可能性があります。そのため、このプロセスには困難が伴います。責任あるLLMとAIのアプリケーションを構築するには、質の高いデータが不可欠です。データの準備が不十分だと、出力にバイアスや危険が生じる可能性があるからです。また、個人情報(PII)が、その影響を適切に認識せずにモデル・データに含まれている場合、プライバシー侵害のリスクもあります。また、データ準備が不十分だと、時間とリソースが無駄になる可能性があります。責任ある生成AI(gen AI)を開発するための基盤は、データを適切に準備して製品を効率的に構築することです。

開発者やデータサイエンスの専門家にデータ準備の課題に対応するためのツールを提供するため、IBMはオープンソースのデータ準備キット(DPK)を開発しました。DPKは、AIベースのアプリケーションおよびLLMワークフロー用のデータ・ファイルを準備する実践者に適したツールキットです。この目的を達成するために、DPKはPython環境でいくつかのモジュラーの「変換」を提供しています。ユーザーは、「変換」を分離されたクラスとして採用したり、それらをデータ・パイプラインに組み合わせて、データ・ソースからのデータをクリーンアップ、変換、整理したりできます。DPKは拡張性を重視して構築されており、Parquetファイルなどの列指向データ・セットと、RayやSparkなどの拡張性ランタイムを使用します。この容量により、単一マシンまたは大規模なクラスターでデータデータ準備を実行し、データ処理を高速化することができます。DPKは、IBM® Graniteモデル用のデータを準備するために効果的に使用されており、実際のユースケースでの有効性が示されています。

DPKの主要な機能とアーキテクチャー

DPKは、3つの主要なアーキテクチャー・コンポーネントで構築されています。

データ・アクセス、トランスフォーメーション、およびランタイムです。

データ・アクセス:このコンポーネントにより、さまざまなストレージの場所(ローカル・ファイル・システム、S3互換ストレージなど)からデータを読み書きする統一された方法が可能になります。チェックポイント設定をサポートしているため、ジョブを再起動する必要がある場合でも、未完了のファイルのみが処理されるため、時間とリソースを節約できます。

トランスフォーメーション:このモジュールは、データ変換、重複排除、個人情報検知(PII)など、データに適用される特定の機能を提供します。DPKには、事前に構築された変換のスイートとして、変換の開発ライブラリがあります。このフレームワークにより、コントリビューター(分散コンピューティング・フレームワーク(RayまたはSpark)ではあまり詳しくない)が独自のカスタム変換を作成・構築することもできます。各トランスフォーメーションは、独立した設定可能な処理単位として機能し、パイプラインとして組み合わせることができ、LLM規模のデータ準備を実現します。

ランタイム:ランタイムは、変換の割り当て作業と監視を行うための特定の実行環境です。DPKは、純粋なPython(マルチプロセッシングを使用)、Ray、Sparkなど、さまざまなランタイムで実行できます。この機能により、ユーザーはデータ準備を1台のノートPCから数千ノードを持つ大規模なクラスターに柔軟に拡張できます。ランタイムは作業者への作業の割り当てを管理します。ランタイムでは、共有クラスや保管などの特定の機能を使用することもできます。全体的なランタイム・アーキテクチャーは、変換ランチャー(エントリー・ポイント)、変換オーケストレーター(ワークフローを実行し、ワーカーを作成するコンポーネント)、ファイル・プロセッサー(個々のファイルを処理するコンポーネント)で構成されています。オーケストレーターはランタイムを使用して、共有コンポーネントとデータ・アクセスを確立します。これにより、作業するファイルの検索が可能になります。各ファイル・プロセッサーは、アプリケーション・プログラミング・インターフェース(API)コールを使って成果やメタデータを読み込み、処理し、その後書き戻します。

オートメーションと拡張性

DPKのオートメーションと拡張性の機能は革新的であり、Local、Ray、Sparkなどの複数のランタイムに対応できます。

新しい機能により、DPKはBigCode、DataTrove、Dolmaなどの確立されたデータ準備プロジェクトとは一線を画しています。主な差別化要因は、サポートするユースケース(事前トレーニング、微調整、検索拡張生成(RAG))の数と、サポートできるデータの規模です。単一のデータ・モダリティーをサポートする他のツールキットとは異なり、DPKは自然言語データとコード・データをサポートします。DPKは拡張可能です。つまり、任意の数のスケーラブルなモジュールを簡単に追加できます。

オートメーションのために、DPKはコマンドラインインターフェース(CLI)インターフェースと、Kubernetes 上でスケーラブルな機械学習(ML)ワークフローをデプロイするプラットフォームであるKubeflow Pipelines(KFP)を利用したノーコードオプションを備えています。この機能によりオーディエンスが広がり、データサイエンティストやAIアプリケーション開発者にもより幅広い適用が可能になります。

KFP統合の主要な機能は次のとおりです。

拡張性:KFPは、スケーラブルでオンデマンドのコンピューティング・プラットフォームであるKubernetesのおかげで、大規模なデータ・セットや非常に複雑なワークフローを拡張できます。

モジュール性:各ワークフローは再利用可能なコンポーネントに分割され、複雑なワークフローと追加のデバッグを容易に実装できます。

再現性:各実行の履歴が追跡されるため、実験を再現できます。

視覚化:パイプラインの実行を監視し、成果を視覚化し、問題のトラブルシューティングを行うためのインターフェースがあります。

DPKの拡張性は実験的研究によって裏付けられています。例えば、このツールキットは、処理ノードの規模が大きくなるにつれて変換の実行時間を比例して短縮します。単純なデータの注釈付けから、追加の計算コストが発生する言語識別のようなより複雑なワークロードの実行まで、ワークロード全体で均一に拡張できます。

DPKによるAIトレーニングのためのデータ前処理の管理

AIシステムの機能が向上し、意思決定プロセスにおいてより不可欠になるにつれて、倫理的で安全かつコンプライアンスに準拠したAIを可能にするガバナンスを確立することが急務となっています。ただし、ガバナンスはモデルから始まるわけではないという点は重要です。それはデータから始まります。

DPKが特に価値があるのは、AIガバナンスの目的に直接貢献することです。

安全性:DPKが「変換」するHAP(ヘイト、虐待、冒とく)検知機能により、有害または有害なコンテンツを特定し、削除します。

公平性:DPK&トランスフォーメーション低品質なデータや無関係なデータの重複排除とフィルタリングを通じてバイアスを取り除きます。

コンプライアンス:DPK「変換」は、GDPR(一般データ保護規則)やHIPAA(医療保険の相互運用性と説明責任に関する法律)などのプライバシー関連の規制に準拠して、PIIを削減および編集します。

透明性:DPKの「変換」機能は、文書のハッシュ値と品質スコアを追加することで、トレーサビリティと監査対応性を向上させます。

医療、金融、官公庁・自治体など、信頼が重要な分野のいずれでも、DPKは責任あるデータを基盤としたAIシステムの構築を支援します。

実際のユースケース:法的文書の要約

シナリオ:官公庁・自治体は、法的文書の要約を支援するために、ドメイン固有のLLMを構築しています。このデータ・セットには、さまざまなソースからかき集めた公的記録、法的提出書類、方針文書が含まれています。

ガバナンスの課題:

  • 一部の情報源は検証されておらず、または政治的にバイアスしているものもあります。

  • データ・セットには複数の言語が含まれています。 

  • 有毒な言語または刺激的な言葉の可能性があります。

  • PIIの所在地や名前を削除する必要があります。

  • 重複したファイリングや定型的なテキストはよくあることです。

  • ドキュメントの品質はさまざまです。 

解決策:デプロイすることでガバナンスレシピを活用したDPK、機関はデータ・セットが次のものであることを保証できます。

  • 倫理的に調達

  • プライバシー・コンプライアンス

  • 高品質で多様

  • 責任あるLLMトレーニングの準備

ガバナンス・パイプラインのレシピ

前述のユースケースで提示された課題や確立されたシナリオを修正して、データ品質・安全性・コンプライアンスに関するリスクを軽減する必要がある場合は、基本的にガバナンス・ポリシーを強制するパイプラインが必要です。DPKは、データ・セットのクリーニング、フィルタリング、エンリッチメントのために連携できる一連のモジュール変換を提供することで、このパイプラインを可能にします。

次の表は、AIガバナンスの主な要件を満たすシンプルな6ステップのガバナンス・パイプラインを示しています。すべての段階にリスクや品質の問題が伴い、最終データ・セットが倫理的に調達され、プライバシーに準拠し、責任あるAI開発に向けて準備されていることが保証されます。

AIガバナンス・パイプライン

独自のガバナンス・パイプラインを構築するには

  1. リポジトリのクローン:https://github.com/data-prep-kit/data-prep-kit

  2. 変換機能をインストールする:「data-prep-toolkit-transforms[all]」

  3. KFPまたはPythonとdpk_transform_chainを使用してパイプラインを構成します。

  4. CLIを使用してパイプラインを実行するか、RayまたはSparkを使用してデータ・プラットフォームに統合します。

DPKの利用可能な変換

DPKには、さまざまなデータ準備要件に合わせて分類された、事前構築済みの変換の配列が含まれています。

データ取り込み変換:これらは、1つ以上の形式のデータを標準化された形式に変換します。例えば、コード・ファイルをParquetに、HTML/PDFをParquetに圧縮します。

ユニバーサル(コードおよび言語)変換:これらの変換は、コード・データと自然言語データの両方に使用できます。例えば、重複するレコードを削除し、ファイルの適切なサイズにサイズを変更するための厳密な重複排除とファジー重複排除が可能です。

言語のみの変換:これらの変換は自然言語データ向けです。これには、テキストの言語を識別する言語識別、個人情報を識別して削除するPIIアノテーターまたはリダクターが含まれます。

コードのみの変換:コードのみのデータを対象としています。これには、プログラミング言語の注釈、コード品質の注釈、ライセンスおよび著作権情報をターゲットにするヘッダー・クレンジングが含まれます。このフレームワークには、ドキュメントのチャンク化やテキストの埋め込みベクトルを作成するテキスト・エンコーダーなど、RAGアプリケーションの変換も含まれています。これらの変換は、ベクトル・データベースで使用するデータを準備する上で重要な要素です。

DPKは、AI、特にLLMアプリケーションを作成する人にとって不可欠です。このツールキットは、複雑で、時に手間がかかるデータ準備プロセスを簡素化する、クリーンでスケーラブルな標準化されたフレームワークです。開発者やデータサイエンティストをサポートするモジュール式「変換」の完全なセットがあれば、未加工データをクレンジングして構造化し、データー・ワークフローにAIガバナンスの重要な側面を組み込むことができます。これにより、倫理およびプライバシー戦略に関するトレーニングや説明責任に使用される基本データの品質と信頼性を確認できるようになります。DPKは最終的に、開発者の責任と信頼性を確保することでAIシステムを改善し、強力なデータベースにしっかりと接続しながらモデルのイノベーションを可能にします。