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")
| 탐지기 | 찾는 것 |
|---|---|
| Hallucination | 지원되지 않거나 일관성 없는 주장 |
| Prompt injection | 명령 오버라이드 |
| Harmfulness | 안전하지 않은 콘텐츠 생성 |
| Robustness | 사소한 입력 변경에 민감성 |
| Sensitive disclosure | 비밀/PII 누출 |
| Stereotypes | 출력의 편향 |
| Performance bias | 조각별 불균등한 정확도 (표형/NLP) |
# Scan only specific detector groups
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 평가 도구킷을 포함합니다.
| 채점된 컴포넌트 | 말해주는 것 |
|---|---|
| Generator | 컨텍스트가 주어졌을 때 LLM의 답변이 좋습니까? |
| Retriever | 검색이 올바른 청크를 표면화했습니까? |
| Rewriter | 쿼리 재작성이 도움이 됩니까? |
| Router | 쿼리가 올바르게 라우팅되었습니까? |
| Knowledge base | 소스 자료가 적절합니까? |
컴포넌트 레벨 채점이 단일 종단 간 숫자보다 더 실행 가능합니다 — 어느 단계를 수정할지 말해줍니다.
Giskard vs 관련 도구
| 측면 | Giskard | DeepEval | garak |
|---|---|---|---|
| 핵심 아이디어 | 자동 스캔 → 테스트 스위트 | 단위 테스트 스타일 메트릭 | 모델 프로브 스캐너 |
| 범위 | ML + LLM + RAG | LLM 앱 평가 | LLM 모델 취약점 |
| 보고서 | 풍부한 HTML 스캔 보고서 | CI 출력/대시보드 | CLI 보고서 |
| 최고의 용도 | 미지의 문제 발견 | 알려진 메트릭 게이팅 | 광범위한 모델 조사 |
DeepEval (메트릭 게이팅)과 Ragas (RAG 채점)과 쌍을 이루며; Giskard의 장점은 테스트하기를 생각하지 못한 문제를 찾는 것입니다.