PicoLM项目在10美元硬件上用45MB内存运行10亿参数模型,通过极致优化挑战AI需依赖昂贵硬件的行业范式,证明边缘设备本地化AI的可行性。 ## 1. 突破性内存管理技术 - 采用mmap分层加载机制,仅将当前计算层权重保留在内存中,实现638MB模型仅占用45MB运行时内存 - 通过FP32转FP16软件转换节省KV缓存空间(40MB vs 88MB),并融合反量化与点积运算减少中间缓冲区 ## 2. 极简高效的工程实现 - 纯C语言2500行代码实现完整推理引擎,编译后仅80KB且零依赖 - 集成Flash Attention消除O(n)内存分配,预计算RoPE查表替代实时三角函数调用 - 在树莓派Zero 2W(15美元)实现2 token/s推理速度,x86平台达13.5 token/s ## 3. 边缘AI的实用化创新 - 支持KV缓存持久化减少74%重复prompt延迟,--json模式确保小模型输出合法JSON - 作为PicoClaw离线AI代理核心,实现完全本地化的工具调用能力(无需网络/API密钥) ## 4. 对AI发展路径的重新思考 - 挑战"参数越大越好"的主流叙事,10亿参数模型在嵌入式场景展现互补价值 - 证明云端大模型与边缘小模型可构成分层AI架构,后者解决实时性/隐私敏感需求 - 将LLM硬件门槛从数据中心降至10美元设备,推理成本趋近于零
10美元板子,45MB内存,跑10亿参数大模型:PicoLM把LLM推理拉到嵌入式极限
2026-05-06 19:21

10美元板子,45MB内存,跑10亿参数大模型:PicoLM把LLM推理拉到嵌入式极限

本文来自微信公众号: 歪睿老哥 ,作者:歪睿老哥,原文标题:《10美元板子,45MB内存,跑10亿参数大模型——PicoLM把LLM推理拉到嵌入式极限》


事情是这样的。


2026年2月19号,一个叫RightNow-AI的组织在GitHub上放了一个叫PicoLM的项目。


Star数今天刚到1500出头。项目说明只有一句话。


在一块10美元的板子上,用256MB内存跑一个10亿参数的大模型。


我点开README,往下滑了两屏,然后放下手机去倒了杯水。


回来之后又看了一遍。


先说具体数字。


这个项目用纯C11写了不到2500行代码,编译出来一个80KB的二进制文件,没有依赖,没有Python,没有云服务。



模型文件638MB存在磁盘上。程序启动后只占用45MB内存,就能跑完整个TinyLlama 1.1B的推理流程。


638MB的模型,45MB的运行时内存。这个比例听起来不太合理。


一个10亿参数的模型,参数量摆在那里,怎么可能用比模型小十倍多的内存跑起来?


答案是一种极其粗暴但又极其聪明的内存管理方式。模型文件通过mmap映射到内存空间,但不一次性加载。程序每次只从磁盘读取一层权重到RAM里,用完就释放。一层一层地翻,像翻书一样。


总共有22层。翻完一层,前向传播做一次,再翻下一层。模型文件永远躺在磁盘上,只有一层活在内存里。


这是它省内存的核心技巧。


但光靠mmap是不够的。


256MB的板子,45MB的运行时内存,剩下的空间还要装分词器、激活缓冲区、token概率表、RoPE查找表、KV缓存。


分词器占了4.5MB。FP16的KV缓存占了40MB。激活缓冲区0.14MB。logits表0.12MB。RoPE查找表0.03MB。加起来不到50MB。


其中40MB是KV缓存。Key和Value向量,22层,每层2048维,FP16格式。如果不用FP16,用FP32,这个KV缓存就会变成88MB。内存直接翻了一倍。



他们用纯软件的方式做了FP32到FP16的转换,不需要硬件FP16支持。一个fp32tofp16()函数就解决了。


还有别的骚操作。


注意力机制用的是Flash Attention的online softmax实现。传统的attention需要一个O(seq_len)的缓冲区来存注意力分数,在长上下文场景下这个缓冲区可能比模型权重还大。Flash Attention的单遍扫描消除了这个额外的O(n)内存分配。



前向传播里的点积运算,把反量化和点积融合到了一次循环里。vecdotq4Kf32()这个函数在反量化Q4_K格式权重的时候同时做累加,不需要一个中间float缓冲区。矩阵乘法的内存流量砍了一半。


前向传播里有RoPE位置编码,需要计算sin和cos值。他们不在线算。模型加载的时候就把所有位置的cos和sin值算好存在表里。每次前向传播直接查表,不用调用sinf()或者cosf()。一个token的热点循环里省掉了64次transcendental函数调用。


这些单独看可能都不是很惊人的优化。每个优化带来的收益可能也就是百分之几十。但把它们全部塞进一个2500行的C文件里,叠加效果就非常恐怖了。


原始C实现的推理速度是每秒1.6个token。加完所有优化之后,x86上跑到了每秒13.5个token,提升了8倍多。ARM板子上跑TinyLlama,Pi 5上大概10 tok/s,Pi Zero 2W上大概2 tok/s。


2 tok/s。两秒出一个词。在树莓派Zero 2W上,$15的板子。



说实话,我有点意外。


因为现在AI圈的主流叙事完全不是这个方向。


所有人都在比谁的模型更大,谁的显卡更快,谁的集群更贵。OpenAI在搞10000亿参数的模型。Google在训练5000亿参数的Gemini。Meta的Llama 4号称2万亿参数。GPU供不应求,H100一张卡卖到三四万美元,Rubin架构的B200更是抢疯了。


在这个叙事里,AI就是巨物。大模型需要大规模集群,需要昂贵的数据中心,需要稳定的高速网络。


但PicoLM说,不,也可以不一样。


一个10亿参数的模型,638MB的权重,45MB的内存,一块10块钱的板子。没有云,没有API key,不需要网络。完全离线。



它不是要替代NVIDIA。它解决的是完全不同的问题。


回到这个项目的设计目标。


PicoLM是作为PicoClaw的本地大脑构建的。PicoClaw是一个用Go写的超轻量级AI助手,运行在10美元硬件上。两者组合起来就是一个完全离线的AI代理,不需要云,不需要API密钥,不需要互联网,不需要月费。


PicoClaw的Agent循环会启动PicoLM作为子进程。消息从Telegram、Discord或者命令行进来,PicoClaw把它们格式化成chat template,通过管道传给picolm,然后从标准输出读取回复。



当需要工具调用时,PicoClaw会自动开启--json语法约束模式。这个模式在模型加载时预分析词表里的每个token——花括号增减量、方括号增减量、引号奇偶性——然后在生成过程中通过掩码保证输出的语法绝对正确。哪怕是从一个10亿参数的小模型里,也能输出格式完美的JSON。


这对于在极小硬件上做可靠的工具调用非常重要。


我翻了项目的架构图。



整个引擎就7个文件。


picolm.c是入口点加生成循环,273行。


model.h/c负责GGUF解析、mmap和推理,一个头文件加833行代码。


tensor.h/c做矩阵乘法、正则化、softmax和位置编码,342行。


quant.h/c做反量化和SIMD加速内核,674行。


tokenizer.h/c做BPE分词,约232行。


sampler.h/c做温度采样和top-p,约119行。


grammar.h/c做JSON语法约束,239行。


加起来不到2500行C代码。


一个完整的大模型推理引擎。



这个项目最打动我的地方,不是技术本身有多牛。


而是一个方向的选择。


过去十年,AI推理的优化方向基本只有一条路。更强大的GPU。更大的内存带宽。更好的量化方案。把模型塞进更大的集群里,用更好的分布式策略跑起来。


PicoLM走了一条相反的路。不是追求更大更快,而是追求更小更省。


它把LLM推理的硬件门槛从几千美元降到了10美元。从需要数据中心降到了需要一块树莓派。从需要API密钥降到了完全不需要任何外部服务。


它能做到什么呢?


你不再需要把数据发到云上才能用AI。你的智能家居设备、你的嵌入式传感器、你的离线终端,都可以有自己的本地AI能力。


推理成本从每token几分钱变成了零。


隐私不再是问题。所有的数据都在本地处理,不出设备。


这个方向其实早就有人在做。llama.cpp把同样的思路应用到了笔记本电脑上,Ollama让它变得更易用,MLX把它做成了Apple Silicon的原生支持。但PicoLM把这条路的终点推得更远。它把大模型推理推到了嵌入式设备。


256MB内存。10美元。纯C。零依赖。


这不是一个商业产品,这是一个技术宣言。


我其实一直在想一个问题。


大模型的能力到底跟参数量有多大关系?


OpenAI在堆参数,Google在堆参数,Meta在堆参数。大家都觉得模型越大越好。


但PicoLM跑的是TinyLlama 1.1B。10亿参数。比GPT-3小了900多倍。


它当然做不了写小说、做代码、做复杂推理这些事。但它的任务不是这些。它的任务是在资源极度受限的设备上,提供最基础的本地化AI能力。


这跟大模型跟小模型的关系有点像。大模型负责复杂推理和创造性工作,小模型负责本地、实时、隐私敏感的任务。两者不是替代关系,是互补关系。


未来的AI架构很可能是这样的。云端的大模型做深度推理和知识密集型任务。边缘端的小模型做实时响应和隐私敏感的任务。中间通过Agent协调,需要的时候调用云端,不需要的时候完全离线。


PicoLM就是这个小模型那一端的代表。


这个项目还有个很有意思的细节。


它支持KV cache持久化。--cache参数可以把prompt处理后的KV缓存状态保存到文件里。第二次用同样的prompt时,直接加载缓存,跳过prefill阶段。延迟减少了74%。


这个功能在工具调用的场景里特别实用。你不需要每次都让模型重新理解系统提示,把理解好的状态存下来,下次直接加载用。


还有JSON语法约束。--json模式下,即使模型只有10亿参数,也能输出格式完全合法的JSON。这对于工具调用非常关键。


这些小细节说明,PicoLM不只是在技术上做到了极致,在实用化方面也考虑得很周到。


读到这里,你可能已经猜到我要说什么了。


AI行业现在的主流叙事是越大越好。参数越多越好,集群越大越好,算力越贵越好。


PicoLM提供了一个完全不同的叙事。


越小越好。够用就行。把推理成本降到零。把数据留在本地。把AI的能力下沉到每一块最小的嵌入式板子上。


这两种叙事不是对立的。它们描述的是AI未来的两个方向。云端大模型负责复杂推理,边缘小模型负责实时响应。云端追求能力上限,边缘追求可及性。


而PicoLM证明了,边缘这条路不只是理论。10亿美元的板子,256MB的内存,一个80KB的二进制文件,就能跑一个10亿参数的大模型。


这玩意太牛逼了。

AI原生产品日报频道: 前沿科技
本内容来源于网络 原文链接,观点仅代表作者本人,不代表虎嗅立场。
如涉及版权问题请联系 hezuo@huxiu.com,我们将及时核实并处理。
正在改变与想要改变世界的人,都在 虎嗅APP