Views
No views yet
NPC Fin 32B).HuggingFaceTB/SmolLM2-1.7B-Instruct by
Bottensor (a Falcon Hash company).{"route": "self" | "npc_fin", "reason": "<short>"}self — it handles the task directly (lookup, format conversion, short code,
tool calls with obvious args, identity, translation, chit-chat)npc_fin — it forwards to a 32B finance-specialist model (deep multi-step
financial reasoning, valuation, derivatives math, long-document synthesis)| Benchmark | Metric | Result |
|---|---|---|
| BFCL (tool calling, n=20) | JSON / name / args accuracy | 100% / 100% / 100% |
| IFEval (n=200, 18 checkable) | instruction pass rate | 77.8% |
| Agentic tool selection (n=100) | JSON valid / tool accuracy | 100% / 57% |
| Router — in-distribution (n=200) | accuracy | 100% (see note) |
| Router — out-of-distribution (n=60) | accuracy | 98.3% |
| Router — OOD escalation recall / precision | recall / precision | 100% / 100% |
| Needle-in-Haystack @ 16K | pass (1 of 5 depths) | 20% |
| Needle-in-Haystack @ 32K+ | pass | 0% (see limitations) |
1from transformers import AutoTokenizer, AutoModelForCausalLM
2import torch
3
4model = AutoModelForCausalLM.from_pretrained(
5 "ramankrishna10/npc-fast-1.7b",
6 torch_dtype=torch.bfloat16,
7 device_map="auto",
8)
9tok = AutoTokenizer.from_pretrained("ramankrishna10/npc-fast-1.7b")
10
11SYSTEM = (
12 "You are NPC Fast, a capable 1.7B model. Handle most requests yourself. "
13 "Only forward to the larger NPC Fin 32B model when a task truly requires "
14 "deep multi-step financial analysis that you cannot do well alone.\n\n"
15 "Default: route=self.\n"
16 "Escalate to npc_fin ONLY if ALL of these are true:\n"
17 " - the task is about finance, markets, banking, derivatives, or valuation\n"
18 " - it requires multi-step quantitative reasoning or deep domain knowledge\n"
19 " - a short answer would be wrong or superficial\n\n"
20 "Output exactly one JSON object with fields route and reason."
21)
22
23messages = [
24 {"role": "system", "content": SYSTEM},
25 {"role": "user", "content": "Build a DCF for TSLA with 3 scenarios."},
26]
27enc = tok.apply_chat_template(messages, tokenize=True, return_tensors="pt",
28 add_generation_prompt=True).to(model.device)
29out = model.generate(enc, max_new_tokens=60, do_sample=False)
30print(tok.decode(out[0][enc.shape[-1]:], skip_special_tokens=True))
31# → {"route": "npc_fin", "reason": "multi-step finance model"}1from transformers import BitsAndBytesConfig
2bnb = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_quant_type="nf4",
3 bnb_4bit_compute_dtype=torch.bfloat16)
4model = AutoModelForCausalLM.from_pretrained(
5 "ramankrishna10/npc-fast-1.7b", quantization_config=bnb, device_map="auto",
6)ramankrishna10/npc-fast-1.7b-ggufHuggingFaceTB/SmolLM2-1.7B-InstructBachu, R. K. (2026). NPC Fast 1.7B: Building a Usable Small Model on a Single H100. Zenodo. https://doi.org/10.5281/zenodo.19771040
1@misc{bachu2026npcfast,
2 title = {NPC Fast 1.7B: Building a Usable Small Model on a Single H100},
3 author = {Bachu, Rama Krishna},
4 year = {2026},
5 publisher = {Zenodo},
6 doi = {10.5281/zenodo.19771040},
7 url = {https://doi.org/10.5281/zenodo.19771040},
8 note = {Preprint},
9}