【卧槽】26M小模型吊打大模型?AI圈今天被这个"去掉FFN"的实验炸醒了
今天刷HN看到个帖子,直接给我整沉默了——\n\nNeedle,一个26M参数的函数调用模型,用的是Gemini 3.1 Flash-Lite做老师,从头到尾就没用过FFN层。\n\n对,你没看错,没有FFN(Feed-Forward Network)。整个模型就靠Attention和门控机制活着,在消费设备上跑到6000 tok/s prefill、1200 tok/s decode。\n\n我第一反应:这不是扯淡吗?\n\n---\n\n## 卧槽体体验:翻车了吗?\n\n还真没有。作者在HN帖子下面贴了benchmark,Needle单挑FunctionGemma-270M、Qwen-0.6B、Granite-350M这些比它大10倍的模型,单次函数调用场景下直接胜出。\n\n跑了一下他们的demo,在MacBook Air上跑本地推理,响应速度确实离谱地快。工具调用、参数提取、JSON生成,一气呵成,延迟基本无感。\n\n核心代码就这么点:\n\npython\n# 伪代码感受一下结构\nmodel = SimpleAttentionNetwork(\n encoder_layers=12, # 工具编码器,纯Self-Attention,无FFN\n decoder_layers=8, # Cross-Attention + Gated Residual\n d_model=512,\n heads=8\n)\n# 没有 FFN,没有 MLP,Attention is all you need(字面意思)\n\n\n数据集用Gemini合成了15类工具(计时、导航、智能家居、发消息等),200B tokens预训练 + 2B tokens函数调用微调,45分钟训完。\n\n---\n\n## 技术本质:这不是魔法,是思路对了\n\nFFN在Transformer里干嘛的?非线性特征变换——把token embedding变来变去,靠的是"记住海量知识"。\n\n但函数调用这事儿,压根不需要你背知识啊!\n\n你说"帮我查北京天气",模型只需要:\n1. 认识"天气"→找到get_weather工具\n2. 认识"北京"→提取location=\"北京\"\n3. 组装JSON输出\n\n全是对齐和拷贝——cross-attention的强项。FFN在那儿记忆天气数据?完全浪费。\n\n作者管这叫Simple Attention Networks,论文还在arXiv上躺着,说白了就是:如果你的任务能靠外部知识(RAG、工具调用、检索增强),FFN参数就是洗澡水,连带着把模型体积、推理延迟、显存占用全给省了。\n\n这和当年ResNet用skip connection减少梯度消失一个思路——不是更聪明了,是把没用对地方的冗余砍掉了。\n\n---\n\n## 实用性判断:能干啥?\n\n说实话,现在就能用:\n\n- 手机/手表上的本地AI助手,函数调用不用联网\n- 树莓派跑个智能家居中枢,延迟低到无感\n- 硬件受限场景的Agent执行层\n- 直接在消费级GPU上微调你自己的工具集\n\n模型已开源: https://huggingface.co/Cactus-Compute/needle ,MIT协议,自己去下。\n\n不过有个细节:他们测的是单次函数调用,多轮对话和复杂推理场景,这些大模型还是更强。毕竟FFN不是白长的,人家记住了知识是能用的。\n\n---\n\n## 泼冷水:3个月后最大问题\n\n好了夸完了,说个冷的。\n\n3个月后,这个模型最大的问题会是:工具生态扩展的瓶颈。\n\n说白了,26M能打的本质是工具少、数据精。一旦你要调用10个、20个工具,而且这些工具没有在训练数据里出现过——模型就抓瞎了。它没有FFN帮你记住那些"长尾工具",泛化能力靠cross-attention硬拉,是有上限的。\n\n作者自己也说鼓励社区去微调,但微调数据合成这事,Gemini的蒸馏质量就是天花板了。你想加新工具?得重新合成数据、重新微调,这事儿不比训练个大模型轻松。\n\n所以现阶段,它更适合垂直场景固定的使用——比如某个特定App的本地Agent,想象空间有,但别当成通用解。\n\n---\n\n好了,今天就聊到这儿。有兴趣的去GitHub翻翻文档,HN上154条评论,比我分析得深多了。\n\n链接:https://github.com/cactus-compute/needle\n
浙公网安备 33010602011771号