\

为Transformer模型破速,Graphcore推出PopTransformer

作者:

分享  

Share on weixin
Share on weibo
Share on linkedin

订阅

Transformer是谷歌于2017年提出的一种深度学习架构。它如同一声春雷,为机器学习领域带来了开创性的思路。许多正在将AI推向爆发的生成式AI模型都采用了该架构,例如包括ChatGPT模型在内的GPT系列模型、Stable Diffusion模型等等。随着这些基于Transformer的生成式AI模型更多地进入大众视野,模型的推理性能也将受到更为广泛和严格的考验。

为了帮助AI从业者满足许多场景中近乎实时的推理性能要求,在模型规模越来越大的情况下真正实现模型落地,今天,Graphcore(拟未)正式推出PopTransformer,帮助AI从业者应对大型Transformer模型部署挑战,充分释放模型潜力,进一步加快模型的推理速度,提升模型的推理性能

PopTransformer开源模型库:

高性能、可扩展性强、开发简洁

PopTransformer是一个Transformer模型库,Graphcore基于IPU芯片和Poplar软件栈对它进行了高度优化,旨在大幅提升Transformer模型的推理性能。PopTransformer具有高性能,可扩展性强,开发简洁等优势。

PopTransformer采用面向对象的设计模式,提供了简洁的接口和抽象封装,使用户能够轻松搭建新模型。它提供了Session类来处理模型推理和会话配置,BaseModel和BaseLayer用于模型搭建和权重加载。此外,通过全局注册表Register,实现了部分变量的全局注册和全局获取,从而减少了参数和变量的显式传递。通过隐藏基础层在模型并行优化、算子底层优化等复杂实现逻辑,PopTransformer让用户能够更专注于模型本身的实现。此外,模型并行优化、算子融合,以及诸多算子的底层优化使得用户能够充分发挥IPU的近存计算架构带来的算力优势。IPU大量的片上存储空间也可以很好地支持模型参数存储,降低在推理过程中和片外存储交互的需求,打破IO bound的限制,极大地释放计算单元的能力。

PopTransformer的设计考虑了可扩展性,用户可以方便地搭建新模型。提供的接口和抽象封装使得模型的开发和扩展变得容易。通过提供整个推理过程的抽象封装,PopTransformer使用户能够快速实现自定义模型,同时支持灵活的会话配置,让用户更方便地扩展模型的功能。

创新基础:高效先进的硬件架构

AI工作负载具有独特的计算特征,Graphcore专为AI工作负载设计了IPU,其独特的架构设计使得它能够深入挖掘AI技术的潜力,为AI创新提供坚实的硬件基础。Graphcore很早就开始了对于Transformer模型的探索。IPU芯片高效的计算能力和优化的架构使得PopTransformer在加速Transformer模型推理过程中表现更加出色。

Graphcore推出的Bow IPU是世界上第一款3D Wafer-on-Wafer处理器。它是Bow Pod人工智能计算机系统的核心。Bow Pod系统以集成了四颗Bow IPU的Bow-2000作为构建块,每个Bow-2000可提供1.4 PetaFLOPS的人工智能计算。

Graphcore还推出了为云和数据中心打造的高端推训一体加速卡C600。在Graphcore经典的Wafer-on-Wafer MK2 IPU的基础上,C600增加了用于低精度和混合精度AI的FP8。C600是一张PCIe Gen 4 双插槽卡,使用一个IPU,每个IPU具有1472个处理核心,能够并行运行8832个独立程序线程。它所使用的单颗芯片可提供FP8浮点运算560 TFLOPS以及FP16浮点运算280 TFLOPS的AI计算能力,为C600带来强大的算力引擎。

显著提升:更低时延,更优用户体验

在许多应用场景中,PopTransformer都能实现显著的性能提升。特别是在自回归生成式模型的推理过程中,Graphcore针对IPU的特性实现了优化后的计算图,提供了更低的时延,能够处理大规模文本数据,从而提高应用的实时性并提升用户体验。Graphcore的测试结果显示,相较于Graphcore的PyTorch实现,使用PopTransformer能够大幅提升推理速度。

*使用Graphcore Examples测试

目前,PopTransformer已支持GPT2和ChatGLM两种模型类型,并将进一步扩大到图像、语音和多模态等其他类型的大模型,使其能够支持不断扩展的广泛应用领域。

简单装配,快速启用

PopTransformer为用户提供详细的文档和示例代码,帮助用户快速启用。只需简单的安装和配置步骤,即可轻松地将PopTransformer应用在用户的项目中。

用户可以按照以下步骤在C600上设置开发环境:

  1. (可选)创建Python虚拟环境
  2. 启用Poplar SDK
  3. 运行`make` 进行编译
  4. 运行pip install -r requirements.txt

快速开始示例:

cd examples/gpt2↓ python inference.py –config-name=’sharding’ log_level=’info’model.topk=5

运行截图:

查看代码,请至:

https://github.com/graphcore/PopTransformer

版本说明和改进计划

本次Graphcore发布的是0.1版本的PopTransformer。这是Graphcore推出的第一个PopTransformer版本,为用户提供了基本的功能和优化,从而帮助加快Transformer模型的推理速度。Graphcore将继续完善说明文档,帮助用户更好地使用和集成PopTransformer。

在未来的版本中,Graphcore计划添加更多功能和特性,包括对于FP8、INT4等量化方式的支持,以及对于pipeline等并行模式的支持,以进一步提升PopTransformer的性能和灵活性,使其能够在更多的场景和需求下发挥出更强大的加速能力。

自2017年提出发展至今,Transformer架构已经超越了谷歌论文中提及的自然语言处理,在计算机视觉、语音等机器学习领域中“全面开花”。从某种意义上说,Transformer架构正在成为许多AI模型的核心和基石。在超大型模型已经走入现实,而模型规模仍持续增长的当下,Graphcore提供PopTransformer等实用工具,为AI从业者进一步探索Transformer架构,开发创新AI技术,提高AI模型推理性能,优化用户体验,加速AI模型落地提供支持,推动实现AI新突破。

现在申请试用获得PopTransformer的一手体验

More Posts

卢涛:后登纳德时代,IPU架构引领Transformer向高阶版演进

GACS 2023 | IPU:赋能生成式AI,不止生成式AI

Graphcore携手Pienso荣获CogX最佳创新类别的自然语言处理奖

Graphcore加入PyTorch基金会

促进低精度数字格式使用,Graphcore发布全新Unit Scaling库

情人节之“AI”跨山海——拟未“AI”的故事绘画连载(三)

获取最新的GRAPHCORE资讯

在下方注册以获取最新的资讯和更新:




    获取最新的GRAPHCORE资讯

    在下方注册以获取最新的资讯和更新: