【收藏】AI训练加速神器:深入理解混合精度计算

Pytorch自动混合精度的计算:torch.cuda.amp.autocast PyTorch中的autocast功能是一个性能优化工具,它可以自动调整某些操作的数据类型以提高效率。具体来说,它允许自动将数据类型从32位浮点(float32)转换为16位浮点(float16),这通常在使用深度学习模型进行训练时使用。 阅读详情

本文详细介绍了混合精度计算技术在AI大模型训练中的应用。通过同时使用FP16/BFLOAT16等低精度和FP32高精度格式,混合精度训练能在保持模型精度的同时显著减少显存占用、提升训练速度。文章对比了各精度格式的特点,解释了混合精度原理,并提供了PyTorch和TensorFlow的实现代码示例,已成为现代大模型训练的标配技术。

1、 什么是混合精度计算?

混合精度计算是指在模型训练过程中,同时使用不同精度的浮点数(如 FP16 与 FP32)进行计算,以达到性能与精度的平衡。

  • 低精度(FP16/BF16):加速矩阵乘法、卷积等计算,减少显存占用。
  • 高精度(FP32):保留在梯度累积、权重更新等对数值精度敏感的环节,防止梯度下溢或损失收敛稳定性。

2、 常见低精度格式

格式位数指数位尾数位动态范围特点概述
FP3232823~1e-38 ~ 1e+38精度高但显存占用大,速度慢
FP1616510~1e-5 ~ 1e+5显存减半,速度快,但动态范围有限
BF161687~1e-38 ~ 1e+38范围接近 FP32,稳定性好,精度略低
TF3219810~1e-38 ~ 1e+38NVIDIA Ampere 架构专用,计算速度快,兼顾精度

其中TF32 是 NVIDIA 在 Ampere 架构上推出的矩阵计算格式。

3、 混合精度训练的原理

混合精度的核心是 计算与存储的分离:

1.计算阶段:大部分运算(如矩阵乘法、卷积)用 FP16/BF16 在 Tensor Core 上执行,加速显著。

2.存储阶段:模型权重、梯度累积等关键变量保留 FP32 精度,避免数值不稳定。

3.损失缩放(Loss Scaling):通过放大梯度值,减少 FP16 梯度下溢的风险。

4、混合精度实现

PyTorch AMP(Automatic Mixed Precision)

import torch
from torch.cuda.amp import GradScaler, autocast

model = ...
optimizer = ...
scaler = GradScaler()

for data, target in dataloader:
    optimizer.zero_grad()
    with autocast():  # FP16 加速
        output = model(data)
        loss = loss_fn(output, target)
    scaler.scale(loss).backward()
    scaler.step(optimizer)
    scaler.update()
TensorFlow Mixed Precision API

import tensorflow as tf

# 开启混合精度
policy = tf.keras.mixed_precision.Policy('mixed_float16')
tf.keras.mixed_precision.set_global_policy(policy)

model = ...
model.compile(optimizer='adam', loss='categorical_crossentropy')
model.fit(dataset, epochs=10)

混合精度的优势十分显著:显存占用减少近一半,训练速度在 Tensor Core 或 TPU 的加持下成倍提升,同时由于内存带宽和功耗压力降低,整体能效也随之提高。但在使用过程中仍需注意几个问题:一是 FP16 容易发生梯度下溢,因此必须搭配 Loss Scaling;二是硬件需要支持相应的计算格式,例如 Volta 及更新架构支持 FP16 Tensor Core,Ampere 及以上才支持 TF32;三是某些算子(如归一化或 softmax)对数值敏感,应保留 FP32 计算。

最后,我们回答一下文章开头提出的问题

1.混合精度计算是如何在不损失模型效果的情况下提升训练速度的?

通过低精度加速计算并减少显存占用,同时在关键步骤保留高精度计算保持数值稳定性。

2.FP16 与 BFLOAT16 的区别与适用场景是什么?

FP16 精度更高但动态范围小,适合数值范围可控的任务;BFLOAT16 动态范围大,更稳定,适合超大模型训练。

3.在 PyTorch / TensorFlow 中如何正确开启混合精度训练?

PyTorch 使用 AMP + GradScaler,TensorFlow 使用 mixed_precision.Policy,并确保关键算子保留 FP32。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

在这里插入图片描述

为什么要学习大模型?

我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。

在这里插入图片描述

在这里插入图片描述

大模型入门到实战全套学习大礼包

1、大模型系统化学习路线

作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!

img


2、大模型学习书籍&文档

学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。

在这里插入图片描述

3、AI大模型最新行业报告

2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

img

4、大模型项目实战&配套源码

学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。

img

5、大模型大厂面试真题

面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

img

适用人群

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …
第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …
第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …
第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

大模型训练之计算量和内存优化篇------混合精度/量化QAT、QAF、PTQ/剪枝/知识蒸馏/FSDP&cpu offload/Gradient Checkpointing 大模型训练显存和计算量优化 阅读详情

相关推荐

[源码分析] Facebook如何训练超大模型---(4)

Python微信订餐小程序课程视频 https://edu.youkuaiyun.com/course/detail/36074 Python实战量化交易理财系统 https://edu.youkuaiyun.com/course/detail/35475 [源码分析] Facebook如何训练超大模型 — (4) 目录* [源码分析] Facebook如何训练超大模型 — (4) + 0x00 摘要 + 0x01 背景知识 - 1.1 单精度、双精度和半精度浮点格式的区别 - 1.2 多精度和混合精度计算的区别 - 1.3 混合

「 虚幻私塾」 836

pytorch混合精度训练及其例子(不显著影响模型精度的前提下,提高计算效率和减少显存占用。)

混合精度计算(Mixed Precision Training)是一种在深度学习训练过程中同时使用单精度浮点数(FP32)和半精度浮点数(FP16)进行计算的方法。其主要目的是在不显著影响模型精度的前提下,提高计算效率和减少显存占用。

weixin_44162814的博客 1569

【NLP】使用混合精度技术加速大型语言模型

由于大型语言模型 (LLM) 的计算要求和内存占用量大,因此训练和使用它们的成本很高。本文将探讨如何利用低精度格式将训练和推理速度提高 3 倍,同时不影响模型精度。尽管我们主要关注大型语言模型示例,但这些技术中的大多数都是通用的,也适用于其他深度学习架构。

sikh_0529的博客 2228

科普 | 单精度、双精度、多精度和混合精度计算的区别是什么?

科普 | 单精度、双精度、多精度和混合精度计算的区别是什么? 转自:https://zhuanlan.zhihu.com/p/93812784 我们提到圆周率 π 的时候,它有很多种表达方式,既可以用数学常数3.14159表示,也可以用一长串1和0的二进制长串表示。 圆周率 π 是个无理数,既小数位无限且不循环。因此,在使用圆周率进行计算时,人和计算机都必须根据精度需要将小数点后的数字四舍五入。 在小学的时候,小学生们可能只会用手算的方式计算数学题目,圆周率的数值也只能计算到小数点后两位——3.14;而高中

weixin_44966641的博客 8576

YOLOv11【第八章:遥感与无人机航拍篇·第6节】SAHI(Slicing Aided Hyper Inference):切片辅助推理提升小目标召回率!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 123

CSR-DCF视频目标跟踪源码运行笔记

论文基本信息 论文标题:Discriminative Correlation Filter with Channel and Spatial Reliability 论文作者:Alan Lukezic等 论文出处:CVPR 2017 文章链接:https://arxiv.org/abs/1611.08461 补充材料:https://www.semanticscholar.org/paper/D...

越野者的博客 3400

大模型训练基础之混合精度计算

在训练 1.5B 参数量的 GPT-2 模型时,使用 FP16 精度大致需要 21GB 的显存。这是一个比较精确的估算,实际占用可能会因实现细节有所不同。: 用于缩放梯度,以防止在 FP16 运算中出现的梯度下溢(数值过小导致的精度损失)问题。它通过动态调整缩放因子,确保梯度在反向传播中有足够的数值范围。选择最合适的精度(如上图所示),从而优化性能。混合精度能够保证模型准确性的情况下使训练更快。在前向传播后,你会得到一个损失值,然后使用。对这个损失值进行缩放,并计算梯度。但是同样的半精度存在的问题。

m0_52474839的博客 1276

CANoe LIN一致性测试之干扰测试Test moudle_LIN Disturbance Block

注意:相邻两个显隐性不同的bit不允许干扰,例如我同时选择bit6和bit7,相邻两个同显隐性的bit允许干扰,例如当我选择bit3和bit4,项,这里我选择ID:为0x2F(PID:0x6F)的frame。需按照具体测试规范实施干扰项,帧头和数据段都可以实现干扰。最近发现一个干扰测试模块,下面是一些具体使用方法。选择干扰项:PID的奇偶校验位(一致性测试干扰测试之手动测试。一个待测试frameD。

yuanyikangkang的博客 3410

在计算机领域,半精度、单精度、双精度的定义,以及多精度计算和混合精度计算的区别。

混合精度计算又称超精度计算:将算法的计算步骤细化到每步操作,每次计算都根据所需计算精度选择合适的精度,并以更高的精度保存计算结果。比如两个16bit数相乘,得到是一个32bit的结果,那么混合精度计算就会以半精度读取操作数,将两数相乘后以单精度保存计算结果。多精度计算:以不同精度进行计算,在需要使用高精度计算的部分使用双精度,而其他部分则使用半精度或单精度算法。在计算机系统的内存中,半精度是16bit,单精度是32bit,双精度是64bit.Significand 有效数字。Exponent 指数。

ktd007的专栏 6708

RK3588上rknn_toolkit_lite2报错解决:手把手教你更新librknnrt.so的正确姿势

本文针对在RK3588平台上使用rknn_toolkit_lite2时遇到的“Invalid RKNN model version”等常见错误,提供了完整的诊断与解决方案。文章深入剖析了RKNN生态系统各组件(如librknnrt.so、RKNN Server)版本不兼容的根源,并手把手指导如何安全、正确地更新librknnrt.so运行时库,确保AI模型在RK3588 NPU上实现高效推理。

weixin_29189003的博客 520

Jetson平台XDMA PCIe驱动安装与测试全指南

本文提供了一份在NVIDIA Jetson平台上安装与测试Xilinx FPGA XDMA PCIe驱动的完整指南。详细阐述了驱动作为高速DMA引擎的核心作用,并逐步讲解了从环境准备、驱动编译、内核模块加载到实际数据传输测试的全过程。内容涵盖常见问题排查与性能优化建议,帮助开发者实现Jetson与FPGA间的高速数据通信,适用于自动驾驶、工业视觉等需要异构计算的应用场景。

weixin_29196315的博客 526

混合精度计算那些事

optimizer.step(scale=scale) 更新时梯度反缩放,反缩放后梯度用的fp16还是32?,最终用于更新 FP32 主权重(Master Weights)。这里有个疑问:梯度更新显式转换为 FP32,岂不是显存又大了?梯度转换为 FP32 后反缩放,再更新 FP32 主权重。:临时且短暂,通过显存复用和异步操作几乎可忽略。:将 FP16 梯度除以缩放因子,恢复真实值。梯度计算时候用的是fp16,激活值和梯度的显存占用与。强相关,且会逐层累积。

爱CV 1545

通俗地解释一下 EMD(经验模态分解,Empirical Mode Decomposition)

EMD 就像把一碗“混在一起的面条”分成不同粗细的面条,方便你逐层分析每种波动。

qlkaicx的博客 1249

pytorch混合精度计算代码

使用混合精度计算可以减少约一半的显存,但是要注意需要torch1.7.1以上。

wangshuhuan1的博客 1090

服务器取证——服务器基础知识

服务器基础知识

记录并分享学习安全的知识点.. 2482

【全网首发】2026华为OD双机位C卷 机考真题题库含考点说明以及在线OJ (Java)

如果你收到的是双机位C卷考试通知,需要针对性地调整备考策略。自2025年11月19日起,华为OD机试已正式从双机位A卷切换至。复杂度明显提升,需要组合多个算法点。题面相对简单,直接考查编程基本功。考查问题分析、算法选择和优化能力。通常为1-2个核心算法点的应用。

算法大师! 165

大模型训练的幕后英雄:混合精度计算技术详解!

本文详解了大模型训练中的混合精度计算技术,通过同时使用低精度(FP16/BFLOAT16)加速计算和高精度(FP32)保持数值稳定性,显著减少显存占用并提升训练速度。文章对比了FP16与BFLOAT16的特点,介绍了混合精度的核心原理,并展示了PyTorch和TensorFlow中的实现方法,为高效大模型训练提供实用指南。

2301_80239908的博客 1136

2020计算机专业保研夏令营面经:中科院计算所网数机试题目

计算所网络数据科学与技术重点实验室的第一阶段是机试。机试不限程序语言,要求提交源代码。

乔卿的博客 2957

混合精度调优经验分享(二)

在混合精度论文[Mixed Precision Training] 中,作者提出,对于大规模的累加操作,使用FP16会损失更多精度,这一类算子仍要保持FP32的运算,比较常见的算子如:BatchNorm,SoftMax等,这些算子的Redunction 操作仍需要使用FP32格式。为了解决权重无法进行微小更新的问题,在权重更新阶段,我们需要让更新值和被更新值的格式都是FP32。更新值就是梯度,被更新值就是权重,因此,在最后的更新阶段,需要先将FP16梯度转换为FP32格式,然后更新到FP32的权重上。

skytttttt9394的博客 356

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

cuda编程笔记(20)-- 混合精度计算

背景:为什么要用混合精度问题:现代深度学习模型越来越大,计算量巨大,显存占用高。目标:降低显存占用 → FP16 (半精度) 占用 FP32 的一半。提升计算吞吐量 → NVIDIA GPU 上 Tensor Core 对 FP16 计算有专门加速。保持训练稳定性 → 梯度累加或缩放保持 FP32 精度的数值稳定。所以出现了 混合精度训练 (Mixed Precision Training):前向、反向大部分用 FP16 计算。梯度累加和权重更新用 FP32 以避免精度丢失。精度介绍在 C++ / CUDA

ouliten的博客 1179

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Pytorch-API:混合精度计算(AMP)

API最后还列举了一些CUDA/CPU数据类型的可转换介绍,详细可访问链接。

始于足下 759

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

混合精度量化模型指标模拟计算(BitOps与参数规模)

本文提取了LIMPQ算法源码,实现了混合精度量化模型的BitOps和参数规模的计算。

qq_39068200的博客 1359

AI Infra 硬件体系与编程模型:15. CUDA编程基础:混合精度计算

CUDA混合精度计算指南摘要 本文系统介绍了CUDA混合精度计算的核心原理与工程实践。混合精度通过非关键路径使用低精度(FP16/BF16)提升性能,关键路径保留高精度(FP32)确保准确性,可带来16倍算力提升、显存减半和带宽效率倍增三重收益。 文章详细解析了四种主流浮点格式(FP32、FP16、BF16、TF32)的位结构、动态范围和适用场景,指出BF16是训练首选、FP16适合推理、TF32可透明加速FP32运算。硬件方面重点介绍了Tensor Core的WMMA执行模型和不同架构的精度支持。 实现层

basketball616的博客 460

开源大模型项目,助你效率提高 10 倍

Flowise 是一款开源 UI 可视化工具,用于构建定制的 LLM 编排流程和 AI 代理。" )}

2401_85375298的博客 1871

PyTorch Mixed Precision混合精度训练实战

通过PyTorch的自动混合精度(AMP)技术,结合容器化环境,显著降低显存占用、提升训练速度并保证模型精度。利用autocast和GradScaler实现稳定高效的FP16训练,配合标准化镜像解决环境不一致问题,适用于图像分类、Transformer等多种场景,助力深度学习项目高效迭代。

weixin_35364187的博客 741

MindSpore怎样使用混合精度

混合精度训练方法是通过混合使用单精度和半精度数据格式来加速深度神经网络训练的过程,同时保持了单精度训练所能达到的网络精度。混合精度训练能够加速计算过程,同时减少内存使用和存取,并使得在特定的硬件上可以训练更大的模型或batchsize。 对于FP16的算子,若给定的数据类型是FP32,MindSpore框架的后端会进行降精度处理。用户可以开启INFO日志,并通过搜索关键字“reduce precision”查看降精度处理的算子。 计算流程 1. 参数以FP32存储; 2. 正向计算过程中,.

weixin_45666880的博客 765
上一篇: 【必藏】2025 AI狂潮下,程序员别等被淘汰!小白也能入门的大模型生存指南
下一篇: 基于Dify实现RAG与Agent:企业级大模型应用落地方案(建议收藏)
冻感糕人~
博客等级 码龄3年 8926粉丝 2384原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值