05-10 周五 推理是什么

05-10 周五 推理是什么
时间版本修改人描述
2024年5月10日10:13:54V0.1宋全恒新建文档
2024年5月13日11:08:42V1.0宋全恒填充了训练和推理的定义,并且对于推理加速的方面进行了详细的介绍

简介

 最近要坐推理时的动态量化,因此,需要认真理解一下推理的含义。

概念: 训练(Training) **训练是指通过将大量数据输入到模型中,调整模型参数,从而使得模型能够更好地适应特定任务的过程。**在训练过程中,通常需要将数据划分为训练集和验证集,然后使用训练集来调整模型参数,最后使用验证集来评估模型的性能。

概念: 推理(Inference)是指将经过训练的模型应用于新数据或新情境,以做出预测或决策。在推理过程中,通常需要将输入数据传递给模型,并生成相应的输出结果。推理是人工智能应用中的最后一个阶段,它可以将训练好的模型应用于实际场景中,以解决实际问题。在推理过程中重要的问题是加速accelerattion,包括的关键技术有 模型压缩、剪枝、量化,通过这些手段产生的结果是降低延迟,提升实时性能

网页描述
【揭秘】AI训练与推理,究竟有何玄机? - 知乎提供了训练和推理的概念理解
机器学习系统中的大模型训练、推理加速与CUDA算子优化概览 - 知乎提到了推理加速
AI技术革命:如何通过推理加速优化你的大模型? - 知乎👍大模型推理加速优化路线
1. 模型结构优化
2. 软件框架和库优化。
文章提到了Pre-training,Fine-turing,Alignment Traing的概念和彼此之间联系
深度学习中模型压缩(Network Compression)的几种方法(李宏毅视频课总结)_neuron pruning-CSDN博客👍👍👍里面较清楚的讲述了神经网络压缩,即推理加速的几种技术。
10-09 周一 图解机器学习之深度学习感知机学习_图解感知机-CSDN博客文章里包含了深度学习的基础概念,日志包含了训练,包含了深度学习训练的典型过程,定义模型,定义损失,优化。
11-06 周一 神经网络之前向传播和反向传播代码实战-CSDN博客这里主要是介绍了前向传播和反向传播的概念,核心就是梯度下降的执行过程。

 下图来自 机器学习系统中的大模型训练、推理加速与CUDA算子优化概览 - 知乎

img

 在框架结构优化中,主要包括:img

推理定义

 什么是大模型训练和推理 - 知乎

 推理:指利用训练好的神经网络模型进行运算,利用输入的新数据来一次性获得正确结论的过程。

 推理追求的事低延时,低功耗,更关注用户体验。

 在理解上,推理,其实就是相当于利用训练得到的模型,执行一步前向传播。将输入映射到输出,得到结果。

image-20240510113531919

 这就涉及深度学习的主要内容,如李宏毅老师所说:

image-20240510114118453

 上图中,第一步定义了待训练的模型,其参数为w和b,通过定义损失并结合梯度下降算法,根据一批样本可以确定一个函数f,而f即经过训练之后得到的模型,这个模型在深度学习中通常是神经网络组成的。

 更具体的说,经过训练的神经网络可以利用自己学到的知识在数字世界中发挥作用,例如:识别图像、口语、判断血液疾病、或是换位思考,你可以将其称之为——被简化过的应用程序形式。这种更快速、高效的神经网络基于训练来推断出所呈现的新数据,在AI词典中,被称之为“推理”。 具体参见深度学习训练和推理之间有什么差异?

推理加速

模型结构优化

 即神经网络压缩,主要是包括剪枝,量化, 知识蒸馏。

 深度学习中模型压缩(Network Compression)的几种方法(李宏毅视频课总结)_neuron pruning-CSDN博客 包括了李宏毅老师上课的内容。

image-20240510113103052

软件框架优化

软件框架优化的含义,可以在模型结构保持不变的情况下进行。

优化策略

  • KV Cache
  • Iteration-level Scheduling
  • PageAttention vLLM
  • GPTQ量化 llama.cpp
  • Fused kernels

神经网络执行引擎

  • TensorRT
  • Tensorflow Serving
  • TVM/MLC

与线性代数层的优化不同,执行引擎具备一种独特的超能力,可以看到整个神经网络的结构,同时处理多个来自客户端的请求,因此能够通过涉及多个算子、整个模型以及多个请求间的优化来提高执行效率

 策略

  • 算子融合 Operator Fusion
  • 量化Quantization
    • 现在推理的**基线数据类型已经是FP16**,比几年前的FP32提高了不少速度。然而,将模型量化为INT8进行推理,仍然可以带来更快的速度,而在手机平台上,量化推理更是一种降低魔法消耗的绝佳选择。
  • 分布式 Distribution 多卡推理和通信加速
  • 批量化(Batching)

总结

 推理这个东西,其实是训练过程中的一次前向传播,这个笔记就先到这里,要抓紧时间了解量化的知识了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/704692.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20232906 2023-2024-2 《网络与系统攻防技术》第十次作业

20232906 2023-2024-2 《网络与系统攻防技术》第十次作业 1.实验内容 一、SEED SQL注入攻击与防御实验 我们已经创建了一个Web应用程序,并将其托管在http://www.seedlabsqlinjection.com/(仅在SEED Ubuntu中可访问)。该Web应用程序是一个简…

基于Pytorch深度学习神经网络MNIST手写数字识别系统源码(带界面和手写画板)

第一步:准备数据 mnist开源数据集 第二步:搭建模型 我们这里搭建了一个LeNet5网络 参考代码如下: import torch from torch import nnclass Reshape(nn.Module):def forward(self, x):return x.view(-1, 1, 28, 28)class LeNet5(nn.Modul…

Lora训练Windows[笔记]

一. 使用kohya_ss的GUI版本(https://github.com/bmaltais/kohya_ss.git) 这个版本跟stable-diffusion-webui的界面很像,只不过是训练模型专用而已,打开的端口同样是7860。 1.双击setup.bat,选择1安装好xformers,pytorch等和cuda…

Qt多文档程序的一种实现

注&#xff1a;文中所列代码质量不高&#xff0c;但不影响演示我的思路 实现思路说明 实现DemoApplication 相当于MFC中CWinAppEx的派生类&#xff0c;暂时没加什么功能。 DemoApplication.h #pragma once#include <QtWidgets/QApplication>//相当于MFC中CWinAppEx的派生…

详细分析Vue3中的reactive(附Demo)

目录 1. 基本知识2. 用法3. Demo 1. 基本知识 reactive 是一个函数&#xff0c;用于将一个普通的 JavaScript 对象转换为响应式对象 当对象的属性发生变化时&#xff0c;Vue 会自动追踪这些变化&#xff0c;并触发相应的更新 Vue2没有&#xff0c;而Vue3中有&#xff0c;为啥…

Springboot+MybatisPlus如何实现带验证码的登录功能

实现带验证码的登录功能由两部分组成&#xff1a;&#xff1a;1、验证码的获取 2、登录&#xff08;进行用户名、密码和验证码的判断&#xff09; 获取验证码 获取验证码需要使用HuTool中的CaptchaUtil.createLineCaptcha()来定义验证码的长度、宽度、验证码位数以及干扰线…

【2024华为HCIP831 | 高级网络工程师之路】刷题日记(18)

个人名片&#xff1a;&#x1faaa; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&a…

uniapp获取当前位置及检测授权状态——支持App、微信小程序

uniapp获取当前位置检测及定位权限——支持App、微信小程序 首先&#xff0c;祝天下母亲&#xff0c;节日快乐~ 文章目录 uniapp获取当前位置检测及定位权限——支持App、微信小程序效果图新增 兼容小程序方法manifest Tips&#xff1a; 上一篇介绍 App端 uniapp获取当前位置及…

C++ requires关键字简介

requires 是 C20 中引入的一个新关键字&#xff0c;用于在函数模板或类模板中声明所需的一组语义要求&#xff0c;它可以用来限制模板参数&#xff0c;类似于 typename 和 class 关键字。 requires关键字常与type_traits头文件下类型检查函数匹配使用&#xff0c;当requires后…

React渲染流程

在 React 渲染分为两个阶段&#xff0c;Render 和 Commit&#xff0c;Render 是修改 React 组件的状态&#xff0c;把需要更新的组件标记为待更新&#xff0c;在 Commit 阶段将待更新的组件进行渲染并最终更新到浏览器的 Dom 树中。 Render 阶段是可以并执行操作的&#xff0c…

【Image captioning】基于检测模型网格特征提取——以Sydeny为例

【Image captioning】基于检测模型网格特征提取——以Sydeny为例 今天,我们将重点探讨如何利用Faster R-CNN检测模型来提取Sydeny数据集的网格特征。具体而言,这一过程涉及通过Faster R-CNN模型对图像进行分析,进而抽取出关键区域的特征信息,这些特征在网格结构中被系统地…

【考研数学】准备开强化,更「张宇」还是「武忠祥」?

数一125学长前来回答&#xff0c;选择哪位老师的课程&#xff0c;这通常取决于你的个人偏好和学习风格&#xff01; 张宇老师和武忠祥老师都是非常有经验的数学老师&#xff0c;他们的教学方法各有特点。 张宇老师的教学风格通常被认为是通俗易懂&#xff0c;善于将复杂的概念…