[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-mit-han-lab--tiny-training":3,"tool-mit-han-lab--tiny-training":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":79,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":92,"forks":93,"last_commit_at":94,"license":95,"difficulty_score":96,"env_os":97,"env_gpu":98,"env_ram":99,"env_deps":100,"category_tags":105,"github_topics":106,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":110,"updated_at":111,"faqs":112,"releases":113},4092,"mit-han-lab\u002Ftiny-training","tiny-training","On-Device Training Under 256KB Memory [NeurIPS'22]","tiny-training 是一个专为微型设备设计的开源训练框架，旨在让深度学习模型能够在内存极小的边缘设备上直接进行训练。传统上，神经网络训练依赖云端强大的算力与内存，而 tiny-training 成功突破了这一限制，实现了在仅需 256KB 内存的设备上完成模型训练，其内存占用不到主流框架 PyTorch 的千分之一，同时仍能保持相当的准确率。\n\n该工具主要解决了边缘设备因内存严重受限（相比 GPU 小约 5 万倍）而无法本地更新模型的难题，特别适用于物联网传感器、微型摄像头等资源极度匮乏的场景。它非常适合嵌入式系统开发者、TinyML 研究人员以及希望探索端侧智能的工程师使用。\n\ntiny-training 的核心技术亮点在于“系统 - 算法协同设计”：一方面提出了量化感知缩放（QAS）和稀疏更新算法，自动稳定梯度并跳过冗余计算；另一方面构建了 Tiny Training Engine (TTE)，将自动微分从运行时移至编译时，并通过代码生成技术极大降低了运行开销。这使得在微型控制器上高效训练深度学习模型成为现实，推动了真正的全栈端侧学习发展。","# On-Device Training Under 256KB Memory \n\n### [[TinyML Project Website]](https:\u002F\u002Fhanlab.mit.edu\u002Fprojects\u002Ftinyml) | [[Paper]](https:\u002F\u002Farxiv.org\u002Fabs\u002F2206.15472) | [[Website]](https:\u002F\u002Fhanlab.mit.edu\u002Fprojects\u002Fmcunetv3) | [[YouTube]](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=0pUFZYdoMY8) | [[BiliBili]](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1qv4y1d7MV)\n\n\n![demo_v3](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmit-han-lab_tiny-training_readme_b59642e889a5.gif)\n\n# News\nIf you are interested in getting updates, please sign up [here](https:\u002F\u002Fforms.gle\u002FUW1uUmnfk1k6UJPPA) to get notified.\n\n* [03\u002F06\u002F2024] We release a [new demo video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=0pUFZYdoMY8) of [On-Device Training Under 256KB Memory](https:\u002F\u002Farxiv.org\u002Fabs\u002F2206.15472).\n* [10\u002F13\u002F2023] [Tiny Machine Learning: Progress and Futures \\[Feature\\]](https:\u002F\u002Fhanlab.mit.edu\u002Fprojects\u002Ftinyml-magazine) appears at IEEE CAS Magazine.\n* [11\u002F28\u002F2022] Our poster session is on Wed Nov 30 11:00 am-1:00 pm (New Orleans time)@ Hall J #702. Stop by if you are interested!\n* [10\u002F04\u002F2022] Our paper on tiny on-device training is highlighted on the [MIT homepage](http:\u002F\u002Fweb.mit.edu\u002Fspotlight\u002Flearning-edge\u002F)!\n* [09\u002F16\u002F2022] Our paper is accepted to NeurIPS 2022!\n* [06\u002F30\u002F2022] Our [paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2206.15472) is released on arXiv.\n\n# Overview\n\nIn the past, DNNs training happens on the cloud. Can we learn on the edge? The large memory usage is the challenge. The tight memory budget (50,000x smaller than GPUs) makes deep learning deployment difficult even for inference, let alone training.\n\n![teaser](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmit-han-lab_tiny-training_readme_f055d7e7dc9d.png)\n\nIn this work, we enable on-device training under 256KB memory, using less than 1\u002F1000 memory of PyTorch while matching the accuracy on the visual wake words application using **system-algorithm co-design**. \n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmit-han-lab_tiny-training_readme_65c6555439e6.png)\n\nOur work contains three parts to achieve efficient on-device training: \n1. Quantization-aware scaling and sparse update (algorithm)\n2. Compile-time autodiff and system support for sparse update (system)\n3. Codegen with TinyEngine backend (system)\n\nIf you are interested in the full-stack optimization of the system, you can go over each step one by one. If you are only interested in building a tiny training demo, you may directly refer to [Tiny Training Engine](https:\u002F\u002Fgithub.com\u002Fmit-han-lab\u002Ftinyengine\u002Ftree\u002Fmaster\u002Ftutorial\u002Ftraining) for the demo setup.\n\n## 1. Quantization-aware Scaling (QAS) and Sparse Update\n\nIn order to optimize a real quantized graph (see difference below),  we propose Quantization-aware Scaling (QAS) to automatically scale the gradient, which effectively stabilizes the training and matches the FP32 accuracy \n\n\u003Cp align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmit-han-lab_tiny-training_readme_d9059eec9acc.png\" width=\"80%\">\n\u003C\u002Fp>\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmit-han-lab_tiny-training_readme_41205e6eb5fb.png)\n\nWe further design sparse layer and sparse tensor update to skip the gradient computation of less important layers and sub-tensors, where the best sparsity under varying memory budgets  is find an automated method based on the contribution analysis.\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmit-han-lab_tiny-training_readme_39cf970f77d0.png)\n\nWe provides scripts to evaluate the accuracy of QAS and Sparse Update in the [algorithm](algorithm\u002F) folder, and we will use the pretrained models and sparse update scheme for our next step compilation.\n\n## 2. Compile-time Autodiff and System Support for Sparse Update\n\nAnother highlight of our work is Tiny Training Engine (TTE), which offloads auto-diff from run-time to compile-time and uses codegen to minimize run-time overhead. It also supports graph pruning and reordering to support sparse updates, translating the theoretical numbers into measured memory saving and speedup.\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmit-han-lab_tiny-training_readme_2318c6e137d9.png)\n\nThe code related to compilation, autodiff, and system support for sparse update are provided in the [compilation](compilation\u002F) folder. It will translate the pytorch models into an intermediate representation (IR), perform the autodiff at compile-time, and the apply the sparse update rules to reduce memory usage. Finally, the pruned training graph will be translated into a JSON file to ease MCU deployment.\n\n## 3. Codegen with TinyEngine Backend\n\nAfter obtaining the JSON representation of training graphs, the next step is to follow the [tutorial in Tiny Training Engine](https:\u002F\u002Fgithub.com\u002Fmit-han-lab\u002Ftinyengine\u002Ftree\u002Fmaster\u002Ftutorial\u002Ftraining) to deploy the model to the MCU to compile the demo shown at the beginning. Our optimized kernels and co-designs not only enable training under 256KB but also achieve faster speed than conventional implementations such as TF-Lite.\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmit-han-lab_tiny-training_readme_4f73cf643fa1.png)\n\n## Citation\n\n```\n @inproceedings{lin2022ondevice,\n    title     = {On-Device Training Under 256KB Memory},\n    author    = {Lin, Ji and Zhu, Ligeng and Chen, Wei-Ming and Wang, Wei-Chen and Gan, Chuang and Han, Song},\n    booktitle = {Annual Conference on Neural Information Processing Systems (NeurIPS)},\n    year      = {2022}\n} \n```\n\n## Related Work\n\n* [MCUNet: Tiny Deep Learning on IoT Devices](https:\u002F\u002Fhanlab.mit.edu\u002Fprojects\u002Fmcunet) (NeurIPS'20)\n* [MCUNetV2: Memory-Efficient Patch-based Inference for Tiny Deep Learning](https:\u002F\u002Fhanlab.mit.edu\u002Fprojects\u002Fmcunetv2) (NeurIPS'21)\n* [TinyTL: Reduce Activations, Not Trainable Parameters for Efficient On-Device Learning](https:\u002F\u002Ftinytl.mit.edu\u002F) (NeurIPS'20)\n* [Network Augmentation for Tiny Deep Learning](https:\u002F\u002Fgithub.com\u002Fmit-han-lab\u002Ftinyml\u002Fraw\u002Fmaster\u002Fnetaug\u002Ffigures\u002Ffig3.png) (ICLR'22)\n\n\n## License\n\nThis repository is released under the MIT license. See [LICENSE](LICENSE) for additional details.\n","# 256KB内存下的设备端训练\n\n### [[TinyML项目官网]](https:\u002F\u002Fhanlab.mit.edu\u002Fprojects\u002Ftinyml) | [[论文]](https:\u002F\u002Farxiv.org\u002Fabs\u002F2206.15472) | [[网站]](https:\u002F\u002Fhanlab.mit.edu\u002Fprojects\u002Fmcunetv3) | [[YouTube]](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=0pUFZYdoMY8) | [[B站]](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1qv4y1d7MV)\n\n\n![demo_v3](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmit-han-lab_tiny-training_readme_b59642e889a5.gif)\n\n# 最新消息\n如果您希望获取最新动态，请在此 [注册](https:\u002F\u002Fforms.gle\u002FUW1uUmnfk1k6UJPPA) 以接收通知。\n\n* [2024年3月6日] 我们发布了关于[256KB内存下的设备端训练](https:\u002F\u002Farxiv.org\u002Fabs\u002F2206.15472)的[新演示视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=0pUFZYdoMY8)。\n* [2023年10月13日] IEEE CAS杂志刊登了[微型机器学习：进展与未来 \\[专题\\]](https:\u002F\u002Fhanlab.mit.edu\u002Fprojects\u002Ftinyml-magazine)。\n* [2022年11月28日] 我们的海报展示将于11月30日星期三上午11:00至下午1:00（新奥尔良时间）在J厅702号展位进行。欢迎感兴趣的朋友前来参观！\n* [2022年10月4日] 我们关于微型设备端训练的论文被MIT主页[重点推荐](http:\u002F\u002Fweb.mit.edu\u002Fspotlight\u002Flearning-edge\u002F)！\n* [2022年9月16日] 我们的论文已被NeurIPS 2022接收！\n* [2022年6月30日] 我们的[论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2206.15472)已在arXiv上发布。\n\n# 概述\n\n过去，深度神经网络的训练通常在云端进行。那么，我们能否在边缘设备上进行学习呢？最大的挑战在于内存占用过大。由于内存预算非常有限（比GPU小5万倍），即使仅进行推理也十分困难，更不用说训练了。\n\n![teaser](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmit-han-lab_tiny-training_readme_f055d7e7dc9d.png)\n\n在本工作中，我们通过**系统-算法协同设计**，实现了在256KB内存限制下的设备端训练，所用内存不到PyTorch的千分之一，同时在视觉唤醒词应用上的准确率与之相当。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmit-han-lab_tiny-training_readme_65c6555439e6.png)\n\n我们的工作包含三个关键部分，以实现高效的设备端训练：\n1. 量化感知缩放与稀疏更新（算法）\n2. 编译时自动微分及对稀疏更新的系统支持（系统）\n3. 使用TinyEngine后端的代码生成（系统）\n\n如果您对系统的全栈优化感兴趣，可以逐一了解每个步骤；若您只想快速搭建一个小型训练演示，则可以直接参考[Tiny Training Engine](https:\u002F\u002Fgithub.com\u002Fmit-han-lab\u002Ftinyengine\u002Ftree\u002Fmaster\u002Ftutorial\u002Ftraining)中的示例设置。\n\n## 1. 量化感知缩放（QAS）与稀疏更新\n\n为了优化真实的量化图（见下文对比），我们提出了量化感知缩放（QAS）方法，用于自动调整梯度大小，从而有效稳定训练过程，并达到与FP32精度相当的效果。\n\n\u003Cp align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmit-han-lab_tiny-training_readme_d9059eec9acc.png\" width=\"80%\">\n\u003C\u002Fp>\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmit-han-lab_tiny-training_readme_41205e6eb5fb.png)\n\n此外，我们还设计了稀疏层和稀疏张量更新机制，跳过不重要层和子张量的梯度计算。针对不同内存预算，我们基于贡献度分析，自动确定最佳的稀疏化程度。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmit-han-lab_tiny-training_readme_39cf970f77d0.png)\n\n我们在[算法](algorithm\u002F)文件夹中提供了评估QAS和稀疏更新准确性的脚本，并将使用预训练模型和稀疏更新方案来进行下一步的编译工作。\n\n## 2. 编译时自动微分及对稀疏更新的系统支持\n\n我们工作的另一大亮点是Tiny Training Engine（TTE），它将自动微分从运行时移至编译时，并通过代码生成来最小化运行时开销。同时，TTE还支持图剪枝和重排序，以实现稀疏更新，从而将理论上的节省转化为实际的内存占用减少和速度提升。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmit-han-lab_tiny-training_readme_2318c6e137d9.png)\n\n与编译、自动微分及稀疏更新系统支持相关的代码位于[编译](compilation\u002F)文件夹中。这些代码会将PyTorch模型转换为中间表示（IR），在编译时完成自动微分，并应用稀疏更新规则以降低内存使用。最后，经过剪枝的训练图会被转换为JSON文件，便于在MCU上部署。\n\n## 3. 使用TinyEngine后端的代码生成\n\n获得训练图的JSON表示后，下一步就是按照[Tiny Training Engine教程](https:\u002F\u002Fgithub.com\u002Fmit-han-lab\u002Ftinyengine\u002Ftree\u002Fmaster\u002Ftutorial\u002Ftraining)将模型部署到MCU上，从而完成开头展示的演示。我们优化后的内核和协同设计不仅使训练能够在256KB内存限制下进行，还比传统的实现方式（如TF-Lite）更快。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmit-han-lab_tiny-training_readme_4f73cf643fa1.png)\n\n## 引用\n```\n @inproceedings{lin2022ondevice,\n    title     = {On-Device Training Under 256KB Memory},\n    author    = {Lin, Ji and Zhu, Ligeng and Chen, Wei-Ming and Wang, Wei-Chen and Gan, Chuang and Han, Song},\n    booktitle = {Annual Conference on Neural Information Processing Systems (NeurIPS)},\n    year      = {2022}\n} \n```\n\n## 相关工作\n* [MCUNet：物联网设备上的微型深度学习](https:\u002F\u002Fhanlab.mit.edu\u002Fprojects\u002Fmcunet)（NeurIPS'20）\n* [MCUNetV2：面向微型深度学习的高效内存占用补丁式推理](https:\u002F\u002Fhanlab.mit.edu\u002Fprojects\u002Fmcunetv2)（NeurIPS'21）\n* [TinyTL：减少激活值而非可训练参数以实现高效设备端学习](https:\u002F\u002Ftinytl.mit.edu\u002F)（NeurIPS'20）\n* [用于微型深度学习的网络增强技术](https:\u002F\u002Fgithub.com\u002Fmit-han-lab\u002Ftinyml\u002Fraw\u002Fmaster\u002Fnetaug\u002Ffigures\u002Ffig3.png)（ICLR'22）\n\n\n## 许可证\n本仓库采用MIT许可证开源。更多详情请参阅[LICENSE](LICENSE)文件。","# tiny-training 快速上手指南\n\n`tiny-training` 是一个旨在在极低内存（\u003C256KB）的微控制器（MCU）上进行深度学习模型训练的开源自适应工具。本项目通过“系统 - 算法协同设计”，实现了比 PyTorch 少用 1000 倍内存的端侧训练能力。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu 18.04\u002F20.04) 或 macOS。Windows 用户建议使用 WSL2。\n*   **Python 版本**: Python 3.7 - 3.9\n*   **核心依赖**:\n    *   PyTorch (用于模型定义与算法验证)\n    *   GCC \u002F Clang (用于编译后端)\n*   **硬件目标 (可选)**: 如需在物理设备上运行演示，需准备支持 CMSIS-NN 的 MCU 开发板（如 Arduino Nano BLE Sense, STM32 等）及对应的烧录工具链。\n\n> **提示**：国内开发者安装 PyTorch 时，推荐使用清华或中科大镜像源以加速下载。\n\n## 安装步骤\n\n1.  **克隆仓库**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fmit-han-lab\u002Ftiny-training.git\n    cd tiny-training\n    ```\n\n2.  **创建虚拟环境并安装依赖**\n    ```bash\n    python3 -m venv venv\n    source venv\u002Fbin\u002Factivate\n    \n    # 使用国内镜像源安装 PyTorch (CPU 版本示例，如需 GPU 请调整)\n    pip install torch torchvision torchaudio --index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcpu\n    \n    # 安装项目其他依赖\n    pip install -r requirements.txt\n    ```\n\n3.  **验证算法模块 (可选)**\n    如果您仅关注算法验证（量化感知缩放 QAS 和稀疏更新），可直接在 `algorithm\u002F` 目录下运行评估脚本：\n    ```bash\n    cd algorithm\n    python eval_qas_sparse.py\n    ```\n\n## 基本使用\n\n本项目分为**算法验证**、**编译优化**和**端侧部署**三个阶段。对于大多数希望快速构建演示的用户，核心流程是将 PyTorch 模型转换为可在 MCU 上运行的训练图。\n\n### 1. 模型编译与自动微分 (Compile-time Autodiff)\n\n将预训练的 PyTorch 模型转换为中间表示 (IR)，并在编译时执行自动微分和图剪枝，以生成优化的训练图。\n\n```bash\ncd compilation\n\n# 示例：将模型转换为 IR 并应用稀疏更新规则\n# 请根据实际模型路径调整参数\npython compile_training_graph.py \\\n    --model_path ..\u002Falgorithm\u002Fpretrained_model.pth \\\n    --output_path training_graph.json \\\n    --sparsity_ratio 0.5\n```\n*执行成功后，将在当前目录生成 `training_graph.json`，该文件包含了优化后的训练计算图。*\n\n### 2. 端侧部署 (Codegen with TinyEngine)\n\n利用生成的 JSON 文件，通过 `TinyEngine` 后端生成 C 代码并部署到 MCU。详细的部署教程位于独立的 `tinyengine` 子模块中。\n\n```bash\n# 进入 TinyEngine 训练教程目录\n# 注意：这需要初始化子模块或单独克隆 tinyengine 仓库\ngit submodule update --init --recursive\ncd ..\u002Ftinyengine\u002Ftutorial\u002Ftraining\n\n# 按照以下步骤生成代码并编译固件\n# 1. 导入上一步生成的 JSON 文件\n# 2. 生成针对特定 MCU 的 C 代码\n# 3. 使用 make 编译固件\nmake BOARD=arduino_nano_ble33_sense\n```\n\n### 3. 运行演示\n\n将编译好的固件烧录至开发板。设备上电后，即可在 \u003C256KB 内存限制下，利用本地采集的数据（如图像传感器数据）进行实时模型微调训练。\n\n*   **观察指标**：通过串口监视器查看训练损失下降情况及内存峰值占用。\n*   **参考视频**：[YouTube 演示](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=0pUFZYdoMY8) | [Bilibili 演示](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1qv4y1d7MV)\n\n---\n*更多高级配置（如自定义稀疏策略、算子融合优化）请参考仓库中 `algorithm\u002F` 和 `compilation\u002F` 目录下的详细文档。*","一家农业科技公司正在为偏远农场的害虫监测摄像头开发自适应识别系统，希望设备能根据当地新出现的害虫种类在本地进行模型微调。\n\n### 没有 tiny-training 时\n- 摄像头必须将采集的新图像上传至云端训练，但在网络信号极差的田间地头，数据传输经常失败或延迟高达数小时。\n- 若强行在现有的低成本微控制器（MCU）上运行传统训练框架，内存需求远超 256KB 限制，导致设备直接崩溃无法工作。\n- 为了妥协，团队只能预置通用模型，无法针对特定农场的害虫分布进行优化，导致误报率居高不下。\n- 每次更新模型都需要工程师现场刷写固件，维护成本高昂且响应速度完全跟不上虫情的快速变化。\n\n### 使用 tiny-training 后\n- 借助 tiny-training 的系统 - 算法协同设计，摄像头可直接在 256KB 内存限制下完成本地训练，彻底摆脱对云端和网络连接的依赖。\n- 通过量化感知缩放（QAS）和稀疏更新技术，设备仅计算关键梯度的子集，在极低功耗下实现了与云端训练相当的识别准确率。\n- 编译时自动微分机制将运行时开销降至最低，使得普通 MCU 也能在几分钟内完成对新害虫特征的自适应学习。\n- 农场主无需任何代码知识，设备即可根据实时捕捉到的图像自动迭代模型，实现“越用越准”的个性化监测。\n\ntiny-training 通过将深度学习训练能力压缩进极小的内存空间，真正实现了边缘设备在无网环境下的自主进化与实时适应。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmit-han-lab_tiny-training_65c65554.png","mit-han-lab","MIT HAN Lab","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmit-han-lab_65e6a38d.png","Efficient AI Computing. PI: Song Han",null,"songhan_mit","https:\u002F\u002Fhanlab.mit.edu","https:\u002F\u002Fgithub.com\u002Fmit-han-lab",[84,88],{"name":85,"color":86,"percentage":87},"Python","#3572A5",99.3,{"name":89,"color":90,"percentage":91},"Shell","#89e051",0.7,516,72,"2026-04-01T01:07:15","MIT",4,"未说明","不需要 GPU。该工具专为微控制器 (MCU) 设计，旨在在低于 256KB 内存的设备上进行训练，无需显卡或 CUDA 支持。","开发环境未说明；目标运行设备内存 \u003C 256KB。",{"notes":101,"python":97,"dependencies":102},"该项目采用系统 - 算法协同设计，将训练时的自动微分从运行时卸载到编译时。主要流程是在主机上将 PyTorch 模型转换为中间表示 (IR) 并应用稀疏更新规则，最终生成 JSON 文件部署到 MCU。虽然训练发生在端侧，但模型编译和优化过程需要在常规计算机上完成。",[103,104],"PyTorch (用于模型转换和编译时自动微分)","TinyEngine (后端代码生成引擎)",[13],[107,108,109],"edge-ai","on-device-training","learning-on-the-edge","2026-03-27T02:49:30.150509","2026-04-06T09:03:54.358968",[],[]]