微信扫码
添加专属顾问
国产大模型推理优化新思路:从BF16/FP8到INT8的量化误差问题如何解决?金融AI专家分享实战经验。 核心内容: 1. 国产大模型在推理阶段面临的量化误差挑战 2. 从技术原理分析BF16/FP8转INT8的精度损失问题 3. 基于实践经验的优化方案与性能提升策略
【摘要】当前主流大模型的训练过程仍然较为依赖非国产硬件,大模型发布时其参数数据结构通常仍然保持为BF16格式或FP8格式。然而适用于推理阶段的国产计算硬件,尚不能很好地支持BF16或FP8格式,由BF16/FP8转为INT8这一过程中模型的精度不可避免地受到影响,体现为在实际任务执行中准确率下降。如何利用有限的数据和计算资源高效解决这一问题成为我们需要研究的一大难点。本文从技术原理出发,结合实际实践经验,给出一些优化方案,在当下非常具有讨论意义和参考价值。
【作者】李登昊,某金融单位人工智能工程师,长期从事金融领域人工智能服务落地应用工作,曾负责建设云端自然语言处理模型服务系统,服务用户超三十万人;参与研发大模型智能产品,对大模型推理服务性能优化及RAG、Agent等技术有深入研究。
当前主流国产大模型主要有DeepSeek R1/V3系列和Qwen3系列。其中DeepSeek R1于2025年1月发布,面向数学竞赛、代码生成、逻辑推理等高难度任务设计,在对标OpenAI的最先进GPT模型的同时,推理成本仅为GPT同级别模型的1/30。DeepSeek R1通过支持深度思考链(长思维链设计),显著提升复杂问题解决能力,并于2025年3月和5月分别推出了迭代版本,进一步提升了其能力。DeepSeek R1/V3系列模型总参数量671B MoE激活37B。这一参数量对于许多中小规模机构来说较为庞大,而其推出的采用Qwen3 8B模型架构的蒸馏版本又相对较小,更适用于个人用户本地使用。相比之下Qwen3系列模型的模型大小覆盖各个参数规模,既有8B乃至更小的个人用户版本,又有235B MoE激活22B的版本和32B非MoE版本,在多数业务场景下同样较为适用。Qwen3系列模型吸取DeepSeek的深度思考链设计并进一步发展,集成“快思考”(低算力秒回简单问题)与“慢思考”(多步骤深度处理复杂问题),按需分配算力资源,在适配灵活多变的业务应用场景时有一定优势。
当前主流大模型的训练过程仍然较为依赖非国产硬件,训练级高性能硬件主要是英伟达旗下的A800和H800两款GPU,其中A800支持BF16数据格式,H800支持BF16和FP8数据格式。因此,大模型发布时其参数数据结构通常仍然保持为BF16格式或FP8格式。然而适用于推理阶段的国产计算硬件,如昇腾910系列硬件主要面向INT8格式,尚不能很好地支持BF16或FP8格式。由于数据格式的本质区别,由BF16/FP8转为INT8这一过程中模型的精度不可避免地受到影响,体现为在实际任务执行中准确率下降。如何利用有限的数据和计算资源高效解决这一问题成为我们需要研究的一大难点。本文从技术原理出发,结合实际实践经验,给出一些优化方案供同行专家交流讨论。
表一 部分先进国产大模型(截至2025年5月)
2.1.1 数据格式简介
随着深度学习的快速发展,在模型中应用的数据格式也经历了一个不断压缩从而提升效率的过程。早期深度学习主要使用FP32(float 32)格式。随后逐渐发展出TF32(tensor float 32,由英伟达提出)和BF16(brain float 16,由谷歌提出),这两种数据格式在英伟达A800 GPU中得到支持。在大模型训练中,BF16以16比特几乎无损替代32比特的FP32,效率大大提升,因而成为过去数年间大模型的主流数据格式。FP8(float 8)格式在英伟达H800 GPU上得到硬件支持。近一年来,FP8在大模型中得到越来越多应用,尤其是DeepSeek系列模型,原生数据格式即为FP8。Qwen3系列模型虽然原生数据格式为BF16,但也提供了FP8版本供使用。不同于其他浮点数据格式具有统一的指数位数和小数位数,在FP8格式中,有两种常见的指数小数分配方案:E4M3和E5M2(E指exponent,表示指数;M指mantissa,表示小数)。在大模型训练中,通常使用FP8 E4M3格式。
几类主要的浮点数据格式如下表:
表二 常见浮点数据格式对比(BF16与FP8 E4M3为主要格式)
2.1.2 FP8格式详解
以FP8 E4M3格式为例,总位数8比特决定了数值最多有256种不同取值,而由于需要表示特殊值,实际取值共有253种,编码公式为:
规格化值(指数不全为0)=(−1)^符号位×(1+2^(-3)×小数)×2^ (指数−7)
非规格化值(指数全为0)=(−1)^符号位×2^(-3)×小数×2^ (−6)
特殊值:1000_0000和0000_0000都表示0,1111_1111和0111_1111表示NAN(not a number)。
最大规格化正值为448=(-1)^0×(1+2^(-3)×6)×2^ (15−7)
最小规格化正值为0.015625=(-1)^0×(1+0)×2^ (1−7)
最大非规格化正值为0.013671875=(-1)^0×2^(-3)×7×2^ (-6)
最小非规格化正值为0.001953125=(-1)^0×2^(-3)×1×2^ (-6)
将FP8 E4M3的取值与INT8和INT4对比(如图1)。不难看出由于浮点特性,FP8取值范围显著大于INT8,且越靠近零点越稠密,越远离零点越稀疏,而INT格式取值范围小于浮点格式,相邻取值之间步长始终相等。
图1 FP8 E4M3取值与INT8和INT4的对比(上图包含FP8 E4M3所有取值,下图局部放大)
近年来,在模型量化领域涌现出大量学术论文。当前大模型量化研究主要关注将BF16格式模型参数(以及激活值和KV缓存)量化为4比特整数。通过调节尺度因子将过大难以量化的数值压缩是最常用的量化手段。其中有代表性的工作包括AWQ,SmoothQuant等算法。
SmoothQuant通过数学等价变换,将激活的量化难度迁移到权重上,可以实现权重和激活同步8比特量化,解决大模型中激活离群值导致的量化误差问题。SmoothQuant将量化难度从激活迁移到权重,通过引入可调节超参数,平衡权重与激活的量化难度,实现了更好的量化效果。官方代码发布于https://github.com/mit-han-lab/smoothquant。
AWQ(Activation-Aware Weight Quantization)算法,通过激活感知的权重缩放减少量化误差。其核心观点是:大模型中不同权重的量化敏感度与其对应的激活值分布相关,显著权重(对输出影响大的通道)需要更精细的量化保护。因此,通过校准阶段少量输入数据收集各通道的激活最大值,对权重矩阵的每个通道进行缩放,降低显著权重的量化误差,可以有效提高模型整体的量化精度。官方代码发布于https://github.com/mit-han-lab/llm-awq。
除了官方代码实现之外,上述算法也已经集成到昇腾模型压缩加速工具中,见下一章。
由于FP8格式仅在H800中得到支持而A800并不支持,将DeepSeek官方开源的FP8格式权重转换为BF16格式是模型应用中的常见需求之一。由于FP8格式的总位数较少,大模型以FP8格式存储的权重实际上还包含一组以BF16格式存储的尺度因子。尽管大模型权重参数存储没有统一规范,但以safetensors文件格式存储pytorch模型权重已经成为事实标准。在这一标准下,大模型的线性层权重索引通常形如“model.layers.n.xxx.x_proj.weight”,例如“model.layers.0.self_attn.o_proj.weight”。而以FP8格式存储的线性层权重除了这一索引之外,还包含“model.layers.n.xxx.x_proj.weight_scale_inv”索引,该索引指向一个较小的尺度因子矩阵,其中每个值对应于线性层权重中某一块区域的尺度因子。例如,若某线性层权重为256x256矩阵,每128x128大小分配一个尺度因子,则如下图所示:
图2 FP8格式转换为BF16格式
针对实际DeepSeek模型权重,具体实现代码可参考:
https://modelers.cn/models/MindIE/deepseekv3/blob/main/NPU_inference/fp8_cast_bf16.py
其中关键步骤python代码摘要如下:
def weight_dequant(weight, scale, block_size=128): M, N = weight.shape scale_m, scale_n = scale.shape scale_expanded = scale.repeat_interleave(block_size, dim=0).repeat_interleave(block_size, dim=1) scale_expanded = scale_expanded[:M, :N] dequantized_weight = weight.to(torch.bfloat16) * scale_expanded return dequantized_weight
而对于Qwen3系列模型,BF16和FP8格式均有官方发布版本,无需由FP8格式转换为BF16格式。
以DeepSeek-R1-0528为例,除了在DeepSeek官方网站获取模型权重以外,也可以在huggingface平台下载。在huggingface平台的模型页面右侧的“Model tree”一栏,可以看到相关衍生模型,其中“quantization”即为量化模型,包含多种由不同组织机构/开发者发布的模型权重。其中由unsloth发布的GGUF格式模型权重涵盖llama.cpp引擎支持的各种不同模型权重量化方案,可以使用vLLM框架进行加载提供高效稳定推理服务。
图3 DeepSeek-R1-0528衍生模型
vLLM框架仍处在活跃开发阶段,金融机构在实际使用时难免会遇到环境版本对齐不充分导致的一些bug。针对昇腾硬件平台上的vLLM框架使用,官方发布了昇腾硬件插件:
https://github.com/vllm-project/vllm-ascend/blob/main/README.zh.md
通过安装该插件,配合所需要的昇腾CANN和torch-npu版本,vLLM可以顺利加载并运行DeepSeek模型。
尽管如前所述,FP8格式表示的数值范围大于INT8可以表示的数值范围,且不像INT格式一样均匀分布,FP8与INT格式的对齐仍是可以实施的。如上文所指出的,大模型FP8权重并非单纯的FP8而是包含了尺度因子,当通过上一节中的python代码将权重转换为BF16格式后,实际权重值通常在-1到1之间,权重数值范围与全程使用BF16训练得到的基本一致。
上一节中介绍的由第三方发布的模型量化权重缺乏其灵活性,且其优化方案通常较为通用,适合快速搭建服务,进行POC验证。针对具有一定研发能力的组织机构/开发者,如需要进行深度优化,则建议考虑使用MindIE推理引擎。在MindIE的msit(MindStudio Inference Tools,昇腾推理工具链)中,昇腾官方也给出了自行优化模型量化效果的工具msmodelslim(mind studio model slim,昇腾模型压缩加速工具):
https://gitee.com/ascend/msit/tree/br_noncom_MindStudio_8.0.0_POC_20251231/msmodelslim/example/DeepSeek
该工具集提供了丰富的量化算法和模型混合精度配置选项,使用者可以结合业务具体需求,根据不同选项进行灰度测试,得到实际业务应用效果反馈从而选择最佳量化方案。其配置要点有以下几项:
但对于DeepSeek的MLA+MoE架构,研究者发现注意力模块对量化十分敏感,尤其是“kv_b_proj”层。在msmodelslim工具中,可以通过“disable_names”参数设置高精度(不进行量化)的模块名称。在默认配置中,如权重采用8比特量化,则“kv_b_proj”层将采用高精度,如权重采用4比特量化,则“q_a_proj”、“q_b_proj”、“kv_a_proj_with_mqa”、“kv_b_proj”和“o_proj”都将采用高精度,用户也可以在“quant_deepseek.py”文件中自行修改调优。
在默认配置中,不会额外指定某一层整体都采用高精度,但用户也可以通过将“disable_level”参数设置为“Ln”来指定最后n层为高精度(例如“L10”即最后10层为高精度)。
通过修改“msmodelslim/msmodelslim/pytorch/llm_ptq/llm_ptq_tools/llm_ptq_utils.py”,用户可以结合自身需求自定义更多混合精度的配置方法,例如根据业务场景中MoE不同专家模块的激活情况,将业务场景中不被激活的专家设置为极低精度等。
更多进阶操作可以配合msit中昇腾官方提供的其他工具开展,如下图所示:
图4 msit大模型推理迁移全流程
在昇腾官方发布的DeepSeek模型量化技术报告中,DeepSeek R1和DeepSeek V3 0324两款模型的量化效果如下表所示(数据来源
https://gitcode.com/ascend-tribe/ascend-inference-cluster/blob/main/OptiQuant/OptiQuant-%E6%98%87%E8%85%BE%E4%BA%B2%E5%92%8C%E7%9A%84DeepSeek%E6%A8%A1%E5%9E%8B%E9%87%8F%E5%8C%96%E6%8A%80%E6%9C%AF.pdf):
表三 DeepSeek R1模型精度测试结果
表四 DeepSeek V3 0324模型精度测试结果
当前DeepSeek系列与Qwen3系列等主流国产大模型模型已实现对昇腾平台的深度适配,通过直接转换为BF16格式或量化为INT8格式,使用MindIE推理引擎可以在昇腾硬件上高效运行。小规模应用可以采用昇腾 310 NPU +鲲鹏 CPU(例如超强 A800I 服务器),而高性能场景下可以使用昇腾910 NPU算力节点或集群支持全量模型部署。
随着国家对NPU产业链支持的投入逐步增大,预计到2027年关键算力设施自主化率将超过75%,国产算力集群将成为主要的大模型运行平台。未来,随着技术创新、安全可控需求和政策推动我国AI算力生态的自主可控与全球竞争力提升,硬件+软件全栈国产化组合将主导金融等领域应用!
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-07-11
别再为 AI 调用超支头疼:Credits 配额,让每一笔消耗都透明可控
2026-07-11
阿里腾讯 AI 大战
2026-07-10
OpenAI“杀死了”Codex,一个超级应用诞生
2026-07-10
OpenAI 重磅推出超级 APP 及 GPT 5.6
2026-07-10
GPT-5.6 正式开放:三个型号一起放出完整成绩单,ultra 其实是 4 个智能体并行
2026-07-10
GPT-5.6深夜上线,首发实测,Claude Fable5 慌了!
2026-07-10
刚刚,GPT-5.6全面上线,Codex被合并,生产力工具ChatGPT Work来了
2026-07-09
Claude Design 迎来一次重大更新
2026-04-15
2026-04-24
2026-04-17
2026-04-14
2026-04-24
2026-05-19
2026-04-22
2026-04-24
2026-04-24
2026-04-16
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。