在 Watson Machine Learning Accelerator 定制 Notebook 中训练 Keras 和 MLlib 模型

IBM Watson Machine Learning Accelerator 是捆绑了 IBM PowerAI、IBM Spectrum Conductor 和 IBM Spectrum Conductor™ Deep Learning Impact 的软件解决方案,由 IBM 为包括开源深度学习框架在内的整个堆栈提供支持。Watson Machine Learning Accelerator 为数据科学家提供了端到端的深度学习平台。这包含完整的生命周期管理,从安装和配置到数据读取和准备,再到训练模型的构建、优化和分配,以及将模型移至生产环境。在您要将自己的深度学习环境扩展为包含多个计算节点时,PowerAI Enterprise 即可大显身手。现在甚至有免费评估版本可供使用。参阅我们的首个简介教程 利用 IBM Watson Machine Learning Accelerator 对图像进行分类 ,了解各项前提条件。

 

学习目标

 

这是此次 IBM Watson Machine Learning Accelerator 系列培训 中的第二个教程:

任务:

定制 Notebook 包以包含 Anaconda 和 sparkmagic。
在 Watson Machine Learning Accelerator 上安装定制 Notebook 包。
为 Notebook 创建 Spark 实例组。
启动 Notebook 服务器并上传 Notebook 以训练 Keras 模型。
从 Notebook 连接到 Hadoop 集群并执行 Spark MLlib 模型。

预估时间

 

完成本教程需要约 2 小时,包括近 30 分钟的模型训练、安装、配置以及通过 GUI 获取模型。

 

前提条件

 

本教程需要访问 GPU 加速的 IBM Power® Systems AC922 型或 S822LC 型服务器。除获取服务器外,还有多种方法可访问 IBM PowerAI 开发者门户网站 上列出的 Power Systems 服务器。

 

我们将使用现有定制 Notebook,其中包含用于安装 Watson Machine Learning Accelerator 1.1.2 随附的 PowerAI 1.5.4.1 的脚本。

 

任务 1:定制 Notebook 包以包含 Anaconda 和其他包

 

 

从此 github 存储库 下载 PowerAI-1.5.4.1-Notebook-Base.tar.gz

注意:可能有更高版本的包可用,如 1.5.4.2。 使用以下说明中的更高版本,将 1.5.4.1 版本号替换为最新版本。

创建 custom 工作目录,并解压缩 PowerAI-1.5.4.1-Notebook-Base.tar.gz 包。

mkdir custom
    tar -C custom -xzvf PowerAI-1.5.4.1-Notebook-Base.tar.gz

下载 Anaconda 存储库。

cd custom/package
   wget https://repo.continuum.io/archive/Anaconda3-5.2.0-Linux-ppc64le.sh
   cd ..

(可选)编辑 build.version 文件以包含当前日期。 此示例展示了使用 vi 编辑器执行的编辑。

vi build.version
    enter insert mode (a) and edit the build data and number, for example
    Build Date: "Jan 17 2019"
    Build Number: 20190117
    esc and save the update (:qw)

(可选)更新 added_packs 文件,为定制 Notebook 添加其他感兴趣的 pip 包。

vi scripts/added_packs
    enter insert mode (a) and scroll down to the bottom and add additional packages (one per line).  The current list of included packages are shown below.
      theano
      keras
      pandas
      sparkmagic
    esc and save the update (:qw)

对先前创建的 custom 目录中的包执行 Tar 操作。

tar -czvf PowerAI-1.5.4.1-Notebook.tar.gz .

 

 

此 Notebook 包现在即可安装在 Watson Machine Learning Accelerator 上。

 

任务 2:在 Watson Machine Learning Accelerator 上安装定制 Notebook

 

 

    1. 使用 Spectrum Conductor 管理控制台打开 Spark Notebook Management 面板。


    1. 添加新的 Notebook。


    1. 填写 PowerAI-1.5.4.1-Notebook.tar.gz Notebook 的详细信息,然后单击 Add 。




    1. 为其提供名称(如 PowerAI)和版本(如 1.5.4.1,与 Notebook TAR 文件的版本匹配)。

 

    1. 使用 Browse 按钮查找在任务 1 中创建的 PowerAI-1.5.4.1-Notebook.tar.gz 文件。

 

    1. 勾选 Enable collaboration for the notebook 框。

 

    1. 为 Start 、 Stop 和 Monitor 命令填入以下内容:
./scripts/start_jupyter.sh
        ./scripts/stop_jupyter.sh
        ./scripts/jobMonitor.sh

为 Longest update interval for a job monitor 指定秒数。我们使用的是 180 秒。

单击 Add

开始上传 Notebook。

上传时间因网速而异。

 

 

Notebook 添加完成后,可进行配置,以便在新的或现有 Spark 实例组 (SIG) 中使用。在下一步中,我们将展示如何创建新的 SIG。

 

任务 3:为 Notebook 创建 Spark 实例组 (SIG)

 

 

    1. 创建新的 SIG,并包含已添加的 Notebook。

提供 SIG 名称、Spark 部署目录和执行用户。部署目录通常与执行用户(在此示例中为 demouser)关联。

勾选新定制 Notebook PowerAI 1.5.4.1 所对应的框。



为 Spark 执行器(GPU 插槽)更新 GPU 资源组。

单击 Create and Deploy Instance Group 。这样就完成了 SIG 的创建及部署。
部署完成后,单击 Start 来启动 SIG。

 

任务 4:为用户创建 Notebook 服务器并上传 Notebook 以训练 Keras 模型

 

 

    1. 启动 SIG 后,转至 Notebook 选项卡,单击 Create Notebooks for Users 。


    1. 为 Notebook 服务器选择用户。


    1. 创建 Notebook 后,刷新屏幕以查看 My Notebooks 。单击它即可显示为此 SIG 创建的 Notebook 服务器列表。


    1. 选择 PowerAI 1.5.4.1 Notebook 以显示 Notebook 服务器 URL。

 

    1. 登录 Notebook 服务器。


    1. 下载

tf_keras_fashion_mnist.ipynb Notebook

    1. ,并单击 Upload 将其上传到 Notebook 服务器。 指定要上传的 Notebook 后,必须再次单击该按钮。


    1. 选择 Notebook,并开始执行各单元。Keras 模型在单元 [13] 中定义,并在单元 [15] 中训练。


 

模型测试显示经过五个训练回合后,准确性超过 86%。

 

任务 5:从 Notebook 连接到 Hadoop 集群并执行 Spark MLlib 模型

 

接下来这部分解释了如何使用 Notebook 连接到已部署 Apache Livy 服务的 Hadoop 数据湖。下图显示了 Hadoop 集成情况。

 

Apache Livy 是支持通过 REST 接口轻松与 Spark 集群进行交互的服务。它支持长期运行的 Spark 会话和多租户。要将其安装到您的 Hadoop 集群上,可参阅您的 Hadoop 供应商文档,如此处来自 Hortonworks 的文档。可在 Hortonworks HDP 集群上完成以下两项更改,使 Spark MLlib Notebook 实现连接并运行。

 

 

    1. 在 HDP Spark2 配置中设置

livy.server.csrf_protection.enabled=false

    1. ,以禁用 Livy CSRF 检查。停止并重新启动所有服务以使更改生效。

 

    1. 通过 pip 安装 Numpy 包。

yum -y install python-pip
pip install numpy

 

 

Sparkmagic 在 Jupyter Notebook 中运行。它包含一组工具,用于以交互方式通过 Livy 处理远程 Spark 集群。它通过 pip 进行安装,并通过运行 Jupyter 命令在 Notebook 中启用。

 

登录 Notebook 服务器,导入本教程提供的 hadoop_livy2_spark_mllib_test.ipynb Notebook 并执行。

Notebook 单元 [1] 用于验证是否可加载 sparkmagic 模块。
Notebook 单元 [2] 用于验证是否可创建 Spark 会话。编辑 URL 以指向 Livy 服务的 Hadoop 主机和端口。
Notebook 单元 [3] 用于下载数据并将其放在 hdfs /tmp 目录下。
Notebook 单元 [4] 用于运行 Spark MLlib kmeans 聚类模型。
Notebook 单元 [5] 用于清除 Livy 服务上运行的 Spark 会话。清除会话和关联的 Hadoop 集群资源至关重要。

 

结束语

 

现在,您已了解了如何在 Watson Machine Learning Accelerator 上定制和安装 Notebook 包。 随后即可使用此包将 Notebook 与 Keras 模型配合运行,运行可连接到 Hadoop 数据湖的 Notebook,并执行 Spark MLlib 模型。

 

本文翻译自: Train Keras and MLlib models within a Watson Machine Learning Accelerator custom notebook (2019-02-04)

发表评论

电子邮件地址不会被公开。 必填项已用*标注