コンテンツにスキップ

Giskard - ML & LLM テストフレームワーク チートシート

Giskard - ML & LLM テストフレームワーク チートシート

Giskard はオープンソースの ML と LLM アプリケーション用テストフレームワーク です。その特徴的な機能は自動スキャンで、モデルの脆弱性を調査します — 幻覚、プロンプトインジェクション、有害なコンテンツ、ロバストネス障害、バイアス、データ漏洩 — そして見つかったものを直接再利用可能なテストスイートに変換できるレポートを生成します。そのスキャン・テスト化ワークフローが区別される特徴です: 事前に何をテストするか知っている必要がありません。

インストール

方法コマンド
pippip 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,
)
フィールドなぜ重要か
descriptionGiskard が関連プローブを生成するために使用
model_typetext_generationclassificationregression
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 対 関連ツール

側面GiskardDeepEvalgarak
コア考え自動スキャン → テストスイートユニットテストスタイルメトリクスモデルプローブスキャナー
スコープML + LLM + RAGLLM アプリ評価LLM モデル脆弱性
レポート豊富な HTML スキャンレポートCI 出力/ダッシュボードCLI レポート
最適用途予期しない問題を発見既知メトリクスをゲーティング広範なモデルプローブ

DeepEval for メトリクスゲーティングと Ragas for RAG スコアリングと組み合わせます。Giskard のエッジはテストを思い付かなかった問題を見つけることです。

リソース