专家为您带来最新的 AI 趋势
获取有关最重要且最有趣的 AI 新闻的精选洞察分析。订阅我们的每周 Think 时事通讯。请参阅 IBM 隐私声明。
所有机器学习(从电子邮件垃圾邮件检测模型到为自动驾驶汽车提供动力的导航系统,再到生成式 AI)均可归结为模式识别。模型经“训练”可对样本任务或数据点的数据集有着良好表现。模型训练期间,会对模型的参数(和超参数)进行调整,直到模型的决策“适合”训练数据的模式。机器学习的核心假设是:如果训练数据与模型在现实场景中看到的情况足够相关,它便会在这些现实用例中做出准确预测。
虽然很多 AI 术语都非常专业,但“AI 推理”其实是一个符合其字面意义且直观的术语。
股票市场预测模型不知道特定股票的价格会如何变化;它会根据该股票的历史数据与过去的股价变动趋势进行比较,从而推断未来的情况。
垃圾邮件检测模型并不知道给定电子邮件是否属于垃圾邮件;它会根据该电子邮件与训练中看到的垃圾邮件示例的相似程度来推断它是否属于垃圾邮件。
大语言模型 (LLM) 会根据数百万个文本样本的语言模式反复推断下一个单词(或是标记)是什么。
社交媒体网络会根据您以及与您相似的人员之前浏览过的内容来推断您最有可能查看的内容。
AI 训练的目标是实现模型的准确性和一致性,而 AI 推理的目标则是以最高效、最具成本效益的方式部署训练好的模型。相同的 AI 模型在不同的推理框架中的表现可能会有所不同。
不存在单个“最佳”AI 推理设置。工作负载的划分方式有很多种,而不同的硬件(和与之搭配使用的计算算法)以及访问这些硬件的环境也各不相同。特定场景的理想设置取决于您的用例与工作负载的性质。对于企业而言,该挑战通常在于找到一种推理方法,既能满足低延迟的需求,又能满足可扩展和成本效益的要求。
AI 推理和 AI 训练均涉及对输入数据进行预测的模型。其中的区别在于它们各自的目的;就 AI 训练而言,此区别在于实现该目的所采取的额外步骤。
训练是机器学习中开展“学习”的环节。在模型训练中,机器学习模型会对一批训练数据示例进行预测。在监督学习中,损失函数会计算每次预测的平均误差(或“损失”),而优化算法则可用于更新模型参数以减少损失。此流程会不断重复,直到损失最小化到可接受的水平。强化学习的工作原理与之类似,但其目标是最大化奖励函数,而非最小化损失函数。
简而言之,AI 训练通常包括前向传播(模型根据每个输入生成输出)和反向传播(计算模型参数的潜在改进)。这些参数更新构成了机器学习模型的“知识”。
在 AI 推理中,经训练的模型随后会对真实输入数据进行预测。AI 推理的工作原理是利用它“学到”的知识(即为提高其对训练数据的性能而进行的模型参数更新)来推断新输入数据的正确输出。与模型训练不同,推理只需要前向传播。
虽然训练和推理通常是独立的不同阶段,但值得注意的是它们并非相互排斥。例如,某个社交媒体平台的推荐算法在您加入平台之前便已基于大量用户行为数据集进行训练,且每次向您提供内容建议时都会进行推理。但是,经训练的此模型还会不断根据您的个人行为进行微调,并根据您个人与内容互动的方式完善其建议。
获取有关最重要且最有趣的 AI 新闻的精选洞察分析。订阅我们的每周 Think 时事通讯。请参阅 IBM 隐私声明。
“类型”是一个含义模糊的词:AI 推理的执行方式有很多种,因此其变体的划分方式也纷繁多样。但是,AI 推理策略的两个最基本类别分别是批量推理和在线推理。
对于在线推理,训练好的模型会立即处理输入数据,且一次处理一个输入。在线推理适用于凡是输出具有时间敏感性的 AI 系统(例如,自动驾驶汽车、数字广告竞价或动态定价)或需要与用户实时交互的 AI 系统(例如,聊天机器人或机器翻译)。
在线推理通常需要更高的成本和复杂性—尤其是对于繁重的工作量以及为深度学习模型提供支持的大型神经网络—但对于需要实时决策的任何现实用例来说,在线推理通常都是必要的。聊天机器人或自动驾驶汽车必须实时处理数据,以免降低用户体验。AI 系统在预测特定申请人是否应该获得贷款时,其功用并不会受到输入与输出之间的轻微延迟的影响;但在自动驾驶汽车中,几毫秒的额外延迟便可能危及乘客的安全。
在批量推理中,经训练的模型会分组(或“分批次”)异步处理大量输入。每个批次通常都安排在某个特定的时间:例如,企业可能会使用批量推理来运行有关当天所有动态的夜间报告。此功能可提供更大的灵活性和效率,从而使得批量推理成为更具成本效益的选项。然而,它仅在时效性并不重要的情况下才实用。
批量推理还可实现更有效的硬件使用。例如,GPU 包含数千个处理单元(或“核心”),而每个单元均可同时并行执行计算。对单个输入运行推理而未调用所有这些核心,就如同公交车上空着座位一样:在时间敏感的情况下它可能有必要,但对资源的利用却并不理想。可以说,批量推理可让您只在硬件“满载”后运行推理。
此外,每次执行推理时,模型参数(对于深度学习模型而言,通常包含数十亿个模型权重)均须加载到系统内存中。这涉及能源使用和成本。批量推理可减少必须将权重加载到 RAM 中的次数,从而将成本分摊到整个批次中。
微批处理是一种介于在线推理与批量推理之间的中间方法:顾名思义,它涉及在若干小批次中运行推理。
“微批处理”和“批处理”没有明确、可量化的批次大小来加以区分。相反,这两种方法主要是在其目标上有所不同:微批处理旨在提高模型吞吐量,同时(主要)保持模型速度;而传统批量推理旨在最大限度地提高效率,且通常不考虑延迟。在批量推理中,输入可能会在收到后几分钟甚至几小时内进行处理—但微批处理的目标通常是将延迟控制在几毫秒到几秒之间。
微批处理最突出的应用或许是通过 Anthropic 的 Claude 或 OpenAI 的 ChatGPT 等主流平台进行基于云的 LLM 推理。当成千上万的用户同时向聊天机器人发送提示时,这些服务通常会并行处理多个提示以提高效率,且对单个最终用户而言几乎不存在延迟。
设计 AI 生态系统时,最重要的考虑因素之一是决定推理工作负载实际运行的位置。换句话说,则是硬件的位置以及访问该硬件的方式。
部署环境通常分为四类之一,且每种类别均有各自的优势和权衡因素。
本地部署
云
边缘部署
设备端
在本地部署中,AI 模型运行在您(或您的组织)拥有并自行维护的物理硬件上。
本地部署为 AI 工作负载提供了最大程度的控制,因为您对数据处理方式和时间以及计算资源的分配拥有自主权。它在医疗保健、金融、政府和法律等受到严格监管的行业中尤其有益;因为在这些行业中,必须严格遵守数据隐私与安全性要求。
此控制伴随着相关成本和劳动力的权衡。本地部署需要大量前期投资,尤其是企业级工作负载和生成式 AI 相关的大规模模型所需的硬件。此外,它还需要专用 IT 专业人员来管理这些服务器。
在云部署中,模型会在大型数据中心内第三方供应商(例如 IBM)所管理的远程服务器上运行。如此,组织便可使用高性能的 AI 硬件,而无需投入大量前期投资来购买它,也无需投入持续人力来进行维护。因此,云部署通常是实现可扩展性的最快途径,尤其是在必须快速扩展计算资源以满足需求激增的情况下。
此灵活性和可扩展性是以数据主权为代价的,而在某些情况下,还会带来延迟和长期成本。数据可能会在云服务器之间来回传输,从而可能会对推理速度产生不利影响(尽管这通常会被主流云服务商提供的更强大硬件所抵消)。此特性也带来了有关数据来源的理论复杂性,因为数据会暴露给更多实体(相较于本地部署情况下)。
边缘部署是指利用物理上靠近数据源的计算资源,例如通过物联网 (IoT) 设备和局域网。
从广义上讲,边缘部署可理解为类似于“本地云”。当需要从多个设备(例如,工厂装配线上的传感器或医院中的监控设备)聚合数据或将数据分发到多个设备并近乎实时地对其进行处理时,此方法最为有利。在此情况下,通过位于本地网络“边缘”的设备进行推理,可实现比云部署更快的处理速度和更高的隐私性。
一定程度上,由于边缘计算通常会使用较之云供应商可用的硬件相对有限的硬件,因此会冲淡这些优势。随着局域网络规模的扩大,管理数百甚至数千个“边缘节点”的更新会变得越来越复杂。
设备端部署最为直接:AI 推理直接运行在最终用户的设备上,例如笔记本电脑或智能手机。
设备端部署简单、安全,且理论上可提供最大程度的用户隐私。当然,它也受限于设备本身的计算能力:智能手机甚至高性能消费级计算机的算力通常远不及专用硬件的算力。尤其是在智能手机上,设备端推理通常仅限于特定任务,例如相机滤镜、面部识别或语音转文本。
AI 推理是一个复杂的过程,涉及在适当的数据集上训练 AI 模型,直到它能推断出准确的响应。这是一个高度计算密集型的流程,需要专门的硬件和软件。在了解训练 AI 模型以进行 AI 推理的过程之前,让我们先了解一些支持它的专用硬件:
TPU 是 Google 专有的定制芯片,且专为神经网络而设计。GPU 是灵活的通用并行处理器,而 TPU 则专为高速矩阵数学而设计。尽管在通用性方面不如 GPU,TPU 在处理大量神经网络数据时却可提供更高的速度和能效。
神经处理单元 (NPU)(如 TPU)是专为处理神经网络的计算而设计的。它们通常会用于智能手机和其他移动设备;因为较之 GPU,它们的功能更具针对性,因而可降低功耗。
现场可编程门阵列 (FPGA) 是一种可配置的集成电路,并可对其进行编程(和重新编程)以满足特定应用程序的需求,其中包括人工智能运营。尽管它们的处理能力通常不及顶级 GPU,但在需进行极端定制时,FPGA 具有优势。
与 FPGA 不同,ASICS 无法进行定制或重新配置。它们的明确设计目的是:以最高效率执行单个任务。例如,Google 的 TPU 是专门通过 TensorFlow、PyTorch 和 JAX 来执行神经网络运营的 ASIC。
大型生成式 AI 模型的训练或推理工作负载通常会超过最大加速器硬件的容量。当工作负载对于单个 GPU 来说太大时,可使用一种或多种并行技术将其分散到多个处理器上,从而拆分和分散此工作。并行范式有很多,但其中最突出的则是数据并行、张量并行和管道并行。
开发人员通常可利用 vLLM 等开源框架来优化和简化在多个设备上分配推理的过程。
在数据并行中,完整模型的副本会在每个处理器之间复制。然后,输入数据集自身会被拆分成多个批次(或“分片”),而模型的每个副本(即每个处理器)均会处理一个批次。虽然这可能是最直接的并行处理方式,但它要求每个处理器都足够大,才能在内存中容纳模型的所有参数。在处理具有数十亿或数千亿个参数的较大 LLM 和视觉语言模型 (VLM) 时,这几乎是不可能的。在此类情况下,必须使用其他并行范式。
在管道并行中,神经网络的不同层会分配给不同 GPU。例如,一个 12 层神经网络可分配到 3 个 GPU 上,且会向第一个 GPU 分配前 4 层,第二个 GPU 负责处理中间 4 层,而第三个 GPU 则负责处理最后 4 个 GPU 层。然后,按顺序处理这些数据:第一个 GPU 的输出传递给第二个 GPU,第二个 GPU 的输出传递给第三个 GPU,而第三个 GPU 则计算模型的最终输出。
高效的管道并行通常需进行小批次批处理,以便每个 GPU 始终同时处理数据,而不是闲置等待接收来自序列中前一个 GPU 的数据。在上一段落的基本示例中,第一个 GPU 可能会在将第一个小批量输入数据的输出传递给第二个 GPU 后立即开始处理新的小批量输入数据。
当然,使用管道并行的系统需要一些“启动”时间才能达到满设备利用率。在我们的示例中,第二个 GPU 在接收到来自第一个 GPU 的数据后才能开始工作;在前两个 GPU 处理完整个小批次之前,第三个 GPU 无法开始工作;在第三个 GPU 完成之前,第四个 GPU 无法开始。
对于超大模型,即使是单个层也可能太大,从而无法容纳单个处理器。在张量并行中,这些层本身会被细分,而每个处理器则会接收模型权重张量的一部分。输入数据的矢量嵌入(即张量表示)同样会被细分,且每个处理器会接收相应的输入数据子集。
张量并行可显著降低针对每个设备的内存需求,因为每个处理器均需在内存中加载比其他并行范式更小的张量。此特性会在一定程度上牺牲复杂性,因为需要更多的设备内通信和数学步骤来将每个 GPU 的输出编织在一起。
使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。
借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。
通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。
1 “Why Companies Are Vastly Underprepared For The Risks Posed By AI”, Forbes, June 15, 2023
2 “Onshoring Semiconductor Production: National Security Versus Economic Efficiency”, Council on Foreign Relations, April 2024