在选择硬件或配置云实例之前,您必须首先了解您希望它完成的工作性质。在人工智能领域,这项工作分为两种主要且本质上不同的工作负载类型:训练和推理。尽管它们都涉及神经网络和数据,但它们的计算模式、资源需求和性能目标却有所不同。掌握这种区别是构建高效且经济的基础设施的第一步。训练阶段:塑造模型训练是教授机器学习模型的过程。就像学生学习教科书一样,模型通过处理大量数据集并调整其内部参数来最大程度地减少预测误差。这是一个迭代的、计算量大的且通常耗时的过程。大多数深度学习训练的核心是一系列矩阵运算。神经网络的运作涉及一个正向传播过程,其中输入数据通过网络生成预测;以及一个反向传播过程(反向传播),其中模型计算其预测中的误差并使用该误差更新其参数或权重。这个循环会重复进行,通常针对数百万或数十亿个样本,经历许多次迭代,称为“纪元”(epochs)。训练的计算特点如下:高并行度: 单个训练步骤涉及数千或数百万次独立的计算,最显著的是矩阵乘法 ($$C = A \cdot B$$)。这种工作负载非常适合图形处理单元(GPU)的架构,GPU包含数千个核心,旨在同时对不同数据执行相同的指令。大数据量和模型大小: 训练需要将模型的参数、反向传播过程中计算的梯度以及批量的训练数据保存在内存中。对于现代语言模型或高分辨率计算机视觉模型等大型模型,这可能需要数十甚至数百GB的高速内存(GPU上的显存)。迭代性与长时间运行: 单次训练运行可能持续数小时、数天甚至数周。目标是实现模型尽可能高的准确率,因此总训练时间是一个重要指标。基础设施必须稳定并具备持久性。高吞吐量: 在训练过程中,目标是在最短的时间内处理尽可能多的数据。这意味着需要优化整个流程,从快速数据存储和加载到处理器上的高效计算,以最大化数据吞吐量。推理阶段:模型投入使用推理是使用经过充分训练的模型对新的、未见过的数据进行预测的过程。一旦模型训练完成,其参数就被固定。它不再学习,而是运用所学知识。这相当于学生完成学业后参加考试。推理工作负载包含一次通过网络的正向传播。一个输入,例如图像或一行文本,提供给模型,模型随后执行计算并输出结果,例如对象分类或语言翻译。推理的计算特点如下:低延迟: 对于许多应用,特别是面向用户的应用,预测必须几乎即时返回。用户等待产品推荐或自动驾驶汽车识别行人时,无法容忍长时间的延迟。获得单个预测所需的时间(延迟)通常是最重要的性能指标。高吞吐量(并发请求): 一个已部署的模型可能需要同时为数千名用户提供预测。系统必须能够处理大量并发、独立的请求,这是一个称为吞吐量的指标。计算效率: 与训练不同,推理不涉及反向传播。它是一个单一的、计算量较小的传播。尽管GPU仍然非常有效,但功能强大的CPU或专门的、更小的加速器通常是更具成本效益的选择,特别是当延迟要求不在个位数毫秒范围时。部署灵活性: 推理可以在任何地方发生:在大型数据中心、本地服务器,甚至在智能手机或传感器等小型边缘设备上。这要求模型针对不同的硬件和功耗限制进行优化。两种工作负载的区别下图展示了训练和推理各自不同的流程和优先事项。训练是一个循环的、高负荷的过程,侧重于模型优化;而推理是一个线性的、轻量级的过程,侧重于速度和效率。digraph G { rankdir=TB; graph [fontname="Inter", bgcolor="transparent", compound=true]; node [shape=box, style="rounded,filled", fontname="Inter", color="#ced4da", fillcolor="#f8f9fa"]; edge [fontname="Inter", color="#495057"]; subgraph cluster_training { label = "训练工作负载"; style="rounded"; bgcolor="#fff4e6"; fontcolor="#495057"; node [fillcolor="#ffd8a8"]; edge [color="#fd7e14"]; train_data [label="大型数据集"]; initial_model [label="模型(初始权重)"]; train_compute [label="计算\n(大规模并行)\nGPU密集型", shape=cylinder, fillcolor="#ffc9c9"]; optimizer [label="优化器\n(反向传播)", shape=cds, fillcolor="#ffc9c9"]; final_model [label="已训练模型\n(最终权重)", fillcolor="#b2f2bb", color="#37b24d", style="rounded,filled"]; train_data -> train_compute; initial_model -> train_compute [lhead=cluster_training, label=" 开始"]; train_compute -> optimizer; optimizer -> train_compute [label=" 迭代与优化 (纪元)", style=dashed, constraint=false]; optimizer -> final_model [ltail=cluster_training, label=" 完成"]; } subgraph cluster_inference { label = "推理工作负载"; style="rounded"; bgcolor="#e7f5ff"; fontcolor="#495057"; node [fillcolor="#a5d8ff"]; edge [color="#1c7ed6"]; new_data [label="新数据点"]; trained_model_inf [label="已训练模型\n(固定权重)", fillcolor="#b2f2bb", color="#37b24d", style="rounded,filled"]; inf_compute [label="计算\n(正向传播)\n延迟敏感", shape=cylinder, fillcolor="#d0bfff"]; prediction [label="预测", shape=ellipse]; new_data -> inf_compute; trained_model_inf -> inf_compute; inf_compute -> prediction; } final_model -> trained_model_inf [style=invis]; // 用于布局 }两种不同的人工智能工作负载。训练是一个迭代循环,侧重于产生高质量模型。推理是从新数据到使用已训练模型进行预测的直接路径。这些区别直接决定了您的基础设施选择。专为快速训练实验而构建的系统将优先考虑配备高速互连的强大多GPU服务器。相反,为大规模经济高效推理而设计的基础设施可能使用一组小型CPU实例或专用推理芯片。理解您正在为哪种工作负载进行优化,是所有其他基础设施决策的依据。