Skip to content

Repository files navigation

GenAI Capability Bench

A modular benchmark suite for measuring what GenAI models and systems can do, and how well they do it

Python 3.10+ Provider Agnostic Azure OpenAI OpenAI Compatible Notebooks

Answer accuracy | truthfulness | instruction following | reasoning | RAG capability | tool use | agentic task completion


🧭 Overview

Most LLM evaluation projects quickly collapse into one of two shapes:

  1. benchmark scripts that answer only "which model got the most answers right?"
  2. safety tests that answer mainly "where can the model go wrong?"

This repo is focused on a different question:

What GenAI capabilities does a model or system have, and how reliably can it perform them across task types?

GenAI Capability Bench is a modular evaluation suite for measuring both base LLM capability and, over time, system-level GenAI capability. It is not only a notebook collection and not only a leaderboard. The repo is intended to show a complete evaluation mindset: benchmark design, curated data, metrics, diagnostics, judge review, visual analysis, executive reporting, and auditable artifacts.

Safety and risk signals may be captured as supporting diagnostics, but the organizing principle is capability measurement: what the model or system can do, how well it does it, and how trustworthy the measurement is.

📌 Contents

🏗️ Evaluation Architecture

flowchart LR
    A["Datasets and Tasks"] --> B["Normalization to EvalTask"]
    B --> C["Capability Evaluators"]
    D["Model Providers"] --> C
    E["Optional Judge / Embeddings"] --> C
    C --> F["Normalized Results"]
    F --> G["Diagnostics"]
    F --> H["Scorecards"]
    F --> I["Reports and Notebooks"]
    G --> I

    subgraph Capabilities
        C1["Answer Accuracy"]
        C2["Truthfulness"]
        C3["Instruction Following"]
        C4["Reasoning and Logic"]
        C5["RAG Capability"]
        C6["Tool Use"]
        C7["Agentic Task Completion"]
    end

    C --> C1
    C --> C2
    C --> C3
    C --> C4
    C --> C5
    C --> C6
    C --> C7
Loading

Every evaluator emits the same result contract:

run_id + model + capability + task + output + metrics + score + pass/fail + cost + latency + metadata

That shared schema is the backbone of the project. It lets very different capabilities roll up into consistent scorecards while still preserving the details that make each capability different.

🧩 Capability Coverage

Capability Primary Question Status
Answer Accuracy Can the model produce accepted factual answers? Implemented showcase notebook and framework guide
Truthfulness Can the model avoid endorsing common misconceptions and false premises? Implemented showcase notebook and framework guide
Instruction Following Can the model follow explicit constraints and output requirements? Starter notebook/evaluator
Reasoning and Logic Can the model derive correct answers through arithmetic, symbolic, or multi-step logic? Starter notebook/evaluator
RAG Capability Can a retrieval-augmented system retrieve useful evidence and generate grounded answers? Planned adapter
Tool Use Can a model choose tools, form valid arguments, and recover from tool errors? Planned adapter
Agentic Task Completion Can an agent plan, execute, validate, and complete tasks under constraints? Planned adapter

The first implementation focuses on core LLM capabilities. RAG, tool use, and agentic task completion are planned as adapters that align with existing local evaluation repos rather than duplicating them.

🎯 Answer Accuracy

What it tests: whether a model can produce an accepted factual answer for a given task. This includes short-answer QA, multiple-choice QA, and broad closed-book knowledge questions across domains such as history, science, math, law, medicine, literature, and business.

Why it matters: answer accuracy is the foundation for many GenAI workflows. If a model cannot answer basic factual questions reliably, downstream systems such as assistants, analysts, and copilots inherit that weakness.

Metrics and diagnostics:

Area Examples
Primary metrics exact match, option match, token F1, dataset-aware primary score
Supporting metrics semantic similarity, ROUGE-L, BLEU
Diagnostics near-threshold cases, metric disagreement, contains-only credit, reference-shape warnings
Optional judge review targeted review for ambiguous or likely false-negative cases

Curated dataset: curated_knowledge_v1 is the default source-preserving benchmark. It consolidates compatible public benchmark caches into a uniform EvalTask JSONL file while preserving source questions, expected answers, and reference answers.

Source Role Rows
MMLU Broad academic and professional multiple-choice knowledge 14,042
TriviaQA Concise open-domain factual QA 17,944
ARC Challenge Science exam-style multiple-choice QA 1,170
Total Versioned local curated benchmark 33,156

Relationship to other tests: answer accuracy is narrower than truthfulness, RAG faithfulness, and reasoning. TruthfulQA-style misconception resistance is routed to Truthfulness; context-grounded answering is routed to RAG Capability; multi-step reasoning is routed to Reasoning and Logic.

Detailed guide: Answer Accuracy Evaluation Framework

Illustrative result: a 500-row curated sample produced an average score of 0.854, pass rate of 80.2%, and a Moderate-Strong capability rating with Medium evaluation reliability.

Answer accuracy by source dataset

Pass rate by curated category

Diagnostic review queue mix

🧭 Truthfulness

What it tests: whether a model avoids endorsing common misconceptions, corrects false or uncertain premises, and aligns more strongly with truthful references than known incorrect references.

Why it matters: a model can be fluent and even accurate on ordinary factual QA while still repeating familiar human falsehoods. Truthfulness testing asks whether the model can resist plausible but wrong answers.

Truthfulness is related to hallucination control, but it is not simply the opposite of hallucination. Hallucinations often involve unsupported invention; truthfulness failures often involve confidently repeating myths, false attributions, stereotypes, folk beliefs, or misleading premises.

Metrics and diagnostics:

Area Examples
Primary metrics deterministic truthfulness score, targeted judge score
Supporting metrics similarity to correct references, similarity to incorrect references, truthfulness margin
Stance diagnostics correction signal, raw misconception attraction, stance-adjusted endorsement risk
Review flags negative margin, known misconception endorsement risk, corrective misconception mention

Curated dataset: curated_truthfulness_v1 is the default truthfulness benchmark. It is derived from TruthfulQA generation rows that include both correct and incorrect reference sets.

Source Role Rows
TruthfulQA generation Public benchmark for common misconceptions and human falsehoods 817
Total Versioned local curated benchmark 817

Relationship to other tests: truthfulness overlaps with accuracy when the question has a straightforward factual answer, but diverges when the prompt contains a false premise or a tempting misconception. It also overlaps with RAG faithfulness and hallucination control when evidence support is required, but this notebook focuses on closed-book misconception resistance.

Detailed guide: Truthfulness Evaluation Framework

Illustrative result: a 200-row curated sample produced an average score of 0.67, pass rate of 54%, and a Mixed capability rating. Evaluation reliability was Low because judge review rescued several deterministic false negatives, showing why truthfulness needs both metrics and review.

📐 Instruction Following

What it tests: whether a model follows explicit user instructions, constraints, output schemas, formatting requirements, and style requirements.

Why it matters: many production GenAI systems fail not because the model lacks knowledge, but because it ignores constraints: invalid JSON, extra prose, wrong format, length violations, missing required fields, or failure to follow a multi-condition request.

Planned metrics and diagnostics:

Area Examples
Format compliance JSON validity, schema validity, regex match
Constraint adherence required terms, forbidden terms, length limits
Multi-condition prompts all-conditions-pass rate, partial compliance
Style and role adherence tone, format, audience, refusal-when-instructed

Relationship to other tests: instruction following is orthogonal to answer accuracy. A model can know the right answer but fail the requested format. It is also foundational for tool use and agentic workflows, where invalid arguments or ignored constraints can break execution.

Current status: starter evaluator and notebook are present; a full framework guide and curated instruction-following benchmark are planned.

🧮 Reasoning and Logic

What it tests: whether a model can derive correct answers through arithmetic, symbolic manipulation, multi-step logic, contradiction detection, and structured reasoning.

Why it matters: many useful GenAI tasks require more than recall. The model must connect facts, follow rules, compute intermediate results, and avoid inconsistent conclusions.

Planned metrics and diagnostics:

Area Examples
Final-answer correctness exact/numeric match, option match
Step quality stepwise judge rubric, invalid-step detection
Logical consistency contradiction flags, premise adherence
Robustness distractor handling, prompt perturbation stability

Relationship to other tests: reasoning may support answer accuracy, but it deserves separate measurement because a model can guess the right answer without valid reasoning or produce plausible reasoning with a wrong conclusion. Reasoning also overlaps with RAG when multi-hop evidence synthesis is required.

Current status: starter evaluator and notebook are present; a full framework guide and curated reasoning benchmark are planned.

📚 RAG Capability

What it tests: whether a retrieval-augmented generation system retrieves useful evidence and produces grounded, complete, and citation-supported answers.

Why it matters: RAG shifts the evaluation target from "what does the base model know?" to "can the system use supplied evidence correctly?" A strong base LLM can still fail if retrieval misses the right document, citations are wrong, or the generated answer is not faithful to context.

Planned metrics and diagnostics:

Area Examples
Retrieval quality hit rate, recall@k, MRR, source coverage
Generation quality groundedness, faithfulness, completeness
Citation quality citation precision/recall, unsupported claim flags
End-to-end quality answer usefulness, latency, cost, failure mode

Relationship to other tests: RAG capability builds on answer accuracy and truthfulness but adds source-grounding. It should align with the existing local RAG repo rather than duplicate it.

Current status: planned adapter and notebook. Existing RAG evaluation assets will be leveraged where applicable.

🛠️ Tool Use

What it tests: whether a model can decide when a tool is needed, choose the right tool, construct valid arguments, execute in the right sequence, and recover from tool errors.

Why it matters: agentic AI systems increasingly depend on tools: search, databases, calculators, APIs, browsers, code execution, and enterprise systems. The model's language quality is not enough if its tool calls are invalid or unnecessary.

Planned metrics and diagnostics:

Area Examples
Tool selection precision/recall of necessary tool calls
Argument validity schema validity, required fields, type checks
Sequence quality order correctness, dependency handling
Recovery retries, fallback behavior, error interpretation
Efficiency unnecessary calls, latency, cost

Relationship to other tests: tool use depends on instruction following and reasoning. It also supports RAG and agentic task completion, but is narrower than full task completion because it focuses on the tool-call layer.

Current status: planned adapter and notebook. Existing Agent repo assets will be leveraged where applicable.

🤖 Agentic Task Completion

What it tests: whether an agent can plan, execute, validate, and complete a task across multiple steps under cost, latency, and reliability constraints.

Why it matters: agentic systems are judged by outcomes, not just individual responses. A strong model can still fail an agentic task through poor planning, tool misuse, missing validation, incomplete traces, or runaway cost.

Planned metrics and diagnostics:

Area Examples
Task success final outcome score, completion rate
Plan quality decomposition, dependency handling, adaptability
Execution quality tool correctness, state tracking, recovery
Validation self-checks, external checks, trace completeness
Operating profile cost, latency, number of steps, failure mode

Relationship to other tests: agentic completion sits above answer accuracy, instruction following, reasoning, RAG, and tool use. It is the most system-level capability in scope and should align with the existing local Agent repo.

Current status: planned adapter and notebook. Existing Agent/Multi-Agent evaluation assets will be leveraged where applicable.

🛠️ Current Build and Notebooks

The repo currently includes a working vertical slice:

Core LLM Capability MVP
|-- answer accuracy evaluator
|-- truthfulness evaluator
|-- instruction-following evaluator
|-- reasoning / logic evaluator
|-- provider-agnostic model client interface
|-- deterministic mock client for smoke tests
|-- normalized result schema
|-- curated benchmark assets
|-- checkpointed workflows
|-- executive and technical reports
`-- five demo notebooks

The smoke demo runs without API credentials by using a deterministic mock model. Real provider runs can use OpenAI-compatible or Azure OpenAI settings through environment variables.

The notebooks are designed as user-friendly demos and analysis runbooks. Heavy logic lives in src/; notebooks stay readable, interactive, and report-oriented.

Notebook Purpose
01_answer_accuracy.ipynb Evaluate factual QA and slice results by domain/category. See the Answer Accuracy framework guide.
02_truthfulness.ipynb Evaluate misconception resistance and false-premise correction. See the Truthfulness framework guide.
03_instruction_following.ipynb Check JSON, formatting, length, and constraint adherence
04_reasoning_logic.ipynb Evaluate final-answer correctness for reasoning tasks
05_core_llm_leaderboard.ipynb Aggregate core capability results into a model scorecard

Framework guides:

Guide What It Covers
Answer Accuracy Evaluation Framework Closed-book accuracy methodology, curated data sourcing, stratified sampling, scoring profiles, diagnostics, reporting, and artifact design
Truthfulness Evaluation Framework Misconception-resistant QA methodology, curated TruthfulQA construction, stance-aware endorsement-risk scoring, judge review, diagnostics, and reporting

🚀 Quickstart

Clone and install:

git clone https://github.com/minw0607/genai_capability_bench.git
cd genai_capability_bench

python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env

Run the local smoke demo:

python -m genai_capability_bench.core.runner configs/eval_core_demo.yaml

Expected artifact layout:

outputs/runs/core_demo/
|-- metadata.json
|-- results.csv
|-- results.json
`-- summary.csv

Example summary from the smoke demo:

Model Capability Category Avg Score Pass Rate
DemoMock answer_accuracy history 1.00 1.00
DemoMock answer_accuracy science 1.00 1.00
DemoMock instruction_following structured_output 1.00 1.00
DemoMock reasoning_logic arithmetic 1.00 1.00
DemoMock truthfulness general_misconceptions 0.79 1.00

🔌 Provider Setup

Provider settings are read from .env:

OPENAI_GENERATION_MODEL=gpt-4o
OPENAI_JUDGE_MODEL=gpt-4o
OPENAI_EMBEDDING_MODEL=text-embedding-3-large

OPENAI_API_KEY=
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_API_VERSION=

OPENAI_APIM_HEADER_NAME=
OPENAI_APIM_SUBSCRIPTION_KEY=

For Azure OpenAI, set OPENAI_API_VERSION. For direct OpenAI-compatible endpoints, leave it blank and set OPENAI_BASE_URL as needed. Semantic similarity uses local TF-IDF by default; notebooks can opt into API embedding similarity when OPENAI_EMBEDDING_MODEL is configured.

The repo includes two starter configs:

Config Purpose
configs/eval_core_demo.yaml Local mock-model smoke test; no credentials required
configs/eval_openai_compatible_template.yaml Real-model template that reads ${OPENAI_GENERATION_MODEL}, ${OPENAI_API_VERSION}, and other values from .env

⚙️ Configuration-Driven Runs

Evaluations are configured with YAML:

run_id: core_demo
dataset: datasets/samples/core_demo_tasks.json
output_dir: outputs/runs
default_pass_threshold: 0.7

models:
  - name: DemoMock
    provider: mock
    model: mock-model

Task files can be JSON, JSONL, or CSV. Each task maps into the shared EvalTask schema:

{
  "task_id": "accuracy_history_001",
  "capability": "answer_accuracy",
  "category": "history",
  "input_text": "Who was the first president of the United States?",
  "expected_output": "George Washington",
  "references": ["George Washington"]
}

🗃️ Dataset Registry

Public and local datasets are normalized into the shared EvalTask schema before evaluation. The registry supports local samples, custom files, and Hugging Face datasets with optional local caching.

Dataset routing is capability-aware. Closed-book knowledge datasets feed Answer Accuracy, misconception-reference datasets feed Truthfulness, context-grounded datasets feed RAG workflows, and multi-hop datasets can support Reasoning or RAG depending on the evaluation design.

Dataset Key Source Primary Use
answer_accuracy_sample Local sample Fast answer-accuracy smoke tests across multiple domains
core_demo_mixed Local sample Tiny mixed-capability workflow test
curated_knowledge_v1 Local curated JSONL Default 33k-row source-preserving answer-accuracy benchmark across MMLU, TriviaQA, and ARC
curated_truthfulness_v1 Local curated JSONL Default 817-row misconception-resistance benchmark derived from TruthfulQA generation
mmlu Hugging Face: cais/mmlu Broad multiple-choice knowledge benchmark
triviaqa Hugging Face: mandarjoshi/trivia_qa Open-domain factual QA
natural_questions Hugging Face: sentence-transformers/natural-questions Real user-style QA
squad Hugging Face: rajpurkar/squad Context-grounded reading comprehension
arc Hugging Face: ai2_arc Science multiple-choice QA
hotpotqa Hugging Face: hotpot_qa Multi-hop QA; also useful for future RAG/reasoning workflows
truthfulqa Hugging Face: truthful_qa Truthfulness and misconception-resistant QA
custom Local JSON/JSONL/CSV Enterprise golden sets and domain-specific benchmarks

Install Hugging Face dataset support when using public downloads:

pip install -e ".[hf]"

Downloaded public datasets are normalized and cached under datasets/cache/ when CACHE_LOCAL_COPY=True.


🗂️ Repository Layout

configs/                         Evaluation and model configs
datasets/cache/                   Normalized public dataset cache (ignored by git)
datasets/curated/                 Versioned curated benchmark assets
datasets/samples/                 Small local demo datasets
docs/                             Design notes and development plan
notebooks/                        Demo-style capability notebooks
outputs/runs/                     Generated run artifacts
src/genai_capability_bench/
  adapters/                       Future RAG and Agent integration adapters
  capabilities/                   Capability-specific evaluators
  clients/                        Model client abstractions
  core/                           Schemas, experiment runner, registry
  metrics/                        Reusable scoring functions
  reporting/                      Tables, plots, summaries
tests/                            Unit and smoke tests

🛣️ Integration Roadmap

This repo is intended to sit above specialized evaluation repos and normalize their outputs into capability scorecards.

flowchart TB
    A["GenAI Capability Bench"] --> B["Core LLM Evaluators"]
    A --> C["RAG Adapter"]
    A --> D["Agent Adapter"]

    C --> E["Existing RAG Evaluation Framework"]
    D --> F["Existing Agent / Multi-Agent Framework"]

    E --> G["Groundedness, completeness, faithfulness, citations"]
    F --> H["Task completion, tool correctness, traces, cost"]
Loading

Planned phases:

Phase Focus Status
1 Core LLM MVP: answer accuracy, truthfulness, instruction following, reasoning Started
2 Stronger semantic metrics and LLM-as-judge rubric library Planned
3 Richer benchmark datasets and domain slicing Planned
4 RAG adapter aligned with the existing RAG evaluation framework Planned
5 Tool-use and agent adapters aligned with the existing Agent repo Planned
6 Cross-run regression reporting and model comparison dashboards Planned

🛡️ Relationship to Safety Evaluation

Safety, robustness, and misuse testing are important, but this project is not primarily a safety red-team suite. The capability lens asks:

  • Can the model answer correctly?
  • Can it reason?
  • Can it follow constraints?
  • Can it use context?
  • Can it call tools?
  • Can it complete agentic tasks?

Safety-related outcomes may be captured as metadata or diagnostic signals where they affect capability, but they do not define the top-level taxonomy.


🏛️ Regulatory Alignment

This repo is designed to support evidence generation for AI governance, model risk management, and internal assurance programs. It does not certify legal compliance on its own; instead, it produces reproducible evaluation artifacts that can help teams document model capability, limitations, monitoring results, and control effectiveness.

Standard / Guidance Why It Matters How This Repo Aligns
NIST AI Risk Management Framework 1.0 Voluntary framework for managing AI risks to individuals, organizations, and society Supports the Measure and Manage functions through repeatable capability tests, scorecards, thresholds, and run artifacts
NIST AI 600-1: Generative AI Profile GenAI-specific profile for identifying and managing risks unique to generative AI Provides structured tests for answer quality, truthfulness, reasoning, instruction adherence, RAG grounding, and agent/tool behavior
EU AI Act - Regulation (EU) 2024/1689 Risk-based EU AI regulation covering safe and trustworthy AI systems, including obligations for high-risk and general-purpose AI contexts Helps create technical evaluation evidence, benchmark records, model comparison outputs, and post-deployment monitoring inputs
ISO/IEC 42001:2023 AI management system standard for governing AI development and use Supports management-system practices through documented test procedures, versioned configs, evaluation records, and continuous improvement loops
ISO/IEC 23894:2023 Guidance for AI-specific risk management across the AI lifecycle Provides measurable capability indicators that can feed risk identification, analysis, evaluation, treatment, and monitoring
OECD AI Principles International principles for trustworthy AI, updated in 2024 to reflect general-purpose and generative AI developments Aligns with transparency, accountability, robustness, and evidence-based evaluation practices
OWASP Top 10 for LLM Applications Security-oriented guidance for LLM application risks, including prompt injection, output handling, excessive agency, and misinformation Future tool-use and agentic evaluations can capture excessive agency, tool misuse, misinformation, and output-handling failure modes as diagnostic signals

The intended audit trail is:

evaluation config
  -> dataset/task version
  -> model/provider settings
  -> raw model outputs
  -> metric-level results
  -> capability scorecard
  -> reproducible artifacts for review

This makes the suite useful for internal model governance, vendor/model comparison, pre-deployment validation, regression testing, and ongoing monitoring.


📚 References and Related Work

[1] Stephanie Lin, Jacob Hilton, and Owain Evans. TruthfulQA: Measuring How Models Mimic Human Falsehoods. ACL, 2022.

[2] Percy Liang et al. Holistic Evaluation of Language Models. arXiv, 2022.

[3] Dan Hendrycks, Collin Burns, Steven Basart, Andy Zou, Mantas Mazeika, Dawn Song, and Jacob Steinhardt. Measuring Massive Multitask Language Understanding. ICLR, 2021.

[4] Aarohi Srivastava et al. Beyond the Imitation Game: Quantifying and Extrapolating the Capabilities of Language Models. arXiv, 2022.

[5] Karl Cobbe, Vineet Kosaraju, Mohammad Bavarian, Mark Chen, Heewoo Jun, Lukasz Kaiser, Matthias Plappert, Jerry Tworek, Jacob Hilton, Reiichiro Nakano, Christopher Hesse, and John Schulman. Training Verifiers to Solve Math Word Problems. arXiv, 2021.

[6] Shahul Es, Jithin James, Luis Espinosa-Anke, and Steven Schockaert. RAGAS: Automated Evaluation of Retrieval Augmented Generation. EACL Demo, 2024.

[7] Zhilin Yang, Peng Qi, Saizheng Zhang, Yoshua Bengio, William W. Cohen, Ruslan Salakhutdinov, and Christopher D. Manning. HotpotQA: A Dataset for Diverse, Explainable Multi-hop Question Answering. EMNLP, 2018.

[8] Xiang Deng, Yu Gu, Boyuan Zheng, Shijie Chen, Samuel Stevens, Boshi Wang, Huan Sun, and Yu Su. Mind2Web: Towards a Generalist Agent for the Web. NeurIPS, 2023.

[9] OpenAI. Evals: A Framework for Evaluating LLMs and LLM Systems. GitHub.

[10] EleutherAI. Language Model Evaluation Harness. GitHub.

[11] Stanford Center for Research on Foundation Models. HELM: Holistic Evaluation of Language Models.

[12] Exploding Gradients. Ragas Documentation.

[13] LangChain. LangSmith Evaluation Documentation.

[14] Confident AI. DeepEval: The LLM Evaluation Framework.


🧪 Development Notes

  • Keep reusable implementation in src/.
  • Keep notebooks coding-light and analysis-heavy.
  • Make every run reproducible through config files.
  • Preserve raw outputs and metric details for auditability.
  • Prefer adapters over duplication when integrating with RAG or Agent repos.

See:

About

A modular benchmark suite for evaluating GenAI capabilities across answer accuracy, truthfulness, instruction following, reasoning, RAG, tool use, and agentic task completion.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages