Poplar SDK 3.0现已推出
我们很高兴地宣布,Poplar SDK 3.0现已推出。新版本进一步增强了易用性,并改善了开发者体验。
现在,您可以从Graphcore拟未的支持门户[1]和Docker Hub[2]下载Poplar SDK 3.0。您也可以在其中找到我们不断扩展的Poplar容器。
我们也更新了拟未模型花园的设计和功能,同时增加了一些新模型,这些模型跨多个应用领域。我们还发布了新的用户指南和教程,进一步扩大了我们的开发者资源。
Poplar SDK 3.0的亮点
以下为Poplar SDK 3.0版本的摘要,更完整的更新列表请参见发布说明[3]。
PyTorch调度器前端
为响应客户的反馈,并提供更灵活和易于使用的PyTorch开发体验,我们现在使用PyTorch调度器作为构建torch.nn.Module静态图表示的默认前端。
以前的版本默认使用torch.jit.trace。新的调度器克服了这种方法的几个局限性。这些局限性具体包括:只有张量可以作为参数传递;作为跟踪过程的一部分,模型需要在CPU上运行一次;不支持源代码定位。
在默认情况下使用PyTorch调度器有很多好处。除了可以传递Python原语和更大范围的参数,默认情况下使用PyTorch调度器还可以提高性能,并大大简化对float16运算的处理。大多数平台都支持PyTorch调度器前端,这意味着使用它不需要做任何特殊的修改。
灵活的推理部署
Poplar SDK 3.0更新引入了一些新功能,这些新功能扩大了推理部署的选择范围。从一般易用性和无缝集成到更广泛的机器学习生态系统的角度来看,TensorFlow Serving和Poplar Triton后端提供了“随时可以运行”的实现,而模型运行时库(我们在这个版本中发布了API)将满足用户对完全灵活性的需求。
Poplar Triton后端
Poplar SDK 3.0版本包括了对使用开源Triton推理服务器在IPU上服务模型的全面支持(之前为预览版),让用户能够更容易地部署推理模型。
使用用于IPU的PyTorch、PopART和用于IPU的TensorFlow编写的模型可以被编译并保存为Poplar交换格式(PopEF)。在此之后,可以通过Poplar Triton后端服务这些模型。
更多细节,请参见更新后的Poplar Triton后端用户指南[4]。此外,您可以在此[5]找到PyTorch推理的示例。
TensorFlow Serving
TensorFlow Serving的拟未发行版现已获得完全支持,此前为预览版。
TensorFlow Serving是Poplar Triton后端(详见上文)的替代方案,支持简单、高性能和低时延的机器学习模型服务。该发行版将允许用户把预编译的模型导出为标准的SavedModel格式,以便以后使用TensorFlow Serving的拟未发行版进行推理部署。
为了配合SDK 3.0的发布,我们发布了一篇简短的介绍性文章,展示了使用面向IPU的TensorFlow Serving在几分钟内创建、训练、导出和服务模型的简易性。
您可以在拟未文档门户上找到TensorFlow Serving 2[6]和TensorFlow Serving 1[7]的拟未发行版的用户指南[8]。我们还发布了TensorFlow 2[9]和TensorFlow 1[10]的示例,以帮助您轻松入门。
欲了解更多关于TensorFlow Serving的信息,请访问:
https://www.graphcore.ai/posts/getting-started-with-tensorflow-serving-for-ipu
模型运行时库
在这个版本中,我们发布了模型运行时库的API文档,它允许用户在自己的推理线束中轻松加载和运行存储在IPU上的Poplar交换格式(PopEF)的模型。这是一个Poplar Triton后端使用的工具,我们很高兴能将其发布给外部使用。
模型运行时支持C++和Python,并分为两个部分:一个高层API,支持快速部署模型,对Poplar SDK库和IPU硬件的熟悉程度要求很低;一个针对高级用户的低层API,支持更高的灵活性和工作负载部署掌控度。
您可以在此[11]找到模型运行时库的完整文档(包括示例)。
自动损失缩放
以前,拟未自动损失缩放(ALS)是一项实验性功能。现在,它已被加入PyTorch和PopART的预览版中。
拟未ALS使用一种独特的基于直方图的损失缩放算法,以在训练混合精度的大型模型时可靠而轻松地提高稳定性。它同时具备了效率、易用性和出色的稳定性,超过许多其他损失缩放方法。
虽然拟未ALS背后的方法技术上与加速器无关,并且应能为任何在混合精度下训练大模型的人带来助益,但它的起源来自我们为IPU开发应用的独特经验。
欲了解更多关于拟未ALS的信息,请访问:
https://www.graphcore.ai/posts/getting-started-with-tensorflow-serving-for-ipu
支持红帽企业Linux 8
为响应客户需求,Poplar SDK 3.0包括了对红帽Linux 8操作系统的全面支持。
模型花园的改进和补充
拟未的模型花园[12]是一个IPU就绪的机器学习应用库,包括计算机视觉、自然语言处理、图神经网络等,资源丰富,在那些寻求轻松浏览、过滤和访问可复写代码的开发者中很受欢迎。
本月对模型花园的重大更新包括设计上的更新和一些功能上的改进,旨在使开发者能够更容易地找到符合他们需求的特定模型。开发者现在可以通过特定的机器学习任务进行搜索和筛选,如文本生成、文本到图像、问题回答、对象检测、图像分类等等。
我们持续更新模型花园[13]和相关的GitHub存储库[14]的内容。自今年7月发布上一个Poplar SDK版本以来,我们已经提供了一些新的模型和公开示例,跨越了多个应用领域,详情如下。
计算机视觉
MAE – 训练(PyTorch)
Swin – 微调(PyTorch)
多模式
Frozen in Time – 训练(PyTorch)
我们模型花园中的许多模型已针对SDK 3.0更新了其在多个框架和平台上的基准性能,并发布在我们网站的性能结果[15]页面。
全新的、升级后的开发者资源
除了上面详细介绍的亮点、特点、模型花园的新增内容和公共示例外,在Poplar SDK 2.6和3.0版本发布之间,我们还创建或升级了以下开发者资源:
● 使用Poplar SDK和IPU设置Visual Studio代码的新指南
● 以编程方式访问PopVision跟踪(PVTI)文件的新教程
[1]https://www.graphcore.ai/support
[2]https://hub.docker.com/u/graphcore
[3]https://docs.graphcore.ai/projects/release-notes/en/3.0.0/
[4]https://docs.graphcore.ai/projects/poplar-triton-backend/en/latest/
[5]https://github.com/graphcore/examples/tree/master/vision/cnns/pytorch/inference
[6]https://docs.graphcore.ai/projects/tensorflow-serving2/en/latest/
[7]https://docs.graphcore.ai/projects/tensorflow-serving1/en/latest/
[8]https://docs.graphcore.ai/en/latest/
[9]https://github.com/graphcore/examples/tree/master/vision/cnns/tensorflow2#tensorflow-serving-example
[10]https://github.com/graphcore/examples/tree/master/vision/cnns/tensorflow1/inference#tensorflow-serving-example
[11]https://docs.graphcore.ai/projects/model-runtime/en/latest/
[12]https://www.graphcore.ai/resources/model-garden
[13]https://www.graphcore.ai/resources/model-garden
[14]https://github.com/graphcore
[15]https://www.graphcore.cn/performance-results
获取更多Graphcore资讯,阅读深度技术文章,并与其他创新者们一起交流,请至中国官网graphcore.cn,以及关注Graphcore微信、微博和知乎创新社区。
Graphcore中国官网
Graphcore官方微信
Graphcore微博创新社区
Graphcore知乎创新社区
点击阅读原文,查看英文blog。
微信扫码关注该文公众号作者