Vidur: A Large-Scale Simulation Framework For LLM Inference

📄 arXiv: 2405.05465v2 📥 PDF

作者: Amey Agrawal, Nitin Kedia, Jayashree Mohan, Ashish Panwar, Nipun Kwatra, Bhargav Gulavani, Ramachandran Ramjee, Alexey Tumanov

分类: cs.LG, cs.AI, cs.CL

发布日期: 2024-05-08 (更新: 2024-05-21)

🔗 代码/项目: GITHUB


💡 一句话要点

Vidur:用于LLM推理的大规模仿真框架,优化部署配置。

🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)

关键词: LLM推理 仿真框架 性能优化 部署配置 预测建模

📋 核心要点

  1. 现有LLM部署优化依赖于实验性运行,成本高昂,难以探索庞大的配置空间。
  2. Vidur通过结合实验剖析和预测建模,构建LLM推理性能的仿真框架,实现高效的性能评估。
  3. 实验表明Vidur能够以小于9%的误差估计推理延迟,并能通过Vidur-Search快速找到最优部署配置。

📝 摘要(中文)

本文提出了Vidur,一个大规模、高保真、易于扩展的LLM推理性能仿真框架。Vidur通过实验剖析和预测建模相结合的方式对LLM算子的性能进行建模,并通过评估延迟和吞吐量等关键指标来评估不同工作负载的端到端推理性能。实验验证表明,Vidur在各种LLM上的推理延迟估计误差小于9%。此外,本文还介绍了Vidur-Search,一个配置搜索工具,可帮助优化LLM部署。Vidur-Search利用Vidur自动识别满足应用程序性能约束的最具成本效益的部署配置。例如,Vidur-Search可以在CPU机器上用一小时找到LLaMA2-70B的最佳部署配置,而基于实际部署的探索需要42K GPU小时,成本约为21.8万美元。Vidur的源代码已在https://github.com/microsoft/vidur上开源。

🔬 方法详解

问题定义:论文旨在解决LLM部署优化过程中,由于配置空间巨大且实验成本高昂,导致难以找到最优部署方案的问题。现有方法主要依赖于在实际部署环境中进行实验,这需要大量的计算资源和时间,成本非常高昂。

核心思路:论文的核心思路是构建一个高保真度的仿真框架Vidur,通过对LLM算子的性能进行建模,从而在仿真环境中评估不同部署配置的性能。这样可以避免在实际部署环境中进行大量的实验,从而降低成本和时间。

技术框架:Vidur框架主要包含以下几个模块:1) 实验剖析模块:用于对LLM算子的性能进行实验测量,获取性能数据。2) 预测建模模块:基于实验数据,建立LLM算子的性能模型。3) 仿真引擎:用于模拟LLM推理过程,并根据性能模型预测推理延迟和吞吐量等指标。4) Vidur-Search:一个配置搜索工具,利用Vidur仿真框架自动搜索最优部署配置。

关键创新:Vidur的关键创新在于其结合了实验剖析和预测建模,构建了一个高保真度的LLM推理性能仿真框架。与传统的基于规则或简化的性能模型相比,Vidur能够更准确地预测LLM推理性能。此外,Vidur-Search工具能够自动搜索最优部署配置,大大降低了人工调优的成本。

关键设计:Vidur的性能模型采用了多种机器学习方法,例如线性回归、决策树等,以适应不同LLM算子的特性。Vidur-Search采用了基于贝叶斯优化的搜索算法,能够在有限的搜索空间内快速找到最优配置。此外,Vidur还支持多种并行化策略、批处理技术和调度策略的建模,从而能够更全面地评估不同部署配置的性能。

📊 实验亮点

Vidur在多个LLM上的验证表明,其推理延迟估计误差小于9%。Vidur-Search能够在CPU机器上用一小时找到LLaMA2-70B的最佳部署配置,而基于实际部署的探索需要42K GPU小时,成本约为21.8万美元。这表明Vidur能够显著降低LLM部署优化的成本和时间。

🎯 应用场景

Vidur可应用于LLM的部署优化、硬件加速器设计、以及LLM服务容量规划等领域。通过Vidur,用户可以在部署LLM之前,快速评估不同部署配置的性能,从而选择最优的部署方案,降低部署成本,提高服务质量。此外,Vidur还可以用于指导硬件加速器的设计,以及LLM服务的容量规划,从而更好地满足用户的需求。

📄 摘要(原文)

Optimizing the deployment of Large language models (LLMs) is expensive today since it requires experimentally running an application workload against an LLM implementation while exploring large configuration space formed by system knobs such as parallelization strategies, batching techniques, and scheduling policies. To address this challenge, we present Vidur - a large-scale, high-fidelity, easily-extensible simulation framework for LLM inference performance. Vidur models the performance of LLM operators using a combination of experimental profiling and predictive modeling, and evaluates the end-to-end inference performance for different workloads by estimating several metrics of interest such as latency and throughput. We validate the fidelity of Vidur on several LLMs and show that it estimates inference latency with less than 9% error across the range. Further, we present Vidur-Search, a configuration search tool that helps optimize LLM deployment. Vidur-Search uses Vidur to automatically identify the most cost-effective deployment configuration that meets application performance constraints. For example, Vidur-Search finds the best deployment configuration for LLaMA2-70B in one hour on a CPU machine, in contrast to a deployment-based exploration which would require 42K GPU hours - costing ~218K dollars. Source code for Vidur is available at https://github.com/microsoft/vidur.