nvidia近日宣布推出一款名为tensorrt-llm的新开源软件套件,扩展了nvidia gpu上大型语言模型优化的功能,并突破了部署之后人工智能推理性能的极限。
生成式ai大语言模型因其令人印象深刻的功能而变得流行,而且扩大了人工智能的可能性,被广泛应用于众多行业,让用户能够通过聊天机器人“与数据对话”、总结大型文档、编写软件代码、以及发现理解信息的新方法。
nvidia公司超大规模和高性能计算副总裁ian buck表示:“大型语言模型推理变得越来越难。模型的复杂性不断增加,模型变得越来越智能,也变得越来越大,这是很自然的,但当模型扩展到单个gpu之外并且必须在多个gpu上运行的时候,就成了一大难题。”
在人工智能方面,推理是模型处理那些前所未见的新数据的一个过程,例如用于总结、生成代码、提供建议或者回答问题,是大型语言模型的主力。
随着模型生态系统的迅速扩展,模型也变得越来越大,功能越来越多,这也意味着模型变得如此之大以至于无法同时运行在单个gpu上,而必须将其分开。开发人员和工程师必须手动将工作负载分开或分段,协调执行,以便实时获得响应。tensorrt-llm就是通过“张量并行性”帮助解决这个问题的,允许跨多个gpu进行大规模的高效推理。
除此之外,由于当今市场中有各种各样的大型语言模型,所以nvidia针对目前主流的大型语言模型对核心进行了优化。该软件套件包括了完全优化的、可立即运行的大型语言模型版本,包括meta platform的llama 2、openai的gpt-2和gpt-3、falcon、mosaicmpt和bloom。
应对动态工作负载的“运行中批处理”机制
由于大型语言模型本身的性质,模型的工作负载可能是高度动态的,工作负载的需求和任务使用情况也可能会随着时间的推移而发生变化,单个模型可以同时用作聊天机器人来提问和回答,也可以用于总结大型文档和简短文档。因此,输出大小可能会出现完全不同的数量级。
为了应对这些不同的工作负载,tensorrt-llm引入了一种称为“运行中批处理”的机制,这是一个优化调度的过程,把文本生成过程分解为多个片段,以便可以将移入或者移出gpu,这样在开始新一批之前就不需要完成整批工作负载了。
以前,如果有大型请求的话,例如对非常大的文档进行摘要提取,那么后面所有的内容都必须等待该过程完成才能使队列继续前进。
nvidia一直在与众多厂商合作优化tensorrt-llm,包括meta、cohere、grammarly、databricks和tabnine。在他们的帮助下,nvidia不断简化软件套件中的功能和工具集,包括开源python应用用户界面,用于定义和优化新架构以定制大型语言模型。
例如,mosaicml在将tensorrt-llm与其现有软件堆栈集成时在tensorrt-llm之上添加额外的功能。databricks公司工程副总裁naveen rao表示,这是一个简单的过程。
“tensorrt-llm易于使用,功能丰富,包括令牌流、动态批处理、分页注意力、量化等,而且效率很高,为使用nvidia gpu的大型语言模型服务提供了最佳性能,并使我们能够将节省的成本回馈给我们的客户。”
nvidia称,tensorrt-llm及其带来的好处(包括运行中批处理功能)可以让使用nvidia h100提取文章摘要的推理性能提高1倍多。在使用gpt-j-6b模型进行对cnn/每日邮报文章摘要的a100测试中,仅h100就要比a100快4倍,启用tensorrt-llm优化后,速度快了8倍。
tensorrt-llm为开发人员和工程师提供了深度学习编译器、优化的大型语言模型内核、预处理和后处理、多gpu/多节点通信功能、以及简单的开源api,使他们能够快速优化和执行大型语言模型生产的推理。随着大型语言模型继续重塑数据中心,企业需要更高的性能就意味着开发人员比以往任何时候都更需要能够为他们提供具备功能和访问权限的工具,以提供更高性能的结果。
tensorrt-llm软件套件现已可供nvidia开发人员计划中的开发人员抢先体验,并将于下个月集成到用于生产型ai端到端软件平台nvidia ai enterprise的nemo框架中。