Text Classification
Transformers
Safetensors
English
modernbert
feature-extraction
decision-model
decision-transformer
ettin
cross-encoder
zero-shot-classification
classification
calibrated-probabilities
routing
multiple-choice
tool-calling
agent-decision
text-embeddings-inference
Instructions to use lCREEl/pick-150m with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use lCREEl/pick-150m with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="lCREEl/pick-150m")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModel tokenizer = AutoTokenizer.from_pretrained("lCREEl/pick-150m") model = AutoModel.from_pretrained("lCREEl/pick-150m", device_map="auto") - Notebooks
- Google Colab
- Kaggle
|
Download README.md from lCREEl/pick-150m: direct link, hf CLI and curl.
- Browser
- Download file 15.3 kB
-
https://huggingface.co/lCREEl/pick-150m/resolve/main/README.md
- Command line
-
hf download hf://lCREEl/pick-150m/README.md
-
curl -L -o README.md https://huggingface.co/lCREEl/pick-150m/resolve/main/README.md
15.3 kB
| license: cc-by-nc-4.0 | |
| language: | |
| - en | |
| base_model: cross-encoder/ettin-reranker-150m-v1 | |
| pipeline_tag: text-classification | |
| library_name: transformers | |
| tags: | |
| - decision-model | |
| - decision-transformer | |
| - modernbert | |
| - ettin | |
| - cross-encoder | |
| - zero-shot-classification | |
| - classification | |
| - calibrated-probabilities | |
| - routing | |
| - multiple-choice | |
| - tool-calling | |
| - agent-decision | |
| datasets: | |
| - hotchpotch/bekko-system-one-dataset-v0 | |
| - tasksource/procedural-typed-decisions | |
| - Team-ACE/ToolACE | |
| - glaiveai/glaive-function-calling-v2 | |
| # PICK-150M: Unified Geometric Decision Transformer | |
| **PICK-150M** is a 149M-parameter encoder decision model built upon ModernBERT (`cross-encoder/ettin-reranker-150m-v1`). Designed for one-pass probabilistic decision-making, agent state guardrails, API routing, and multi-question document verification, PICK produces calibrated decision probabilities across arbitrary option sets (`K`) and multiple questions (`Q`) in a **single forward pass (`O(1)`)** via **Shared-State Packing**—eliminating the `O(K × L²)` encoding cost of traditional cross-encoders and the token sampling variance of autoregressive LLMs. | |
| - **Developer**: [lCREEl](https://huggingface.co/lCREEl) | |
| - **Base Encoder**: [`cross-encoder/ettin-reranker-150m-v1`](https://huggingface.co/cross-encoder/ettin-reranker-150m-v1) (ModernBERT-base, 22 layers, 768 hidden dimension, 12 attention heads) | |
| - **Readout Geometry**: Uncentered Affine Simplex Projection (`uncentered` head, shared readout axis `v₀ ∈ ℝ⁷⁶⁸`) with RMSNorm Normalization (`normalized` score scaling) | |
| - **Context Capacity**: 7,999 packed tokens in the final checkpoint, native RoPE (`θ = 160,000`) and Shared-State Block-Causal Attention | |
| --- | |
| ## Complete Decision Index 0.3 public evaluation — 2026-10-19 | |
| **Public index: 32.09 / 100**, from the complete **140,178-request** public suite. | |
| `scores.json` reports `complete: true`: **140,166 successful, 12 unsupported, | |
| 0 runtime errors, 0 pending scoreable requests**. The uncorrected aggregate | |
| `raw_index` is **49.89**; neither aggregate is a simple average accuracy. | |
| **This is the public component. The leaderboard Full score, private evaluations, | |
| and the official RTX PRO 6000 latency check are pending maintainer review.** | |
| - [Registration PR #233](https://github.com/apolinario/decision-index/pull/233) — submitted; awaiting maintainer review/private evaluation. | |
| - [Complete results and reproduction instructions](https://huggingface.co/datasets/lCREEl/pick-v5-decision-index-submission) | |
| - [Machine-readable final scores](https://huggingface.co/datasets/lCREEl/pick-v5-decision-index-submission/blob/main/runs/pick-150m-v5/scores.json) | |
| - [Independent audit and file hashes](https://huggingface.co/datasets/lCREEl/pick-v5-decision-index-submission/blob/main/final-run-audit.json) | |
| - [Frozen inference implementation](https://huggingface.co/lCREEl/pick-150m/tree/f1635cf8868b3359c0ea78cd7d0110e7bbe6b555/decision-index) | |
| The final V5 stage-2-best weights and architecture are unchanged. This run uses | |
| native probabilities with no benchmark-specific calibration or result rewriting, | |
| fp32, compilation disabled, a 7,999-token packed capacity and forward batching | |
| budget. Every option is retained; oversized branches reject the request without | |
| truncation. Prior development used related public task families and sampled | |
| benchmark feedback; no blanket unseen-data claim is made. | |
| The user ran the evaluation on a free Colab Tesla T4, resumed across three | |
| sessions with the same inference fingerprint. Submitted-run latency: median | |
| **35.5 ms**, mean **160.9 ms**, p95 **465.3 ms**. These are T4 timings, not the | |
| maintainers' official hardware measurement. | |
| ### Full-run benchmark results | |
| The following are native benchmark metrics on answered cases, before index | |
| coverage/chance adjustment. All scoreable requests have a recorded outcome. | |
| Six additional benchmarks are reported but do not contribute to the index. | |
| | Benchmark | Metric | Native score | Scoreable requests | Unsupported | In index | | |
| | :--- | :--- | ---: | ---: | ---: | :---: | | |
| | BFCL | case exact accuracy | 73.67% | 1,694 | 0 | Yes | | |
| | ToolRet | nDCG@10 | 54.62% | 685 | 5 | Yes | | |
| | API-Bank | accuracy | 41.34% | 508 | 0 | Yes | | |
| | BANKING77 | macro-F1 | 91.72% | 3,080 | 0 | Yes | | |
| | CLINC150+OOS | macro-F1 | 91.09% | 5,500 | 0 | Yes | | |
| | RouterBench | selected quality (quality objective) | 52.03% | 10,000 | 0 | No | | |
| | Home appliance simulator | case exact accuracy | 94.32% | 88 | 0 | Yes | | |
| | SGD/SGD-X | macro-F1 | 52.86% | 2,500 | 0 | No | | |
| | ContractNLI | macro-F1 | 77.85% | 123 | 2 | Yes | | |
| | ANLI | macro-F1 | 45.69% | 3,200 | 0 | Yes | | |
| | BPoMP | accuracy | 53.52% | 5,000 | 0 | Yes | | |
| | Humicroedit | accuracy | 52.13% | 2,628 | 0 | Yes | | |
| | POP909-CL | accuracy | 1.40% | 2,000 | 4 | Yes | | |
| | cfcolor | accuracy | 45.62% | 5,000 | 0 | Yes | | |
| | MMLU | accuracy | 34.11% | 14,033 | 0 | No | | |
| | GPQA Diamond | accuracy | 23.98% | 196 | 0 | Yes | | |
| | ARC-Easy | accuracy | 64.18% | 2,376 | 0 | No | | |
| | ARC-Challenge | accuracy | 44.20% | 1,172 | 0 | No | | |
| | WinoGrande | accuracy | 56.27% | 1,267 | 0 | Yes | | |
| | HellaSwag | accuracy | 44.53% | 10,042 | 0 | Yes | | |
| | ChessBench | accuracy | 7.62% | 5,000 | 0 | Yes | | |
| | MuSR | accuracy | 55.05% | 752 | 0 | Yes | | |
| | SATA-Bench | case exact accuracy | 0.18% | 1,650 | 0 | Yes | | |
| | SimpleBench | accuracy | 30.00% | 10 | 0 | No | | |
| | BRIGHT | nDCG@10 | 27.19% | 220 | 0 | Yes | | |
| | Amazon ESCI | macro-F1 | 32.57% | 5,000 | 0 | Yes | | |
| | ACOS | per-review F1 | 22.66% | 1,565 | 0 | Yes | | |
| | FinEntity | macro-F1 | 89.92% | 979 | 0 | Yes | | |
| | iSarcasmEval | Sarcasm F1 · track A, English | 14.08% | 4,600 | 0 | Yes | | |
| | VAST | macro-F1 | 74.02% | 3,006 | 0 | Yes | | |
| | NLI4CT | macro-F1 | 58.95% | 5,500 | 0 | Yes | | |
| | CRUXEval | accuracy | 41.40% | 570 | 0 | Yes | | |
| | CLadder | accuracy | 67.50% | 5,000 | 0 | Yes | | |
| | HLE | accuracy | 13.00% | 501 | 1 | Yes | | |
| | Habermas Machine | accuracy | 49.40% | 1,676 | 0 | Yes | | |
| | GSM8K | accuracy | 17.89% | 2,638 | 0 | Yes | | |
| | PhishNChips phishing decisions | accuracy | 49.10% | 2,000 | 0 | Yes | | |
| | MMLU-Pro | accuracy | 13.67% | 12,032 | 0 | Yes | | |
| | BBH fixed-option tasks | accuracy | 34.92% | 5,507 | 0 | Yes | | |
| | RAGTruth response-level hallucination | F1 on hallucinated class | 65.69% | 2,700 | 0 | Yes | | |
| | HoVer claim verification | accuracy | 71.30% | 4,000 | 0 | Yes | | |
| | When2Call MCQ | accuracy | 67.25% | 3,652 | 0 | Yes | | |
| | New Yorker caption matching | accuracy | 29.73% | 528 | 0 | Yes | | |
| The historical development samples below use fewer cases and optional postprocessing; their 68.84% mean is a different statistic from the full public index above. | |
| --- | |
| ## Historical Development Evaluation (1,873 Requests) | |
| PICK-150M was evaluated across 16 standardized decision benchmarks spanning agent tool calling, intent routing, clinical/legal document verification, and causal reasoning (`sample=100` per benchmark, `seed=42`, `max_length=7999`), alongside unseen held-out generalization suites: | |
| ### 🛠️ Agent Execution, State Control & Tool Selection | |
| | Benchmark Task | Domain / Task Type | Metric | Score (Raw) | Score (Calibrated) | Context Support | | |
| | :--- | :--- | :---: | :---: | :---: | :---: | | |
| | **Home Appliance Simulator** | Interactive Device & Policy State Control | Exact Match | **94.3%** | **94.3%** | Full 8K | | |
| | **BFCL (Berkeley Function Calling)** | Complex Tool Schema & Function Call Selection | Exact Match | **81.0%** | **81.0%** | Full 8K | | |
| | **When2Call MCQ** | Tool Invocation Timing vs. Clarification Need | Accuracy | **68.0%** | **74.0%** | Full 8K | | |
| | **ToolRet** | Multi-Candidate Tool Retrieval | nDCG@10 | **52.8%** | **52.8%** | Full 8K | | |
| | **API-Bank** | Live Tool & Multi-Step API Invocation | Accuracy | **36.0%** | **36.0%** | Full 8K | | |
| ### 🧭 Domain Intent & Entity Routing | |
| | Benchmark Task | Domain / Task Type | Metric | Score (Raw) | Score (Calibrated) | Context Support | | |
| | :--- | :--- | :---: | :---: | :---: | :---: | | |
| | **FinEntity** | Financial Entity Sentiment & Stance Decision | Macro-F1 | **93.4%** | **94.7%** | Full 8K | | |
| | **CLINC150+OOS** | Multi-Domain Routing (150 classes + Out-Of-Scope) | Macro-F1 | **90.8%** | **90.8%** | Full 8K | | |
| | **BANKING77** | Fine-Grained Banking Intent (77 classes) | Macro-F1 | **89.0%** | **89.0%** | Full 8K | | |
| | **VAST** | Contextual Stance & Topic Evaluation | Macro-F1 | **81.0%** | **81.0%** | Full 8K | | |
| ### 🧠 Document Verification, NLI & Causal Reasoning | |
| | Benchmark Task | Domain / Task Type | Metric | Score (Raw) | Score (Calibrated) | Notes | | |
| | :--- | :--- | :---: | :---: | :---: | :--- | | |
| | **ContractNLI** | Legal Contract Clause Verification | Macro-F1 | **77.81%** | **77.31%** | Full-contract + clause reasoning | | |
| | **RAGTruth** | LLM Output Hallucination Detection | Class-F1 | **72.00%** | **70.27%** | Response-level grounding check | | |
| | **HoVer** | Multi-Hop Evidence Claim Verification | Accuracy | **71.00%** | **71.00%** | Cross-document fact verification | | |
| | **NLI4CT** | Clinical Trial Protocol Inference | Macro-F1 | **69.85%** | **67.91%** | Medical protocol reasoning | | |
| | **CLadder** | Formal Causal Graph & Rung 2/3 Reasoning | Accuracy | **61.00%** | **62.00%** | Interventional & counterfactual | | |
| | **HellaSwag** | Commonsense Situation Completion | Accuracy | **44.00%** | **44.00%** | 4-choice situational completion | | |
| | **ACOS** | Quadruple Aspect-Category Sentiment | Per-Review F1 | **19.56%** | **33.20%** | Multi-quad aspect extraction | | |
| | **Overall Suite Mean** | **16-Benchmark Standardized Mean** | **Mean** | **68.84%** | **69.83%** | **1,873 total requests (Cal. Peak: 70.09%)** | | |
| ### 🎯 Held-Out Zero-Shot Generalization (Unseen Datasets) | |
| *Note: In Decision Index, accuracy and Brier score are computed at the **question level** (`Answered Questions`), as each request state contains multiple packed questions.* | |
| | Evaluation Suite | Completed Requests | Evaluated Questions | Accuracy (Hits / N) | Brier Score | | |
| | :--- | :---: | :---: | :---: | :---: | | |
| | **All Heldout** | 200 / 200 | **440** | **72.05%** (317 / 440) | **0.3892** | | |
| | **JevAlt-en (General Decisions)** | 145 / 145 | **290** | **82.07%** (238 / 290) | **0.2541** | | |
| | **Fast-Decisions (Domain Routing)** | 55 / 55 | **150** | **52.67%** (79 / 150) | **0.6502** | | |
| --- | |
| ## 🔬 Architecture: Shared-State Packing & Uncentered Simplex Head | |
| Traditional cross-encoders encode each `(context, question, option_k)` tuple independently (`O(K × L²)` complexity), while centered readout heads suffer from gradient saturation when candidate set sizes (`K ∈ [2, 151]`) or prior distributions vary across tasks. | |
| PICK-150M combines **Shared-State Block-Causal Packing** with an **Uncentered Affine Simplex Geometry**: | |
| 1. **Shared-State Multi-Question Packing**: A single document or environment state `S` is encoded once; multiple questions `Q₁, ..., Q_M` and their respective option spans `C_m` attend to `S` within a single packed sequence using structured block-causal masks, while preventing cross-contamination between distinct options. | |
| 2. **Universal Readout Axis (`v₀`)**: Candidate representations are RMSNorm-normalized (`õ_k = RMSNorm(o_k)`) and projected onto a single shared readout direction `v₀ ∈ ℝ⁷⁶⁸` with learnable temperature scaling (`log_scale`), preserving permutation equivariance across arbitrary `K`. | |
| 3. **Calibrated `ce-brier` Objective**: Jointly optimizing Cross-Entropy and Brier Score (`L_CE + 0.5 · L_Brier`) encourages well-calibrated decision probabilities rather than overconfident logit margins. | |
| --- | |
| ## 🧭 Multi-Stage Training Curriculum | |
| Because all tasks share a single readout vector `v₀`, naive fine-tuning on narrow domains rotates the readout axis and degrades broad zero-shot routing. PICK-150M is trained through a disciplined multi-stage curriculum: | |
| ### Phase I: Foundation Representation & Context Extension | |
| | Stage | Name | Data / Tasks | Steps | Max Length | Objective | | |
| | :---: | :--- | :--- | :---: | :---: | :--- | | |
| | **Stage 0** | **AutoNCE Pretraining** | 287,965 multi-domain text episodes (1 pass) | 8,999 | 1,024 | Self-supervised continuation selection to align the shared readout axis `v₀` | | |
| | **Stage 1** | **Curated Short SFT** | 1,180,488 curated multi-task decisions | 12,000 | 2,048 | Multi-task supervised calibration across 45 decision archetypes | | |
| | **Stage 2** | **Full-Domain SFT** | Balanced multi-domain mix (Intent, Reasoning, Multi-lingual) | 12,000 | 2,048 | Hard negative training with class-balanced cross-entropy | | |
| | **Stage 3** | **Long-Context Extension** | Multi-hop contracts, clinical trials, full docs | 3,000 | 8,192 | Context extension to 8,192 tokens with RoPE frequency interpolation | | |
| ### Phase II: Auto-Calibrated Refinement & Generalization Polish | |
| | Stage | Name | Data / Tasks | Steps | Max Length | Objective | | |
| | :---: | :--- | :--- | :---: | :---: | :--- | | |
| | **Stage 4** | **Prior Refinement (V3)** | 9 surgical buckets + 25% anchor replay | 400 | 2,560 | Targeted prior balancing on hard benchmarks | | |
| | **Stage 5** | **Document Polisher (V4)** | Long-context legal clauses, tool routing, full documents | 200 | 6,144 | Resolves 8K document grounding & boundary consistency | | |
| | **Stage 6** | **Generalization Polish (V5)** | JSON email schemas, agent traces, MASSIVE hierarchy, Fast routing | 350 | 2,560 | Structural format alignment & negative constraint reasoning | | |
| | **Stage 7** | **6K Polisher (V5)** | Full multi-question long context + anchor replay | 150 | 6,144 | Final long-context robustness & decision calibration | | |
| --- | |
| ## 💻 Quickstart Inference | |
| The final V5 is a custom decision model. Use the frozen inference wrapper below; | |
| the repository does not provide a Transformers AutoModel remote-code mapping. | |
| ```sh | |
| pip install https://huggingface.co/lCREEl/pick-150m/resolve/main/decision-index/pick_v5_decision_index-0.1.0-py3-none-any.whl | |
| ``` | |
| ```python | |
| from pick_v5.engine import PickV5Engine | |
| engine = PickV5Engine(device="cuda") # or cpu / mps | |
| response, _ = engine("The color is red.", { | |
| "color": {"type": "choice", "instructions": "Which color is named?", | |
| "criteria": {"red": "red", "blue": "blue"}} | |
| }) | |
| print(response) | |
| ``` | |
| The wrapper pins original model revision `9980b9adcc14331a9b9d44bb936aca0f7deb221d` | |
| and verifies every model/config/tokenizer hash. Its saved capacity is **7,999 packed | |
| tokens**. No weights, architecture, training, or benchmark-specific calibration | |
| are changed. See [evaluation wrapper documentation](decision-index/README.md) | |
| and [source archive](decision-index/pick-v5-inference-source.tar.gz). | |
| The benchmark tables above are historical development samples, including optional | |
| postprocessing, and are not a full Decision Index submission or leaderboard rank. | |
| The registration wrapper uses untouched native probabilities. | |
| For free Colab execution, download and run `decision-index/run_colab.sh`. | |
| See the [Colab shell guide](decision-index/COLAB_실행방법.md) for authentication, | |
| automatic HF backups, and continuation after a runtime disconnect. | |
| --- | |
| ## 📜 Citation | |
| ```bibtex | |
| @software{pick150m2026, | |
| author = {lCREEl}, | |
| title = {PICK-150M: Unified Geometric Decision Transformer with Shared-State Block-Causal Packing}, | |
| year = {2026}, | |
| url = {https://huggingface.co/lCREEl/pick-150m} | |
| } | |
| ``` | |