Needle: Gemini Tool Calling को 26M Parameter वाले Micro-Model में Distill करना

अगर आप पिछले एक साल से agentic workflows बना रहे हैं, तो आप एक बेसिक प्रॉब्लम को अच्छी तरह समझते होंगे: tool calling के लिए intelligence चाहिए, और intelligence के लिए आमतौर पर massive models की ज़रूरत होती है। हमें अपने function calls को बड़े APIs के थ्रू route करने या फिर gigabyte-sized local weights की latency के साथ compromise करने की आदत सी हो गई है।
लेकिन आज, यह पैराडाइम बदल गया है। Cactus Compute ने Hacker News पर एक "Show HN" पोस्ट किया जिसने तुरंत हमारा ध्यान खींचा: Needle, एक hyper-specialized, 26 million parameter model जिसे खास तौर पर Google के Gemini 3.1 Flash Lite से distill किया गया है। यह कोई कविता नहीं लिखता या Python scripts जनरेट नहीं करता। यह सिर्फ एक ही काम करता है: यह user intent को tool schemas के अगेंस्ट parse करता है और एकदम परफेक्ट JSON आउटपुट देता है। और वो भी कमाल की स्पीड से।
#आखिर हुआ क्या?
Cactus Compute ने Needle को MIT license के तहत open-source कर दिया है, और इसके weights Hugging Face पर अवेलेबल हैं। सिर्फ 26M parameters के साथ, यह मॉडल हैरानी की हद तक छोटा है। अगर इसे perspective में रखकर देखें, तो Needle उन मॉडल्स के साइज का एक बहुत छोटा हिस्सा है जिन्हें पहले "tiny" माना जाता था, जैसे FunctionGemma-270M या Qwen-0.6B।
अपने छोटे साइज़ के बावजूद, Needle अपने डिज़ाइन किए गए काम में ज़बरदस्त रूप से competent है। यह 15 अलग-अलग कैटेगरीज़ में single-shot tool calling को आसानी से हैंडल कर लेता है—चाहे वो smart home controls हों, messaging हो, navigation या फिर timers। Gemini 3.1 Flash Lite की latent capabilities को एक hyper-focused आर्किटेक्चर में distill करके, टीम ने यह साबित कर दिया है कि एक schema को parse करने और arguments extract करने के लिए आपको billions of parameters की ज़रूरत नहीं है।
#यह इतना ज़रूरी क्यों है: Edge पर Extreme Efficiency
Needle का सबसे दिलचस्प पहलू सिर्फ इसका साइज़ नहीं है; बल्कि यह है कि यह साइज़ क्या पॉसिबल बनाता है। जब इसे INT4 पर quantize किया जाता है, तो पूरा का पूरा मॉडल लगभग 14MB memory ही लेता है।
एक पल के लिए इन नंबर्स के बारे में सोचिए। इस मॉडल को किसी dedicated GPU cluster की ज़रूरत नहीं है; इसे तो ढंग से एक मॉडर्न CPU की भी ज़रूरत नहीं पड़ती। यह उन environments में sophisticated, local-first tool calling के दरवाज़े खोल देता है जहाँ पहले यह पूरी तरह से इम्पॉसिबल था:
- Wearables: Smartwatches और AR glasses अब voice commands को locally structured API calls में प्रोसेस कर सकते हैं, जिससे cloud latency पूरी तरह खत्म हो जाती है।
- IoT Devices: Smart home hubs अब बिना किसी सर्वर के round-trip के, ESP32 या किसी low-end ARM chip पर ही intent routing हैंडल कर सकते हैं।
- Mobile Apps: एप्लिकेशन्स इस मॉडल को natively embed कर सकती हैं, जिससे zero-latency UI interactions मिलते हैं और queries on-device रहने की वजह से user privacy भी मेंटेन रहती है।
परफॉरमेंस की बात करें तो, Needle एकदम बीस्ट (beast) है। Consumer hardware पर, यह prefill के लिए 6,000 tokens per second और decode के लिए 1,200 tokens per second अचीव करता है। User interaction के कॉन्टेक्स्ट में इसका मतलब है कि JSON payload इतनी तेज़ी से जनरेट होता है और execute होने के लिए रेडी रहता है कि हमारी आंखें loading state को रजिस्टर भी नहीं कर पातीं।
#Technical Implications: "No-FFN" Architecture
हम इंजीनियर्स के नज़रिए से देखें, तो Needle के पीछे की architectural choices यकीनन इस रिलीज़ का सबसे fascinating हिस्सा हैं। Cactus Compute की टीम ने Simple Attention Network (SAN) नाम का एक नया कॉन्सेप्ट इंट्रोड्यूस किया है।
Standard transformer आर्किटेक्चर्स आमतौर पर Multi-Head Attention और Feed-Forward Networks (FFNs, या MLPs) की alternating layers का इस्तेमाल करके बनाए जाते हैं। Deep learning कम्युनिटी में यह बात अच्छी तरह से मानी जाती है कि FFNs मॉडल की "memory" के रूप में काम करते हैं, जो world knowledge और फैक्ट्स को स्टोर करते हैं, जबकि Attention context की dynamic routing को हैंडल करता है।
Needle के साथ सबसे बड़ी breakthrough insight यह समझना रही है कि tool calling कोई reasoning या memory task नहीं है; बल्कि यह एक retrieval और assembly task है।
जब आप किसी मॉडल को available tool schemas की लिस्ट और एक user query देते हैं, तो मॉडल को यह जानने की ज़रूरत नहीं होती कि फ्रांस की राजधानी क्या है। उसे सिर्फ user की रिक्वेस्ट (जैसे, "turn off the living room lights") के semantic spans को दिए गए JSON schema में मौजूद required slots के साथ align करना होता है।
इसलिए, Needle अपने आर्किटेक्चर से FFN layers को पूरी तरह से हटा देता है। यह एक 12-layer encoder और 8-layer decoder का इस्तेमाल करता है जिसमें पूरी तरह से सिर्फ pure attention और gating mechanisms होते हैं। MLPs को ड्रॉप करके, उन्होंने पैरामीटर्स के ज़्यादातर वेट को खत्म कर दिया, जिससे computational overhead काफी कम हो गया, और वो भी function calling के लिए ज़रूरी specific routing capabilities से समझौता किए बिना।
#The Training Pipeline
इतने specific मॉडल को ट्रेन करने के लिए एक काफी क्लेवर पाइपलाइन की ज़रूरत थी:
- Pretraining: मॉडल को 200 billion tokens पर एकदम स्क्रैच से ट्रेन किया गया। इसके बहुत ही छोटे साइज़ के कारण, 16 TPU v6e chips के क्लस्टर पर इस फेज़ को पूरा होने में महज़ 27 घंटे लगे।
- Post-Training (Distillation): टीम ने Gemini 3.1 Flash Lite का यूज़ करके 2 billion tokens का highly complex, synthetic function-calling डेटा जनरेट किया। इस फेज़ में महज़ 45 मिनट का समय लगा, जिसने Gemini के robust instruction-following और schema-parsing बिहेवियर को इफेक्टिवली SAN आर्किटेक्चर में ट्रांसफर कर दिया।
#आगे क्या?
Needle अभी से अवेलेबल है, और इसका barrier to entry ना के बराबर है। आप रिपॉज़िटरी को clone कर सकते हैं, dependencies इंस्टॉल कर सकते हैं, और कुछ ही मिनटों में अपने खुद के local schemas के साथ एक्सपेरिमेंट करना शुरू कर सकते हैं।
अगर आप इसे locally टेस्ट करना चाहते हैं, तो Cactus Compute ने एक बढ़िया streamlined सेटअप प्रोवाइड किया है:
git clone https://github.com/cactus-compute/needle.git
cd needle && source ./setup
needle playground
यह कमांड एक local playground लॉन्च कर देता है जहाँ आप custom tool schemas को इंजेक्ट कर सकते हैं—शायद आपके internal microservice APIs या local system scripts—और फिर देख सकते हैं कि मॉडल कैसे तुरंत उन तक commands route करता है। चूँकि मॉडल इतना छोटा है, इसे proprietary और domain-specific tools पर fine-tune करना बहुत ही सस्ता और फास्ट है।
#Conclusion
Needle का रिलीज़ होना "micro-model" फिलॉसफी का एक बहुत बड़ा वैलिडेशन है। जहाँ एक तरफ foundational frontier models जनरल रीज़निंग की बाउंड्रीज़ को पुश करने के लिए साइज़ में बढ़ते रहेंगे, वहीं सॉफ्टवेयर इंजीनियरिंग की execution layer बिल्कुल अपोजिट डायरेक्शन में जा रही है।
Specific operational patterns में फिट बैठने के लिए आर्किटेक्चर्स को अग्रेसिव तरीके से prune करके—जैसे purely context-driven routing tasks के लिए FFNs को हटा देना—हम hyper-optimized, localized AI components के एक नए युग में एंट्री ले रहे हैं। Needle यह साबित करता है कि agentic systems की मैकेनिकल प्लंबिंग (plumbing) के लिए, distillation और architectural minimalism सिर्फ पैरामीटर्स का साइज़ बढ़ाने से कहीं बेहतर हैं। Ichiban Tools में, हम डेफिनेटली इसे अपनी local utility pipelines में एम्बेड करने का एक्सपेरिमेंट करने वाले हैं।