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[1]测试
目前,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的一手体验:
[1]https://github.com/graphcore/examples/tree/master/nlp/gpt2/pytorch
获取更多Graphcore资讯,阅读深度技术文章,并与其他创新者们一起交流,请至中国官网graphcore.cn,以及关注Graphcore微信、微博和知乎创新社区。
Graphcore中国官网
Graphcore官方微信
Graphcore微博创新社区
Graphcore知乎创新社区
点击阅读原文,申请试用PopTransformer。
继续阅读
阅读原文