基于 GCP 的第五代 Xeon 的语言模型性能基准测试

介绍

该帖子展示了轻量级代理 AI 工作负载可以在仅 CPU 实例上高效运行,这一点通过在两个基于 Xeon 的 Google Cloud VM 上进行文本嵌入和生成的基准测试得到了验证。

创建实例

N2 实例创建

在 Google Cloud 中创建具有 96 个 vCPU(一个 Ice Lake 插槽)的 N2 实例,选择 N2 机器类型 n2-standard-96,将 CPU 平台设置为 Ice Lake,保持 OS 和存储默认值,然后点击 CREATE。

C4 实例创建

为了创建与 N2 核心数匹配的具有 96 个 vCPU(一个 Emerald Rapids 插槽)的 C4 实例,选择 C4 机器类型 c4-standard-96,可选地启用全部核心 Turbo 以获得稳定性能,保持 OS 和存储与 N2 相同,然后点击 CREATE。

设置环境

通过克隆 optimum‑benchmark 仓库,检出提交 d58bb2582b872c25ab476fece19d4fa78e190673,构建 Docker 镜像,安装带有 IPEX 支持的 optimum‑intel,设置 OpenMP 线程亲和力,并登录 Hugging Face 以访问 Llama 模型,从而准备好环境。

基准测试

文本嵌入基准测试

该基准测试使用 WhereIsAI/UAE-Large-V1 模型,序列长度为 128,批量大小从 1 到 128,在更新 YAML 以绑定两个 NUMA 节点后,通过运行 optimum-benchmark --config-dir examples/ --config-name ipex_bert 来执行。

文本生成基准测试

该基准测试使用 meta-llama/Llama-3.2-3B 模型,输入长度为 256,输出长度为 32,批量大小从 1 到 64,在更新 YAML 以绑定两个 NUMA 节点后,通过运行 optimum-benchmark --config-dir examples/ --config-name ipex_llama 来执行。

结果与结论

文本嵌入结果

在测试的批量大小范围内,C4 实例的文本嵌入吞吐量大约比 N2 实例高 10× 到 24×。

文本生成结果

C4 实例在文本生成方面的吞吐量大约比 N2 实例高 2.3× 到 3.6×;对于批量大小 1 到 16,吞吐量提升约为 13×,且不会显著增加延迟,从而允许并发查询服务。

结论

性能提升源自第五代 Xeon(Emerald Rapids)CPU 的 Intel AMX 和内存改进。随着即将到来的 Granite Rapids(Xeon 6)预计将在 Llama 3 上提供大约 2× 的额外收益,作者们预计能够完全在 CPU 上运行轻量级代理 AI 解决方案,以避免主机‑加速器流量开销,前提是 Google Cloud 上能够获得 Granite Rapids 实例。

Sources