数据科学家可以使用云原生AI套件创建Jupyter Notebook来进行机器学习算法开发调试,并将算法提交到ACK集群中进行训练。云原生AI套件可按用户选择,将开源JupyterLab或者用户自定义的Jupyter服务镜像,部署到ACK集群中,作为AI模型集成开发环境,并自动配置与ACK集群中的用户权限机制集成。本文介绍如何通过云原生AI套件创建和使用Jupyter Notebook。
前提条件
- 创建ACK Pro版集群。
- ACK Pro版集群已安装云原生AI套件的开发控制台和调度组件,且集群Kubernetes版本不低于1.18。
- 集群管理员已为开发者创建了RAM子账号(即RAM用户),并分配和关联配额组。具体操作,请参见创建RAM用户和步骤一:为用户分配和关联配额组。
- 配置训练数据,具体操作,请参见配置训练数据和代码。
- 创建存储卷(PVC),具体操作,请参见通过控制台的方式使用NAS静态存储卷或通过控制台的方式使用OSS静态存储卷。
说明 模型训练数据一般被存放在OSS、NAS等存储卷上。
Jupyter Notebook功能介绍
- 提供一个云平台集成的机器学习实验环境,该环境可以作为机器学习中的本地开发角色。
- 提供一个拷贝或者处理数据集的工具,将相关的数据集处理完直接提交至持久化存储,可以结合大数据工具进行数据集的处理。
- 提供机器学习的测试、预处理等工作的环境,在该环境您可以编写机器学习主要代码,且将其打包成
docker Image
推送至集群本地或者远程的容器镜像仓库。
步骤一:创建Jupyter Notebook
步骤二:使用Jupyter Notebook
制作Jupyter Notebook自定义镜像说明
为了满足不同的用户的不同需求,在创建Notebook页面为您提供了自定义Jupyter Notebook镜像的入口,如下图所示:

您可以基于以下流程进行自定义镜像Dockerfile的制作与镜像的打包操作:
FROM tensorflow/tensorflow:1.15.5-gpu
USER root
RUN pip install jupyter && \
pip install ipywidgets && \
jupyter nbextension enable --py widgetsnbextension && \
pip install jupyterlab && jupyter serverextension enable --py jupyterlab
# 下载安装Arena的Python SDK工具包。
RUN pip install arenasdk
# 您可以通过其他途径安装JupyterLab,但是必须暴露服务到8888端口。
EXPOSE 8888
USER jovyan
CMD ["sh", "-c", "jupyter-lab --notebook-dir=/home/jovyan --ip=0.0.0.0 --no-browser --allow-root --port=8888 --ServerApp.token='' --ServerApp.password='' --ServerApp.allow_origin='*' --ServerApp.base_url=${NB_PREFIX} --ServerApp.authenticate_prometheus=False"]
USER root
参数的相关解释如下表所示:
参数 | 描述 |
---|---|
--notebook-dir | 表示启动的工作目录,默认为JupyterLab官方标准值:/home/jovyan 。
|
--ip | 表示Jupyter服务监听的IP地址,默认值为0.0.0.0 ,即外部IP可访问。
|
--no-browser | 表示无浏览器环境(仅支持linux server环境)。 |
--port | 表示向外监听的端口,JupyterLab官方标准值:8888 (固定必填)。
|
--ServerApp.token | 表示自定义的登录token ,默认值为空字符串。如果您自定义了该值,则需要告知使用者。
|
--ServerApp.password | 表示自定义的登录密码,默认为空字符串。如果您自定义了该值,则需要告知使用者。 |
--ServerApp.base_url | 表示JupyterLab服务启动路径,因为需要根据该路径进行路由,所以固定从环境变量NB_PREFIX 中获取,默认值为${NB_PREFIX} (固定必填)。
|
--ServerApp.allow_origin | 表示允许JupyterLab访问的源IP组,默认设置为'*' ,表示允许JupyterLab访问所有的源IP组。
|
--ServerApp.authenticate_prometheus | Jupyter的验证监控,该参数默认是不开启的,即设置为False 。您也可以根据具体需求场景按需设置。
|