Giskard - ML & LLM テストフレームワーク チートシート
Giskard - ML & LLM テストフレームワーク チートシート
Giskard はオープンソースの ML と LLM アプリケーション用テストフレームワーク です。その特徴的な機能は自動スキャンで、モデルの脆弱性を調査します — 幻覚、プロンプトインジェクション、有害なコンテンツ、ロバストネス障害、バイアス、データ漏洩 — そして見つかったものを直接再利用可能なテストスイートに変換できるレポートを生成します。そのスキャン・テスト化ワークフローが区別される特徴です: 事前に何をテストするか知っている必要がありません。
インストール
| 方法 | コマンド |
|---|---|
| pip | pip install giskard |
| LLM 追加 | pip install "giskard[llm]" |
| モデルキー | export OPENAI_API_KEY=... (LLM ベースの検出器に使用) |
| 確認 | python -c "import giskard; print(giskard.__version__)" |
LLM アプリをラップ
import giskard
import pandas as pd
def predict(df: pd.DataFrame):
return [my_llm_app(q) for q in df["question"]]
model = giskard.Model(
model=predict,
model_type="text_generation",
name="Support Assistant",
description="Answers customer questions using our docs",
feature_names=["question"],
)
dataset = giskard.Dataset(
pd.DataFrame({"question": ["How do I reset my password?"]}),
target=None,
)
| フィールド | なぜ重要か |
|---|---|
description | Giskard が関連プローブを生成するために使用 |
model_type | text_generation、classification、regression |
feature_names | 入力列 |
description は装飾的ではありません。スキャナーはそれからドメイン固有の敵対的入力を生成します。
スキャン
report = giskard.scan(model, dataset)
report.to_html("scan_report.html")
| 検出器 | 検出対象 |
|---|---|
| 幻覚 | サポートされていない、または首尾一貫しない主張 |
| プロンプトインジェクション | 命令上書き |
| 有害性 | 危険なコンテンツ生成 |
| ロバストネス | 些細な入力変化への感度 |
| 機密開示 | シークレット/個人情報の漏洩 |
| ステレオタイプ | 出力のバイアス |
| パフォーマンスバイアス | スライス間での不均等な精度 (表形式/NLP) |
# 特定の検出器グループのみをスキャン
report = giskard.scan(model, dataset, only=["hallucination", "jailbreak"])
スキャン → テストスイート
suite = report.generate_test_suite("Support Assistant tests")
suite.run()
これがキーワークフローです: 発見が回帰テストになり、修正された問題は修正されたままで、CI でゲートできます。
カスタムテスト
from giskard import test, TestResult
@test(name="No refund promises")
def no_refund_promise(model, dataset):
outputs = model.predict(dataset).prediction
bad = [o for o in outputs if "guaranteed refund" in o.lower()]
return TestResult(passed=len(bad) == 0, metric=len(bad))
suite.add_test(no_refund_promise).run()
RAG 評価 (RAGET)
Giskard には知識ベースから質問セットを生成し、各パイプラインコンポーネントをスコアリングする RAG 評価ツールキットが含まれます。
| スコアリング対象コンポーネント | 告知 |
|---|---|
| ジェネレーター | コンテキスト与えでの LLM の答えは良好か? |
| レトリーバー | 検索は正しいチャンクを表面化したか? |
| リライター | クエリリライティングは助けになったか? |
| ルーター | クエリは正しくルーティングされたか? |
| 知識ベース | ソースマテリアルは十分か? |
コンポーネント別スコアリングは単一エンドツーエンド数字より実行可能です。どのステージを修正するかが分かります。
Giskard 対 関連ツール
| 側面 | Giskard | DeepEval | garak |
|---|---|---|---|
| コア考え | 自動スキャン → テストスイート | ユニットテストスタイルメトリクス | モデルプローブスキャナー |
| スコープ | ML + LLM + RAG | LLM アプリ評価 | LLM モデル脆弱性 |
| レポート | 豊富な HTML スキャンレポート | CI 出力/ダッシュボード | CLI レポート |
| 最適用途 | 予期しない問題を発見 | 既知メトリクスをゲーティング | 広範なモデルプローブ |
DeepEval for メトリクスゲーティングと Ragas for RAG スコアリングと組み合わせます。Giskard のエッジはテストを思い付かなかった問題を見つけることです。