Needle 3؛ هوش مصنوعی ۸ مگابایتی روی خود دستگاه
خلاصهٔ کاملتر
تو این مقاله اومده که Needle 3، ساختهٔ شرکت Cactus Compute، یه مدل پایهست که برای اجرا روی خود دستگاه طراحی شده: گوشی، ساعت هوشمند، ربات، هاب خونهٔ هوشمند، سیستم خودرو و حتی میکروکنترلر. کل مدل یه فایل تکه بین ۸ تا ۲۹ مگابایت، بسته به اینکه چند تا از لایههاش رو نگه داری. سه کار بلده: tool calling (یعنی از بین توابعی که اپ در اختیارش گذاشته تابع درست رو انتخاب کنه و آرگومانهاش رو پر کنه)، بیرون کشیدن دادههای ساختارمند از متن درهموبرهم، و ساخت embedding.
معماریش نسخهٔ کوچیکشدهٔ یه مدل زبانی بزرگ نیست. نویسنده میگه کاکتوس این ترکیب رو Laddered Simple Attention Network اسم گذاشته: به جای شبکهٔ feed-forward معمولی از Monarch Hadamard MLP استفاده میکنه، attentionش از نوع GQA با causal conv tap هست، و یه حافظهٔ n-gram به اسم engram داره که بیشتر پارامترهای مدل همونجا نشستن. نتیجهش اینه که نسخهٔ ۱۲۱ میلیون پارامتری عملاً به اندازهٔ یه مدل ۵۰ میلیونی حساب و کتاب میکنه.
بخش laddered تو اسمش به روش آموزش برمیگرده: مدل جوری آموزش دیده که هر عمقی از ۲ لایه تا ۲۰ لایه خودش یه مدل کامل و قابل استقراره. یعنی میشه یه زیرشبکهٔ ۴ لایه برای ساعت هوشمند و نسخهٔ ۲۰ لایه برای گوشی رو از یه پایهٔ مشترک بیرون کشید، بدون اینکه از صفر دوباره آموزش بدی. وزنها هم با روش کوانتیزیشن خود کاکتوس تا حدود ۲.۱۲۵ بیت روی هر وزن فشرده شدن، که خیلی پایینتر از ۴ یا ۸ بیت رایجه.
خروجی مدل با یه گرامر بایتمحور محدود میشه که مستقیم از schema ابزارهای خود اپ کامپایل شده. یعنی tool call و JSON استخراجشده تضمینی درست parse میشن و وسط کار بدفرمت نمیشن. کنارش یه head آموزشدیده به هر جواب یه امتیاز confidence کالیبرهشده میچسبونه تا توسعهدهنده تصمیم بگیره کار خودکار انجام بشه، از کاربر تأیید بگیره، یا کلاً رد بشه. اگه هیچ ابزاری به درخواست کاربر نخوره، لیست خالی برمیگردونه نه یه تابع ساختگی.
نصبش با pip install cactus-needle انجام میشه و الگوی کدش تو مستندات اینشکلیه:
@needle.tool
def get_weather(city: str):
return {"city": city, "temp_c": 27, "sky": "clear"}
agent = needle.Needle(tools=[get_weather])
print(agent.run("what's it like in Lagos right now?")["results"])هر نوبت یه آبجکت JSON شامل function_calls، reasoning و confidence برمیگردونه و وزنها بعد از اولین دانلود لوکال کش میشن.
نویسنده میگه معاملهٔ اصلی روشنه: Needle 3 توانایی گفتوگوی باز رو از دست میده تا در عوض سرعت، حجم کم، حریم خصوصی و کار آفلاین رو به دست بیاره. برای اپی که فقط میخواد یه فرمان صوتی رو به تابع درست وصل کنه یا یه رسید اسکنشده رو به فیلدهای تایپدار تبدیل کنه، این معامله بهصرفهست. برای دستیار گفتوگومحور یا کار استدلالی سنگین، هنوز باید سراغ مدل بزرگتر رفت.
نکات کلیدی:
- کل مدل یه فایل ۸ تا ۲۹ مگابایتیه و انجین هر پلتفرم زیر ۱ مگابایت حجم داره.
- نسخهٔ کامل ۱۲۱ میلیون پارامتر داره، ولی بار محاسباتیش حدود یه مدل ۵۰ میلیونیه.
- وزنها با کوانتیزیشن ۲ بیتی کاکتوس، حدود ۲.۱۲۵ بیت روی هر وزن، تو فرمت .cact ذخیره میشن.
- هر عمقی از ۲ تا ۲۰ لایه جدا قابل استقراره و با needle build --layers N بریده میشه.
- فاینتیون با LoRA روی بنچمارک DroidCall دقت رو ۱۸ تا ۳۶ واحد بالا میبره و از عمق ۴ لایه (حدود ۲۹ میلیون پارامتر) از DeepSeek V4 Flash جلو میزنه.
- اگه بیشتر از ۵ تا ابزار تعریف کنی، بهتره هر نوبت فقط ابزارهای مرتبط بیان تا prefix ثابت تو context جا بشه.




