一、前言
在 AI 领域,推理(Inference)和训练(Training)是 AI 模型生命周期中的两个核心阶段,训练时,模型借大量数据与算法学习规律,此过程计算资源消耗巨大且耗时漫长,旨在构建精准模型。而推理则是利用已训练好的模型对新数据进行快速判断与处理,资源需求相对较少,二者差异显著却相辅相成。大家平时听到 AI 训练比较多,对于推理相对陌生,本文主要介绍模型推理的运行原理以及与训练的差异,让读者对 AI 推理有个详细的了解。
二、为什么叫推理
什么是 AI 推理?
AI 推理是指经过训练的 AI 模型,从全新数据中得出结论的过程,推理就是人工智能模型的实际运行。
举个例子,学生学习和考试,学生平时课堂学习,写作业等,可以看成是 AI 模型的训练,学生写作业,老师批改作业,以及老师答疑,都是在给学生反馈哪些是正确的哪些是错误的,通过这个过程学生掌握了课本里面的知识。 到了考试以后,考题多数情况下是跟平时做的题目不一样(肯定不是现成一模一样的题目),学生需要利用掌握的知识来分析解答考试题目,这个就是推理的过程。 但是有一点需要说明,考试的知识点肯定要在课本知识范围内,即考试不能超纲,否则学生也答不上来或者答的效果不好,AI 推理本质也是一样,上述说的全新数据也是要在 AI 训练数据的大范围内,例如一个人脸识别的模型,训练的时候拿的都是人脸数据,包含男人、女人、老人、小孩等等,但是推理的时候拿一张小猫的图片让其识别,大概率会识别错误。
AI 模型运行为什么叫推理?
推理这个概念相对来说比较抽象,刚接触时有点难理解,找到两个比较合理的一种解释
1、推理这一术语来源于逻辑学,在逻辑学中,推理是指根据已知前提,通过规则得出结论
2、推理反映了 AI 在模拟人类思维方面的能力,人类的推理是通过已有知识(经验或教育)对新情况进行分析,例如“如果天空乌云密布,那么可能会下雨”。
AI 运行过程其实与上述描述特征基本一致,AI 模型的运行被称为“推理”,是因为它模仿了人类和逻辑系统中“从已知信息得出未知结论”的过程。推理强调模型利用训练获得的知识,在不确定的输入情况下生成合理输出。
说明:上述举例 AI 推理与人类推理类似,这里说明一下,人类推理时具有很强的涌现能力,就是创新能力(根据已有学习的知识创造出新的知识),目前大参数量的 AI 模型具备一定的涌现能力,但是效果还不稳定。
三、推理的运行过程
推理技术原理
当完成模型训练,意味着在给定的数据集上,模型已经达到最佳或者满足需求的预测效果。如果 AI 算法工程师对模型预测效果满意,就可以进入模型部署进行推理和使用模型。AI 模型推理整体过程如下
1、输入预处理
对输入数据进行归一化、特征提取等预处理操作,即将原始数据转化为模型可以理解的数值(通常是向量或矩阵形式)比如图像识别任务中,对图像进行缩放到固定大小并转化为数值矩阵。
2、前向传播
利用训练过程中学到的参数(如神经网络中的权重和偏置)对输入进行逐层计算每一层的计算通常是:a=f(Wx)+b,其中 W 是权重矩阵,b 是偏置向量,f 是激活函数。
2、输出后处理
对模型的输出进行解码,如通过 Softmax 获取分类概率,通过阈值决定预测类别,或将数值转换为自然语言文本,输出比如分类标签、预测值或生成的文本等。
可以看出这里跟训练的一个明显区别是没有反向传播过程。
实际应用模型和业务应用如何配合?
之前介绍 AI 训练的文章说到,模型训练好以后会导出权重文件,其包含了模型在训练过程中学到的各种参数和配置,还有模型文件,其包含模型网络结构,例如神经网络的拓扑结构和层级配置等,那权重文件和模型文件又是是怎么运行起来的 ?
这里就需要用到推理框架,推理框架在 AI 模型推理时扮演了关键角色,其主要功能是高效地加载和执行训练好的模型,生成所需的推理结果。这里展开介绍一下推理框架加载权重文件的过程:
1、文件解析
使用框架的专用加载工具(如 TensorFlow 的 SavedModel 或 PyTorch 的 torch.load)。读取权重文件,将二进制数据解码为模型参数。
2、张量构建(可以简单理解成向量)
将解析出的权重数据加载为内存中的张量对象(如 NumPy 数组或框架的张量类)。确保张量的维度和格式与模型定义一致。
3、映射到模型结构
按照模型拓扑,将权重数据映射到网络的每一层(如卷积层、全连接层),确保参数被正确初始化到相应的网络层中。
如上图所示,模型文件主要是定义一个神经网络结构,有多少层,每层有多少神经元节点等,推理框架在加载的时候需要将模型文件和权重文件结合,即从权重文件中读取出对应的权重和偏置设置到模型网络上对应节点上,这就要求权重文件中解析出来的数据维度必须与模型网络结构一样,否则就会加载失败,例如模型网络总共有 10 层,每层 20 个节点,但是权重文件中参数只有 5 层,每层 10 个节点,显然就对应不上会加载失败
4、设备映射(分配硬件算力)根据推理环境(CPU、GPU、TPU),将加载的张量分配到对应的计算设备。
推理框架加载好模型后,处于推理准备状态,可以接受输入数据进行计算了,那么另外一个问题来了,推理框架在实际的应用场景中,例如手机、电脑等场景中,是一个什么形式运行?
推理框架部署后通常会作为一个独立的进程运行,并通过 REST API、gRPC 方式对外提供服务。这种方式使其能够独立于业务系统,专注于处理推理任务,同时简化了开发和维护工作,推理框架通常作为单独的进程或容器运行。
举例一个典型 AI 应用:人脸识别应用,其结构和工作流程大体如下
1、用户上传图片
用户通过前端应用上传一张人脸图片,图片以 HTTP POST 请求的形式发送到 Java 后端。
2、后端处理请求
后端接收到图片,并将图片转码为推理框架支持的格式(如 Base64 解码、调整尺寸),使用 HTTP 客户端(如 Apache HttpClient、Spring RestTemplate)向推理框架发送推理请求。
3、推理框架执行推
理推理框架接收到请求后,将图片数据传递给人脸识别模型。模型计算结果(如识别到的人脸特征向量、匹配分数)
4、推理结果返回后端
推理框架将结果以 JSON 或其他格式返回给 Java 后端。
5、Java 后端解析结果,并根据业务逻辑执行操作(如匹配数据库中的用户信息)
6、后端返回结果给前端
Java 后端将最终处理结果(如认证成功或失败)返回给前端。
7、用户在前端看到相应提示
通过推理框架和业务应用的协同工作,AI 模型可以无缝集成到业务系统中,提供智能化服务。例如,在人脸识别场景中,推理框架提供强大的计算能力,而业务系统专注于用户体验和业务逻辑,实现智能化登录认证或其他应用场景。
四、训练和推理的区别
我们都知道训练和推理典型差异在于对资源的需求不同,训练资源需求大于推理,为什么会有这个差异?
训练通常需要大量的计算资源和较长的时间。例如在训练一个图像分类 AI 时,会给模型输入成千上万张带有标签(如猫、狗、汽车等类别)的图像,通过复杂的算法(如前向传播、损失计算、反向传播算法、参数更新)来调整模型的权重,并且进行多次迭代处理。可能需要数小时、数天甚至数周的时间,具体取决于模型的复杂度、数据量和硬件性能。
推理相对来说,推理对计算资源的需求和时间消耗要小得多。在推理时,模型已经固定了参数,不需要做权重更新,只是简单地进行前向计算。虽然对于一些大型复杂的模型和高并发的推理场景(如在短时间内处理大量的图像识别请求)也需要一定的计算资源支持,但通常比训练阶段少很多。例如,在一个手机上的人脸识别解锁应用,每次解锁进行推理时,手机的处理器可以在很短的时间(通常不到一秒)内完成计算,判断是否为机主的人脸。
总结:AI 训练比推理需要更多资源,因为训练过程涉及复杂的梯度计算和参数更新,同时需要处理海量数据。推理仅需完成前向传播,对资源的需求较低且优化空间更大。两者在计算量、内存和硬件需求上的本质差异,决定了训练资源需求更大。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(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 的正确特征了。