Bitsandbytes 0.46.0发布:全面支持torch.compile()及ARM架构优化
Bitsandbytes是一个专注于高效深度学习计算的Python库,特别针对大模型训练和推理场景进行了优化。该项目通过实现8位和4位量化算法,显著降低了深度学习模型的内存占用和计算资源需求,使得在消费级硬件上运行大模型成为可能。最新发布的0.46.0版本带来了多项重要改进,特别是在PyTorch兼容性和硬件支持方面取得了突破性进展。## 核心特性解析### 1. 全面支持torch.co...
Bitsandbytes 0.46.0发布:全面支持torch.compile()及ARM架构优化
项目简介
Bitsandbytes是一个专注于高效深度学习计算的Python库,特别针对大模型训练和推理场景进行了优化。该项目通过实现8位和4位量化算法,显著降低了深度学习模型的内存占用和计算资源需求,使得在消费级硬件上运行大模型成为可能。最新发布的0.46.0版本带来了多项重要改进,特别是在PyTorch兼容性和硬件支持方面取得了突破性进展。
核心特性解析
1. 全面支持torch.compile()
0.46.0版本最显著的改进是全面支持PyTorch 2.x的torch.compile()功能,这对于提升模型推理性能至关重要。
LLM.int8()的无图中断支持:
- 兼容PyTorch 2.4+版本,推荐使用PyTorch 2.6+以获得最佳体验
- 包含了实验性的CPU支持
- 修复了threshold=0时的兼容性问题
4位量化的编译优化:
- 对于
fullgraph=False模式,兼容PyTorch 2.4+ - 要实现
fullgraph=True的无缝编译,需要PyTorch 2.8 nightly版本 - 通过自定义算子重构,实现了更高效的图优化
2. ARM架构深度支持
新版本开始为Linux aarch64架构(特别是服务器级ARM处理器)提供CUDA wheel包支持:
- 支持Turing架构及更新的GPU:sm75、sm80、sm90和sm100计算能力
- 通过原生ARM CI runners替代了之前的交叉编译方案,提高了构建可靠性
- 为ARM服务器用户提供了开箱即用的高性能量化计算能力
3. PyTorch自定义算子重构
本次更新对库的核心代码进行了大规模重构:
- 采用PyTorch的
torch.library和自定义算子API重新实现了大部分功能 - 提高了与PyTorch生态的兼容性,为未来功能扩展奠定基础
- 保持了API的向后兼容性,用户无需修改现有代码
- 为支持更多硬件平台(如Intel XPU)提供了架构基础
兼容性调整与优化
环境要求变更
- 停止支持Python 3.8,最低要求提升至Python 3.9
- 不再支持PyTorch 2.2.0以下版本
- CUDA 12.6和12.8构建现在使用
manylinux_2_24标签(原为manylinux_2_34)
废弃API清理
- 移除了多个先前标记为废弃的API
- 新增以下API的废弃警告:
- 自动梯度相关:
bnb.autograd.get_inverse_transform_indices()和bnb.autograd.undo_layout() - 功能函数:
bnb.functional.create_quantile_map()、bnb.functional.estimate_quantiles() - 极值计算:
bnb.functional.get_colrow_absmax()和bnb.functional.get_row_absmax() - 直方图操作:
bnb.functional.histogram_scatter_add_2d()
- 自动梯度相关:
底层优化与测试改进
代码质量提升
- 单元测试全面清理,提高了确定性和设备无关性
- 新增夜间CI流程,覆盖多种平台组合测试:
- CPU测试:Windows x86-64、Linux x86-64/aarch64
- CUDA测试:Linux/Windows x86-64
- 引入了更健壮的CUDA版本检测和错误处理机制
性能优化
- 为CPU设备添加了简单算子实现,提高了非CUDA环境下的性能
- 优化了库的加载逻辑,提供了更友好的错误提示
- 改进了非符号位处理逻辑,简化了相关代码
应用建议
对于希望使用新特性的开发者,建议:
-
环境配置:
- 升级到PyTorch 2.6+以获得最佳兼容性
- 如需使用4位量化的完整图编译,考虑PyTorch 2.8 nightly版本
-
ARM服务器部署:
- 直接安装官方提供的aarch64 wheel包
- 确认GPU架构兼容性(Turing及以上)
-
代码迁移:
- 检查是否使用了已废弃的API,及时更新为推荐替代方案
- 考虑在推理场景中尝试
torch.compile()以获得性能提升
Bitsandbytes 0.46.0通过深度整合PyTorch生态系统和扩展硬件支持,为大规模模型的高效部署提供了更强大的工具集,特别是在边缘计算和ARM服务器场景下表现出色。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)