What problem does it solve? Measuring LLM output quality is hard because responses are open-ended and subjective, and a single metric or one-off benchmark cannot catch regressions, hallucinations, or safety failures before deployment. ## Core Features & Use Cases - Multi-Metric Evaluation Pipeline: Run BLEU, ROUGE, BERTScore, exact-match, RAGAS, and LLM-as-judge scoring over JSONL datasets via scripts/evaluate_llm.py, producing per-sample and aggregate JSON reports. - Safety & Bias Testing: Probe models for toxicity, demographic bias, prompt injection resistance, PII leakage, and hallucination with scripts/safety_eval.py, generating JSON and Markdown scorecards. - Scorer Validation with Negative Controls: Apply the documented negative-control methodology (trivial identity, wrong-task code, non-compiling code) to verify that verifiable-reward scorers reject defective outputs instead of silently inflating scores. - Use Case: After fine-tuning a model, run the evaluation pipeline against a baseline on your domain dataset, then run the safety suite and compare scorecards to decide whether the candidate is safe to deploy. ## Quick Start Evaluate my fine-tuned model against the baseline using the eval dataset in eval.jsonl with RAGAS and LLM-as-judge metrics, then run the full safety test suite and summarize the scorecard.