SHADOW 50M: 一个19.8 MB的模型,能精确计算并从磁盘记忆 [P]

Reddit r/MachineLearning 模型

摘要

SHADOW 50M 是一个紧凑的44M参数AI模型,具有三元权重和固定的512位代码,在45B令牌上从头训练,能够在消费硬件上高速进行离线推理。

三周前我发布了 SHADOW 250M:这里360个赞,r/LocalLLaMA上293个,23万浏览,94个星标,8个分支。谢谢。我费力学到的一件事是:Hugging Face 显示零下载量长达两周,因为它没有计算我们的 .shdw 文件。我们向 Hub 提交了修复,已合并,现在计数器正常工作了。那篇帖子带来的最好收获是一个意想不到的拉取请求。一个叫 engram-forge 的人为 250M 编写了 CUDA 引擎、一个量化教程,然后更进一步,他把模型装进了一个小猪佩奇毛绒玩具里。一个麦克风、一个小扬声器、一块35美元的板子,整个装置离线运行。你对着玩具说话,它倾听,250M 在那个小板子上思考答案,然后玩具回话。无需云端、无需账户、无需互联网,一个语言模型藏在架子上的毛绒玩具里。这正是我构建这些模型的目的,我打算自己尝试构建一个。engram-forge,谢谢 我说明一下。这是MIT许可。你可以取用模型、内核、磁盘记忆、微调套件,并随心所欲地发布它,闭源或开源,无需许可。为在客户机器上运行的小产品提供记忆层,一个路由器读取请求并选择哪个大模型处理它,像仓库中的记账适配器那样的领域适配器,你自己的邮件服务器上的垃圾邮件过滤器,像 engram-forge 展示的玩具中的语音助手,眼镜或手机应用记住你放钥匙的地方。如果它有用,提一下 SHADOW 会让我很开心。如果你不愿意,那也没关系 我将发布所有内容,包括训练代码、数据集、表格,并且我想花时间以我自己的方式写出来,而不是作为论文。它的成本是什么,以及我如何自己管理资金和时间。我如何使用 Hugging Face 来保存语料库和检查点,这样即使一个租用的容器挂了,也不会影响训练运行。我如何选择语料库。冻结表是如何构建的,通过遍历训练语料库并保留覆盖99%的行,以及这些行是如何压缩到512位的。单遍处理:在第一个令牌之前,46B令牌堆中的每个令牌都被计数、封装,并设置在步骤0的读数上作为冻结先验,这样模型一开始就知道哪些词是常见的,并将训练集中在其他内容上。现实是,没有书、没有论文、没有参考实现。我必须从头构建,相信我,一旦你开始,再多的编码技能或阅读也无法让你准备好。那篇文章是下一次发布。 代码和所有内容:https://github.com/QLNI/SHADOW-50M-Instruct 权重:https://huggingface.co/QLNI/shadow-50m-instruct 在你的浏览器中试用:https://qlni.github.io/SHADOW-50M-Instruct/web SHADOW 50M 有44M参数,在45B令牌上从头训练。三元权重。没有训练的嵌入:每个令牌都有一个固定的512位代码。整个模型是一个19.8 MB的文件和一个159 KB的可执行文件。在笔记本电脑CPU上,使用40 MB内存,离线速度约为每秒2,000个令牌。相同的内核在WebAssembly中运行在你的浏览器中,速度约为每秒500个令牌。基准测试在仓库中。 两个版本。第一个版本无法拼写许多小写名称,因为表格缺少8,600个英语片段。每次我试图修复它的微调都破坏了其他东西。所以我在没有训练的情况下将这8,600行添加到冻结表中。每个发布的答案都保持不变,对这些名称的召回率从0提高到60中的46。你不能在不重新训练的情况下对学习的嵌入做这件事。那是版本1.1。 它是如何工作的。 表格。普通模型为每个词学习一个向量。SHADOW为每个令牌提供一个固定的512位代码,像条形码一样,选择一次且永不训练。相似的词获得相似的代码:在人类词汇相似性测试中得分为0.594,而浮点向量得分为0.65到0.70,且位数少19倍。 电路。问一个大模型347乘86是多少,它会一个一个地猜测数字。SHADOW用自己的令牌写[calc]347*86[eq],然后一个电路在向前传播中接管:它强制正确的数字,然后是下一个,再下一个。没有调用工具,没有任何东西粘贴回提示中,速度相同。模型决定何时触及和写什么。电路处理数字。 记忆。普通检索找到一个段落,将其粘贴到提示中,模型从头开始阅读。SHADOW以不同方式做,分两部分。当记录存储时,模型读取一次,其注意力状态,即阅读后脑中的内容,被写入磁盘,压缩到1位,每个令牌288字节。记录中的标识符,如Vault-418,进入磁盘上的一个小索引,每个令牌22字节。没有向量数据库。后来,当模型写[need]count of Vault-418时,内核在大约一微秒内查找该词,存储的注意力状态在0.03毫秒内直接返回模型。无需重新阅读。要清楚,这不是通常意义上的KV缓存。普通模型在VRAM中保留其整个上下文的注意力状态,全部、始终,当上下文结束时它就消失。SHADOW的在磁盘上,会话之间保持不变,模型只读回它请求的记录,数百万中的几百个令牌。其余的从未离开磁盘。在1亿令牌时,这是28.8 GB的注意力状态和2.2 GB的索引在硬盘上,索引在5秒内构建,进程仍使用28 MB的RAM,因为两个文件都是内存映射的。每次获取的记录被引用时,其索引条目在文件本身中增加一,这样下次相同的问题更快更确定地找到它。在重复问题上,这使top-1从0.571提高到0.743。 十七个问题,未编辑。发布内核的贪婪输出 与它共处。 **1.** 你是谁? 我是SHADOW 50M,一个在本地CPU上运行的小语言模型,无需互联网。 **2.** 日本的首都是哪里? 根据我的知识:日本的首都是东京。 **3.** 谁写了《罗密欧与朱丽叶》? 根据我的知识:威廉·莎士比亚写了《罗密欧与朱丽叶》。 **4.** 告诉我一个关于电脑的简短笑话。 为什么电脑去看医生?因为它有病毒。 **5.** 写一首关于雨的短诗。 雨落在柔软、冰冷的天花板上。 每个电路,作为一个文字题。 6. 我有3本书,又买了5本。现在我有多少本书? 它写了[calc]3+5[eq]8[ecalc]并回答:你有8本书。 7. 我的账单是240美元。15%是多少? [calc]pct:15% of 240[eq]36[ecalc] 36美元。 8. 2026年12月20日之后45天是几号? [calc]cal:Dec20+45d[eq]February 3[ecalc] 2027年2月3日。 9. 我的考试在2026年3月14日。那天是星期几? [calc]dow:Mar14[eq]Saturday[ecalc] 星期六。 10. 我的行李箱重23公斤。那是多少磅? [calc]unit:23kg>lb[eq]50.7[ecalc] 50.7磅。 11. 字母s在mississippi中出现多少次? [calc]count:s in mississippi[eq]4[ecalc] 4次。 12. 从小到大排序:84, 19, 507, 3, 261。 [calc]cmp:sort 84,19,507,3,261[eq]3,19,84,261,507[ecalc] 3,19,84,261,507。 13. 取200,加50,减30,乘以3,然后加9。 [calc]200+50[eq]250[ecalc] [calc]250-30[eq]220[ecalc] [calc]220*3[eq]660[ecalc] [calc]660+9[eq]669[ecalc] 669。 从它在磁盘的记忆中。 八条记录,其中三条关于患者: 患者 P-204 状况:哮喘。 患者 P-204 过敏:青霉素。 患者 R-118 状况:高血压。 患者 R-118 过敏:未记录。 样本 K-77 重量(公斤):12。 样本 K-77 温度(摄氏度):21。 包裹 M-3310 重量(公斤):40。 Vault-418 数量:3271。 14. 患者 P-204 的状况是什么? [need]condition of Patient P-204. [quote]pos=1: Patient P-204 condition: asthma. 患者 P-204 的状况是哮喘。 15. 患者 P-204 的过敏是什么? [need]allergen of Patient P-204. [quote]pos=2: Patient P-204 allergy: penicillin. 患者 P-204 的过敏是青霉素。 16. Lo
查看原文

相似文章

LiquidAI/LFM2.5-2.6B

Hugging Face Models Trending

Liquid AI released LFM2.5-2.6B, a 2.6B-parameter hybrid model optimized for on-device deployment with 128K context, agentic post-training, and fast inference (220 tok/s on Apple M5 Max) under 2.5GB memory.

Edge0/Edge0-35B-A3B-preview

Hugging Face Models Trending

Edge0-35B-A3B-preview 是一个稀疏的MoE模型,通过流式专家卸载和量化技术,实现移动设备上的高效AI推理,以低于3 GiB的内存达到15 tok/s的性能。