Needle 2 is een open model met 45 miljoen parameters dat specifiek is ontwikkeld voor tool calling, apparaataansturing en gestructureerde data-extractie. Met een minimale voetafdruk van 14 MB (bestandsgrootte) en 28 MB RAM, is het model geschikt voor hardware zonder GPU of NPU, zoals budgetsmartphones, Raspberry Pi 5 en microcontrollers zoals de ESP32-S3.
Technische Kenmerken
- Architectuur: Gebouwd op het Simple Attention Network, gebruikmakend van Hadamard MLP's en Engrams om rekenkracht en geheugenbandbreedte te besparen.
- Kwantisatie: Maakt gebruik van Cactus Quants (CQ2-bit), waarbij het model vanaf de pretraining is geoptimaliseerd voor 2-bits precisie zonder kwaliteitsverlies.
- Inferentie Engine: Een dependency-vrije C++ binary die automatisch CPU-kernels selecteert en gebruikmaakt van een sliding window van 256 tokens om RAM-gebruik te begrenzen.
Toepassing en Prestaties
Het model is gericht op 'Edge AI', waarbij informele gebruikersinput wordt gemapt naar gestructureerde functieaanroepen. Hierdoor kunnen taken lokaal, privé en offline worden uitgevoerd. Benchmarks tonen aan dat Needle 2 in specifieke tool-calling scenario's concurreert met veel grotere modellen (zoals FunctionGemma), terwijl het aanzienlijk minder energie verbruikt. Een concreet voorbeeld van toepassing is de integratie in de Pebble Index Ring voor offline spraakbesturing.
Needle 2 - Het agentische LLM van 14 MB voor kleine apparaten
In benchmarks voor tool-aanroepen en het gebruik van mobiele apparaten presteert Needle 2 vergelijkbaar met grotere modellen zoals FunctionGemma (270M), LFM2.5 (230M) en Apple FM, terwijl Needle 2 factor 5 tot 70 kleiner is en gebruikmaakt van 2-bits precisie in plaats van f16.
Prestaties en Hardware
Needle 2 behaalt de volgende decodeersnelheden:
- Raspberry Pi 5: 500 tokens/sec.
- VR-apparaten (zoals Meta Quest 3S en Apple Vision Pro): tussen de 400 en 1.500 tokens/sec.
- Budgetsmartphones (zoals Samsung A-serie, onder de $200): tussen de 300 en 700 tokens/sec.
Met een piekgebruik van ongeveer 28 MB RAM kan Needle ook draaien op moderne microcontrollers zoals de ESP32-S3. Het model is gelicenseerd onder Apache 2.0 en de gewichten zijn beschikbaar via Hugging Face.
Kernspecificaties
- Parameters: 45M
- Prefill (Pi5): 800+ tok/s
- Decode (Pi5): 500+ tok/s
- Compressie: CQ2-bit
- Bestandsgrootte: 14 MB
- Sessie RAM: 28 MB
---
Onze Visie
AI op apparaten onder de $200 brengen
Edge AI wordt vaak geassocieerd met Macs en pc's, maar de echte 'edge' bestaat uit goedkope hardware. Er zijn meer dan 21 miljard verbonden IoT-apparaten tegenover ongeveer 1,5 miljard pc's. In opkomende markten kosten de meeste telefoons minder dan $200. Needle richt zich specifiek op deze hardware: apparaten zonder GPU of NPU en met slechts enkele honderden MB RAM.
Function Call & Device Use
Voor het bedienen van een lamp is geen frontier-model nodig. Horloges, smart homes en robots stellen hun functies al beschikbaar via getypeerde parameters; de uitdaging is enkel om een informele zin te mappen naar de juiste functie en waarden. Omdat dit geen wereldkennis of open-ended proza vereist, volstaan 45 miljoen parameters daar waar chatmodellen miljarden nodig hebben.
Extractie & Gestructureerde Outputs
Het schema fungeert als de interface. Een schema plus een paragraaf resulteert in getypeerde velden: een enum-veld werkt als classifier en een array-veld verzamelt een lijst in één aanroep. Dit wordt afgedwongen via een contract: elke beurt wordt beantwoord met een call envelope. Een leeg antwoord geldt als weigering. Een op byte-niveau gecompileerde grammatica beperkt elk token, waardoor de parameters volledig kunnen worden benut voor het kiezen van functies en het gronden van argumenten in de woorden van de gebruiker.
Edge-Cloud Samenwerking
Geen enkel klein model kan alles dekken. Needle geeft dit aan in plaats van te gissen: elke respons bevat een geleerde betrouwbaarheidsscore (confidence score). Verzoeken die buiten het onderwerp vallen, resulteren in een lege aanroep. Boven een bepaalde drempelwaarde wordt de actie uitgevoerd; daaronder wordt er opnieuw gevraagd of geëscaleerd naar de cloud. Hierdoor blijft het standaardpad privé, direct en gratis.
Verliesvrije 2-bits Kwantisatie
Kleine modellen raken vaak beschadigd bij post-hoc kwantisatie. Daarom is Needle 2 vanaf de pretraining tot aan de post-training getraind tegen Cactus Quants (inclusief gewichten, activaties en KV-cache). Het 2-bit model dat wordt ingezet, is exact het model dat is getraind. Dit maakt het mogelijk om 45 miljoen parameters in 14 MB te passen zonder kwaliteitsverlies.
Co-design van Model & Inferentie
Elke architectonische keuze is gebenchmarkt op de doelhardware. Het resultaat is een dependency-vrij C++ binair bestand dat bij startup de CPU analyseert en de juiste kernels kiest. De tokenizer, het model en de grammatica-compiler zijn hierin verzegeld. Dit ene artefact draait overal: van Cortex-M via x86 tot WebAssembly.
Fine-tunen op Mac/PC
Omdat elk product een eigen set tools heeft, is Needle klein genoeg om lokaal te hertrainen. Met het beschikbare repo en Python-pakket kan एक model in enkele minuten tot uren worden getuned op een eigen computer, zodat het model de specifieke tools van een apparaat spreekt in plaats van een generieke assistent te zijn.
---
Productietoepassing
Needle is klaar voor productie in producten die een minimale RAM-voetafdruk, lage latentie, privacy en offline betrouwbaarheid vereisen. Pebble gebruikt Needle lokaal in de Index 01-app om gesproken verzoeken om te zetten in acties zonder afhankelijkheid van een netwerkverbinding.
"De Pebble Index Ring heeft geen scherm. Wanneer je ertegen spreekt, moet de actie gewoon gebeuren, elke keer weer, met of zonder internetverbinding. We draaien Cactus Needle lokaal in de app in plaats van te vertrouwen op de cloud. De footprint van het model is minuscuul en de prestaties laten ons nooit in de steek."
— Eric Migicovsky, Founder, Pebble
---
Architectuur
Het Simple Attention Network
Needle 2 is gepre-traind op een propriëtair corpus van 115 miljard tokens en post-traind op 38 miljard tokens met compacte redeneringssporen. Ter vergelijking: LFM2.5-230M is getraind op 19 biljoen tokens (ongeveer 120x meer), maar de evaluaties tonen aan dat beide modellen elkaar in resultaten afwisselen.
De architectuur is ontworpen om capaciteit te winnen zonder bandbreedte te verbruiken:
- Hadamard MLP: Vervangt gebruikelijke dense projecties door een vaste Walsh-transformatie en geleerde diagonalen, waardoor channel mixing bijna geen parameters kost.
- Engrams: Verplaatst wereldkennis uit de stack naar gehashte n-gram tabellen die per token slechts enkele rijen lezen. Dit is cruciaal voor apparaten waar elke megabyte vanuit flashgeheugen leest ten koste gaat van latentie en batterijduur.
- Multi-lane Residual Streams: Geeft een netwerk van 27 lagen (512 breed) de routeringsflexibiliteit van een veel breder netwerk.
Geheugensysteem en Engine
Het geheugen is ontworpen voor apparaten met een vaste hoeveelheid RAM:
- Sliding Window: Een window van 256 tokens zorgt ervoor dat de KV-cache begrensd blijft, ongeacht de sessielengte.
- Permanent Sinks: De systeemprompt en tool-declaraties zijn vastgepind als permanente sinks, zodat het model zijn tools nooit kan "vergeten".
De snelheid van de engine komt voort uit efficiëntie:
- Geen decompressie in RAM: 2-bit codes worden uitgebreid binnen vectorregisters en gefuseerd in integer dot products. De rekenpaden blijven end-to-end
int8.
- Grammatica-optimalisatie: Omdat de matcher weet welke tokens legaal zijn voordat de logits bestaan, berekent de engine alleen scores voor kandidaat-rijen. Dit slaat tot 98% van de vocabulaireprojectie over bij structurele tokens.
- CPU-optimale kernels: De binary selecteert automatisch de beste kerneltier (SDOT, NEON, AVX2, RISC-V vectors, wasm SIMD of scalar).
Energie-efficiëntie
Op on-device silicon kost het verplaatsen van een byte uit flash of DRAM orders van grootte meer dan een multiply-accumulate operatie. Needle reduceert zowel FLOPs als bytes per token. Een conventionele transformer van dezelfde breedte en diepte verbruikt 164 MFLOPs per token; Needle verbruikt er slechts 70. De engine zorgt ervoor dat bij het decoderen van een token de 14 MB blob maximaal één keer wordt gelezen.
Rekenkracht per token
| Model | Parameters | Matmul-actief | MFLOPs / token |
| Needle 2 | 45M | 35M | 70 |
| Same-shape transformer, dense MLP | 82M | 82M | 164 |
| Transformer bij matched params | 43M | 43M | 87 |
| LFM2.5 230M | 230M | 230M | 460 |
| FunctionGemma 270M | 270M | 270M | 540 |
| Apple FM | ~3B | ~3B | ~6,000 |
Opmerking: Berekend met 2 FLOPs per multiply-accumulate over matmul-actieve parameters. Het verschil tussen de twee kolommen van Needle is de 'engram': 8M parameters gelezen via gather, wat geen rekenkracht kost.
Microcontrollers (MCU)
Door het begrensde sessiegeheugen zijn microcontrollers nu bereikbaar. De RAM-voetafdruk van Needle 2 is een deterministisch plafond van 28 MB. Dit past op MCU-onderdelen met extern RAM, zoals de ESP32-P4 (met 32MB PSRAM) of STM32H7 en NXP i.MX RT boards met SDRAM.
---
Evaluatie
De evaluatie is uitgevoerd op vijf publieke benchmarks voor function calling: Google's Mobile Actions, DroidCall, de Seal-Tools (in-domain en out-of-domain) en BFCL v4 single-turn. Er is gescoord op ordered strict exact match. Alle Needle 2 cijfers zijn gemeten via de C++ engine in productconfiguratie (CQ2-bit, tool retrieval aan, 256-token window).
Vergelijkingskader
Er zijn twee asymmetrieën in deze vergelijking:
- Precisie: Baselines gebruiken f16, terwijl Needle CQ2-bit gebruikt. Dit bevoordeelt de baselines.
- Scope: Needle is specifiek getraind voor agentische tool-aanroepen, terwijl baselines algemene taalmodellen zijn (chat, proza). Dit bevoordeelt Needle.
Resultaten: Mobile Actions (961 rijen)
| Model | Accuracy | Name acc. | Non-empty | 1-call | 2-call |
| LFM2.5 230M (f16) | 69.1 | 93.0 | 98.9 | 76.1 | 55.0 |
| FunctionGemma 270M (f16) | 64.0 | 87.3 | 98.9 | 73.0 | 46.2 |
| Needle 2 (CQ2-bit) | 63.7 | 98.3 | 99.4 | 71.3 | 48.4 |
| Apple FM (on-device) | 57.6 | 94.2 | 95.5 | 64.5 | 43.8 |
Resultaten: DroidCall test split (200 rijen)
| Model | Accuracy | Name acc. | Non-empty | 1-call | 2-call |
| FunctionGemma 270M (f16) | 17.5 | 37.5 | 59.5 | 22.7 | 0.0 |
| Needle 2 (CQ2-bit) | 17.0 | 36.5 | 47.5 | 22.1 | 0.0 |
| LFM2.5 230M (f16) | 11.0 | 21.5 | 22.5 | 14.3 | 0.0 |
Resultaten: Seal-Tools In-domain (700 rijen)
| Model | Accuracy | Name acc. | 1-call | 2–3-call | 4+-call |
| Needle 2 (CQ2-bit) | 32.6 | 64.9 | 63.0 | 21.8 | 14.6 |
| LFM2.5 230M (f16) | 26.9 | 45.4 | 54.5 | 17.1 | 10.4 |
| FunctionGemma 270M (f16) | 16.3 | 56.0 | 47.0 | 4.5 | 2.1 |
Resultaten: Seal-Tools Out-of-domain (654 rijen)
| Model | Accuracy | Name acc. | 1-call | 2–3-call | 4+-call |
| Needle 2 (CQ2-bit) | 28.7 | 58.7 | 56.4 | 27.1 | 15.4 |
| LFM2.5 230M (f16) | 17.0 | 35.0 | 42.6 | 13.7 | 9.8 |
| FunctionGemma 270M (f16) | 15.6 | 48.9 | 50.0 | 11.0 | 6.3 |
BFCL v4 Single-turn (3,641 rijen)
Needle is niet getraind voor algemene function calling, maar op consumentenapparatuur (smart home, mobile, wearables, TV, auto). Desondanks presteert het bij eenvoudige Python-aanroepen bijna gelijk aan FunctionGemma (een model dat 6x groter is) en behoudt het een well-formed rate van 93,4% over alle rijen.
| Categorie | Apple FM | LFM2.5 230M | FunctionGemma 270M | Needle 2 (CQ2) |
| Simple | 73.3 | 63.2 | 48.1 | 40.8 |
| — Python | 86.8 | 85.5 | 62.3 | 61.2 |
| — Java | 67.0 | 48.0 | 38.0 | 29.0 |
| — JavaScript | 66.0 | 56.0 | 44.0 | 32.0 |
| Multiple | 84.0 | 78.5 | 60.0 | 57.0 |
| Parallel | 65.0 | 64.0 | 36.5 | 30.0 |
| Parallel multiple | 52.0 | 51.5 | 30.5 | 22.5 |
| Live simple | 70.5 | 45.0 | 33.7 | 36.8 |
| Live multiple | 45.9 | 47.8 | 25.2 | 27.9 |
| Live parallel | 50.0 | 43.8 | 18.8 | 25.0 |
| Live parallel multiple | 58.3 | 45.8 | 25.0 | 29.2 |
| Relevance | 100.0 | 68.8 | 81.2 | 81.2 |
| Irrelevance | 28.3 | 77.7 | 72.1 | 60.8 |
| Overall | 61.7 | 60.8 | 46.1 | 42.6 |
| Well-formed rate | 95.0 | 94.2 | 100.0 | 93.4 |
Needle 2 - Het agentische LLM van 14 MB voor kleine apparaten
In benchmarks voor tool-aanroepen en het gebruik van mobiele apparaten presteert Needle 2 vergelijkbaar met grotere modellen zoals FunctionGemma (270M), LFM2.5 (230M) en Apple FM, terwijl Needle 2 factor 5 tot 70 kleiner is en gebruikmaakt van 2-bits precisie in plaats van f16.
Prestaties en Hardware
Needle 2 behaalt de volgende decodeersnelheden:
- Raspberry Pi 5: 500 tokens/sec.
- VR-apparaten (zoals Meta Quest 3S en Apple Vision Pro): tussen de 400 en 1.500 tokens/sec.
- Budgetsmartphones (zoals Samsung A-serie, onder de $200): tussen de 300 en 700 tokens/sec.
Met een piekgebruik van ongeveer 28 MB RAM kan Needle ook draaien op moderne microcontrollers zoals de ESP32-S3. Het model is gelicenseerd onder Apache 2.0 en de gewichten zijn beschikbaar via Hugging Face.
Kernspecificaties
- Parameters: 45M
- Prefill (Pi5): 800+ tok/s
- Decode (Pi5): 500+ tok/s
- Compressie: CQ2-bit
- Bestandsgrootte: 14 MB
- Sessie RAM: 28 MB
---
Onze Visie
AI op apparaten onder de $200 brengen
Edge AI wordt vaak geassocieerd met Macs en pc's, maar de echte 'edge' bestaat uit goedkope hardware. Er zijn meer dan 21 miljard verbonden IoT-apparaten tegenover ongeveer 1,5 miljard pc's. In opkomende markten kosten de meeste telefoons minder dan $200. Needle richt zich specifiek op deze hardware: apparaten zonder GPU of NPU en met slechts enkele honderden MB RAM.
Function Call & Device Use
Voor het bedienen van een lamp is geen frontier-model nodig. Horloges, smart homes en robots stellen hun functies al beschikbaar via getypeerde parameters; de uitdaging is enkel om een informele zin te mappen naar de juiste functie en waarden. Omdat dit geen wereldkennis of open-ended proza vereist, volstaan 45 miljoen parameters daar waar chatmodellen miljarden nodig hebben.
Extractie & Gestructureerde Outputs
Het schema fungeert als de interface. Een schema plus een paragraaf resulteert in getypeerde velden: een enum-veld werkt als classifier en een array-veld verzamelt een lijst in één aanroep. Dit wordt afgedwongen via een contract: elke beurt wordt beantwoord met een call envelope. Een leeg antwoord geldt als weigering. Een op byte-niveau gecompileerde grammatica beperkt elk token, waardoor de parameters volledig kunnen worden benut voor het kiezen van functies en het gronden van argumenten in de woorden van de gebruiker.
Edge-Cloud Samenwerking
Geen enkel klein model kan alles dekken. Needle geeft dit aan in plaats van te gissen: elke respons bevat een geleerde betrouwbaarheidsscore (confidence score). Verzoeken die buiten het onderwerp vallen, resulteren in een lege aanroep. Boven een bepaalde drempelwaarde wordt de actie uitgevoerd; daaronder wordt er opnieuw gevraagd of geëscaleerd naar de cloud. Hierdoor blijft het standaardpad privé, direct en gratis.
Verliesvrije 2-bits Kwantisatie
Kleine modellen raken vaak beschadigd bij post-hoc kwantisatie. Daarom is Needle 2 vanaf de pretraining tot aan de post-training getraind tegen Cactus Quants (inclusief gewichten, activaties en KV-cache). Het 2-bit model dat wordt ingezet, is exact het model dat is getraind. Dit maakt het mogelijk om 45 miljoen parameters in 14 MB te passen zonder kwaliteitsverlies.
Co-design van Model & Inferentie
Elke architectonische keuze is gebenchmarkt op de doelhardware. Het resultaat is een dependency-vrij C++ binair bestand dat bij startup de CPU analyseert en de juiste kernels kiest. De tokenizer, het model en de grammatica-compiler zijn hierin verzegeld. Dit ene artefact draait overal: van Cortex-M via x86 tot WebAssembly.
Fine-tunen op Mac/PC
Omdat elk product een eigen set tools heeft, is Needle klein genoeg om lokaal te hertrainen. Met het beschikbare repo en Python-pakket kan एक model in enkele minuten tot uren worden getuned op een eigen computer, zodat het model de specifieke tools van een apparaat spreekt in plaats van een generieke assistent te zijn.
---
Productietoepassing
Needle is klaar voor productie in producten die een minimale RAM-voetafdruk, lage latentie, privacy en offline betrouwbaarheid vereisen. Pebble gebruikt Needle lokaal in de Index 01-app om gesproken verzoeken om te zetten in acties zonder afhankelijkheid van een netwerkverbinding.
"De Pebble Index Ring heeft geen scherm. Wanneer je ertegen spreekt, moet de actie gewoon gebeuren, elke keer weer, met of zonder internetverbinding. We draaien Cactus Needle lokaal in de app in plaats van te vertrouwen op de cloud. De footprint van het model is minuscuul en de prestaties laten ons nooit in de steek."
— Eric Migicovsky, Founder, Pebble
---
Architectuur
Het Simple Attention Network
Needle 2 is gepre-traind op een propriëtair corpus van 115 miljard tokens en post-traind op 38 miljard tokens met compacte redeneringssporen. Ter vergelijking: LFM2.5-230M is getraind op 19 biljoen tokens (ongeveer 120x meer), maar de evaluaties tonen aan dat beide modellen elkaar in resultaten afwisselen.
De architectuur is ontworpen om capaciteit te winnen zonder bandbreedte te verbruiken:
- Hadamard MLP: Vervangt gebruikelijke dense projecties door een vaste Walsh-transformatie en geleerde diagonalen, waardoor channel mixing bijna geen parameters kost.
- Engrams: Verplaatst wereldkennis uit de stack naar gehashte n-gram tabellen die per token slechts enkele rijen lezen. Dit is cruciaal voor apparaten waar elke megabyte vanuit flashgeheugen leest ten koste gaat van latentie en batterijduur.
- Multi-lane Residual Streams: Geeft een netwerk van 27 lagen (512 breed) de routeringsflexibiliteit van een veel breder netwerk.
Geheugensysteem en Engine
Het geheugen is ontworpen voor apparaten met een vaste hoeveelheid RAM:
- Sliding Window: Een window van 256 tokens zorgt ervoor dat de KV-cache begrensd blijft, ongeacht de sessielengte.
- Permanent Sinks: De systeemprompt en tool-declaraties zijn vastgepind als permanente sinks, zodat het model zijn tools nooit kan "vergeten".
De snelheid van de engine komt voort uit efficiëntie:
- Geen decompressie in RAM: 2-bit codes worden uitgebreid binnen vectorregisters en gefuseerd in integer dot products. De rekenpaden blijven end-to-end
int8.
- Grammatica-optimalisatie: Omdat de matcher weet welke tokens legaal zijn voordat de logits bestaan, berekent de engine alleen scores voor kandidaat-rijen. Dit slaat tot 98% van de vocabulaireprojectie over bij structurele tokens.
- CPU-optimale kernels: De binary selecteert automatisch de beste kerneltier (SDOT, NEON, AVX2, RISC-V vectors, wasm SIMD of scalar).
Energie-efficiëntie
Op on-device silicon kost het verplaatsen van een byte uit flash of DRAM orders van grootte meer dan een multiply-accumulate operatie. Needle reduceert zowel FLOPs als bytes per token. Een conventionele transformer van dezelfde breedte en diepte verbruikt 164 MFLOPs per token; Needle verbruikt er slechts 70. De engine zorgt ervoor dat bij het decoderen van een token de 14 MB blob maximaal één keer wordt gelezen.
Rekenkracht per token
| Model | Parameters | Matmul-actief | MFLOPs / token |
| Needle 2 | 45M | 35M | 70 |
| Same-shape transformer, dense MLP | 82M | 82M | 164 |
| Transformer bij matched params | 43M | 43M | 87 |
| LFM2.5 230M | 230M | 230M | 460 |
| FunctionGemma 270M | 270M | 270M | 540 |
| Apple FM | ~3B | ~3B | ~6,000 |
Opmerking: Berekend met 2 FLOPs per multiply-accumulate over matmul-actieve parameters. Het verschil tussen de twee kolommen van Needle is de 'engram': 8M parameters gelezen via gather, wat geen rekenkracht kost.
Microcontrollers (MCU)
Door het begrensde sessiegeheugen zijn microcontrollers nu bereikbaar. De RAM-voetafdruk van Needle 2 is een deterministisch plafond van 28 MB. Dit past op MCU-onderdelen met extern RAM, zoals de ESP32-P4 (met 32MB PSRAM) of STM32H7 en NXP i.MX RT boards met SDRAM.
---
Evaluatie
De evaluatie is uitgevoerd op vijf publieke benchmarks voor function calling: Google's Mobile Actions, DroidCall, de Seal-Tools (in-domain en out-of-domain) en BFCL v4 single-turn. Er is gescoord op ordered strict exact match. Alle Needle 2 cijfers zijn gemeten via de C++ engine in productconfiguratie (CQ2-bit, tool retrieval aan, 256-token window).
Vergelijkingskader
Er zijn twee asymmetrieën in deze vergelijking:
- Precisie: Baselines gebruiken f16, terwijl Needle CQ2-bit gebruikt. Dit bevoordeelt de baselines.
- Scope: Needle is specifiek getraind voor agentische tool-aanroepen, terwijl baselines algemene taalmodellen zijn (chat, proza). Dit bevoordeelt Needle.
Resultaten: Mobile Actions (961 rijen)
| Model | Accuracy | Name acc. | Non-empty | 1-call | 2-call |
| LFM2.5 230M (f16) | 69.1 | 93.0 | 98.9 | 76.1 | 55.0 |
| FunctionGemma 270M (f16) | 64.0 | 87.3 | 98.9 | 73.0 | 46.2 |
| Needle 2 (CQ2-bit) | 63.7 | 98.3 | 99.4 | 71.3 | 48.4 |
| Apple FM (on-device) | 57.6 | 94.2 | 95.5 | 64.5 | 43.8 |
Resultaten: DroidCall test split (200 rijen)
| Model | Accuracy | Name acc. | Non-empty | 1-call | 2-call |
| FunctionGemma 270M (f16) | 17.5 | 37.5 | 59.5 | 22.7 | 0.0 |
| Needle 2 (CQ2-bit) | 17.0 | 36.5 | 47.5 | 22.1 | 0.0 |
| LFM2.5 230M (f16) | 11.0 | 21.5 | 22.5 | 14.3 | 0.0 |
Resultaten: Seal-Tools In-domain (700 rijen)
| Model | Accuracy | Name acc. | 1-call | 2–3-call | 4+-call |
| Needle 2 (CQ2-bit) | 32.6 | 64.9 | 63.0 | 21.8 | 14.6 |
| LFM2.5 230M (f16) | 26.9 | 45.4 | 54.5 | 17.1 | 10.4 |
| FunctionGemma 270M (f16) | 16.3 | 56.0 | 47.0 | 4.5 | 2.1 |
Resultaten: Seal-Tools Out-of-domain (654 rijen)
| Model | Accuracy | Name acc. | 1-call | 2–3-call | 4+-call |
| Needle 2 (CQ2-bit) | 28.7 | 58.7 | 56.4 | 27.1 | 15.4 |
| LFM2.5 230M (f16) | 17.0 | 35.0 | 42.6 | 13.7 | 9.8 |
| FunctionGemma 270M (f16) | 15.6 | 48.9 | 50.0 | 11.0 | 6.3 |
BFCL v4 Single-turn (3,641 rijen)
Needle is niet getraind voor algemene function calling, maar op consumentenapparatuur (smart home, mobile, wearables, TV, auto). Desondanks presteert het bij eenvoudige Python-aanroepen bijna gelijk aan FunctionGemma (een model dat 6x groter is) en behoudt het een well-formed rate van 93,4% over alle rijen.
| Categorie | Apple FM | LFM2.5 230M | FunctionGemma 270M | Needle 2 (CQ2) |
| Simple | 73.3 | 63.2 | 48.1 | 40.8 |
| — Python | 86.8 | 85.5 | 62.3 | 61.2 |
| — Java | 67.0 | 48.0 | 38.0 | 29.0 |
| — JavaScript | 66.0 | 56.0 | 44.0 | 32.0 |
| Multiple | 84.0 | 78.5 | 60.0 | 57.0 |
| Parallel | 65.0 | 64.0 | 36.5 | 30.0 |
| Parallel multiple | 52.0 | 51.5 | 30.5 | 22.5 |
| Live simple | 70.5 | 45.0 | 33.7 | 36.8 |
| Live multiple | 45.9 | 47.8 | 25.2 | 27.9 |
| Live parallel | 50.0 | 43.8 | 18.8 | 25.0 |
| Live parallel multiple | 58.3 | 45.8 | 25.0 | 29.2 |
| Relevance | 100.0 | 68.8 | 81.2 | 81.2 |
| Irrelevance | 28.3 | 77.7 | 72.1 | 60.8 |
| Overall | 61.7 | 60.8 | 46.1 | 42.6 |
| Well-formed rate | 95.0 | 94.2 | 100.0 | 93.4 |