--- license: other license_name: webbrain-noncommercial-research-restrictions license_link: https://huggingface.co/webbrain-one/webbrain-compass-tiny-v2/blob/main/ATTRIBUTIONS.md library_name: transformers base_model: openbmb/MiniCPM5-2B tags: - experimental - web-agent - tool-calling - lora-merged - bf16 --- # WebBrain Compass Tiny v2 — experimental private BF16 Release naming correction: formerly `webbrain-compass-v2`. Model weights, tokenizer, configuration and benchmark results are unchanged. Historical run IDs and provenance retain their original names for reproducibility. Full merged model weights, **not an adapter**. This experimental release was explicitly authorized after disclosure of a failed behavioral gate. It is NOT a release that passed every v4 gate. Do not deploy unattended browser actions on the strength of these small-suite results. ## Training and representation Base: OpenBMB MiniCPM5-2B, revision `3497c460c89e00520c3cfa2e73f49ab7647f1177`. One epoch, 7,311 training examples, 213 validation examples, 457 optimizer steps. LoRA r16/alpha32 deltas were accumulated in FP32 and parameters cast once to BF16. Native nonpersistent rotary-position buffers remain FP32, as in stock Transformers loading. No optimizer, RNG state or training examples are included here. ## Candidate-specific evaluation | Metric | This merged BF16 | Native adapter | Historical Qwen3.8-27B | |---|---:|---:|---:| | Structured first turn | 94/100 | 93/100 | 99/100 | | Strict tool and arguments | 16/89 | 15/89 | 17/89 | | Loose tool/name credit | 41/89 (46.1%) | 43/89 (48.3%) | 39/89 (43.8%) | Eleven out-of-scope cases are skipped; all other cases, including technical errors, stay in the 89-case denominator. This BF16 run had one known anti-pattern, zero HTTP/runner errors or timeouts, and **one malformed XML response**. The parse failure was not repaired or regraded. The native-adapter run had one timeout, retained in its score. **Failed v4 gate: loose >=43/89; observed 41/89.** Other aggregate v4 gates passed. The user accepted an experimental/private distribution with this limitation disclosed; neither the failed gate nor the original evidence was changed. This is separate from numerical weight/reload verification. All 193 frozen input/code hashes and scenario references match between the native-adapter and merged-BF16 runs. GPU: RTX 5090; thinking disabled; seed 3407; action temperature 0.15, Ask temperature 0.3. No selective retries. These tests predict the next response; **browser actions were not executed**, so this is not end-to-end task success, general capability equivalence or a safety claim. Qwen figures are historical results from the [public routing comparison](https://www.webbrain.one/blog/compact-tool-routing-models-compared). Historical/current byte-identical prompts and tools have not been established. The small differences do not establish statistical superiority or parity with Qwen's broader capabilities. These are not controlled speed comparisons. ## Numerical validation and preserved failures All 294 adapted weight deltas were independently checked against the pinned raw base and adapter, with unchanged unadapted weights and finite parameters. Eight frozen calibration probes passed FP32 merged/unmerged comparisons (maximum absolute logit error <=0.001, relative L2 <=0.0001, identical greedy tokens). The saved/reloaded BF16 weight bits, config, tokenizer and template match; all eight reload logit comparisons had zero error, and corresponding KV-cache decode outputs matched. This is **not numerically identical to unmerged BF16 inference**. Earlier v1/v2 absolute-logit parity gates failed and remain failed. An earlier v4 reload comparison also failed after whole-module casting rounded nonpersistent RoPE buffers. An independent diagnostic reproduced that discrepancy exactly by changing only those buffers. The frozen v4.2 source casts parameters only and preserves FP32 runtime buffers; stored model weight bits are unchanged from the earlier v4 candidate. A v4.1 startup attempt failed before inference due to Windows source-decoding differences; explicit UTF-8 restored exact frozen inputs. None of these failures was deleted or relabeled as a pass. ## Native inference interface Verified runtime: Transformers 5.16.1, PyTorch 2.13.0+cu130, stock `LlamaForCausalLM`, with the included tokenizer and chat template. Load with `dtype=torch.bfloat16`; do not cast the whole module afterward, which can round native FP32 runtime buffers. Use `enable_thinking=False` and `add_generation_prompt=True`. Tool-call arguments in conversation history must be dictionaries, not JSON strings. Output uses native XML, for example `...`. Do not decode using `skip_special_tokens=True`: it removes tool delimiters. Remove only terminal EOS token IDs 1 or 130073. Preserve raw outputs and parse complete XML; fail closed on malformed output without repairing arguments. ## Access, attribution and restrictions **Private, experimental, noncommercial/research-only under project policy.** The training package includes WebLINX (CC BY-NC-SA 4.0); preserve attribution, applicable share-alike requirements and all dataset source obligations. The base model is Apache-2.0. Private hosting is not permission for commercial use. See ATTRIBUTIONS.md and LICENSE-BASE-APACHE-2.0.txt. The associated dataset is [private](https://huggingface.co/datasets/webbrain-one/webbrain-compass-v2-dataset). Release provenance, original failed-gate audit, numerical verification and explicit experimental authorization are in `provenance/`. ONNX requires separate export/runtime verification; these BF16 results must not be claimed as measured ONNX results.