ao

GitHub
2.8k 490 中等 1 次阅读 昨天NOASSERTION开发框架语言模型
AI 解读 由 AI 自动生成,仅供参考

TorchAO 是 PyTorch 官方推出的原生量化与稀疏化工具,旨在打通从模型训练到服务部署的全链路优化。它主要解决了大语言模型在训练时显存占用高、速度慢,以及在推理阶段部署成本高昂的难题。通过引入先进的压缩技术,TorchAO 能显著降低资源门槛:例如在预训练 Llama-3.1-70B 时可实现 1.5 倍加速,或将 Llama-3-8B 量化为 int4 格式,使推理速度提升近 1.9 倍的同时减少 58% 的内存占用。

该工具特别适合 AI 研究人员、深度学习工程师以及需要高效部署大模型的开发者使用。其核心技术亮点在于“原生”集成,无需复杂的外部依赖即可在 PyTorch 生态中流畅运行。TorchAO 支持包括 float8 训练、感知量化训练(QAT)以及多种低比特(int4/int8)推理方案,并已与 Hugging Face Transformers、vLLM、Unsloth 等主流框架深度整合。无论是希望加速大规模预训练的研究团队,还是追求极致推理性能的工程团队,TorchAO 都能提供灵活且高效的解决方案,帮助用户在保持模型精度的前提下,大幅节省计算资源。

使用场景

某初创团队正在基于 Llama-3-8B 模型开发一款实时法律问答助手,需要在有限的 GPU 资源下同时满足快速微调训练和低延迟上线的需求。

没有 ao 时

  • 训练效率低下:使用传统浮点精度进行全量微调,显存占用极高,导致无法在单卡上运行大批次训练,迭代周期长达数天。
  • 推理成本高昂:部署时模型体积庞大,显存占用超过 16GB,迫使团队租用昂贵的多卡实例,且首字延迟难以控制在 200ms 以内。
  • 精度与速度难兼得:尝试手动量化至 int4 后,模型在法律术语理解上出现严重幻觉,准确率下降超过 15%,被迫回退到高精度模式。
  • 集成流程繁琐:需要编写大量自定义算子来适配不同的量化后端,维护成本高且容易引入兼容性 bug。

使用 ao 后

  • 训练大幅加速:利用 ao 的 float8 原生训练支持,在保持损失曲线一致的前提下,预训练和微调速度提升 1.5 倍,显著缩短研发周期。
  • 推理极致优化:通过 ao 将模型量化为 int4 格式,显存占用减少 58%,推理速度提升 1.89 倍,成功在单张消费级显卡上实现低延迟部署。
  • 精度完美恢复:借助 ao 集成的量化感知训练(QAT)技术,找回了 67% 因量化导致的精度损失,确保法律回答的专业性和准确性。
  • 生态无缝衔接:ao 作为原生后端直接融入 Hugging Face Transformers 和 vLLM 框架,无需修改核心代码即可一键切换量化策略。

ao 通过 PyTorch 原生的量化与稀疏化能力,让团队在低成本硬件上实现了从高效训练到高性能推理的全链路优化。

运行环境要求

操作系统
  • Linux
GPU
  • NVIDIA GPU 必需 (支持 CUDA 12.6, 12.8, 12.9)
  • 可选 Intel XPU
  • 支持 ARM CPU (边缘设备)
  • 具体显存取决于模型大小,示例中提到 H100、B200、H200 及 iPhone 15 Pro
内存

未说明

依赖
notes该工具主要面向 PyTorch 原生环境,深度集成 torch.compile 和 FSDP2。安装时需注意 CUDA 版本匹配(提供 cu126, cu128, cu129 等特定索引)。支持多种量化格式(int4, int8, float8)及稀疏化训练/推理。可选依赖 MSLK 用于加速部分工作流。支持通过 ExecuTorch 部署到移动端。开发版安装需使用 --no-build-isolation 标志。
python未说明
torch
transformers
vllm
diffusers
mslk-cuda (可选)
ao hero image

快速开始

TorchAO

PyTorch原生训练至推理模型优化

  • 使用float8训练,预训练Llama-3.1-70B速度提升1.5倍
  • 通过QAT在Gemma3-4B上恢复67%的量化精度损失
  • 将Llama-3-8B量化为int4,推理速度提升1.89倍,内存占用减少58%

📣 最新消息

往期新闻

🌅 概述

TorchAO是一个易于使用的原生PyTorch量化库。TorchAO可与torch.compile()FSDP2无缝配合,适用于大多数HuggingFace PyTorch模型。

有关不同硬件和数据类型下稳定及原型工作流的详细概述,请参阅工作流文档

更多详情请查看我们的文档

🚀 快速入门

首先,安装TorchAO。我们建议安装最新的稳定版本:

pip install torchao

将您的模型权重量化为int4!

import torch
from torchao.quantization import Int4WeightOnlyConfig, quantize_
if torch.cuda.is_available():
  # 在CUDA上量化
  quantize_(model, Int4WeightOnlyConfig(group_size=32, int4_packing_format="tile_packed_to_4d", int4_choose_qparams_algorithm="hqq"))
elif torch.xpu.is_available():
  # 在XPU上量化
  quantize_(model, Int4WeightOnlyConfig(group_size=32, int4_packing_format="plain_int32"))

更多详情请参阅我们的快速入门指南

🛠 安装

要安装最新稳定版本:

pip install torchao
其他安装选项
# 夜间版
pip install --pre torchao --index-url https://download.pytorch.org/whl/nightly/cu128

# 不同CUDA版本
pip install torchao --index-url https://download.pytorch.org/whl/cu126  # CUDA 12.6
pip install torchao --index-url https://download.pytorch.org/whl/cu129  # CUDA 12.9
pip install torchao --index-url https://download.pytorch.org/whl/xpu    # XPU
pip install torchao --index-url https://download.pytorch.org/whl/cpu    # 仅CPU

# 针对开发者
# 注意:需要使用`--no-build-isolation`标志。
USE_CUDA=1 pip install -e . --no-build-isolation
USE_XPU=1 pip install -e . --no-build-isolation
USE_CPP=0 pip install -e . --no-build-isolation

请参阅TorchAO兼容性表以了解依赖项的版本要求。

可选依赖

MSLK是TorchAO部分工作流中提供加速内核的可选运行时依赖。稳定的MSLK应与稳定的TorchAO搭配使用,而夜间版MSLK则应与夜间版TorchAO搭配使用。

# 稳定版
pip install mslk-cuda==1.0.0

# 夜间版
pip install --pre mslk --index-url https://download.pytorch.org/whl/nightly/cu128

🔎 推理

TorchAO 仅需少量代码改动即可带来显著的性能提升:

  • Int4 权重量化:在 H100 上,Gemma3-12b-it 的推理速度提升 1.73 倍,内存占用减少 65%,且对精度影响较小。
  • Float8 动态量化:在 H100 上,Gemma3-27b-it 的推理速度提升 1.5–1.6 倍;Flux.1-Dev* 和 CogVideoX-5b 的推理速度分别提升 1.54 倍和 1.27 倍,同时保持模型质量不变。
  • Int8 激活量化与 Int4 权重量化:通过 ExecuTorch,在 iPhone 15 Pro 上,量化后的 Qwen3-4B 模型可达到 14.8 tokens/s 的吞吐量,内存占用仅为 3379 MB。
  • Int4 + 2:4 稀疏化:在 Llama-3-8B 上,吞吐量提升 2.37 倍,内存占用减少 67.7%。

以下是我们的量化与部署推荐流程:

from transformers import TorchAoConfig, AutoModelForCausalLM
from torchao.quantization import Float8DynamicActivationFloat8WeightConfig, PerRow

# 创建量化配置
quantization_config = TorchAoConfig(quant_type=Float8DynamicActivationFloat8WeightConfig(granularity=PerRow()))

# 加载并自动量化
quantized_model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen3-32B",
    dtype="auto",
    device_map="auto",
    quantization_config=quantization_config
)

如果上述方法不适用,也可使用 快速入门指南 中的 quantize_ API 进行量化。

使用 vLLM 在单台 H100 机器上进行服务:

# 服务器端
VLLM_DISABLE_COMPILE_CACHE=1 vllm serve pytorch/Qwen3-32B-FP8 --tokenizer Qwen/Qwen3-32B -O3
# 客户端
curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{
  "model": "pytorch/Qwen3-32B-FP8",
  "messages": [
    {"role": "user", "content": "请简要介绍一下大型语言模型。"}
  ],
  "temperature": 0.6,
  "top_p": 0.95,
  "top_k": 20,
  "max_tokens": 32768
}'

对于扩散模型,可以使用 Hugging Face diffusers 进行量化:

import torch
from diffusers import DiffusionPipeline, PipelineQuantizationConfig, TorchAoConfig
from torchao.quantization import Int8WeightOnlyConfig
from torchao.quantization.granularity import PerGroup

pipeline_quant_config = PipelineQuantizationConfig(
    quant_mapping={"transformer": TorchAoConfig(Int8WeightOnlyConfig(granularity=PerGroup(128)))}
)
pipeline = DiffusionPipeline.from_pretrained(
    "black-forest-labs/FLUX.1-dev",
    quantization_config=pipeline_quant_config,
    torch_dtype=torch.bfloat16,
    device_map="cuda"
)

我们还支持通过 ExecuTorch 将模型部署到边缘设备上,详情请参阅 量化与推理指南。此外,我们还在 Hugging Face 上发布了预量化模型。

🚅 训练

量化感知训练

后训练量化能够生成快速且紧凑的模型,但也可能导致精度下降。我们建议探索量化感知训练(QAT)以克服这一限制,尤其是在使用较低位宽数据类型(如 int4)时。与 TorchTune 合作,我们开发了一套 QAT 流程,相比传统 PTQ 显著提升了模型精度:与 PTQ 相比,Llama3 在 hellaswag 数据集上的准确率恢复了 96%,在 wikitext 数据集上的困惑度下降恢复了 68%。更多细节请参阅 QAT README官方博客

import torch
from torchao.quantization import quantize_, Int8DynamicActivationIntxWeightConfig, PerGroup
from torchao.quantization.qat import QATConfig

# 准备阶段
base_config = Int8DynamicActivationIntxWeightConfig(
    weight_dtype=torch.int4,
    weight_granularity=PerGroup(32),
)
quantize_(my_model, QATConfig(base_config, step="prepare"))

# 训练模型(未展示)

# 转换阶段
quantize_(my_model, QATConfig(base_config, step="convert"))

用户还可以结合 LoRA 和 QAT,利用此 微调配方,使训练速度相比纯 QAT 提升 1.89 倍。

量化训练

torchao.float8 实现了基于缩放浮点8位数据类型的训练流程,相关理论见 https://arxiv.org/abs/2209.05433。配合 torch.compile 使用时,当前结果表明,在最多 512 张 GPU、参数规模达 405B 的场景下,吞吐量最高可提升 1.5 倍(详情请参阅 PyTorch 博客):

from torchao.float8 import convert_to_float8_training
convert_to_float8_training(m)

我们的 float8 训练已集成到 TorchTitan 的预训练流程,方便用户直接尝试。更多详情请参阅以下关于 float8 训练支持的博客文章:

  • [使用 PyTorch Float8 行级量化加速大规模训练与收敛——基于 Crusoe 2K H200 集群]
  • [利用 float8 和 FSDP2 超级加速训练]
  • [使用 TorchTitan 在 Amazon SageMaker 上高效预训练 Llama 3 类似架构模型]
  • [PyTorch 中的 Float8]
其他特性(稀疏训练、内存高效优化器)

稀疏训练

我们新增了半结构化 2:4 稀疏化的支持,在 ViT-L 模型上实现了 6% 的端到端速度提升。完整博文请参阅 PyTorch 博客。代码修改仅需一行,完整示例可在 torchao/sparsity/training/ 查看:

from torchao.sparsity.training import SemiSparseLinear, swap_linear_with_semi_sparse_linear
swap_linear_with_semi_sparse_linear(model, {"seq.0": SemiSparseLinear})

内存高效的优化器

像 ADAM 这样的优化器可能会占用大量的 GPU 显存——甚至达到模型参数本身的两倍。TorchAO 提供了两种方法来降低这种开销:

1. 量化优化器:通过量化到较低精度,将优化器状态的内存占用减少 2 到 4 倍。

from torchao.optim import AdamW8bit, AdamW4bit, AdamWFp8
optim = AdamW8bit(model.parameters()) # 替换为 Adam4bit 和 AdamFp8 以使用 4 位和 FP8 版本

我们的量化优化器仅用几百行 PyTorch 代码实现,并经过编译以提高效率。虽然速度略慢于专用内核,但它们在节省内存和性能之间提供了极佳的平衡。详细基准测试请参见 这里

2. CPU 卸载:将优化器状态和梯度转移到 CPU 内存中。

为了最大限度地节省显存,我们支持 单 GPU CPU 卸载,该方法可以高效地将梯度和优化器状态转移到 CPU 内存。这种方法可以在对训练速度影响很小的情况下,将你的显存需求降低 60%

optim = CPUOffloadOptimizer(model.parameters(), torch.optim.AdamW, fused=True)
optim.load_state_dict(ckpt["optim"])

🔗 集成

TorchAO 已集成到一些领先的开源库中,包括:

🎥 视频

💬 引用

如果您觉得 torchao 库很有用,请在您的工作中按以下方式引用它。

@misc{or2025torchao,
  title={TorchAO: PyTorch 原生从训练到推理的模型优化},
  author={Andrew Or 和 Apurva Jain 和 Daniel Vega-Myhre 和 Jesse Cai 和 Charles David Hernandez 和 Zhenrui Zheng 和 Driss Guessous 和 Vasiliy Kuznetsov 和 Christian Puhrsch 和 Mark Saroufim 和 Supriya Rao 和 Thien Tran 和 Aleksandar Samardžić},
  year={2025},
  eprint={2507.16099},
  archivePrefix={arXiv},
  primaryClass={cs.LG},
  url={https://arxiv.org/abs/2507.16099},
}

版本历史

v0.17.02026/03/30
v0.16.02026/02/10
v0.15.02025/12/22
v0.14.12025/10/13
v0.13.0-rc82025/09/02
v0.12.02025/07/17
v0.11.02025/05/09
v0.10.02025/04/07
v0.9.02025/02/28
v0.8.02025/01/15
v0.7.0-rc32024/12/06
v0.6.12024/10/21
v0.5.02024/09/08
v0.4.02024/08/07
v0.3.02024/06/26
v0.2.02024/05/20
v0.12024/04/04

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

160k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

109.2k|★★☆☆☆|今天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架