このプロジェクトについて
Antiserumは、トレーニングデータ用のアンチウイルスを自称しています。これは、テキストデータセット内の潜在的なポイズン(汚染)をフラグ立てするローカルスキャナーと、確認済みシグネチャの共有フィードで構成されています。リポジトリ自体が製品であり、ログインやホスト型のスキャンサービスは提供されていません。公開ドキュメントはGitHub Pagesから提供されていますが、サイトはCLIのドキュメント化のみを行い、コーパスのスキャン、判定、ホストは行いません。
このプロジェクトは、「データセットは学習に安全か?」という事前学習における一つの問いに向けられています。ここでの「安全」とは、ミックスに隠れたトリガー、協調的なラベル反転、重複ダンプ、またはモデルが記憶するまでクリーンに見える仕込まれた行が含まれていないことを意味します。ツールはPython 3.10+で動作し、PyPIから「pip install antiserum」でインストールでき、「antiserum」コマンドが利用可能になります。ローカルスキャンはネットワークを使用せず、APIキーも不要で、データセットのダウンロードも行いません。JSONL、CSV、JSON、プレーンテキスト、gzip圧縮形式、およびローカルのHugging Faceキャッシュやダウンロード済みデータセットパスのフォルダをスキャンできます。ArrowおよびParquetシャードにはオプションの追加機能が必要です。
スキャナーは3つのレイヤーで構成されています。「innate(固有)」レイヤーはローカルマシンで動作し、稀なn-gram、ラベル反転、近似コピーダンプ、Jaccardを超えた言い換えファミリー、長さとエントロピーの急増、シグネチャフィードの一致、隠しUnicode制御文字、および混在スクリプトトークンのチェックを含みます。「adaptive(適応)」レイヤーは公開されたルーブリックであり、人間またはエージェントがフラグをポイズン、ジャンク、または誤検知としてマークできます。「memory(メモリ)」レイヤーは、シグネチャのローカルフィードと参照コーパスです。日付付きのパックリリースは変更履歴で追跡され、スキャン結果はデータセットのハッシュ、スキャナーバージョン、パック識別子、フラグ、および確認済みヒットを含むレシートに書き出されます。
ドキュメント化されたチェック項目には、トリガーn-gram、ラベル反転、重複注入、言い換え過多、統計的外れ値、シグネチャヒット、指示オーバーライド、隠しUnicode、および混在スクリプトが含まれます。一部のチェックは常に人間の確認を必要としますが、他のものは一次的なジャンクまたは誤検知分類を持つ場合があります。ユーザーは選択したチェックのみを実行したり、特定のチェックをスキップしたりでき、レシートにはどのチェックが実行されたかが記録されるため、省略された箇所は可視化されます。
スキャン動作は意図的にローカルかつ限定的です。デフォルトの上限は25,000行またはソースファイル128 MiBです。より大きなダンプの場合、上限で停止し、レシートに切り捨てを記録して、メモリ不足になる代わりに終了コード3で終了します。「allow-truncated」オプションを使用すると、意図的なサンプルとして終了コード0を維持できますが、レシートには切り捨てられたことが記載されます。終了コードは、失敗フラグのない完了したスキャン、fail-onしきい値以上のフラグ、使用法またはI/Oエラー、および切り捨てを区別します。「fail-on」は「any」、「high」、または「never」に設定可能です。レシートは同じフォルダバイトとフラグに対して決定論的であり、「diff」コマンドを使用して、再スキャンすることなく保存されたベースラインレシートと新しいレシートを比較できます。ツールはJSON、SARIF、HTML、CSV、Markdownレポートをすべてローカルで出力できます。
設定はローカルの「antiserum.toml」ファイルに配置でき、フラグでファイル設定を上書きできます。「allowlist.jsonl」ファイルで既知の誤検知を抑制でき、レシートには許可リストのパスとハッシュが記録されるため、抑制が密かに隠されることはありません。確認ワークフローでは、コマンドを使用してフラグを判定し、残りを処理し、誤検知をローカル許可リストに追加し、シグネチャ行とプルリクエスト本文を提案します。確認されたポイズンは公開シグネチャとなり、将来のスキャンで照合可能になります。
リポジトリには、2分間のデモ用トイコーパスと、数百の植物と大多数のクリーンなデータを含む参照コーパスが含まれています。「make reproduce」コマンドは参照ミックスをスキャンし、仕込まれた行が見逃された場合にゼロ以外で終了します。テストには、リンティング、pytestカバレッジ、フィールドハント・フィクスチャ、およびしきい値に対するチェックごとの評価が含まれます。GitHub Actionを使用して、呼び出し元のランナーでCLIを実行し、レシートとSARIFアーティファクトを生成し、オプションでコードスキャンのためにSARIFをアップロードできます。CIの例では、レシートのフラグや深刻度に基づいてジョブを失敗させる方法が示されています。
READMEではスコープが明確にされています。Antiserumは、ランタイムのプロンプトファイアウォール、モデルファイルやpickleのマルウェアスキャナー、データ品質やラベルエラーツール、重みレベルのバックドアインバーター、または画像ポイズン生成器ではありません。現バージョンではテキストデータセットのスキャンのみを対象としています。誠実なカバレッジ、脅威モデル、フィールドハントノート、およびポジショニングがリポジトリに記載されています。プロジェクトはMITライセンスであり、動作するCLI、チェック、確認ループ、トイデモ、参照コーパス、フィード、およびレシートを備えた、第11-12週のステータスとして提示されています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.