{ "name": "RavenGuard-Gen", "repo": "netis-ai/RavenGuard-gen", "license": "apache-2.0", "weights": { "file": "model.safetensors", "sha256": "68aaa2b5f559c400fa7cab0e363e00ade4e3731e0fa50f1e2ee79ba5661f4496", "size_bytes": 2579518016, "dtype": "float32", "num_parameters": 812647666, "num_parameters_readable": "0.81B", "num_tensors": 140, "note": "Untied embeddings (tie_word_embeddings=false); the parameter count is the true count with no shared-weight double counting. Do not read a total from HF safetensors metadata, which does not account for weight sharing." }, "provenance": { "training_recipe": "ravenguard_d20_ml_guard", "checkpoint_tag": "v16_step02000", "backbone": "custom decoder LM trained from random initialisation (not fine-tuned from Qwen/Llama/etc.)", "backbone_package": "netis_amniota (bundled in this repo; loaded via trust_remote_code)", "tokenizer": "65,536-entry tiktoken/rustbpe, native to the backbone (tokenizer.pkl)" }, "architecture": { "n_layer": 20, "n_head": 10, "n_kv_head": 10, "n_embd": 1280, "vocab_size": 65536, "sequence_len": 2048, "rope_base": 100000, "attention": "sparse (SSSL sliding-window + MSA/DSA); position-based, no padding-mask path", "value_embeddings": "ve_n_unique=3" }, "inference": { "grammar": "v2 (Decision / Risk / Severity / Categories / Refusal)", "binary_verdict": "generated Severity line (Safe -> safe; Controversial/Unsafe -> unsafe)", "score": "calibrated softmax at the generated Severity token: P(Unsafe|Controversial) vs P(Safe). Same score guardbench and reproduce_eval.py emit. Reference separability indicator, not a free-threshold ranking score; the deployment verdict is the Severity line.", "attention_backend_env": "NETIS_AMNIOTA_ATTN_BACKEND=sdpa (required on FlashAttention-2-only GPUs, e.g. consumer Blackwell / RTX 5090; FA4/CuTeDSL raises window_size_left)", "batching": "batch size 1 only: forward has no padding-mask path and refuses a padded attention_mask (raises ValueError) rather than silently scoring pad tokens", "generation": "GenerationMixin present; .generate() runs a full re-forward per step (no incremental KV cache), adequate for the short label block", "reproduce": "reproduce_eval.py (self-contained; exact prompt + decode + Severity-token calibrated score)" }, "known_caveats": [ "A ~643-char coding-agent system prefix was prepended at training time and is NOT reconstructed by the bundled inference path; a prefix-free retrained release is planned. Until then, exact training-time rendering is not reproducible from this package alone.", "Cross-model AUROC / R@FPR figures in the model card use the calibrated Severity-token score (the same score guardbench and reproduce_eval.py emit). AUROC is a reference separability indicator on this model, not the headline; F1 / Recall / FPR (read from the Severity line) are the usable operating-point metrics.", "Reported service-simulation over-refusal (0.5%) was measured on a checkpoint-selection set; on real held-out traffic the figure is materially higher. See docs/final_review_report.md." ] }