如果你希望从一开始就训练最先进的模型,你可以在IPU上启动并运行我们易于使用的BERT微调快速入门notebook,无需离开Spell的Web控制台。
如果想了解更多有关IPU编程以及如何使用我们的Poplar软件的信息,可以从我们的教程存储库中访问一系列简单的实操代码,让你快速上手:
- 将一个简单的PyTorch模型移植到 IPU
- 使用流水线在多个IPU上运行TensorFlow模型
- 使用复制来加速TensorFlow中的训练
- 如何在PyTorch中使用半精度和混合精度
- 使用Jupyter Notebook中的IPU
现在使用Spell,可以免费评估IPU——运行一个由Spell支持的应用示例,根据自身需求调整一个应用示例,或者测试全新的项目。
从零到SOTA仅需几分钟
在Spell上开始使用IPU非常简单。让我们按照以下步骤直接运行一个SOTA模型,例如BERT:
- 创建Workspace
- 初始化BERT代码
- 设置Poplar SDK环境
- 在IPU上运行BERT微调notebook
创建Workspace
创建Spell帐户可以让你通过Workspaces免费获取IPU计算。Workspaces是一种有管理的notebook服务,其中包含文件、notebook和其他相关资源,可以使用Jupyter Notebook或JupyterLab运行。

可以通过使用Web控制台Workspaces区域右上角的“创建新Workspace”按钮创建Workspaces。系统会要求你为Workspace命名,在这个例子中我们将其称为“BERT”。
初始化BERT代码
创建Workspace时,你可以选择使用GitHub存储库中的代码对其进行初始化。BERT微调快速入门notebook包含在Graphcore的教程存储库中。

设置 Poplar SDK 环境
然后,必须进行环境设置,例如机器类型、机器学习框架、要求和pip软件包。
选择IPUx16选项,这会告诉Spell Workspace在IPU POD16的实例上运行代码。为了在IPU上运行工作负载,我们必须配置POD中IPU与主机之间的通信。幸运的是,当你选择IPU选项时,Spell将设置基础设施和作业执行的过程加以抽象化。
为了将Poplar SDK加载到Workspaces,必须选择“自定义docker镜像”作为框架,然后指向graphcore的Poplar SDK Docker镜像之一。我们将在本指南中使用 graphcore/pytorch镜像,但你也可以从Graphcore Dockerhub上提供的三个机器学习框架(即 Tensorflow、PyTorch、Poplar)中进行选择,如下所示:
- graphcore/pytorch
- graphcore/tensorflow
- graphcore/poplar
默认情况下,从框架存储库中提取并下载为AMD主机处理器编译的最新版本的SDK。可以查看Docker Image Tags以获取有关特定SDK构建和处理器的更多信息。


一旦完成设置配置步骤,就可以启动notebook服务器,其中将包含BERT教程代码、Poplar SDK和必要的IPU配置设置。创建Workspace会自动启动notebook视图,然后它将显示为Workspaces列表中的一个条目。


在IPU上运行BERT微调笔记本
导航到文件夹tutorials/pytorch/tut_finetuning_bert,可以找到BERT微调教程。


BERT微调notebook有额外的软件包要求。通过打开终端并运行“pip install-r requirements.txt”或在jupyter notebook的单元格中运行它,就可以安装 requirements.txt中列出的需要的软件包。
该notebook将演示如何在被命名为SQuAD的问答任务中对预训练的BERT模型(使用Wikipedia数据集在IPU上预训练)进行微调。
逐步浏览BERT微调notebook,了解实现IPU硬件性能最大化的编程原理,例如:
- 流水线
- 数据并行性
- 重新计算检查点
- 复制的张量分片
- 半精度
完成notebook后,你将在16个IPU上的2×8流水线配置上微调BERT模型,SQuADv1 的验证分数如下:

你可以为推理作业保存和导出微调模型。notebook在第6节提供了一个使用微调模型进行推理的示例。你可以使用提供的代码打印问答任务的答案。
资源