ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

3行代码部署大模型:BMInf大模型推理工具快速上手指南(附硬件配置清单)

3行代码部署大模型:BMInf大模型推理工具快速上手指南(附硬件配置清单) 3行代码部署大模型BMInf大模型推理工具快速上手指南附硬件配置清单【免费下载链接】BMInfEfficient Inference for Big Models项目地址: https://gitcode.com/gh_mirrors/bm/BMInf一句话概括BMInf 是 OpenBMB 开源的大模型高效推理工具包Efficient Inference for Big Models通过「层调度 INT8 量化」两大核心技术让你用一张 6GB 的 GTX 1060 显卡就能跑起百亿参数大模型推理速度还能大幅超越原生 PyTorch。 BMInf 是什么为什么值得试大模型推理最大的门槛就是显存不够——一个百亿参数的模型仅权重就要几十 GB 显存普通消费级显卡根本装不下。BMInfBig Model Inference就是专门解决这个痛点的低资源推理工具包。它的两大杀手锏层调度Layer Scheduling把 Transformer 层参数放在 CPU 内存中用独立 CUDA 流异步预取到显存算完即换6GB 显存也能装下上百层模型INT8 量化Quantized Linear自动把nn.Linear换成 INT8 实现权重体积直接减半矩阵乘用 INT8 加速更妙的是它基于 PyTorch 构建无需改动模型代码一行wrapper调用即可生效还支持 PyTorch 反向传播推理、微调两不误。✅ 部署前必查硬件配置清单BMInf 的最低门槛在同类工具中非常友好。以下是官方配置要求详见 README-ZH.md硬件要求配置项最低配置推荐配置内存16GB24GBGPUNVIDIA GeForceGTX 1060 6GBNVIDIA Tesla V100 16GBPCI-EPCI-E 3.0 x16PCI-E 3.0 x16⚠️注意GPU 需支持CUDA 计算能力 6.1 及以上GTX 1060 起步RTX 系列、V100、A100 均可。显存越大跑得越快小显存则主要考验 CPU 内存与带宽。软件要求软件版本要求CUDA≥ 10.1Python≥ 3.6PyTorch≥ 1.7.1cpm_kernels≥ 1.0.9依赖清单见 requirements.txt安装时会自动安装不用手动折腾。 一键安装步骤两种方式任选方式一pip 安装推荐新手pip install bminf方式二源码安装适合开发者python setup.py install源码安装入口为 setup.py会自动编译 CUDA 内核并打包bminf/kernels/下的 fatbin 文件无需额外配置。 3行代码BMInf 快速上手这是 BMInf 最惊艳的地方——转换模型只需 3 行代码。以任意 PyTorch Transformer 模型为例import bminf # 1. 在 CPU 上初始化并加载你的模型 model MyModel() model.load_state_dict(model_checkpoint) # 2. 应用 BMInf 包装器关键一行 with torch.cuda.device(CUDA_DEVICE_INDEX): model bminf.wrapper(model)bminf.wrapper实现见 bminf/wrapper.py会自动完成两件事找到模型中所有torch.nn.ModuleList替换为bminf.TransformerBlockList—— 自动启用层调度找到所有torch.nn.Linear替换为bminf.QuantizedLinear—— 自动启用INT8 量化如果你的模型结构特殊导致自动转换不适配也可以手动替换替换ModuleList→TransformerBlockList、Linear→QuantizedLinearREADME 有完整示例。⚙️ 核心原理显存是怎么省下来的BMInf 的核心逻辑集中在两个模块了解它们有助于排查问题层调度器bminf/scheduler/根据显存大小计算可常驻显存的层数其余层参数保存在 CPU 锁页内存pinned memory中开一条独立 CUDA 流提前预取下一批要计算的层数据传输与矩阵计算完全重叠几乎不拖慢推理支持多卡TransformerBlockList可把不同层分配到多张 GPU 上量化线性层bminf/quantization/权重在加载时按行做动态缩放量化为 INT8CUDA 内核见 cuda/scale.cu前向计算走 INT8 GEMM再反量化输出显存占用约降一半且计算更快反向传播同样支持量化路径微调也不受限制 实测性能小显卡逆袭大显卡官方公布的 CPM2 模型实测数据数据源自 README值得收藏实现GPU编码速度 (tokens/s)解码速度 (tokens/s)BMInfGTX 10607184.4BMInfGTX 1080Ti120012BMInfGTX 2080Ti227519BMInfTesla V100296620BMInfTesla A100436526PyTorchTesla V100-3PyTorchTesla A100-7 划重点GTX 10606GB跑赢了 V100 上的原生 PyTorch这就是层调度 量化的威力即使在高配卡上BMInf 比 PyTorch快 3 倍7 倍 实战案例单节点部署 1300亿参数 GLM-130B项目自带完整的多卡推理示例 example/glm-130B/inference_glm130B.py核心推理脚本内部仅用一行bminf.wrapper(model, quantizationFalse, memory_limit20 30)完成 130B 模型的显存调度config/model_glm_130B.shGLM-130B 超参数配置70 层、隐藏维度 12288scripts/generate_glm.sh8 卡并行启动脚本含温度、top-k 等采样参数model_convert/megatron_to_sat.pyMegatron 格式权重转换工具此外 example/huggingface/ 下还有 GPT-J 的 Notebook 示例适合快速体验。 常见问题FAQQ1我的显卡显存不够能跑多大的模型只要CPU 内存装得下6GB 显存也能跑超大模型速度取决于 CPU↔GPU 的 PCI-E 带宽。显存决定速度内存决定上限。Q2报错 CUDA out of memory 怎么办检查是否满足最低配置16GB 内存 6GB 显存或通过wrapper的memory_limit参数手动限制调度器使用的显存上限参考 GLM 示例中20 30的写法。Q3会不会损失模型精度INT8 量化是可选的quantization参数默认开启可传False关闭即使开启量化误差对生成质量影响也极小。Q4我的模型不是 Transformer 结构能支持吗BMInf 2.0 起支持任意基于 Transformer 的模型核心是对ModuleList与Linear的通用替换适配面很广。 写在最后BMInf 证明了大模型推理不必被 A100 绑架。凭借层调度与 INT8 量化两大技术一张 GTX 1060 也能优雅地跑起百亿大模型。如果你的项目正被显存卡脖子花 5 分钟pip install bminf 3 行代码很可能就解锁了新可能。 项目使用 Apache 2.0 许可证开源LICENSE欢迎参照 CONTRIBUTING.md 参与贡献。【免费下载链接】BMInfEfficient Inference for Big Models项目地址: https://gitcode.com/gh_mirrors/bm/BMInf创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表