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.mzph.cn/web/12124.shtml

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

相关文章

独立游戏《星尘异变》UE5 C++程序开发日志3——实现一个存存组件

本篇日志中,我将会介绍如何实现一个有格子,每个格子有容量的物品库存,如下图: 一.库存容器 1.储存数据的容器 库存容器最重要的目的就是存储每一种类的物品拥有的数量,这里我用的是哈希表: std::unordere…

huggingface:利用git克隆目标资源

前言 因为有很多模型资源都被放在了huggingface上,为了下载它们,着实让一个不懂git的人犯了难,绕了很多远路,甚至将不需要解决的问题也都拿上了台面,因此我将在本篇博客中记载一些关于【huggingface】中利用git克隆目标…

【c++】全面理解C++多态:虚函数表深度剖析与实践应用

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,通过本篇文章,来详细理解多态的内容 目录 1.多态的定义及实现1.1多态的构成条件1.2虚函数的重写1.3 C11 override 和 final1.4重载、覆盖(重写)、隐藏…

鸿蒙内核源码分析 (内核启动篇) | 从汇编到 main ()

这应该是系列篇最难写的一篇,全是汇编代码,需大量的底层知识,涉及协处理器,内核镜像重定位,创建内核映射表,初始化 CPU 模式栈,热启动,到最后熟悉的 main() 。 内核入口 在链接文件…

在k8s中安装Grafana并对接Prometheus,实现k8s集群监控数据的展示

🐇明明跟你说过:个人主页 🏅个人专栏:《Grafana:让数据说话的魔术师》 🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、Grafana简介 2、Grafana的重要性与影响力 …

强化训练:day9(添加逗号、跳台阶、扑克牌顺子)

文章目录 前言1. 添加逗号1.1 题目描述2.2 解题思路2.3 代码实现 2. 跳台阶2.1 题目描述2.2 解题思路2.3 代码实现 3. 扑克牌顺子3.1 题目描述3.2 解题思路3.3 代码实现 总结 前言 1. 添加逗号   2. 跳台阶   3. 扑克牌顺子 1. 添加逗号 1.1 题目描述 2.2 解题思路 我的写…

STM32学习和实践笔记(28):printf重定向实验

1.printf重定向简介 在C语言中printf函数里,默认输出设备是显示器,如果想要用这个函数将输出结果到串口或者LCD上显示,就必须重定义标准库函数里中printf函数调用的与输出设备相关的函数。 比如要使用printf输出到串口,需要先将f…

linux 任务管理(临时任务定时任务) 实验

目录 任务管理临时任务管理周期任务管理 任务管理 临时任务管理 执行如下命令添加单次任务,输入完成后按组合键Ctrl-D。 [rootopenEuler ~]# at now5min warning: commands will be executed using /bin/sh at> echo "aaa" >> /tmp/at.log at&g…

J-STAGE (日本电子科学与技术信息集成)数据库介绍及文献下载

J-STAGE (日本电子科学与技术信息集成)是日本学术出版物的平台。它由日本科学技术振兴机构(JST)开发和管理。该系统不仅包括期刊,还有论文集,研究报告、技术报告等。文献多为英文,少数为日文。目前网站上所发布的内容来…

使用Vue调用ColaAI Plus大模型,实现聊天(简陋版)

首先去百度文心注册申请自己的api 官网地址&#xff1a;LuckyCola 注册点开个人中心 查看这个文档自己申请一个ColaAI Plus定制增强大模型API | LuckyColahttps://luckycola.com.cn/public/docs/shares/api/colaAi.html来到vue的页面 写个样式 <template><Header …

ICode国际青少年编程竞赛- Python-5级训练场-综合练习6

ICode国际青少年编程竞赛- Python-5级训练场-综合练习6 1、 for i in range(3):Dev.step(2 * (i 1))Dev.turnLeft()while Flyer[2 - i].disappear():wait()Dev.step(2 * (i 1))Dev.turnRight()while Dev.x ! Item[i].x:wait()2、 for i in range(3):Dev.step(2 * i 1)while …

用Python的pynput库成为按键记录高手

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 揭秘键盘输入&#xff1a;pynput库的基本介绍 无论是为了安全审计、数据分析还是创建热键操作&#xff0c;能够记录和处理键盘事件都显得尤为关键。这就是pynput库发挥作用的地方。pynput是一个Python库&#xff0c…

Java 对象序列化

序列化&#xff1a;把对象转化为可传输的字节序列过程称为序列化。 反序列化&#xff1a;把字节序列还原为对象的过程称为反序列化 序列化的作用是方便存储和传输&#xff0c;细节可参考如下文章&#xff1a; 序列化理解起来很简单 - 知乎序列化的定义 序列化&#xff1a;把对…

echarts map地图添加背景图

给map地图添加了一个阴影3d的效果&#xff0c;添加一张背景图&#xff0c;给人感觉有3d的效果 具体配置如下&#xff1a; html代码模块&#xff1a; <div class"echart_img" style"position: fixed; visibility: hidden;"></div><div id&q…

Autoware内容学习与初步探索(一)

0. 简介 之前作者主要是基于ROS2&#xff0c;CyberRT还有AutoSar等中间件完成搭建的。有一说一&#xff0c;这种从头开发当然有从头开发的好处&#xff0c;但是如果说绝大多数的公司还是基于现成的Apollo以及Autoware来完成的。这些现成的框架中也有很多非常好的方法。目前作者…

【Java的抽象类和接口】

1. 抽象类 1.1 抽象类概念 在面向对象的概念中&#xff0c;所有的对象都是通过类来描绘的&#xff0c;但是反过来&#xff0c;并不是所有的类都是用来描绘对象的&#xff0c;如果 一个类中没有包含足够的信息来描绘一个具体的对象&#xff0c;这样的类就是抽象类。 以上代码中…

Leaflet系列——【一】初识Leaflet与Leaflet视图操作

初识Leaflet&#xff08;vue3 &#xff09; 前言&#xff1a;当你熟悉了openlayer、mapbox、cesium等一些GIS框架之后&#xff0c;对于我们开发来说其实他们的本质就是往瓦片上面叠加图层、【点、线、面、瓦片、geoJson、热力图、图片、svg等等】都是一层层的Layer图层&#xf…

Ceph集群扩容及数据再均衡原理分析

用户文件在Ceph RADOS中存储、定位过程大概包括&#xff1a;用户文件切割成对象、对象映射到PG、PG分组PGP、PG映射到OSD。这些过程中&#xff0c;可能涉及了大量概念和变量&#xff0c;而其实它们大部分是通过HASH、CRUSH等算法计算出来的&#xff0c;初始参数可能也就只有这么…

sql实践

1.从excel导入数据 在excel导入数据时要先在数据库中创建对应的数据库表 CREATE TABLE your_table_name (crawl_datetime DATE,url CHAR(255),company_name CHAR(255),company_size CHAR(255),company_type CHAR(255),job_type CHAR(255),job_name CHAR(255),edu CHAR(255),e…

暗区突围TWITCH掉宝关联帐号不了 无法关联帐号 关联不上

Twitch&#xff0c;作为全球知名的游戏直播平台&#xff0c;常常携手热门游戏如《暗区突围》举办互动活动&#xff0c;为玩家带来独特的参与体验。在这个过程中&#xff0c;“绑定关联”成为了连接直播观众与游戏世界的桥梁。简单来说&#xff0c;Twitch绑定关联《暗区突围》指…