[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-quic--aimet":3,"tool-quic--aimet":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},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,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},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 真正成长为懂上",151314,2,"2026-04-11T23:32:58",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":76,"owner_website":77,"owner_url":78,"languages":79,"stars":118,"forks":119,"last_commit_at":120,"license":121,"difficulty_score":122,"env_os":123,"env_gpu":124,"env_ram":125,"env_deps":126,"category_tags":133,"github_topics":134,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":146,"updated_at":147,"faqs":148,"releases":177},10970,"quic\u002Faimet","aimet","AIMET is a library that provides advanced quantization and compression techniques for trained neural network models.","AIMET（AI Model Efficiency Toolkit）是一款专为提升深度学习模型运行效率而设计的开源软件库。它主要面向需要在移动端、笔记本电脑等边缘设备上部署模型的开发者与研究人员，帮助解决大型神经网络在资源受限环境中计算负载高、内存占用大以及推理速度慢的难题。\n\n通过提供先进的量化和压缩技术，AIMET 能将原本庞大的浮点模型转换为更轻量级的整数模型。这不仅能让模型体积缩小至原来的四分之一，还能在特定硬件（如高通 DSP）上实现数倍甚至十几倍的推理加速。许多用户在尝试模型量化时，往往面临精度大幅下降的挑战，而 AIMET 的独特之处在于其内置了“无数据量化”等创新算法，能够在无需原始训练数据的情况下进行后训练优化或微调，从而在大幅压缩模型的同时，最大限度地保持原有的识别准确率。\n\n此外，AIMET 支持 PyTorch 和 ONNX 主流框架，并提供友好的自动化 API，让用户可以直接在现有的开发流程中调用，避免了繁琐的手工参数调整。如果你希望让复杂的 AI 模型在手机或嵌入式设备上跑得更快、更省资源，同时又不想牺牲太多精度，AIMET 将是一个值得尝试的高效工具。","\n![Qualcomm Innovation Center, Inc.](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_da9a924d7dff.png)\n\n[\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_d462a974608c.png\" width=\"90\" height=\"40\">](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Findex.html)\n[\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_9992a4ab787a.png\" width=\"90\" height=\"40\">](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Findex.html)\n[\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_b02de13b5590.png\" width=\"90\" height=\"40\">](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Foverview\u002Finstall\u002Fquick-start.html)\n[\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_2e66a87174fa.png\" width=\"90\" height=\"40\">](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fdiscussions)\n[\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_05804b30d43f.png\" width=\"90\" height=\"40\">](https:\u002F\u002Fqualcomm-ai-hub.slack.com\u002Farchives\u002FC08JKBE0UHY)\n[\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_5f25396c548b.png\" width=\"90\" height=\"40\">](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Frelease_notes.html)\n\n# AI Model Efficiency Toolkit (AIMET)\n\n\u003Ca href=\"https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Findex.html\">AIMET\u003C\u002Fa> is a software toolkit for quantizing trained ML models.\n\nAIMET improves the runtime performance of deep learning models by reducing compute load and memory footprint.\nModels quantized with AIMET facilitate its deployment on edge devices like mobile phones or laptops by reducing memory footprint.\n\nAIMET employs post-training and fine-tuning techniques to minimize accuracy loss during quantization and compression.\nAIMET supports models from the ONNX and PyTorch frameworks.\n\n![How AIMET works](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_341296d46557.png)\n\nAIMET is designed to work with [PyTorch](https:\u002F\u002Fpytorch.org) and [ONNX](https:\u002F\u002Fonnx.ai) models.\n\nYou can find models quantized with AIMET on [Qualcomm AI Hub Models](https:\u002F\u002Fgithub.com\u002Fquic\u002Fai-hub-models) - a collection of optimized and quantized models.\n\n## Why AIMET?\n\n![Benefits of AIMET](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_9d62ae18d889.png)\n\n* **Advanced quantization techniques**: Inference using integer runtimes is significantly faster than using floating-point runtimes. For example, models run 5x-15x faster on the Qualcomm Hexagon DSP than on the Qualcomm Kyro CPU. In addition, 8-bit precision models have a 4x smaller footprint than 32-bit precision models. However, maintaining model accuracy when quantizing ML models is often challenging. AIMET solves this using novel techniques like Data-Free Quantization that provide state-of-the-art INT8 results on several popular models.\n* **Supports advanced model compression techniques** that enable models to run faster at inference-time and require less memory\n* **AIMET is designed to automate optimization** of neural networks avoiding time-consuming and tedious manual tweaking. AIMET also provides user-friendly APIs that allow users to make calls directly from their [PyTorch](https:\u002F\u002Fpytorch.org) pipelines.\n\nPlease visit the [AIMET on Github Pages](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Findex.html) for more details.\n\n## Quick Start\n\n[aimet-onnx](https:\u002F\u002Fpypi.org\u002Fproject\u002Faimet-onnx\u002F) and [aimet-torch](https:\u002F\u002Fpypi.org\u002Fproject\u002Faimet-torch\u002F) is available on PyPI.\n\nCheck our [Quick Start](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Foverview\u002Finstall\u002Fquick-start.html) to get started with latest AIMET package.\n\n### Build from source\n\nTo build the latest AIMET code from the source, see [Build, install and run AIMET from source in *Docker* environment](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Foverview\u002Finstall\u002Fbuild_from_source.html#build-from-source)\n\n\n## Supported Features\n\n### Post-Training Quantization(PTQ)\n\n[Check out guide](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Ftechniques\u002Fptq.html) to get started on PTQ technique.\n\nFollowing table summarizes basic technique such as `Calibration` to advanced techniques such as `SeqMSE` and `Adaptive Rounding(AdaRound)` that you can use with AIMET.\n\n| Technique | ONNX | PyTorch | What does it do? |\n| -- | -- | -- | -- |\n| [Calibration](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Ftechniques\u002Fptq.html) | ✅ | ✅ | Computes Quantization parameters |\n| [AdaRound](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Fptq_techniques\u002Fadaround.html) | ✅ | ✅ | Rounds quantized weights |\n| [SeqMSE](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Fptq_techniques\u002Fseq_mse.html) | ✅ | ✅ | Optimizes encodings for each layer |\n| [BatchNorm Folding](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Fptq_techniques\u002Fbnf.html) | ✅ | ✅ | Folds batchnorm to bridge the gap between simulation and on-target |\n| [Cross Layer Equalization](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Fptq_techniques\u002Fcle.html) | ✅ | ✅ | Rescales the weight to reduce range imbalance |\n| [BatchNorm re-estimation](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Fptq_techniques\u002Fbn.html) | ✅ | ✅ | Re-estimates batchnorm statistics |\n| [AdaScale](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Fptq_techniques\u002Fadascale.html) | ✅ | ✅ | Optimizes quantized weights |\n| [OmniQuant](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Fptq_techniques\u002Fomniquant.html) | ❌ | ✅ | Optimizes quantized weights |\n| [SpinQuant](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Fptq_techniques\u002Fspinquant.html) | ❌ | ✅ | Optimizes quantized weights |\n\n### Quantization Aware Training(QAT)\n\nAIMET supports Quantization Aware Training(QAT) via [aimet-torch](https:\u002F\u002Fpypi.org\u002Fproject\u002Faimet-torch\u002F).\n\nIf you want to use both QAT and some of the advanced [PTQ techniques from AIMET](#post-training-quantizationptq), we recommend the following workflow:\n\n![QAT workflow](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_8770fe805861.png)\n\nCheck detailed [QAT guide here](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Ftechniques\u002Fqat.html)\n\n### Model Compression\n\n* *Spatial SVD*: Tensor decomposition technique to split a large layer into two smaller ones\n* *Channel Pruning*: Removes redundant input channels from a layer and reconstructs layer weights\n* *Per-layer compression-ratio selection*: Automatically selects how much to compress each layer in the model\n\n### Visualization\n\n* *Weight ranges*: Inspect visually if a model is a candidate for applying the Cross Layer Equalization technique. And the effect after applying the technique\n* *Per-layer compression sensitivity*: Visually get feedback about the sensitivity of any given layer in the model to compression\n\n## Results\nAIMET can quantize an existing 32-bit floating-point model to an 8-bit fixed-point model without sacrificing much accuracy and without model fine-tuning.\n\n\u003Ch4>DFQ\u003C\u002Fh4>\n\nThe DFQ method applied to several popular networks, such as MobileNet-v2 and ResNet-50, result in less than 0.9% loss in accuracy all the way down to 8-bit quantization, in an automated way without any training data.\n\n\u003Ctable style=\"width:50%\">\n  \u003Ctr>\n    \u003Cth style=\"width:80px\">Models\u003C\u002Fth>\n    \u003Cth>FP32\u003C\u002Fth>\n    \u003Cth>INT8 Simulation \u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>MobileNet v2 (top1)\u003C\u002Ftd>\n    \u003Ctd align=\"center\">71.72%\u003C\u002Ftd>\n    \u003Ctd align=\"center\">71.08%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ResNet 50 (top1)\u003C\u002Ftd>\n    \u003Ctd align=\"center\">76.05%\u003C\u002Ftd>\n    \u003Ctd align=\"center\">75.45%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>DeepLab v3 (mIOU)\u003C\u002Ftd>\n    \u003Ctd align=\"center\">72.65%\u003C\u002Ftd>\n    \u003Ctd align=\"center\">71.91%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Cbr>\n\n\u003Ch4>AdaRound (Adaptive Rounding)\u003C\u002Fh4>\n\u003Ch5>ADAS Object Detect\u003C\u002Fh5>\n\u003Cp>For this example ADAS object detection model, which was challenging to quantize to 8-bit precision, AdaRound can recover the accuracy to within 1% of the FP32 accuracy.\u003C\u002Fp>\n\u003Ctable style=\"width:50%\">\n  \u003Ctr>\n    \u003Cth style=\"width:80px\" colspan=\"15\">Configuration\u003C\u002Fth>\n    \u003Cth>mAP - Mean Average Precision\u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd colspan=\"15\">FP32\u003C\u002Ftd>\n    \u003Ctd align=\"center\">82.20%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd colspan=\"15\">Nearest Rounding (INT8 weights, INT8 acts)\u003C\u002Ftd>\n    \u003Ctd align=\"center\">49.85%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd colspan=\"15\">AdaRound (INT8 weights, INT8 acts)\u003C\u002Ftd>\n    \u003Ctd align=\"center\" bgcolor=\"#add8e6\">81.21%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Ch5>DeepLabv3 Semantic Segmentation\u003C\u002Fh5>\n\u003Cp>For some models like the DeepLabv3 semantic segmentation model, AdaRound can even quantize the model weights to 4-bit precision without a significant drop in accuracy.\u003C\u002Fp>\n\u003Ctable style=\"width:50%\">\n  \u003Ctr>\n    \u003Cth style=\"width:80px\" colspan=\"15\">Configuration\u003C\u002Fth>\n    \u003Cth>mIOU - Mean intersection over union\u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd colspan=\"15\">FP32\u003C\u002Ftd>\n    \u003Ctd align=\"center\">72.94%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd colspan=\"15\">Nearest Rounding (INT4 weights, INT8 acts)\u003C\u002Ftd>\n    \u003Ctd align=\"center\">6.09%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd colspan=\"15\">AdaRound (INT4 weights, INT8 acts)\u003C\u002Ftd>\n    \u003Ctd align=\"center\" bgcolor=\"#add8e6\">70.86%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Cbr>\n\n\u003Ch4>Quantization for Recurrent Models\u003C\u002Fh4>\n\u003Cp>AIMET supports quantization simulation and quantization-aware training (QAT) for recurrent models (RNN, LSTM, GRU). Using QAT feature in AIMET, a DeepSpeech2 model with bi-directional LSTMs can be quantized to 8-bit precision with minimal drop in accuracy.\u003C\u002Fp>\n\n\u003Ctable style=\"width:50%\">\n  \u003Ctr>\n    \u003Cth>DeepSpeech2 \u003Cbr>(using bi-directional LSTMs)\u003C\u002Fth>\n    \u003Cth>Word Error Rate\u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>FP32\u003C\u002Ftd>\n    \u003Ctd align=\"center\">9.92%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>INT8\u003C\u002Ftd>\n    \u003Ctd align=\"center\">10.22%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Cbr>\n\n\u003Ch4>Model Compression\u003C\u002Fh4>\n\u003Cp>AIMET can also significantly compress models. For popular models, such as Resnet-50 and Resnet-18, compression with spatial SVD plus channel pruning achieves 50% MAC (multiply-accumulate) reduction while retaining accuracy within approx. 1% of the original uncompressed model.\u003C\u002Fp>\n\n\u003Ctable style=\"width:50%\">\n  \u003Ctr>\n    \u003Cth>Models\u003C\u002Fth>\n    \u003Cth>Uncompressed model\u003C\u002Fth>\n    \u003Cth>50% Compressed model\u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ResNet18 (top1)\u003C\u002Ftd>\n    \u003Ctd align=\"center\">69.76%\u003C\u002Ftd>\n    \u003Ctd align=\"center\">68.56%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ResNet 50 (top1)\u003C\u002Ftd>\n    \u003Ctd align=\"center\">76.05%\u003C\u002Ftd>\n    \u003Ctd align=\"center\">75.75%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Cbr>\n\n## Resources\n* [Documentation Main Page](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Findex.html)\n* [API Reference](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Fapiref\u002Findex.html)\n* [Discussion Forums](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fdiscussions)\n* [Slack](https:\u002F\u002Fqualcomm-ai-hub.slack.com\u002Farchives\u002FC08JKBE0UHY)\n* [Tutorial Videos](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Findex.html#video)\n* [Example Code](Examples\u002FREADME.md)\n\n## Contributions\nThanks for your interest in contributing to AIMET! Please read our [Contributions Page](CONTRIBUTING.md) for more information on contributing features or bug fixes. We look forward to your participation!\n\n## Team\nAIMET aims to be a community-driven project maintained by Qualcomm Innovation Center, Inc.\n\n## License\nAIMET is licensed under the BSD 3-clause \"New\" or \"Revised\" License. Check out the [LICENSE](LICENSE) for more details.\n","![高通创新中心公司](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_da9a924d7dff.png)\n\n[\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_d462a974608c.png\" width=\"90\" height=\"40\">](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Findex.html)\n[\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_9992a4ab787a.png\" width=\"90\" height=\"40\">](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Findex.html)\n[\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_b02de13b5590.png\" width=\"90\" height=\"40\">](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Foverview\u002Finstall\u002Fquick-start.html)\n[\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_2e66a87174fa.png\" width=\"90\" height=\"40\">](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fdiscussions)\n[\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_05804b30d43f.png\" width=\"90\" height=\"40\">](https:\u002F\u002Fqualcomm-ai-hub.slack.com\u002Farchives\u002FC08JKBE0UHY)\n[\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_5f25396c548b.png\" width=\"90\" height=\"40\">](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Frelease_notes.html)\n\n# AI模型效率工具包（AIMET）\n\n\u003Ca href=\"https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Findex.html\">AIMET\u003C\u002Fa> 是一个用于量化训练好的机器学习模型的软件工具包。\n\nAIMET通过减少计算负载和内存占用，提升深度学习模型的运行时性能。使用AIMET量化的模型能够降低内存占用，从而更易于部署在手机或笔记本电脑等边缘设备上。\n\nAIMET采用后训练量化和微调技术，在量化和压缩过程中最大限度地减少精度损失。AIMET支持ONNX和PyTorch框架中的模型。\n\n![AIMET的工作原理](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_341296d46557.png)\n\nAIMET专为与[PyTorch](https:\u002F\u002Fpytorch.org)和[ONNX](https:\u002F\u002Fonnx.ai)模型配合使用而设计。\n\n您可以在[Qualcomm AI Hub Models](https:\u002F\u002Fgithub.com\u002Fquic\u002Fai-hub-models)中找到使用AIMET量化的模型——这是一个优化和量化的模型集合。\n\n## 为什么选择AIMET？\n\n![AIMET的优势](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_9d62ae18d889.png)\n\n* **先进的量化技术**：使用整数运行时进行推理的速度显著快于浮点运行时。例如，模型在高通Hexagon DSP上的运行速度比在高通Kyro CPU上快5到15倍。此外，8位精度模型的内存占用仅为32位精度模型的四分之一。然而，在量化机器学习模型时，保持模型精度往往颇具挑战性。AIMET通过诸如无数据量化等创新技术解决了这一问题，在多个流行模型上实现了最先进的INT8结果。\n* **支持先进的模型压缩技术**，使模型在推理时运行更快、所需内存更少。\n* **AIMET旨在自动化神经网络的优化**，避免耗时且繁琐的手动调整。AIMET还提供了用户友好的API，允许用户直接从其[PyTorch](https:\u002F\u002Fpytorch.org)流水线中调用。\n\n更多详情请访问[AIMET的Github Pages](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Findex.html)。\n\n## 快速入门\n\n[aimet-onnx](https:\u002F\u002Fpypi.org\u002Fproject\u002Faimet-onnx\u002F)和[aimet-torch](https:\u002F\u002Fpypi.org\u002Fproject\u002Faimet-torch\u002F)已在PyPI上发布。\n\n请参阅我们的[快速入门指南](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Foverview\u002Finstall\u002Fquick-start.html)，以开始使用最新的AIMET软件包。\n\n### 从源代码构建\n\n要从源代码构建最新的AIMET代码，请参阅[在*Docker*环境中从源代码构建、安装并运行AIMET](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Foverview\u002Finstall\u002Fbuild_from_source.html#build-from-source)\n\n\n## 支持的功能\n\n### 后训练量化(PTQ)\n\n[查看指南](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Ftechniques\u002Fptq.html)，开始使用PTQ技术。\n\n下表总结了从基础技术如“校准”到高级技术如“SeqMSE”和“自适应舍入(AdaRound)”等，您可在AIMET中使用的技术。\n\n| 技术 | ONNX | PyTorch | 作用 |\n| -- | -- | -- | -- |\n| [校准](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Ftechniques\u002Fptq.html) | ✅ | ✅ | 计算量化参数 |\n| [AdaRound](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Fptq_techniques\u002Fadaround.html) | ✅ | ✅ | 对量化后的权重进行舍入 |\n| [SeqMSE](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Fptq_techniques\u002Fseq_mse.html) | ✅ | ✅ | 优化每一层的编码 |\n| [BatchNorm折叠](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Fptq_techniques\u002Fbnf.html) | ✅ | ✅ | 将BatchNorm折叠，以弥合仿真与目标设备之间的差距 |\n| [跨层均衡](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Fptq_techniques\u002Fcle.html) | ✅ | ✅ | 重新缩放权重以减少范围失衡 |\n| [BatchNorm重新估计](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Fptq_techniques\u002Fbn.html) | ✅ | ✅ | 重新估计BatchNorm统计信息 |\n| [AdaScale](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Fptq_techniques\u002Fadascale.html) | ✅ | ✅ | 优化量化后的权重 |\n| [OmniQuant](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Fptq_techniques\u002Fomniquant.html) | ❌ | ✅ | 优化量化后的权重 |\n| [SpinQuant](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Fptq_techniques\u002Fspinquant.html) | ❌ | ✅ | 优化量化后的权重 |\n\n### 量化感知训练(QAT)\n\nAIMET通过[aimet-torch](https:\u002F\u002Fpypi.org\u002Fproject\u002Faimet-torch\u002F)支持量化感知训练(QAT)。\n\n如果您希望同时使用QAT以及AIMET中的一些高级[PTQ技术](#post-training-quantizationptq)，我们建议采用以下工作流程：\n\n![QAT工作流程](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_readme_8770fe805861.png)\n\n详细[QAT指南请见此处](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Ftechniques\u002Fqat.html)。\n\n### 模型压缩\n\n* *空间SVD*：一种张量分解技术，可将大型层拆分为两个较小的层。\n* *通道剪枝*：移除层中冗余的输入通道，并重建层权重。\n* *逐层压缩比选择*：自动选择模型中每一层的压缩程度。\n\n### 可视化\n\n* *权重范围*：直观检查模型是否适合应用跨层均衡技术，以及应用该技术后的效果。\n* *逐层压缩敏感度*：直观了解模型中任意一层对压缩的敏感程度。\n\n## 结果\nAIMET 可以将现有的 32 位浮点模型量化为 8 位定点模型，而几乎不会损失精度，也无需对模型进行微调。\n\n\u003Ch4>DFQ\u003C\u002Fh4>\n\n将 DFQ 方法应用于 MobileNet-v2 和 ResNet-50 等几种流行网络时，即使量化到 8 位，准确率的损失也始终低于 0.9%，且整个过程完全自动化，无需任何训练数据。\n\n\u003Ctable style=\"width:50%\">\n  \u003Ctr>\n    \u003Cth style=\"width:80px\">模型\u003C\u002Fth>\n    \u003Cth>FP32\u003C\u002Fth>\n    \u003Cth>INT8 模拟 \u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>MobileNet v2 (top1)\u003C\u002Ftd>\n    \u003Ctd align=\"center\">71.72%\u003C\u002Ftd>\n    \u003Ctd align=\"center\">71.08%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ResNet 50 (top1)\u003C\u002Ftd>\n    \u003Ctd align=\"center\">76.05%\u003C\u002Ftd>\n    \u003Ctd align=\"center\">75.45%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>DeepLab v3 (mIOU)\u003C\u002Ftd>\n    \u003Ctd align=\"center\">72.65%\u003C\u002Ftd>\n    \u003Ctd align=\"center\">71.91%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Cbr>\n\n\u003Ch4>AdaRound（自适应舍入）\u003C\u002Fh4>\n\u003Ch5>ADAS 目标检测\u003C\u002Fh5>\n\u003Cp>对于这个难以量化至 8 位精度的 ADAS 目标检测模型，AdaRound 能够将准确率恢复到与 FP32 准确率相差不到 1% 的水平。\u003C\u002Fp>\n\u003Ctable style=\"width:50%\">\n  \u003Ctr>\n    \u003Cth style=\"width:80px\" colspan=\"15\">配置\u003C\u002Fth>\n    \u003Cth>mAP - 平均精度均值\u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd colspan=\"15\">FP32\u003C\u002Ftd>\n    \u003Ctd align=\"center\">82.20%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd colspan=\"15\">最接近舍入（INT8 权重，INT8 激活值）\u003C\u002Ftd>\n    \u003Ctd align=\"center\">49.85%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd colspan=\"15\">AdaRound（INT8 权重，INT8 激活值）\u003C\u002Ftd>\n    \u003Ctd align=\"center\" bgcolor=\"#add8e6\">81.21%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Ch5>DeepLabv3 语义分割\u003C\u002Fh5>\n\u003Cp>对于 DeepLabv3 语义分割模型等部分模型，AdaRound 甚至可以将模型权重量化至 4 位精度，而准确率几乎没有明显下降。\u003C\u002Fp>\n\u003Ctable style=\"width:50%\">\n  \u003Ctr>\n    \u003Cth style=\"width:80px\" colspan=\"15\">配置\u003C\u002Fth>\n    \u003Cth>mIOU - 平均交并比\u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd colspan=\"15\">FP32\u003C\u002Ftd>\n    \u003Ctd align=\"center\">72.94%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd colspan=\"15\">最接近舍入（INT4 权重，INT8 激活值）\u003C\u002Ftd>\n    \u003Ctd align=\"center\">6.09%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd colspan=\"15\">AdaRound（INT4 权重，INT8 激活值）\u003C\u002Ftd>\n    \u003Ctd align=\"center\" bgcolor=\"#add8e6\">70.86%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Cbr>\n\n\u003Ch4>循环神经网络模型的量化\u003C\u002Fh4>\n\u003Cp>AIMET 支持对循环神经网络模型（RNN、LSTM、GRU）进行量化模拟和量化感知训练（QAT）。利用 AIMET 中的 QAT 功能，带有双向 LSTM 的 DeepSpeech2 模型可以被量化至 8 位精度，同时保持极小的准确率损失。\u003C\u002Fp>\n\n\u003Ctable style=\"width:50%\">\n  \u003Ctr>\n    \u003Cth>DeepSpeech2 \u003Cbr>（使用双向 LSTM）\u003C\u002Fth>\n    \u003Cth>词错误率\u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>FP32\u003C\u002Ftd>\n    \u003Ctd align=\"center\">9.92%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>INT8\u003C\u002Ftd>\n    \u003Ctd align=\"center\">10.22%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Cbr>\n\n\u003Ch4>模型压缩\u003C\u002Fh4>\n\u003Cp>AIMET 还能够显著压缩模型。对于 Resnet-50 和 Resnet-18 等流行模型，通过空间 SVD 加上通道剪枝进行压缩，可以在保留原始未压缩模型约 1% 准确率的情况下，实现 50% 的 MAC（乘累加）减少。\u003C\u002Fp>\n\n\u003Ctable style=\"width:50%\">\n  \u003Ctr>\n    \u003Cth>模型\u003C\u002Fth>\n    \u003Cth>未压缩模型\u003C\u002Fth>\n    \u003Cth>50% 压缩后的模型\u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ResNet18 (top1)\u003C\u002Ftd>\n    \u003Ctd align=\"center\">69.76%\u003C\u002Ftd>\n    \u003Ctd align=\"center\">68.56%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ResNet 50 (top1)\u003C\u002Ftd>\n    \u003Ctd align=\"center\">76.05%\u003C\u002Ftd>\n    \u003Ctd align=\"center\">75.75%\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Cbr>\n\n## 资源\n* [文档主页](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Findex.html)\n* [API 参考](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Fapiref\u002Findex.html)\n* [讨论论坛](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fdiscussions)\n* [Slack](https:\u002F\u002Fqualcomm-ai-hub.slack.com\u002Farchives\u002FC08JKBE0UHY)\n* [教程视频](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Findex.html#video)\n* [示例代码](Examples\u002FREADME.md)\n\n## 贡献\n感谢您对参与 AIMET 贡献的兴趣！请阅读我们的 [贡献页面](CONTRIBUTING.md)，了解更多关于贡献新功能或修复 bug 的信息。我们期待您的参与！\n\n## 团队\nAIMET 致力于成为一个由高通创新中心公司维护的社区驱动项目。\n\n## 许可证\nAIMET 采用 BSD 3 条款“新”或“修订版”许可证。更多详情请参阅 [LICENSE](LICENSE)。","# AIMET 快速上手指南\n\nAIMET (AI Model Efficiency Toolkit) 是由高通创新中心开发的软件工具包，旨在通过量化（Quantization）和压缩技术优化训练好的深度学习模型。它能显著减少模型的计算负载和内存占用，同时利用先进的后训练量化（PTQ）和量化感知训练（QAT）技术最小化精度损失，非常适合将模型部署到手机、笔记本等边缘设备。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu 18.04\u002F20.04\u002F22.04)。Windows 和 macOS 支持有限，建议通过 Docker 运行。\n*   **Python 版本**: Python 3.8 - 3.10。\n*   **深度学习框架**:\n    *   **PyTorch**: 支持主流版本（如 1.13, 2.0, 2.1 等，需与 AIMET 版本对应）。\n    *   **ONNX**: 需安装 `onnx` 库。\n*   **编译器**: GCC\u002FG++ (若需从源码编译)。\n*   **Docker (可选但推荐)**: 为了规避依赖冲突，官方强烈建议使用提供的 Docker 镜像进行构建和运行。\n\n> **注意**：AIMET 主要针对 Qualcomm 硬件（如 Hexagon DSP）进行了深度优化，但在通用 CPU\u002FGPU 上也可进行量化仿真和验证。\n\n## 安装步骤\n\nAIMET 提供 PyPI 预编译包，也支持从源码构建。对于大多数用户，推荐使用 pip 安装。\n\n### 方法一：通过 PyPI 安装（推荐）\n\n根据您的模型框架选择安装 `aimet-torch` 或 `aimet-onnx`。\n\n**安装 PyTorch 版本：**\n```bash\npip install aimet-torch\n```\n\n**安装 ONNX 版本：**\n```bash\npip install aimet-onnx\n```\n\n> **国内加速提示**：如果下载速度较慢，可使用清华或阿里镜像源：\n> ```bash\n> pip install aimet-torch -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n### 方法二：从源码构建（高级用户）\n\n如果您需要最新的功能或特定的定制版本，建议在 Docker 环境中从源码构建。\n\n1.  克隆仓库：\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet.git\n    cd aimet\n    ```\n2.  按照官方文档在 Docker 中执行构建脚本（具体命令请参考项目根目录下的 `build.sh` 或官方文档 \"Build from source\" 章节）：\n    ```bash\n    # 示例：进入构建环境并执行构建（具体参数需参考最新文档）\n    docker run --rm -it -v $(pwd):\u002Fworkspace aimet-build-env bash\n    .\u002Fbuild.sh\n    ```\n\n## 基本使用\n\n以下是一个使用 AIMET 对 PyTorch 模型进行**后训练量化 (PTQ)** 的最简示例。该流程展示了如何加载模型、应用量化模拟以及导出量化模型。\n\n### 示例：PyTorch 模型 INT8 量化\n\n此示例演示如何使用 `AutoQuantV2` API 自动选择最佳量化方案。\n\n```python\nimport torch\nfrom aimet_common.defs import QuantScheme\nfrom aimet_torch.auto_quant_v2 import AutoQuantV2\nfrom aimet_torch.model_preparer import prepare_model\n\n# 1. 加载预训练的 PyTorch 模型\n# 假设您有一个标准的 torchvision 模型\nfrom torchvision.models import resnet18\nmodel = resnet18(pretrained=True)\nmodel.eval()\n\n# 2. 准备模型 (处理动态控制流等复杂结构)\n# 注意：某些简单模型可能不需要此步骤，但推荐作为标准流程\ninput_shape = (1, 3, 224, 224)\ndummy_input = torch.randn(input_shape)\nmodel_prepared = prepare_model(model)\n\n# 3. 定义评估函数和校准数据加载器\n# eval_function: 接收量化后的模型并返回精度分数\ndef eval_function(model, early_stopping=False):\n    # 在此处插入您的验证逻辑\n    # 为演示目的，直接返回一个占位分数\n    return 0.75 \n\n# data_loader: 用于校准的少量无标签数据 (通常 100-1000 张图像)\n# 此处仅为伪代码，实际需替换为真实的 DataLoader\n# from torch.utils.data import DataLoader\n# calib_data_loader = DataLoader(...) \n\n# 4. 配置并运行 AutoQuantV2\n# AutoQuantV2 会自动尝试不同的量化技术（如 AdaRound, CLE 等）以找到精度损失最小的方案\nauto_quant = AutoQuantV2(\n    model_prepared,\n    dummy_input=dummy_input,\n    eval_callback=eval_function,\n    # calib_data_loader=calib_data_loader, # 取消注释并传入真实数据\n    allowed_accuracy_drop=0.01 # 允许的最大精度损失\n)\n\n# 执行量化\ntry:\n    quantized_model, encoding_stats, results = auto_quant.run()\n    print(\"量化完成！\")\n    print(f\"最终精度: {results['accuracy']}\")\nexcept Exception as e:\n    print(f\"量化过程中发生错误：{e}\")\n\n# 5. (可选) 导出量化模型和编码文件\n# 导出的模型可用于后续在 Qualcomm 目标设备上运行\n# from aimet_torch.quantsim import QuantizationSimModel\n# sim = QuantizationSimModel(quantized_model, dummy_input)\n# sim.export(path='.\u002Foutput', filename_prefix='resnet18_quantized', dummy_input=dummy_input)\n```\n\n### 核心功能简述\n\n*   **Post-Training Quantization (PTQ)**: 无需重新训练，仅需少量校准数据即可将 FP32 模型转换为 INT8，支持 `AdaRound`, `SeqMSE`, `Cross Layer Equalization` 等高级技术。\n*   **Quantization Aware Training (QAT)**: 在微调过程中模拟量化噪声，进一步恢复精度。\n*   **模型压缩**: 支持空间 SVD 分解和通道剪枝，可大幅减少模型参数量和计算量 (MACs)。\n\n更多详细 API 用法和进阶教程，请访问 [AIMET 官方文档](https:\u002F\u002Fquic.github.io\u002Faimet-pages\u002Freleases\u002Flatest\u002Findex.html)。","某边缘计算团队正致力于将高精度的 PyTorch 目标检测模型部署到算力受限的工业巡检无人机上，以满足实时识别缺陷的需求。\n\n### 没有 aimet 时\n- **推理延迟过高**：模型以 32 位浮点数运行，在无人机嵌入式芯片上处理单帧图像耗时超过 200 毫秒，无法达到每秒 15 帧的实时流畅度要求。\n- **内存资源爆满**：庞大的模型权重占用了绝大部分板载内存，导致系统频繁交换数据甚至崩溃，无法同时运行其他必要的飞行控制进程。\n- **精度与速度难两全**：尝试手动进行简单的 8 比特量化后，模型对小目标的识别准确率暴跌 15%，不得不重新退回浮点模式。\n- **优化流程繁琐**：工程师需要逐层调整量化参数并反复验证，耗费数周时间进行枯燥的手工微调，严重拖慢项目上线进度。\n\n### 使用 aimet 后\n- **推理速度倍增**：利用 AIMET 的高级量化技术将模型转换为 INT8 格式，在专用 DSP 上的推理速度提升了 10 倍，轻松实现每秒 30 帧的实时检测。\n- **内存占用锐减**：模型体积压缩为原来的四分之一，释放出充足内存供多任务并行处理，确保无人机长时间稳定运行。\n- **精度几乎无损**：通过 AIMET 独有的“无数据量化”和微调算法，在大幅压缩的同时将准确率损失控制在 1% 以内，完美保留检测性能。\n- **自动化高效落地**：直接调用 AIMET 的 Python API 集成至现有训练流水线，自动化完成优化过程，将原本数周的调优工作缩短至几小时。\n\nAIMET 通过自动化的先进量化与压缩技术，成功打破了高精度模型在边缘设备部署时的性能瓶颈，让复杂的 AI 算法得以在低功耗硬件上高效运行。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fquic_aimet_9d62ae18.png","quic","Qualcomm Innovation Center, Inc.","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fquic_3579874f.png","",null,"https:\u002F\u002Fqualcomm.com\u002Fdeveloper","https:\u002F\u002Fgithub.com\u002Fquic",[80,84,88,92,96,100,103,107,111,115],{"name":81,"color":82,"percentage":83},"Python","#3572A5",93.3,{"name":85,"color":86,"percentage":87},"C++","#f34b7d",4.3,{"name":89,"color":90,"percentage":91},"CMake","#DA3434",0.7,{"name":93,"color":94,"percentage":95},"HTML","#e34c26",0.5,{"name":97,"color":98,"percentage":99},"Cython","#fedf5b",0.4,{"name":101,"color":102,"percentage":99},"Cuda","#3A4E3A",{"name":104,"color":105,"percentage":106},"Shell","#89e051",0.3,{"name":108,"color":109,"percentage":110},"JavaScript","#f1e05a",0.1,{"name":112,"color":113,"percentage":114},"CSS","#663399",0,{"name":116,"color":117,"percentage":114},"C","#555555",2589,451,"2026-04-11T13:06:18","NOASSERTION",4,"Linux","未说明（主要面向 Qualcomm Hexagon DSP 优化，构建环境可能依赖 CPU 或特定 GPU，文中未明确指定 NVIDIA\u002FCUDA 要求）","未说明",{"notes":127,"python":125,"dependencies":128},"该工具主要由高通创新中心开发，旨在将模型量化以部署在边缘设备（如手机、笔记本）和高通 Hexagon DSP 上。官方推荐使用 Docker 环境从源码构建。支持 PyTorch 和 ONNX 框架的后训练量化（PTQ）和量化感知训练（QAT）。具体版本依赖需参考官方快速开始指南或 PyPI 页面，README 中未列出确切版本号。",[129,130,131,132],"PyTorch","ONNX","aimet-torch","aimet-onnx",[14],[135,136,137,138,139,140,141,142,143,144,145],"quantization","deep-learning","compression","open-source","machine-learning","pruning","auto-ml","network-compression","deep-neural-networks","network-quantization","opensource","2026-03-27T02:49:30.150509","2026-04-12T07:52:07.175822",[149,154,159,164,169,173],{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},30327,"如何解决 'ModuleNotFoundError: No module named libpymo' 错误？","该错误通常是因为环境变量未正确设置。解决方法如下：\n1. 如果在 Google Colab 中，请将代码包裹在以下块中运行：\n%%bash\nsh \u002Fusr\u002Flocal\u002Flib\u002Fpython3.8\u002Fsite-packages\u002Faimet_common\u002Fbin\u002Fenvsetup.sh\npython -c \"\u003C在此处放入你的代码>\"\n\n2. 如果在本地 Linux 环境中，请先在终端执行：\nsource \u002Fusr\u002Flocal\u002Flib\u002Fpython3.8\u002Fsite-packages\u002Faimet_common\u002Fbin\u002Fenvsetup.sh\n然后在同一个终端中运行脚本。\n\n执行 envsetup.sh 会正确设置 LD_LIBRARY_PATH 和 PYTHONPATH 环境变量，从而找到 libpymo 模块。此外，确保安装了对应的依赖（如 apt-get install liblapacke）并匹配正确的 AIMET 版本。","https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fissues\u002F480",{"id":155,"question_zh":156,"answer_zh":157,"source_url":158},30328,"如何使用 AIMET SDK 将量化模型部署到高通神经处理 SDK (SNPE)？","在使用 AIMET 量化后部署到 SNPE 时，需要传递正确的标志以确保 AIMET 计算的编码（encodings）被导入到 SNPE 中，避免 SNPE 重新计算。推荐的命令标志如下：\nsnpe-dlc-quantize --input_dlc \u003C路径>\u002FQAT.dlc --input_list \u003C路径>\u002Fraw_list.txt --use_enhanced_quantizer --output_dlc \u003C路径>\u002FQAT_quantized.dlc\n\n关键点：\n1. 必须向 dlc converter 和 dlc quantizer 传递正确的 flag。\n2. 使用 --use_enhanced_quantizer 等选项，确保 SNPE 直接使用 AIMET 确定的 min\u002Fmax 值，而不是重新计算。\n3. 注意检查激活层和其他层的数值是否一致，以验证量化效果。","https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fissues\u002F168",{"id":160,"question_zh":161,"answer_zh":162,"source_url":163},30329,"AIMET 是否支持 TensorFlow 中的 tf.matmul 算子？","目前 AIMET 不再积极维护 aimet-tensorflow 版本，因此对 tf.matmul 等特定算子的支持有限或已停止更新。官方回复表明该问题标记为“not planned”（暂无计划）。\n\n如果遇到此类不支持的算子，建议：\n1. 考虑迁移到 PyTorch 版本（aimet_torch），其维护更为活跃。\n2. 如果必须使用 TensorFlow，尝试修改模型结构避开该算子，或手动处理量化逻辑（但这需要深厚的底层知识且不受官方支持）。","https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fissues\u002F2375",{"id":165,"question_zh":166,"answer_zh":167,"source_url":168},30330,"在对 YOLOv5 进行批量归一化折叠（BatchNorm Folding）时报错怎么办？","在 YOLOv5 中，forward 方法会将自定义属性（如 'f' 和 'i'）分配给模块以管理数据流。当 AIMET 的 QuantizationSimModel 包装这些模块时，这些自定义属性不会被自动添加到包装器中，导致调用 forward 时访问属性失败或出现连接图错误（如 'Input of ... already exists'）。\n\n解决方案思路：\n1. 需要在量化包装后，手动将这些自定义属性（'f', 'i'）添加回被包装的层中。\n2. 在导出 ONNX 时，可能需要修改 onnx_utils.py 中的逻辑，确保自定义标记（CustomMarker）能正确处理这些带有额外属性的层。\n3. 参考社区实践，编写辅助函数（如 add_yolo_attribute_to_quantized_layer）在折叠前修复属性丢失问题。","https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fissues\u002F1067",{"id":170,"question_zh":171,"answer_zh":172,"source_url":163},30331,"如何在 Keras\u002FTensorFlow 中处理包含可训练变量（tf.Variable）的自定义层量化报错？","如果在 Keras 中将变量设置为 trainable 并放入 Lambda 层，Keras 会将其转换为 TFOpLambda 层。Lambda 层应当是无状态的（stateless），这会导致无法训练该参数或在量化初始化时引发 AssertionError（因为不期望遇到 tf.ResourceVariable）。\n\n解决方法：\n1. 避免在 Lambda 层中直接使用可训练的 tf.Variable。\n2. 将变量类型转换为 tf.Tensor 或 tf.EagerTensor 后再传入量化流程。\n3. 确保输入层（input_layer）定义在先，以保证形状匹配。\n示例代码结构调整：先定义 input_layer，再处理变量类型转换，最后构建模型。",{"id":174,"question_zh":175,"answer_zh":176,"source_url":168},30332,"AIMET 是否支持输入为列表（list of tensors）的自定义节点或通道级量化？","对于输入为张量列表的自定义节点，或者像 Concat 这样输入张量范围不同需要通道级量化（channel-wise quantization）的情况，原生支持可能有限。\n\n建议方案：\n1. 检查 OnnxSaver 类中的 classmethod，看是否可以通过定义 CustomMarkerFunc 来添加自定义 ONNX 节点标记。\n2. 使用 symbolic 方法导出自定义节点时，确保能够处理复杂的输入结构。\n3. 如果默认不支持，可能需要扩展 AIMET 的 ConnectedGraph 逻辑或编写自定义的量化配置规则来处理这类特殊节点。",[178,183,188,193,198,203,208,213,218,223,228,233,238,243,248,253,258,263,268,273],{"id":179,"version":180,"summary_zh":181,"released_at":182},214664,"2.28.0","* 新特性\n    * Torch\n        * 为 AdaScale 优化添加可恢复的检查点功能 (20ecb0a)\n\n    * Common\n        * 使用 Python 的稳定 ABI 将 pybind11 绑定迁移到 Cython，以支持与 Python 版本无关的 wheel 包 (0d6f856)\n\n* 错误修复和改进\n    * Torch\n        * 修复共享缩放值时缩放编码无法正确传播的问题 (d9f3a90)\n\n* 文档\n    * 更新文档和示例，以使用设置 `lm_head` 精度的新 API (ac3e11e)","2026-04-06T18:03:00",{"id":184,"version":185,"summary_zh":186,"released_at":187},214665,"2.27.0","* Bug 修复与改进\n    * ONNX\n        * 在导出 API 中添加 `force_activation_as` 选项，以控制激活的有符号性（3583462）\n\n    * Torch\n        * 降低量化-反量化的延迟开销（9ca3bf4、525e993、b3de9a2）\n        * 优化 GenAITests 模型的推理速度（cacd5cc、b6ea5bd、30ab60a）\n        * 允许在 SeqMSE 优化过程中进行检查点保存和加载（4eb97f0）\n        * 修复当模型包含未量化的 Conv\u002FLinear 层时 SeqMSE 报错的问题（3dd4ca9）\n        * 在导出时填充标量常量 Mul\u002FDiv 输出的编码信息（1228394、169952d、ca2a324）\n        * 将张量编码信息传播到标量 Mul\u002FDiv 运算中（54c7462、2cfd07e）\n\n    * 公共\n        * 在可能的情况下，将拼接操作的输入量化器传播到输出（5ee0f13）","2026-03-26T05:40:37",{"id":189,"version":190,"summary_zh":191,"released_at":192},214666,"2.26.0","* 错误修复与改进\n    * ONNX\n        * 实现 onnxscript RMSNorm 融合，以提升图优化效果 (68710d9)\n        * 在 ONNX QDQ 导出过程中，将编码信息通过 Concat 操作传递下去 (4811a34)\n        * 在 ONNX QDQ 导出中，将缩放和偏移量作为初始化器而非常量导出 (ea9a619)\n        * 修复 AdaScale (aimet-onnx) 对于 Qwen3 模型的支持问题 (beac8f8)\n        * 修复 YOLO 模型的 BN 折叠问题 (bae9953)\n\n    * Torch\n        * 支持 int2 格式的 ONNX QDQ 导出 (5fa79cf)\n        * 通过消除 O(N^2) 的迭代以及冗余的 Q\u002FDQ 操作，显著提升 ONNX 导出性能 (695465e, cb1f9ae, abe0ef5, c547cfb, 310b43d, fb9629d, d54efa0)\n        * 增加对 Qwen3 MoE 模型的原生支持 (389d71f, ab6e810)\n        * 修复转置输入时的 triton 内核 bug (a1f6795)\n        * 修复 AdaScale 优化循环中的 GPU 内存泄漏问题 (f52f2e2)\n        * 修复在禁用缓存时 AdaScale 的设备错误 (964d11f)\n        * 绕过 torch.compile 的一些 bug，并将内部量化方法排除在编译之外 (b8bcb47, d518f35)\n        * 修复 tie quantizers 移除 relu 编码约束的问题 (3cc7252)\n        * 在遇到 torch.cuda.OutOfMemoryError 时立即失败，不再重试 (4f84eb1)\n        * 在 yield 之前释放分块采样器的输入内存，以降低内存占用 (ee3d193)\n        * 添加 aimet_torch.v1 已停止维护的警告 (8fc52c6)\n        * 在 quantsim 配置中采用白名单方式启用每通道量化 (817d3b1)\n\n    * 通用\n        * 默认将 concat 和插值算子的量化器绑定在一起，并安全处理边界情况 (5ce7229, 5084af3)\n        * 实现超级组展开功能，且不进行名称修饰 (e351112)\n        * 将 CG_split 视为保持网格结构的算子 (738ee26)\n        * 在连通图遍历过程中处理动态矩阵乘法的加法操作 (3c0de8e)\n\n* 文档\n    * 添加 AdaScale 文档，并附带 HuggingFace LLM 示例 (c403562)\n    * 更新文档中的代码示例，使其使用 aimet_torch.onnx.export (fed2a06)","2026-03-09T18:00:59",{"id":194,"version":195,"summary_zh":196,"released_at":197},214667,"2.25.1","2.25.1\r\n======\r\n\r\n* 错误修复和改进\r\n    * ONNX\r\n         * 修复了拼接层的编码传播问题 (5084af3)\r\n     \r\n    * Torch\r\n        * 修复以降低 Qwen 3 VL 模型使用 AdaScale 时的 GPU 显存占用 (ee3d193)","2026-03-03T16:21:52",{"id":199,"version":200,"summary_zh":201,"released_at":202},214668,"2.25.0","2.25.0\n======\n\n* 错误修复和改进\n    * ONNX\n        * 降低了 AdaScale 和 SeqMSE 技术的 CPU 内存峰值使用量 (28f89a7)\n        * 降低了 AdaScale 技术的 CUDA 内存峰值使用量 (a29f44f)\n        * 在 GenAITests 中添加了对 Qwen3 VL 模型的支持 (c014961)\n        * 基于 ONNX-IR 的超级组模式检测与替换 (9972c1b)\n        * 默认将 concat 和 interpolation 操作绑定在一起 (a8ac6f4)\n\n    * Torch\n        * 修复了包含控制流操作的 ONNX qdq 导出中的错误 (ae1abd1)\n        * 如果可用，则默认使用 Triton 内核 (3adcbee)\n        * 向 EncodingAnalyzer 引入了 `block_size` 参数 (e250abd)\n        * 始终将编码导出为 uint 类型 (ae7d5ef)\n        * 支持 float4\u002F8 QDQ 导出 (135a0af)\n        * 支持通过 sim.load_encodings() 加载 zero_point_shift (624ba30)\n        * 支持 SyncBatchNorm 的内置量化 (1e8eceb)","2026-02-25T17:22:23",{"id":204,"version":205,"summary_zh":206,"released_at":207},214669,"2.24.0","* 错误修复与改进\n    * ONNX\n        * 添加对 Windows ARM64 wheel 构建和测试的支持，并在 GitHub 发布页面分发 Windows ARM64 wheel（1390b96）\n        * 在 Sequential MSE 中添加转置 MatMul 支持（ff7a284）\n\n    * Torch\n        * 公开块级 AdaScale API（72246db）\n        * 提升零点偏移（[-1.5, -.5, .5, 1.5]）实现的数值稳定性（489f7df）\n        * 修复 :func:`replace_lora_layers_with_quantizable_layers` 以继承 train\u002Feval 标志（af5a82d）\n        * 通过在加载 state_dict 之前解绑 lm_head 和 embed_tokens，修复 SpinQuant 的评估问题（47f574d）\n        * 实验性功能 - 为基于 Triton 的量化内核实现渐进式梯度缩放（PGS）支持（b58b00b）\n\n    * 共享\n        * 修复 TFEnhanced 在遇到空（大小为 0）输入时错误地生成负尺度的问题（ea4af6a）\n        * 解除 numpy 依赖的版本锁定（8a999a1）\n        * 添加用于引用 eNPU 配置文件的别名（b79611c）","2026-02-10T04:59:41",{"id":209,"version":210,"summary_zh":211,"released_at":212},214670,"2.23.0","* Bug 修复和改进\n    * ONNX\n        * 禁用 ConvTranspose 运算的逐通道量化 (9395e32)\n        * 新的顶级 API，用于配置参数量化类型 (a1c197d)\n\n    * Torch\n        * 启用 Torch Dynamo 的 ONNX 导出 (59e0125)\n\n    * 共享\n        * 在配置文件中启用逐通道矩阵乘法量化 (7137849)\n        * 文档中添加 LLM 量化配方 (6561f0e)\n        * 修复 CUDA 版本与 CPU 轮子之间的差异 (01e7422)","2026-01-28T18:36:14",{"id":214,"version":215,"summary_zh":216,"released_at":217},214671,"2.22.0","* 错误修复和改进\n    \n    * ONNX\n        * 允许将 2.0.0 编码格式加载到模拟器中 (e8cb098)\n        * 修复 Cast 解包错误 (6761a19)\n        * 支持导出带有 zero_point 偏移的非 LPBQ 编码 (7b3cc4c)\n        * 实现 aimet-onnx 的 LPBQEncoding (5ad7ea6)\n  \n    * 通用\n        * 支持将 1x1 卷积 LPBQ 导出为 ONNX QDQ (58ce71d)","2026-01-13T18:00:24",{"id":219,"version":220,"summary_zh":221,"released_at":222},214672,"2.21.0","* Bug 修复和改进\n    \n    * ONNX\n        * 修复模型中重用 Conv 或 Linear 层时出现的 IndexError (65c4b3b)\n        * 为 aimet-onnx 导出添加可选参数 `export_int32_bias` (3b8e0f0)\n        * 解除 aimet-onnx 对 PyTorch 版本的固定依赖 (d99b6c4)\n        * 将 NaN 处理与 ORT CPU 执行提供程序对齐 (e4c49eb)\n        * 修复转置 MatMul 操作的量化轴处理问题 (6ca06d6)\n    \n    * PyTorch\n        * 修复量化逻辑，以使紧跟忽略层之后的层能够启用输入量化器 (`80fb4fe`_)","2025-12-15T21:37:40",{"id":224,"version":225,"summary_zh":226,"released_at":227},214673,"2.20.0","2.20.0\n\n- 错误修复与改进\n\n    * 通用\n        * 将支持的 Python 版本更新为 >=3.10 ([2bc8c94](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F2bc8c94fcced5ceff790f2c8a0b8347ee42f0be1))\n        * 将 aimet_common 重新打包为 aimet_onnx.common 或 aimet_torch.common 的别名 ([074e85f](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F074e85fd15b92c2b65b03059374a5272f07bdeb5))\n        * 从数据移动算子中移除 Pad 算子 ([21cddb6](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F21cddb68889e3d01843de8744e8493f6daa3db28))\n\n    * ONNX\n        * 默认在 sim.export 中导出数据移动算子的输出编码 ([550c029](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F550c0291d074626e555db6b6a5fa3239f333787e))\n        * 如果节点名称缺失或重复，则分配通用节点名称 ([273dd82](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F273dd8202489205ff39d20d52a227053ee6cd2e6))\n        * 将 PyTorch Pad 模块添加到 nn.Module 到 ONNX 算子的映射中 ([7e5342b](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F7e5342bcf60e6e51467ebf791ab96ac9eadbca65))\n        * 为 LPAI 添加 LSTM 单元状态的 int32 量化机制 ([3a8659b](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F3a8659b3b97b7d923d2f32b44b55fae48b7f6ac2))\n        * 支持堆叠的 RNN\u002FGRU\u002FLSTM ([552ad83](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F552ad83f861502f99765358d83ccda252f8a40fa))\n        * 使 exclude\u002Finclude 节点参数命名一致 ([ec22d86](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002Fec22d8682ba076eb6e09b29a96cd3aab827e8e2b))\n        * 在 aimet-onnx SeqMSE 中实现 LPBQ 支持 ([495567f](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F495567f3bf05d447e76580a1b30aa5aa86ce6c0b))\n        * 为量化卷积添加对膨胀、分组和步幅的支持 ([f94f3e2](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002Ff94f3e22d89f71d6dbced1cfa1393dc83c19f1b4))\n        * 从 adascale 配置中移除块类型 ([b55b058](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002Fb55b058445fe552986e0ddae5f837570aebae69c))\n        * 如果输入有多个消费者，则跳过连接编码的绑定 ([3136828](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F3136828f051ff4f1032b9fc8fec2c31e979dc67c))\n        * 先绑定上游量化器，再绑定下游量化器 ([59aac3e](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F59aac3e4a65c295d6f25d6fb5cb53b7c0441774f))\n        * 修复 LazyExtractor 在外部文件缺失或不一致时的 ValidationError ([a8f32fc](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002Fa8f32fce6188564a4cec2db63085d40b26056534))\n        * 对齐 PyTorch 和 ONNX 的 GenAI 配方 ([7d4659d](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F7d4659dae2541e6a72c6cea5cba3f6dc676601eb))\n\n    * Torch\n        * 为每个连接输入使用单独的输入量化器 ([755c54a](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F755c54ad7f716f39f7088f995f37f25deedb3520))\n        * 在 aimet-torch seq mse 中为批处理矩阵乘法添加预测和后续回退的方法 ([8874173](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F887417350d00f8a505c6c3c1754868cfcdd552f7))\n        * 重构 MMP 以不再使用舍入模式 ([fd7e40d](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet","2025-12-02T21:17:12",{"id":229,"version":230,"summary_zh":231,"released_at":232},214674,"2.19.0","* New Features\r\n\r\n* Bug fixes and Improvements\r\n    * ONNX\r\n        * Make LiteMP API percentage float (69f96ff)\r\n        * Set layernorm int16 weight to symmetric by default (8560e13)\r\n        * Automatically insert data movement op output qdq during to_onnx_qdq (15c8b9b)\r\n        * Create LazyExtractor to handle external data for onnx Extractor utils (104e7e8)\r\n        * Tie input\u002Foutput encodings across maximum Concat subgraph (832ea91)\r\n        * Tie hidden state quantizers of RNN\u002FGRU\u002FLSTM (c18fd05)\r\n\r\n    * Torch\r\n        * Fix histogram observer rebinning logic (2c88364)\r\n        * Fix connectedgraph input ordering for non-trivial layer types (2b7b548)\r\n\r\n    * Common\r\n        * Disable per-channel quantization of RNN\u002FGRU\u002FLSTM for all HTP backends (df8b875)\r\n","2025-11-19T17:33:07",{"id":234,"version":235,"summary_zh":236,"released_at":237},214675,"2.18.0","* New Features\r\n    * Torch\r\n        * Promoted aimettorch.onnx.export and QuantizationSimModel.onnx.export as production APIs (99160d2, e026fd1)\r\n        * Added utility functions to exclude some or all unknown nn.Modules from quantization (5a419f3, 501eebd)\r\n\r\n* Bug fixes and Improvements\r\n    * ONNX\r\n        * Fixed supergroup misidentification bug upon MatMul-MatMul-Add sequence (ab63866)\r\n\r\n    * Torch\r\n        * Made compatible with PyTorch 1.13 (47fae94)\r\n        * Made compatible with PyTorch 2.9 (283ecc1)\r\n\r\n    * Common\r\n        * Set priority among supergroups (6676a6c)\r\n","2025-11-06T16:32:33",{"id":239,"version":240,"summary_zh":241,"released_at":242},214676,"2.17.0","* Bug fixes and Improvements\r\n    * ONNX\r\n        * Optimize SeqMSE latency and CPU memory usage (434ac6b)\r\n        * Support excluding nodes from SeqMSE optimization (6a37239)\r\n        * Support exporting large models (> 2GB) to ONNX QDQ (b1dafe6, 1bf8b82)\r\n        * Support exporting float16 ONNX models to ONNX QDQ (66ccb45)\r\n        * Allow disabling MatMul-Add supergroup via config file (e49660c)\r\n        * Fix bug where on-disk tensor data is deleted before InferenceSession (d57a934)\r\n\r\n    * Torch\r\n        * Fix sim.export bug when using Python >= 3.12 (ee949a2)\r\n        * Allow export for back-to-back quantizers which share the same encodings (28a7382)\r\n        * Fix numerical issue in FPTQuant (f0bc6c9)\r\n\r\n    * Common\r\n        * Remove Conv-Relu supergroup from HTP \u003C V73 config files (19e5a4e)\r\n        * Fix LayerNorm and InstanceNorm weight symmetry in HTP \u003C V73 config files (eb1ac5c, ce1ea63)\r\n","2025-10-20T21:38:04",{"id":244,"version":245,"summary_zh":246,"released_at":247},214677,"2.16.0","**New Features**\r\n\r\n- ONNX\r\n   - Experimental - Added Adascale, a post-training quantization technique ([5e23ceb](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F5e23cebea551c074f7a380ef2f385fd95433bb53))\r\n\r\n**Bug fixes and Improvements**\r\n\r\n- ONNX\r\n   - Skip tying Concat input\u002Foutput quantizers with conflicting encoding constraints ([b924107](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002Fb9241073256c4a455426451efbc1f3d0672e37b2))\r\n   - Small updates to FPT Quant for improved accuracy ([ba10947](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002Fba10947bdbdecdf2980f076560453991c3888e77))\r\n   - Implement partial encoding freezing mechanism in aimet-onnx ([658ec3c](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F658ec3c20be379b582321171e28f92e8fab1102b))\r\n   - Add Relu partial encoding constraints to HTP config files ([dc8d978](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002Fdc8d978f672e5a93ecb5c8de64017ccaf949d2bf))\r\n   - Clear encoding analyzer stats after computing param encodings ([3d4725f](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F3d4725fc172bffeadd87ee993b7a30e5d51691b2))\r\n   - Remove wasted computation\u002Fmemory in FPTQuant local optimizer ([59350af](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F59350afb881678dc0313a7445bb2e61d5b14328b))\r\n\r\n- Torch\r\n   - Allow boolean type casting of QuantizedTensors ([7d63e66](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F7d63e6660050399479c804b474b9cb87c7991fce))\r\n   - Implement partial encoding freezing mechanism in aimet-torch ([1b99a39](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F1b99a39b6c19f6b7fc77c871b5dc232981e6eac9))\r\n   - Improve scale post-processing to prevent scale freezing during QAT ([6fe56b0](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F6fe56b0d94b1de7f659f4e1d08be5847e4313a09))\r\n","2025-10-07T04:36:52",{"id":249,"version":250,"summary_zh":251,"released_at":252},214678,"2.15.1","**New Features**\r\n\r\n- ONNX\r\n   - Experimental - Added Adascale, a post-training quantization technique ([5e23ceb](https:\u002F\u002Fgithub.com\u002Fquic\u002Faimet\u002Fcommit\u002F5e23cebea551c074f7a380ef2f385fd95433bb53))\r\n","2025-09-27T05:34:41",{"id":254,"version":255,"summary_zh":256,"released_at":257},214679,"2.15.0","* Bug fixes and Improvements\r\n\r\n    * ONNX\r\n        * Throws an error on `bfloat16` models (5181860)\r\n        * Added docs and examples for LiteMP (3d5e0dd)\r\n        * Export to QDQ ONNX with pre-quantized constants (a97354f)\r\n\r\n    * PyTorch\r\n        * Fix multiple dispatch issue when torch function is called in nested context manager (6216ca0)\r\n\r\n    * Keras\r\n        * 2.14.0 is the last release of aimet-tf (087e9b1)\r\n\r\n    * Common\r\n        * Added PSNR metrics (14c8e81)\r\n","2025-09-22T18:06:34",{"id":259,"version":260,"summary_zh":261,"released_at":262},214680,"2.14.0","* New Feature\r\n    * ONNX\r\n        * Add support for FP16 in `QuantizationSimModel` (2494d90)\r\n\r\n* Bug fixes and Improvements\r\n    * ONNX\r\n        * Add sequential MSE support for ``onnx >= 1.18.0``. (754d030)\r\n        * Improve histogram granularity during TFE calibration (91109af)\r\n        * Improve runtime for `QuantizationSimModel` creation for large models like LLMs (f7e700f)\r\n        * Improve runtime for setting quantizers in a `QuantizationSimModel` for use cases like tying KV Cache input and output quantizers. (c0bdb46)\r\n        * Add a check for None values in the ``group`` attribute of ``Conv`` layers and fix improper handling of None ``group`` attribute in ``ConvTranspose`` within :func:`fold_all_batch_norms_to_weight` (374e8db)\r\n\r\n    * PyTorch\r\n        * Address QAT convergence issue: Add a fix for cases where ``quantizer.min`` becomes equal to ``quantizer.max`` during training, leading to NaN values (51f8990)\r\n\r\n    * Keras\r\n        * Fix accuracy drop issue for GPU wheel by excluding ``libpython*.so*`` from the aimet wheel packages (22cac5c)\r\n\r\n    * Common\r\n        * Remove ``Conv3d``, ``Conv3dTranspose``, and ``DepthwiseConv`` ops followed by activation from the supergroup until HTP support is available. (05f6810)\r\n        * Fix color theme issue in documentation causing code snippets to render incorrectly (2c64eac)","2025-09-08T20:00:55",{"id":264,"version":265,"summary_zh":266,"released_at":267},214681,"2.13.0","* Bug fixes and Improvements\r\n    * ONNX\r\n        * Adjust weight scale for int32 bias overflow in W16A16 quantization (f39c0bf)\r\n        * AutoQuant: Remove deprecated feature (414cdde)\r\n        * Support exporting large models in aimet-onnx (0fe6701)\r\n        * AdaRound: Delete deprecated top-level API. (bfba557)\r\n        * AdaRound: Skip optimization if no input to layer (18dfedc)\r\n    \r\n    * PyTorch\r\n        * Enable save_model_as_external_data for sim.onnx.export (107b339)\r\n\r\n* Known Issues\r\n    * Keras\r\n        * Accuracy drop observed with AIMET Keras for certain models. Fix is planned for the next release.","2025-08-26T16:05:18",{"id":269,"version":270,"summary_zh":271,"released_at":272},214682,"2.12.0","2.12.0\r\n======\r\n* Bug fixes and Improvements\r\n    * Common\r\n        * Remove data movement ops from config (ae02aa8)\r\n\r\n    * ONNX\r\n        * Exclude bias from quantization when weights are not quantized (62f5879)\r\n        * AdaRound: Fix prelu failing in CUDA model (b2350b2)\r\n\r\n    * PyTorch\r\n        * Wrap aimet_torch.onnx.export with torch.no_grad (b73bb71)\r\n\r\n* Known Issues\r\n    * Keras\r\n        * Accuracy drop observed with AIMET Keras for certain models. Fix is planned for the next release.\r\n","2025-08-13T02:34:26",{"id":274,"version":275,"summary_zh":276,"released_at":277},214683,"2.11.0","* New Feature\r\n    * PyTorch\r\n        * SpinQuant (experimental) - implement SpinQuant PTQ technique (https:\u002F\u002Farxiv.org\u002Fpdf\u002F2308.13137) for Llama, Qwen2, and Mistral families (R1 rotation w\u002Fo optimization) (7364b37)\r\n        * Enable Adascale and Omniquant for Mistral (d33e98c)\r\n\r\n    * ONNX \r\n        * Enable llm_configurator for Llama (Experimental) (08c17b8)\r\n    \r\n* Bug fixes and Improvements\r\n    * Common    \r\n        * Represent LPBQ as DequantizeLinear in onnx QDQ (a967b8f)\r\n        * Add additional sanity checks in LPBQ export logic (45c2a65)\r\n        * Allow negative block axis in LPBQ QDQ export (6f670a4)\r\n        * Add support for enabling param bw=2 in QuantSim (2d4e0eb)\r\n        * Fix tanh output encoding range to [-1, 1] (3c92bb7)\r\n        \r\n    * ONNX \r\n        * Apply matmul exception rule only for integer quantization (bb93c76)\r\n        * Optimize blockwise min-max encoding analyzer (4febdd4)\r\n        * Remove explicit FP32 model creation inside AdaRound and optimize building sessions during the optimization process (`b1415bd`_)\r\n        * Make Concat output quantizer inherit fixed input range (50f35dd)\r\n        * Enable output quantizers to inherit input encoding when tying encodings (3750526)\r\n        * Fix bug in CLE with bn_conv groups (654f4b1)\r\n\r\n    * PyTorch \r\n        * Guarantee positive scale during aimet-torch QAT (2ed8305)\r\n        * Add secondary progress bars to Adascale and Omniquant (6c92a97)\r\n    \r\n* Documentation Updates\r\n    * Update Quick Start example and PTQ section (6c9f584)\r\n    * Add missing workflow images (f961ed4)\r\n\r\n* Known Issues\r\n    * Keras\r\n        * Accuracy drop observed with AIMET Keras for certain models. Fix is planned for the next release.\r\n        * Skipping 2.11 aimet-keras release due to regression\r\n","2025-07-29T20:53:36"]