콘텐츠로 이동

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_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 관련 도구

측면GiskardDeepEvalgarak
핵심 아이디어자동 스캔 → 테스트 스위트단위 테스트 스타일 메트릭모델 프로브 스캐너
범위ML + LLM + RAGLLM 앱 평가LLM 모델 취약점
보고서풍부한 HTML 스캔 보고서CI 출력/대시보드CLI 보고서
최고의 용도미지의 문제 발견알려진 메트릭 게이팅광범위한 모델 조사

DeepEval (메트릭 게이팅)과 Ragas (RAG 채점)과 쌍을 이루며; Giskard의 장점은 테스트하기를 생각하지 못한 문제를 찾는 것입니다.

리소스