Spaces:
Build error
Build error
| """Script 08: Generate XAI report (cross-attention + IG + drilldown plots).""" | |
| import argparse | |
| import sys | |
| from pathlib import Path | |
| import pandas as pd | |
| sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) | |
| from src.utils import setup_logging | |
| from src import config as cfg | |
| from src.explainer import explain_examples | |
| def main(): | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument("--n_examples", type=int, default=10) | |
| parser.add_argument("--method", choices=["ig", "attention"], default="ig", | |
| help="ig = Integrated Gradients (needs captum); " | |
| "attention = BERT [CLS]-attention (no extra deps).") | |
| args = parser.parse_args() | |
| setup_logging() | |
| test_df = pd.read_parquet(cfg.TEST_PATH) | |
| print(f"Generating {args.method} explanations for {args.n_examples} examples...") | |
| out = cfg.REPORT_DIR / f"explanation_{args.method}.html" | |
| explain_examples(test_df, n_examples=args.n_examples, method=args.method, | |
| output_path=out) | |
| # also produce the cheap attention-only version as a fallback view | |
| if args.method == "ig": | |
| out2 = cfg.REPORT_DIR / "explanation_attention.html" | |
| explain_examples(test_df, n_examples=args.n_examples, method="attention", | |
| output_path=out2) | |
| print(f"\nDone. Open reports/explanation_*.html in your browser.") | |
| if __name__ == "__main__": | |
| main() | |