如何在Azure ML中实现容器化Jupyter Notebook的自动化运行?
关于Azure ML自动化运行参数化Jupyter Notebook的疑问
我不是Azure ML专家,但会尽量提供详细信息。我有一个经Papermill参数化的Jupyter Notebook,不需要训练,主要功能是从不同数据源读取数据、按参数处理并生成输出,手动在Compute Instance中可正常运行,现在需要在Azure ML中实现自动化运行。
我的计划是:创建自定义Docker镜像并存入ACR,部署时创建AML Environment、Component和AML Pipeline,通过Pipeline调用组件,进而在自定义容器镜像的AML环境中执行脚本。我已基于预构建AML Docker镜像成功创建了AML镜像,但这类容器通常用于模型部署,依赖AML的预构建镜像钩子。因此我有以下疑问:
- 能否将Jupyter Notebook容器化后在AML Pipeline中调用?
- 是否必须使用预构建镜像?
- 是否无需组件,直接从AML Pipeline调用容器服务?
最终用户需求是调度多个任务并传入不同参数。
以下是我的Dockerfile:
FROM mcr.microsoft.com/azureml/minimal-ubuntu20.04-py38-cpu-inference:latest ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 ENV DEBIAN_FRONTEND=noninteractive ENV CONDA_ENV_DIR=/opt/miniconda/envs # Switch to root to install apt packages USER root:root RUN apt-get update -y && apt-get install -y --no-install-recommends \ build-essential \ curl \ gnupg \ gnupg1 \ gnupg2 \ python3-dev \ python3-pip \ python3-setuptools \ tzdata \ curl \ && rm -rf /var/lib/apt/lists/* \ && ln -s /usr/bin/python3 /usr/local/bin/python \ && pip3 install --upgrade pip USER dockeruser # Install python dependencies COPY Docker-environment.yml /tmp/conda.yaml RUN conda env create -n userenv -f /tmp/conda.yaml #&& \ # export SERVER_VERSION=$(pip show azureml-inference-server-http | grep Version | sed -e 's/.*: //') && \ # $CONDA_ENV_DIR/userenv/bin/pip install azureml-inference-server-http==$SERVER_VERSION # Update environment variables ENV AML_APP_ROOT=/app ENV AZUREML_ENTRY_SCRIPT=run_papermill.py ENV AZUREML_CONDA_ENVIRONMENT_PATH="$CONDA_ENV_DIR/userenv" ENV PATH="$AZUREML_CONDA_ENVIRONMENT_PATH/bin:$PATH" ENV LD_LIBRARY_PATH="$AZUREML_CONDA_ENVIRONMENT_PATH/lib:$LD_LIBRARY_PATH" # Copy code COPY src $AML_APP_ROOT ENV WORKER_TIMEOUT=300
src文件夹包含三个文件:可独立运行的main.ipynb、用于传递参数给main.ipynb的papermill.ipynb,以及需传入参数调用的run_papermill.py。
内容的提问来源于stack exchange,提问作者Antebios
相关产品推荐
相关产品推荐

