AEP SLM evaluator (alpha)¶
Status: alpha · Default: off · UHQS impact: none
Extra: uhbs[aep-slm] (marker extra; same runtime deps as uhbs[aep])
Published docs: this page on GitHub Pages
Opt-in alpha — not activated by install
Installing UHBS or uhbs[aep] / uhbs[aep-slm] does not enable the
SLM evaluator. Generation stays locked until you edit a local
aep-slm.yaml (enable flag + unlock phrase + attestations). Lab /
sandbox only. Never point at production systems.
What it is for¶
UHQS grades implementation quality and safety from Modules A–F. AEP adds optional lab decoy-vs-reference evidence (VoD, FSV, DTDR, EER) from local trial files.
Collecting those trials by hand (or with your own harness) is the normal path.
The SLM evaluator is an optional alpha helper for labs that want a
small / local language model (or a deterministic mock) to help draft
synthetic AEP trial rows for offline uhbs aep analyze — for example when
prototyping an experiment design, dry-running the analyzer, or replaying
recorded model outputs.
It is not a replacement for real controlled trials, not a UHQS input, and not a certification claim about any honeypot or LLM.
flowchart LR
unlock["Edit aep-slm.yaml unlock gates"] --> generate["uhbs aep slm generate"]
generate --> trials["slm-trials.jsonl + slm-run.json"]
trials --> analyze["uhbs aep analyze"]
analyze --> addendum["Advanced Evidence Addendum"]
uhqs["UHQS scorecard"] -.->|"unchanged"| addendum
Who should use it¶
| Audience | Typical use |
|---|---|
| Researchers / students | Dry-run AEP pipelines with provider: mock before collecting real trials |
| Lab engineers | Replay recorded JSONL from a local model evaluation |
| Advanced local setups | Call a loopback-only OpenAI-compatible server after explicit unlock |
If you only need UHQS or ordinary offline AEP on hand-written trials, skip this feature — leave configs disabled.
What it does¶
| Step | Behavior |
|---|---|
uhbs aep slm init |
Writes a disabled aep-slm.yaml |
uhbs aep slm validate / status |
Schema + activation report (no model calls) |
uhbs aep slm generate |
Only if fully unlocked; writes trials + slm-run.json |
uhbs aep analyze |
Unchanged offline analyzer on the generated trials |
What it does not do¶
- Does not change UHQS / scorecards / Modules A–F / δ_C / weights
- Does not launch honeypot probes, SSH, Docker, or
uhbs-lab - Does not call remote cloud APIs from the default
mockpath - Does not enable tool/function calling
- Does not auto-activate via environment variables, install extras, or CLI flags alone
- Is not exposed over the AI-host MCP server (tooling/mcp)
Activation checklist (edit the config file)¶
Packaged and init configs ship with:
enabled: false
activation:
unlock_phrase: CHANGE_ME_SEE_DOCS
acknowledge_alpha: false
lab_sandbox_only: false
no_production_targets: false
no_uhqs_scoring_impact: false
allow_local_model_calls: false
To unlock generation, change all of the following in the YAML file:
enabled: trueactivation.unlock_phrase: I_ENABLE_AEP_SLM_ALPHA(exact string)acknowledge_alpha,lab_sandbox_only,no_production_targets, andno_uhqs_scoring_impact→true- For
provider: openai_compatibleonly, alsoactivation.allow_local_model_calls: true(mockandrecordedmay leave thisfalse)
CLI flags alone cannot unlock a locked file. There is no interactive “yes I know” prompt that bypasses the file edits.
Providers¶
| Provider | Network | Notes |
|---|---|---|
mock (default) |
None | Deterministic offline JSON; recommended for CI / dry runs |
recorded |
None | Replay local JSONL (content string or response object) |
openai_compatible |
Loopback only | endpoint.base_url must be 127.0.0.1 / localhost / ::1; HTTP redirects refused; response body size-capped |
Schema safety.* constants require loopback-only, no tools, no network targets,
and local file writes only. Model JSON fields are parsed strictly (booleans must
be JSON booleans — the string "false" is rejected).
Quick start (mock, after unlock)¶
pip install 'uhbs[aep-slm]'
uhbs aep example beginner --out aep-beginner
cd aep-beginner
uhbs aep slm init --out aep-slm.yaml --experiment experiment.yaml
# Edit aep-slm.yaml: enabled + unlock phrase + activation booleans (see above)
# Align generation.trials_per_arm with experiment repetitions.minimum_per_arm
uhbs aep slm validate aep-slm.yaml
uhbs aep slm generate aep-slm.yaml
uhbs aep validate-trials slm-trials.jsonl --experiment experiment.yaml
uhbs aep analyze \
--experiment experiment.yaml \
--trials slm-trials.jsonl \
--out advanced-evidence.json
uhbs aep report advanced-evidence.json --format markdown --out ADVANCED-EVIDENCE.md
Default/locked generate attempt (expected failure):
Schemas & provenance¶
| Artifact | Location |
|---|---|
| Config schema | schemas/aep-slm.schema.json |
Trial schema (optional evaluator) |
schemas/aep-trial.schema.json |
| Locked template (repo) | examples/advanced-evidence/slm/ |
| Run provenance | slm-run.json (uhqs_unchanged: true, model/prompt/seed) |
Generated trials may include evaluator.kind: slm and evaluator.status: alpha
for provenance only.
Alpha caveats¶
- API and prompt IDs may change without a UHBS major version bump
- Model / mock outputs are synthetic lab evidence — informative, not certification
- Prefer
mockorrecordedfor reproducible papers; document model digest when using local servers - Keep
generation.trials_per_arm≥ the experiment’srepetitions.minimum_per_arm
Related¶
- AEP overview · MkDocs AEP home
- AEP CLI reference
- Beginner tutorial (ordinary AEP without SLM)
- CLI & validator
- Changelog (Unreleased)
- Landing hub section: Advanced Evidence Profile