Bitsandbytes 0.46.0发布:全面支持torch.compile()及ARM架构优化

🔥【免费下载链接】bitsandbytes 8-bit CUDA functions for PyTorch 🔥【免费下载链接】bitsandbytes 项目地址: https://gitcode.com/gh_mirrors/bi/bitsandbytes

项目简介

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环境下的性能
  • 优化了库的加载逻辑,提供了更友好的错误提示
  • 改进了非符号位处理逻辑,简化了相关代码

应用建议

对于希望使用新特性的开发者,建议:

  1. 环境配置

    • 升级到PyTorch 2.6+以获得最佳兼容性
    • 如需使用4位量化的完整图编译,考虑PyTorch 2.8 nightly版本
  2. ARM服务器部署

    • 直接安装官方提供的aarch64 wheel包
    • 确认GPU架构兼容性(Turing及以上)
  3. 代码迁移

    • 检查是否使用了已废弃的API,及时更新为推荐替代方案
    • 考虑在推理场景中尝试torch.compile()以获得性能提升

Bitsandbytes 0.46.0通过深度整合PyTorch生态系统和扩展硬件支持,为大规模模型的高效部署提供了更强大的工具集,特别是在边缘计算和ARM服务器场景下表现出色。

🔥【免费下载链接】bitsandbytes 8-bit CUDA functions for PyTorch 🔥【免费下载链接】bitsandbytes 项目地址: https://gitcode.com/gh_mirrors/bi/bitsandbytes

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐