Close Menu
NCIJ Network NCIJ Network
    What's Hot

    Trump administration profile: Todd Blanche • OpenSecrets

    August 14, 2026

    Weather forecasts once gave Britons something safe to chat about. Not any more | Andy Beckett

    August 14, 2026

    Prichard Colon dies from boxing injury that resulted in 221-day coma | Boxing News

    August 14, 2026
    Facebook X (Twitter) Instagram
    Trending
    • Trump administration profile: Todd Blanche • OpenSecrets
    • Weather forecasts once gave Britons something safe to chat about. Not any more | Andy Beckett
    • Prichard Colon dies from boxing injury that resulted in 221-day coma | Boxing News
    • ‘This is hell’: British widow ‘sick’ with worry over threat of being removed from Sweden | Sweden
    • Pura Promo Codes: $20 Off August 2026
    • Microsoft patches LegacyHive Windows zero-day vulnerability
    • Multicoin exits the $1.65 billion Solana treasury company it helped launch eight months ago
    • A mine polluted a Zambian river in 2025: Residents continue to live with the impacts
    • About
      • Our Team
      • Editorial Policy
      • Editorial Independence
      • International Support
    • Trust & Standards
      • AI Usage Policy
      • Conflict of Interest Policy
      • Corrections Policy
      • Ethics Policy
      • Fact-Checking Policy
      • Source Protection
    • Get Involved
      • Guide for Sources
      • Support Independent Journalism
    • Legal
      • Cookie Policy
      • Privacy Policy
      • Terms of Use
    Facebook X (Twitter) Instagram
    NCIJ Network NCIJ Network
    Friday, August 14
    • Home
    • World
    • Ai
    • Business
    • Politics
    • Health
    • Crypto
    • Science
    • Technology
    • Cybersecurity
    • Defense & Security
    • Economy
    • Energy
    • Europe
    • More
      • Fact Check
      • Investigations
      • Opinion & Analysis
      • Environment
    NCIJ Network NCIJ Network
    Home»Artificial Intelligence

    Meet Needle 2: An Open 45M-Parameter Tool-Calling Model That Ships as a 14MB Binary and Runs a Full Session in 28MB of RAM

    NCIJ NETWNCIJ NETWORKBy NCIJ NETWNCIJ NETWORKAugust 14, 2026 Artificial Intelligence No Comments5 Mins Read
    Share
    Facebook Twitter LinkedIn Pinterest Email

    Cactus Compute has released Needle 2, an open 45M-parameter model for tool calling, device use, and structured extraction. The entire model ships as a single 14MB binary that runs a full session in about 28MB of RAM. Weights are trained and deployed at CQ2-bit using Cactus Quants, and the model is sealed inside the company’s own C++ engine, so there is no runtime to install and no download at inference time. Reported decode throughput is 500 tokens/sec on a Raspberry Pi 5, 400–1,500 tokens/sec on Meta Quest 3S and Apple Vision Pro, and 300–700 tokens/sec on sub-$200 phones. The design premise is narrow and stated plainly by the team: mapping a messy sentence onto a typed function signature needs no world knowledge and no open-ended prose. That framing is why 45M parameters are enough here, and why the model targets hardware with no GPU and no NPU.

    Is it deployable?

    Yes, Needle 2 ships as prebuilt binaries and a static library for macOS, Linux (x86-64, ARM64, ARMv7, RISC-V, MIPS32el), Windows, Android, iOS/watchOS/tvOS, and WebAssembly. Cactus says Pebble already runs Needle locally in the Index 01 app for offline voice actions.

    • Which companies: Any team shipping firmware or apps on constrained hardware. Seed-stage wearable and IoT startups, mid-market consumer-electronics OEMs, robotics teams, and large device makers needing an offline fallback. Cloud-first SaaS teams gain less.
    • Industries: smart home, wearables, low-end mobile, automotive in-cabin control, service robotics, retail kiosks and POS, routers and IP cameras, and regulated settings where audio cannot leave the device.
    • Applications: voice-to-action on screenless devices, offline appliance control, receipt and invoice field extraction, enum tagging, and local routing that escalates to the cloud only on low confidence.

    Architecture: Simple Attention Network

    Needle 2 uses what Cactus team calls a Simple Attention Network. The recipe replaces the FFN with a Hadamard MLP, keeps GQA attention, adds engram key-value memory from hashed n-gram tables, and uses multi-lane hyper-connections. The network is 27 layers and 512 wide. The underlying study is on arXiv as A Controlled Study of Attention-Only Transformers.

    Pretraining used a proprietary 115B-token corpus, with 38B tokens of post-training. The research team notes LFM2.5-230M was pretrained on 19 trillion tokens.

    Needle 2 spends 70 MFLOPs per token, with 35M of 45M parameters matmul-active. LFM2.5 230M spends 460, FunctionGemma 270M spends 540, and Apple FM sits near 6,000.

    Engine, grammar, retrieval, and confidence

    Weights never decompress into RAM. The 2-bit codes expand inside vector registers and fuse into integer dot products, so the arithmetic path stays int8. One binary probes the CPU at startup and selects a kernel tier: SDOT, NEON, AVX2, RISC-V vectors, wasm SIMD, or scalar.

    A byte-level grammar compiled from your JSON schemas constrains every emitted token. Because the matcher knows which tokens are legal before logits exist, the engine skips up to 98% of the vocabulary projection on structural tokens.

    Attention uses a 256-token sliding window, and the system turn plus tool declarations are pinned as KV sinks. Memory stays near 28MB regardless of conversation length.

    Declare five or fewer tools and they render directly. Above five, a contrastive retrieval head embeds each schema once, scores the query per turn, and admits only the top five. Unselected tools are unreachable, not merely unlikely.

    Every response carries a confidence value, the minimum of a calibrated post-hoc head and the decoding probability of the call tokens. Off-topic requests return the empty call []. The contract is a threshold: act above it, re-ask or escalate below it.

    Evaluation

    Cactus team evaluates on five public function-calling benchmarks using ordered strict exact match, where names, call order, and every argument must match. Needle 2 runs end-to-end through the shipped engine at CQ2-bit with retrieval on; baselines run f16 under vLLM.

    Benchmark Needle 2 (CQ2) LFM2.5 230M FunctionGemma 270M Apple FM
    Mobile Actions (961) 63.7 69.1 64.0 57.6
    DroidCall (200) 17.0 11.0 17.5 —
    Seal-Tools in-domain (700) 32.6 26.9 16.3 —
    Seal-Tools OOD (654) 28.7 17.0 15.6 —
    BFCL v4 single-turn (3,641), overall 42.6 60.8 46.1 61.7

    Needle 2 leads both Seal-Tools splits and posts 98.3 function-name accuracy on Mobile Actions. It trails on BFCL v4, which Cactus attributes to distribution: its corpus is consumer device actions, not general or enterprise APIs. Well-formed output rate across the 3,641 BFCL rows is 93.4. The team states two asymmetries upfront: f16 baselines favor them, and task specialization favors Needle.

    ‘;
    }).join(”);
    noteEl.textContent=d.note;
    var fills=barsEl.querySelectorAll(‘.n2-bar-f’);
    d.rows.forEach(function(r,i){
    var w=Math.max(2,(r[1]/max)*100);
    if(reduce){fills[i].style.width=w+’%’;}
    else setTimeout(function(){fills[i].style.width=w+’%’;},60*i+40);
    });
    post();
    }
    root.querySelectorAll(‘[data-m]’).forEach(function(b){
    b.addEventListener(‘click’,function(){
    root.querySelectorAll(‘[data-m]’).forEach(function(x){x.classList.remove(‘is-on’)});
    b.classList.add(‘is-on’); metric=b.dataset.m; drawBars(metric);
    });
    });
    drawBars(‘params’);

    /* ———- 02 grammar ———- */
    var CALL=[
    [‘{“name”:”‘,1],[‘set_lights’,0],[‘”,”arguments”:{“room”:”‘,1],[‘living room’,0],
    [‘”,”on”:’,1],[‘true’,0],[‘,”brightness”:’,1],[’30’,0],[‘}}’,1]
    ];
    var term=document.getElementById(‘n2-term’), m1=document.getElementById(‘n2-m1’), m2=document.getElementById(‘n2-m2′);
    var timer=null;
    function resetG(){
    if(timer){clearInterval(timer);timer=null;}
    term.innerHTML=’> dim the living room to 30‘;
    m1.textContent=”0%”; m2.textContent=”0″; post();
    }
    document.getElementById(‘n2-reset-g’).addEventListener(‘click’,resetG);
    document.getElementById(‘n2-decode’).addEventListener(‘click’,function(){
    if(timer){clearInterval(timer);timer=null;}
    var flat=[]; CALL.forEach(function(seg){
    for(var i=0;i=flat.length){ if(timer){clearInterval(timer);timer=null;} caret.remove();
    m1.textContent=”2%”; m2.textContent=forced; post(); return; }
    var ch=flat[i][0], isF=flat[i][1];
    var s=document.createElement(‘span’); s.className=isF?’n2-forced’:’n2-free’;
    s.textContent=ch; out.appendChild(s);
    if(isF) forced++;
    var pct=Math.round(100-(forced/(i+1))*98);
    m1.textContent=pct+’%’; m2.textContent=forced;
    i++;
    }
    if(reduce){ while(i‘+t+”}).join(”);
    function retrieve(qi){
    var sel=PICKS[qi];
    [].slice.call(chipsEl.children).forEach(function(c,i){
    c.classList.remove(‘is-sel’,’is-out’);
    var d=sel.indexOf(i)>-1?0:180;
    setTimeout(function(){ c.classList.add(sel.indexOf(i)>-1?’is-sel’:’is-out’); }, reduce?0:d);
    });
    }
    root.querySelectorAll(‘[data-q]’).forEach(function(b){
    b.addEventListener(‘click’,function(){
    root.querySelectorAll(‘[data-q]’).forEach(function(x){x.classList.remove(‘is-on’)});
    b.classList.add(‘is-on’); retrieve(+b.dataset.q);
    });
    });
    retrieve(0);

    /* ———- 04 confidence ———- */
    var TURNS=[
    [‘dim the living room to 30’,0.94,false],
    [‘make it warmer in here’,0.81,false],
    [‘put the thing on the other thing’,0.58,false],
    [‘text Ada that I am running late’,0.88,false],
    [‘what is the capital of Peru?’,null,true]
    ];
    var rowsEl=document.getElementById(‘n2-rows’), slider=document.getElementById(‘n2-slider’), tv=document.getElementById(‘n2-tv’);
    function renderRows(){
    var th=(+slider.value)/100; tv.textContent=th.toFixed(2);
    rowsEl.innerHTML=TURNS.map(function(t){
    if(t[2]) return ‘

    ‘+t[0]+
    ‘
    [ ]empty call

    ‘;
    var ok=t[1]>=th;
    return ‘

    ‘+t[0]+
    ‘
    ‘+t[1].toFixed(2)+’execute’:’v-esc”>escalate’)+’

    ‘;
    }).join(”);
    post();
    }
    slider.addEventListener(‘input’,renderRows); renderRows();

    /* ———- 05 memory ———- */
    var turns=1, gv=document.getElementById(‘n2-gv’), gf=document.getElementById(‘n2-gf’);
    var win=document.getElementById(‘n2-win’), grow=document.getElementById(‘n2-grow’);
    var memv=document.getElementById(‘n2-memv’), growv=document.getElementById(‘n2-growv’);
    var ofEl=document.getElementById(‘n2-of’), turnsEl=document.getElementById(‘n2-turns’);
    function renderMem(){
    turnsEl.textContent=”turns: “+turns;
    var w=Math.min(24, 12+turns*2.5);
    win.style.width=w+’%’;
    memv.textContent=”28.0 MB”;
    gf.style.width=”78%”; gv.innerHTML=’28.0 MB / hard ceiling 28 MB’;
    var g=Math.min(100, 18+turns*7);
    grow.style.width=g+’%’;
    growv.textContent=(Math.round((18+turns*7)*0.62*10)/10)+’ MB’;
    ofEl.textContent = g>=78 ? ‘Unbounded KV has crossed the 28MB ceiling. Needle 2 has not moved.’ : ”;
    post();
    }
    document.getElementById(‘n2-turn’).addEventListener(‘click’,function(){turns++;renderMem();});
    document.getElementById(‘n2-reset-m’).addEventListener(‘click’,function(){turns=1;renderMem();});
    renderMem();
    })();

    14MB 28MB 45MParameter Binary Full Meet model Needle open ram Runs Session ships ToolCalling
    NCIJ NETWNCIJ NETWORK
    • Website

    Keep Reading

    Create a Reasoning-Focused LLM: A Practical Guide to Streaming, Curating, and Fine-Tuning the SupraLabs Reasoning Corpus

    Researchers Turn USB Auto-Install Into a Full SYSTEM Takeover on Windows 11

    Video does not show ‘Moroccan migrant’ swimming into Ceuta – Full Fact

    Dyna Robotics Introduces Dyna-2: A World-Action Model Pre-Trained on 1 Million Hours of Human Video

    Tether Completes First Full Financial Audit of 2025 Accounts

    Liquid AI Releases LFM2.5-VL-3B: A 3B Vision-Language Model That Reads Screens, Grounds Objects, and Calls Tools On-Device

    Add A Comment
    Leave A Reply Cancel Reply

    Editors Picks

    Trump administration profile: Todd Blanche • OpenSecrets

    August 14, 2026

    Weather forecasts once gave Britons something safe to chat about. Not any more | Andy Beckett

    August 14, 2026

    Prichard Colon dies from boxing injury that resulted in 221-day coma | Boxing News

    August 14, 2026

    ‘This is hell’: British widow ‘sick’ with worry over threat of being removed from Sweden | Sweden

    August 14, 2026
    Latest Posts

    Evacuated villagers in Cairngorms allowed home after wildfire threat lifts | Wildfires

    July 25, 2026

    The Fraternal Order Of Police Supports The Clarity Act.

    July 25, 2026

    How Synthetic Identity Fraud is Coming for Machine Identities

    July 25, 2026

    Subscribe to News

    Get the latest sports news from NewsSite about world, sports and politics.

    NCIJ Network is an independent digital news platform delivering trusted investigative journalism, European and global news, in-depth analysis, and fact-based reporting with accuracy, transparency, and integrity.

    Facebook X (Twitter) Instagram Pinterest YouTube

    Trump administration profile: Todd Blanche • OpenSecrets

    August 14, 2026

    Weather forecasts once gave Britons something safe to chat about. Not any more | Andy Beckett

    August 14, 2026

    Prichard Colon dies from boxing injury that resulted in 221-day coma | Boxing News

    August 14, 2026

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    Type above and press Enter to search. Press Esc to cancel.