英特尔 Gaudi 加速辅助生成
随着模型规模的增长,生成式人工智能的实现需要大量的推理资源。这不仅增加了每次生成的成本,而且还增加了用于满足此类请求的功耗。因此,文本生成的推理优化对于降低延迟、基础设施成本以及功耗都至关重要,其可以改善用户体验并提高文本生成任务的效率。
辅助解码是一种用于加速文本生成的流行方法。我们在英特尔 Gaudi2 上对其进行了适配和优化,使得其性能与英伟达 H100 GPU 相当,一如我们在 之前的博文 中所展示的,但 Gaudi2 的价格仅相当于英伟达 A100 80GB GPU。这项工作现已集成入 Optimum Habana,Optimum Habana 对 Transformers 和 Diffusers 等各种 Hugging Face 库进行了扩展,以在英特尔 Gaudi 处理器上对用户的工作流进行全面优化。
投机采样 - 辅助解码
投机采样是一种用于加速文本生成的技术。其工作原理是用一个草稿模型一次生成 K 个词元,再由目标模型对这 K 个生成词元进行评估。如若草稿模型生成的某个位置的词元被拒绝,则用目标模型来生成该位置的词元,并丢弃草稿模型生成的随后词元,反复执行上述过程直至结束。使用投机采样,可以提高文本生成的速度并得到与原始自回归采样相当的生成质量。使用该技术时,用户可以指定草稿模型。数据证明,推测采样可为基于 transformer 的大模型带来约 2 倍的加速。一句话概括,投机采样可以加速文本生成并提高英特尔 Gaudi 处理器上的文本生成性能。
然而,草稿模型和目标模型 KV 缓存尺寸不同,因此同时分别对这两个模型进行优化显得尤为重要。本文,我们假设目标模型为一个量化模型,并利用 KV 缓存和投机采样对其进行加速。请注意,这里每个模型都有自己的 KV 缓存。我们用草稿模型生成 K 个词元,然后用目标模型对其进行评估; 当草稿模型生成的词元被拒绝时,目标模型会用于生成被拒绝位置的词元,并丢弃草稿模型生成的随后词元; 接着草稿模型继续生成接下来的 K 个词元,如此往复。
请注意,文献 [2] 证明了执行投机采样可以恢复目标模型的分布 - 这从理论上保证了投机采样可以达到与对目标模型自身进行自回归采样相同的采样质量。因此,不采用投机采样的理由仅在于收益,如草稿模型的尺寸并没有足够的比较优势,抑或是草稿模型生成词元的接受比太低。
辅助生成是一种类似于投机采样的技术,其大约与投机采样同一时间被独立发明出来 [3]。其作者将此方法集成到了 Hugging Face Transformers 中,现在模型的 .generate() 的方法中有一个可选的 assistant_model 参数用于启用辅助生成。
用法及实验
在 Gaudi 上使用辅助生成非常简单,我们在 这里 提供了一个示例。
顾名思义,参数 --assistant_model
用于指定草稿模型。草稿模型用于生成 K 个词元,然后由目标模型对其进行评估。当草稿模型生成的词元被拒绝时,目标模型会自己生成该位置的词元,并将草稿模型生成的该位置之后的词元丢弃。接着,草稿模型再生成接下来的 K 个词元,如此往复。草稿模型的接受率部分取决于模型选择,部分取决于输入文本。一般情况下,辅助生成能将大型 transformer 族模型的速度提高约 2 倍。
总结
Gaudi 现已支持用户简单易用地使用辅助生成加速文本生成,用户可用其进一步提高英特尔 Gaudi 处理器的性能。该方法基于投机采样,已被证明可以有效提高基于大型 transformer 模型的性能。
参考文献
[1] N. Shazeer,Fast Transformer Decoding: One Write-Head is All You Need,Nov. 2019,arXiv:1911.02150.
[2] C. Chen,S. Borgeaud,G. Irving,J.B. Lespiau,L. Sifre,J. Jumper, Accelerating Large Language Model Decoding with Speculative Sampling,Feb. 2023,arXiv:2302.01318
[3] J. Gante,辅助生成: 低延迟文本生成的新方向,May 2023,https://hf.co/blog/zh/assisted-generation
英文原文: https://hf.co/blog/assisted-generation-support-gaudi
原文作者: Haim Barad,Tien Pei Chou
译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。
英特尔 Gaudi 加速辅助生成的更多相关文章
- 英特尔® 硬件加速执行管理器安装指南 — Microsoft Windows*
介绍 本文将指导您安装英特尔® 硬件加速执行管理器(英特尔® HAXM),这是一款可以使用英特尔® 虚拟化技术(VT)加快 Android* 开发速度的硬件辅助虚拟化引擎(管理程序). 前提条件 英特 ...
- 英特尔® 至强® 平台集成 AI 加速构建数据中心智慧网络
英特尔 至强 平台集成 AI 加速构建数据中心智慧网络 SNA 通过 AI 方法来实时感知网络状态,基于网络数据分析来实现自动化部署和风险预测,从而让企业网络能更智能.更高效地为最终用户业务提供支撑. ...
- 基于英特尔® 至强™ 处理器 E5 产品家族的多节点分布式内存系统上的 Caffe* 培训
原文链接 深度神经网络 (DNN) 培训属于计算密集型项目,需要在现代计算平台上花费数日或数周的时间方可完成. 在最近的一篇文章<基于英特尔® 至强™ E5 产品家族的单节点 Caffe 评分和 ...
- 基于英特尔® 至强 E5 系列处理器的单节点 Caffe 评分和训练
原文链接 在互联网搜索引擎和医疗成像等诸多领域,深度神经网络 (DNN) 应用的重要性正在不断提升. Pradeep Dubey 在其博文中概述了英特尔® 架构机器学习愿景. 英特尔正在实现 Prad ...
- 英特尔® 图形性能分析器(Intel® GPA)
英特尔图形性能分析器概述 英特尔 GPA 是一套软件工具,它能提供平台级游戏性能分析功能,优化应用性能. 英特尔 GPA 包含以下组件: 英特尔 GPA 监控器 - 将英特尔 GPA 连接至应用(处于 ...
- 在英特尔 CPU 上加速 Stable Diffusion 推理
前一段时间,我们向大家介绍了最新一代的 英特尔至强 CPU (代号 Sapphire Rapids),包括其用于加速深度学习的新硬件特性,以及如何使用它们来加速自然语言 transformer 模型的 ...
- 英特尔与 Facebook 合作采用第三代英特尔® 至强® 可扩展处理器和支持 BFloat16 加速的英特尔® 深度学习加速技术,提高 PyTorch 性能
英特尔与 Facebook 曾联手合作,在多卡训练工作负载中验证了 BFloat16 (BF16) 的优势:在不修改训练超参数的情况下,BFloat16 与单精度 32 位浮点数 (FP32) 得到了 ...
- 使用英特尔 Sapphire Rapids 加速 PyTorch Transformers 模型
大约一年以前,我们 展示 了如何在第三代 英特尔至强可扩展 CPU (即 Ice Lake) 集群上分布式训练 Hugging Face transformers 模型.最近,英特尔发布了代号为 Sa ...
- 英特尔15天开发IDF硬享公社App全过程
4月8日英特尔智能硬件大赛在上海决赛,4月13日英热尔智能硬件大赛10强在深圳首秀.英特尔辗转两大城市来顾全两地智能硬件创业者,移动直播就成了用户们最重要的观看渠道. 这次英特尔两大会事现场直播都在官 ...
- 跨代的对决 英特尔i7-6700HQ对比i7-4720HQ性能测试
http://itianti.sinaapp.com/index.php/cpu 跨代的对决 英特尔i7-6700HQ对比i7-4720HQ性能测试 2015-10-13 19:46:31 来源:电脑 ...
随机推荐
- 快速部署 微软开源的 Garnet 键值数据库
快速部署 微软开源的 Garnet 键值数据库 Garnet 是 Microsoft Research 推出的一种新型远程缓存存储,其设计速度极快.可扩展且延迟低. Garnet 在单个节点内是线程可 ...
- 11.prometheus监控之黑盒(blackbox)监控
一.黑盒监控 "白盒监控"--需要把对应的Exporter程序安装到被监控的目标主机上,从而实现对主机各种资源及其状态的数据采集工作. 但是由于某些情况下操作技术或其他原因,不是所 ...
- SpringBoot实现WebSocket发送接收消息 + Vue实现SocketJs接收发送消息
SpringBoot实现WebSocket发送接收消息 + Vue实现SocketJs接收发送消息 参考: 1.https://www.mchweb.net/index.php/dev/887.htm ...
- SAP集成技术(五)集成风格
上一节介绍了各种集成架构,这一节将介绍各种集成风格(Style).我们在日常工作中使用这些集成风格来分类不同类型的集成场景.本文将遵循SAP的集成解决方案咨询方法(ISA - M)使用的方法,将集成风 ...
- ITIL现有版本之间的区别
时代在变化,运维管理理论也在不断演进升级,不断学习是运维人的良好品质:虽然人有的时候会懈怠,理论学习的道路也较单调乏味,但终究还是要跟上时代的步调才能适应新的变化
- keepalived(3)- keepalived+nginx实现WEB负载均衡高可用集群
目录 1. keepalived+nginx实现WEB负载均衡高可用集群 1.1 需求和环境描述 1.2 WEB集群部署 1.3 负载均衡集群部署 1.4 keepalived部署 1.5 测试监控的 ...
- 逆向WeChat (二)
本篇在博客园的地址https://www.cnblogs.com/bbqzsl/p/18187099 回顾一下现时网上的资源. 原生 https://github.com/duilib, Ultima ...
- java启动参考
启动参数 mvn clean package -Dmaven.test.skip=true -Ptest - java - -server - -Xms2G - -Xmx2G - -Xss256K - ...
- SDXL
SDXL 模型经过训练可以创建具有更好图像质量的更大图像.它们还可以拍摄 512x512 分辨率的优质图像,因此就图像质量而言,它们通常是 SD 1 或 2 型号的良好替代品. 但是,它们确实会消耗更 ...
- linux 文件的特殊权限:suid sgid sticky
目录 一.关于文件的特殊权限 二.suid 三.SGID 四.Stickybit 一.关于文件的特殊权限 1.文件与目录设置不止基础权限:r,w,x,还有所谓的特殊权限.特殊权限会拥有一些" ...