使用单个GPU高通量地生成大型语言模型

 ✒️ @halomaster 📅 18 Apr 2023, 15:34 GMT⋮ 【AI】 

FlexGen 在单个 GPU 上运行大型语言模型,以实现面向吞吐量的方案。 FlexGen 是一种高吞吐量生成引擎,用于运行具有有限 GPU 内存的大型语言模型。FlexGen 允许通过 IO 高效的卸载、压缩和大有效批量生成高通量。 近年来,大型语言模型(LLM)在 广泛的任务。LLM不仅越来越多地应用于互动 应用程序(如聊天),但也要执行许多“后台”任务。 这些任务包括基准测试、信息提取、数据整理和表单处理。 这些应用程序的一个关键特征是它们面向吞吐量:它们需要 批量运行数百万个代币的LLM推理,例如,公司中的所有私有文档 语料库,或 HELM 基准测试中的所有任务。 这些工作负载对延迟不太敏感 - 用户启动作业并让它在夜间运行 - 但提高吞吐量对于降低成本至关重要。 吞吐量是作业的整个运行时(可以是小时)内每秒处理的令牌的度量。 面向吞吐量的工作负载提供了在延迟与更高吞吐量之间进行权衡的机会,这 使利用低成本商用 GPU 变得更加容易。 FlexGen的目标是创建一个高通量系统,以实现新的和令人兴奋的应用。 在低成本硬件(如单个民用 GPU)上为面向吞吐量的任务提供基础模型 而不是昂贵的系统。 限制: 作为一个在弱GPU上运行的基于卸载的系统,FlexGen也有其局限性。 当您拥有足够强大的 GPU 来容纳整个模型时,FlexGen 的速度可能比这种情况慢得多,尤其是对于小批量情况。 FlexGen 主要针对单个 GPU 上的面向吞吐量的批处理设置(例如,批量分类或提取许多文档中的信息)进行了优化。 https://github.com/fminference/flexgen


0 replies