Views
No views yet
| Dataset | asterion-agentic-sft (v2: raw/clean decoupled, Track-C multi-QA) |
| Adapter | LoRA r=32, α=64, dropout 0.05, target all-linear (merged at push) |
| LR / epochs | 2e-4 cosine, warmup 0.05, 1 epoch, max_len 4096, eff_batch 32 |
| Tools | 8 (same schema as the LFM2 round; Gemma-4 native wire format) |
| Metric | Value | Note |
|---|---|---|
| alert pass@1 (v3 verifier) | 0.132 | 1.2B sibling: 0.304 — but see the profile |
| multi-alert SUBCASES by difficulty | 0.22 / 0.22 / 0.22 / 0.12 | L3/L4 move off zero with NO multi-alert training data — capability emerging with scale (1.2B: 0.00) |
| triage recall / precision (genuine) | 0.68 / 0.56 | over-calls genuine |
| distractor resistance | 0.32 | falls for correlated decoys |
| schema / grounding / budget | 1.00 / 1.00 / 1.00 | wire format is perfect |
| extraction pass@1 | 0.90 | 0.96 per-question |
| SFT eval_loss | 0.285 | 0.381 → 0.285 over 1 epoch, no overfit |
noval-corp/scripts/eval_agentic.py.<|tool_call> blocks and consumes <|tool_response> results).1from transformers import AutoModelForCausalLM, AutoTokenizer
2
3tok = AutoTokenizer.from_pretrained("atenareply/gemma-4-12b-asterion-agentic")
4model = AutoModelForCausalLM.from_pretrained("atenareply/gemma-4-12b-asterion-agentic")
5TOOLS = [...] # the 8 OpenAI-style tool schemas (see noval-corp/config/curation.py: TOOL_SCHEMA)
6messages = [{"role": "system", "content": "You are an Asterion operations assistant."},
7 {"role": "user", "content": "ALERT on NPWD2531: 1.12A. Routine or genuine?"}]
8inputs = tok.apply_chat_template(messages, tools=TOOLS, add_generation_prompt=True, return_tensors="pt", return_dict=True)
9# parse <|tool_call>call:name{...}<tool_call|>, execute, append the result as a {"role":"tool",...}
10# message WITH structured tool_calls on the assistant message, repeat.noval-corp/scripts/eval_agentic_gemma.py::run_episode (wire spec: docs/gemma_wire_format.md).noval-corp/scripts/gen_model_cards.py (standardized across the noval-corp model family).