--- license: apache-2.0 base_model: - google/gemma-4-26B-A4B-it pipeline_tag: text-generation --- # CoPE-B-A4B: The COntent Policy Evaluator Model (Text-Only Variant) ## Model Overview CoPE-B-A4B is the 2nd-generation Content Policy Evaluator model from Zentropi, built on the Gemma-4-26B-A4B-it Mixture-of-Experts architecture. It performs accurate content classification based on developer-customizable policies — like its predecessor CoPE-A-9B, but with substantially improved policy steerability and a larger context window (now 256K tokens). **This is the text-only variant.** It cannot accept image inputs. For multimodal classification (including images and video), see [`zentropi-ai/cope-b-a4b-mm`](https://huggingface.co/zentropi-ai/cope-b-a4b-mm) — the multimodal companion model that shares CoPE-B's training methodology and adds native image understanding. Full methodology, training recipe, and evaluation details behind the CoPE model family are described in our paper: ["CoPE: A Small Language Model for Steerable and Scalable Content Labeling"](https://arxiv.org/abs/2512.18027) (arXiv:2512.18027). ### Key Features - Improved steerability and context length vs CoPE-A-9B - Policy-adaptive content classification (no fixed taxonomy) - High-accuracy, low latency binary labels - Mixture-of-Experts efficiency: 25.2B total / 3.8B active parameters - Frontier-level capability at consumer-GPU inference cost ### Getting Started You can use CoPE-B-A4B in three ways: - **[Zentropi API](https://zentropi.ai/api)** — fastest path, with a generous free tier (no infra required) - **Self-hosted vLLM** — for production-scale serving on your own infrastructure - **Direct inference in Python** — load via Transformers; see this [Colab notebook](https://colab.research.google.com/drive/1JD8OIa3yZYfVbeY81ao03lrvg0aS-6SQ) for a working example See the [Running the Model](#running-the-model) section below for details on each. ## Technical Specifications ### Model Architecture CoPE-B-A4B is built on top of Gemma-4-26B-A4B-it: - **25.2 billion total parameters** across 128 experts per layer - **3.8 billion active parameters** per forward pass (top-k=8 of 128 experts) - **256K-token** context window CoPE-B-A4B was fine-tuned with LoRA then merged into the base so it can be run directly without adapters. For efficiency, this text-only model physically cannot process image inputs. ### Input Format The model accepts input in a structured format: ``` Examine the given POLICY and determine if the given CONTENT meets the criteria for ANY of the LABELS. Answer "1" if yes, and "0" if no. POLICY ====== [policy text] CONTENT ======= [content text] ``` This prompt should be passed as the user-turn content and tokenized via the Gemma-4 chat template: ```python messages = [{"role": "user", "content": cope_prompt}] prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) ``` Important: Creating high-quality labeling criteria is the key to unlocking superior performance, so we've created the [Zentropi](https://zentropi.ai) system to enable rapid generation, testing, and tuning of policies that are optimized for CoPE interpretability. It is free for anyone to get started. ### Output Format CoPE-B-A4B provides binary classification outputs as a single token: - `0`: None of the policy labels apply - `1`: One or more policy labels apply ### System Requirements - Deployable on a single 80GB GPU (A100, H100, or comparable). bf16 weights ~52 GB. - Inference latency comparable to a 4B-parameter dense model at batch=1, due to MoE's sparse activation - Compatible with vLLM ≥ 0.20.2 for production serving ## Training Details For the full training recipe (hyperparameters, contradictory-policy dataset construction, ablation studies), see our paper: ["CoPE: A Small Language Model for Steerable and Scalable Content Labeling"](https://arxiv.org/abs/2512.18027). A condensed methodology overview is also available in our [research talk](https://www.youtube.com/live/JMq49FZ5qmY?si=Q6qpHNeTo-Bc6t9a&t=1). ### Training Methodology CoPE-B-A4B inherits and refines the policy-interpretation training methodology pioneered with CoPE-A-9B: - **Contradictory example training**: identical content samples with systematically contradictory labels across policy variants, forcing the model to learn policy interpretation rather than pattern memorization - **Policy-shape diversity**: training corpus spans permissive, moderate, and stringent policy variants per topical area ### Training Data - Policy texts authored by the CoPE team across multiple topic areas - Content data sourced from publicly-accessible internet forums - Labels produced via a 4-pass LLM-assisted relabeling pipeline ### Data Integrity The training corpus and the evaluation test sets are disjoint splits of Zentropi's internal dataset. The held-out test split shares zero `content_text` or `policy_text` samples with the training split. Test policies are *novel policies* so the evaluation measures policy-text generalization, not policy memorization. ## Performance Evaluation ### Methodology CoPE-B-A4B was evaluated on a held-out test set of `(content, policy)` pairs with relabeled ground-truth labels, against a broad slate of frontier proprietary models, open-weight reasoning models, and fixed-taxonomy safety classifiers. All numbers below are on the relabeled test set. Tables are sorted by F1 descending; CoPE models are in bold. ### Benchmark Results #### Overview: Average Across Topics Unweighted mean of the per-category Precision / Recall / F1 below. Every category area carries equal weight. Detailed performance per category follows afterwards. | Model | Precision | Recall | F1 Score | Self-hostable | Single-pass* | Multimodal | |-------|-----------|---------|----------|:-:|:-:|:-:| | **CoPE-B-A4B-MM** | 0.83 | 0.84 | **0.82** | ✓ | ✓ | ✓ | | **CoPE-B-A4B** | 0.74 | 0.90 | **0.81** | ✓ | ✓ | | | CoPE-A-9B | 0.74 | 0.88 | 0.80 | ✓ | ✓ | | | GPT-5.4 (default reasoning) | 0.68 | 0.95 | 0.78 | | | ✓ | | Gemini-3.5-Flash | 0.69 | 0.91 | 0.78 | | ✓ | ✓ | | Gemma-4-26B-A4B-it | 0.67 | 0.90 | 0.76 | ✓ | ✓ | ✓ | | Claude-Opus-4.6 | 0.65 | 0.95 | 0.75 | | ✓ | ✓ | | Gemini-3.1-Flash-Lite | 0.69 | 0.86 | 0.75 | | ✓ | ✓ | | gpt-oss-120b (default reasoning) | 0.68 | 0.88 | 0.75 | ✓ | | | | gpt-oss-safeguard-20b (default reasoning) | 0.70 | 0.82 | 0.75 | ✓ | | | | gpt-oss-120b (low reasoning) | 0.66 | 0.86 | 0.73 | ✓ | | | | gpt-oss-20b (default reasoning) | 0.65 | 0.88 | 0.72 | ✓ | | | | gpt-oss-20b (low reasoning) | 0.63 | 0.89 | 0.72 | ✓ | | | | Claude-Sonnet-4.6 | 0.61 | 0.89 | 0.71 | | ✓ | ✓ | | GPT-5-mini (default reasoning) | 0.56 | 0.97 | 0.69 | | | ✓ | | Claude-Haiku-4.5 | 0.56 | 0.68 | 0.60 | | ✓ | ✓ | | ShieldGemma-9B | 0.54 | 0.75 | 0.58 | ✓ | ✓ | | | LlamaGuard4-12B | 0.50 | 0.66 | 0.52 | ✓ | ✓ | ✓ | \* Single-pass means the model produces its classification in one forward pass, with no internal reasoning chain — enabling lower latency and cost than reasoning-based models that may emit thousands of intermediate tokens per decision. #### Drugs Classification | Model | Precision | Recall | F1 Score | |-------|-----------|---------|----------| | Claude-Opus-4.6 | 0.78 | 0.97 | 0.87 | | **CoPE-B-A4B-MM** | 0.75 | 0.90 | 0.82 | | Gemini-3.5-Flash | 0.70 | 1.0 | 0.82 | | Gemma-4-26B-A4B-it | 0.69 | 0.97 | 0.81 | | Claude-Sonnet-4.6 | 0.65 | 0.93 | 0.77 | | **CoPE-B-A4B** | 0.66 | 0.90 | 0.76 | | GPT-5.4 (default reasoning) | 0.61 | 1.0 | 0.76 | | gpt-oss-safeguard-20b (default reasoning) | 0.68 | 0.83 | 0.75 | | gpt-oss-120b (default reasoning) | 0.59 | 1.0 | 0.74 | | Gemini-3.1-Flash-Lite | 0.57 | 1.0 | 0.72 | | gpt-oss-20b (default reasoning) | 0.56 | 0.97 | 0.71 | | gpt-oss-120b (low reasoning) | 0.53 | 1.0 | 0.69 | | CoPE-A-9B | 0.57 | 0.83 | 0.68 | | GPT-5-mini (default reasoning) | 0.49 | 1.0 | 0.66 | | gpt-oss-20b (low reasoning) | 0.50 | 0.97 | 0.66 | | ShieldGemma-9B | 0.42 | 1.0 | 0.59 | | LlamaGuard4-12B | 0.39 | 0.90 | 0.55 | | Claude-Haiku-4.5 | 0.68 | 0.43 | 0.53 | #### Harassment Classification | Model | Precision | Recall | F1 Score | |-------|-----------|---------|----------| | Gemini-3.5-Flash | 0.63 | 0.91 | 0.75 | | GPT-5.4 (default reasoning) | 0.60 | 0.95 | 0.74 | | gpt-oss-120b (low reasoning) | 0.63 | 0.87 | 0.73 | | **CoPE-B-A4B** | 0.57 | 0.96 | 0.72 | | **CoPE-B-A4B-MM** | 0.58 | 0.93 | 0.72 | | CoPE-A-9B | 0.60 | 0.88 | 0.71 | | Gemini-3.1-Flash-Lite | 0.58 | 0.91 | 0.71 | | gpt-oss-120b (default reasoning) | 0.58 | 0.85 | 0.69 | | gpt-oss-20b (default reasoning) | 0.56 | 0.90 | 0.69 | | gpt-oss-20b (low reasoning) | 0.56 | 0.89 | 0.69 | | gpt-oss-safeguard-20b (default reasoning) | 0.59 | 0.79 | 0.68 | | Gemma-4-26B-A4B-it | 0.49 | 0.93 | 0.65 | | Claude-Opus-4.6 | 0.44 | 0.98 | 0.61 | | GPT-5-mini (default reasoning) | 0.45 | 0.95 | 0.61 | | Claude-Sonnet-4.6 | 0.39 | 0.94 | 0.56 | | Claude-Haiku-4.5 | 0.44 | 0.60 | 0.51 | | ShieldGemma-9B | 0.32 | 0.60 | 0.42 | | LlamaGuard4-12B | 0.25 | 0.44 | 0.32 | #### Hate Speech Classification | Model | Precision | Recall | F1 Score | |-------|-----------|---------|----------| | GPT-5.4 (default reasoning) | 0.88 | 0.93 | 0.91 | | Gemini-3.1-Flash-Lite | 0.92 | 0.84 | 0.88 | | Claude-Opus-4.6 | 0.78 | 0.98 | 0.87 | | **CoPE-B-A4B** | 0.86 | 0.88 | 0.87 | | **CoPE-B-A4B-MM** | 0.93 | 0.82 | 0.87 | | Gemma-4-26B-A4B-it | 0.89 | 0.84 | 0.86 | | gpt-oss-120b (default reasoning) | 0.80 | 0.94 | 0.86 | | gpt-oss-safeguard-20b (default reasoning) | 0.81 | 0.87 | 0.84 | | Gemini-3.5-Flash | 0.77 | 0.90 | 0.83 | | gpt-oss-120b (low reasoning) | 0.74 | 0.94 | 0.83 | | gpt-oss-20b (default reasoning) | 0.74 | 0.91 | 0.82 | | CoPE-A-9B | 0.71 | 0.94 | 0.81 | | GPT-5-mini (default reasoning) | 0.68 | 0.99 | 0.80 | | gpt-oss-20b (low reasoning) | 0.67 | 0.93 | 0.78 | | Claude-Sonnet-4.6 | 0.66 | 0.92 | 0.77 | | ShieldGemma-9B | 0.56 | 0.98 | 0.71 | | LlamaGuard4-12B | 0.56 | 0.87 | 0.68 | | Claude-Haiku-4.5 | 0.54 | 0.73 | 0.62 | #### Self-Harm Content Classification | Model | Precision | Recall | F1 Score | |-------|-----------|---------|----------| | **CoPE-B-A4B-MM** | 0.95 | 0.92 | 0.94 | | GPT-5-mini (default reasoning) | 0.91 | 0.98 | 0.94 | | **CoPE-B-A4B** | 0.91 | 0.94 | 0.93 | | GPT-5.4 (default reasoning) | 0.95 | 0.90 | 0.93 | | Claude-Sonnet-4.6 | 0.88 | 0.97 | 0.92 | | Gemini-3.5-Flash | 0.86 | 0.98 | 0.92 | | Claude-Opus-4.6 | 0.85 | 0.98 | 0.91 | | CoPE-A-9B | 0.93 | 0.89 | 0.91 | | gpt-oss-120b (default reasoning) | 0.95 | 0.87 | 0.91 | | gpt-oss-20b (default reasoning) | 0.94 | 0.88 | 0.91 | | Claude-Haiku-4.5 | 0.88 | 0.90 | 0.89 | | Gemini-3.1-Flash-Lite | 0.83 | 0.96 | 0.89 | | gpt-oss-safeguard-20b (default reasoning) | 0.93 | 0.86 | 0.89 | | gpt-oss-120b (low reasoning) | 0.96 | 0.79 | 0.87 | | gpt-oss-20b (low reasoning) | 0.95 | 0.80 | 0.87 | | Gemma-4-26B-A4B-it | 0.73 | 0.97 | 0.84 | | ShieldGemma-9B | 0.72 | 0.89 | 0.80 | | LlamaGuard4-12B | 0.80 | 0.71 | 0.75 | #### Sexual Content Classification | Model | Precision | Recall | F1 Score | |-------|-----------|---------|----------| | CoPE-A-9B | 0.98 | 0.93 | 0.95 | | **CoPE-B-A4B-MM** | 0.86 | 0.98 | 0.92 | | gpt-oss-120b (default reasoning) | 0.94 | 0.89 | 0.92 | | Gemini-3.5-Flash | 0.88 | 0.93 | 0.90 | | gpt-oss-safeguard-20b (default reasoning) | 0.91 | 0.89 | 0.90 | | Claude-Opus-4.6 | 0.88 | 0.89 | 0.89 | | gpt-oss-120b (low reasoning) | 0.88 | 0.91 | 0.89 | | gpt-oss-20b (low reasoning) | 0.94 | 0.84 | 0.89 | | GPT-5.4 (default reasoning) | 0.82 | 0.95 | 0.88 | | gpt-oss-20b (default reasoning) | 0.94 | 0.82 | 0.88 | | Gemma-4-26B-A4B-it | 0.81 | 0.93 | 0.87 | | Gemini-3.1-Flash-Lite | 0.80 | 0.93 | 0.86 | | Claude-Sonnet-4.6 | 0.90 | 0.79 | 0.84 | | ShieldGemma-9B | 0.91 | 0.77 | 0.83 | | Claude-Haiku-4.5 | 0.74 | 0.91 | 0.82 | | GPT-5-mini (default reasoning) | 0.72 | 0.95 | 0.82 | | **CoPE-B-A4B** | 0.69 | 0.98 | 0.81 | | LlamaGuard4-12B | 0.83 | 0.36 | 0.50...