你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将专用 Python 包与 Azure 机器学习一起使用

适用于:Python SDK azureml v1

本文介绍如何在 Azure 机器学习内安全地使用专用 Python 包。 专用 Python 包的用例包括:

  • 已开发不想公开分享的专用包。
  • 希望使用企业防火墙中存储的包的特选存储库。

建议的方法取决于单个 Azure 机器学习工作区有少量包,还是组织中所有工作区有整个包存储库。

通过 Environment 类使用专用包。 在环境内可声明要使用的 Python 包,包括专用包。 若要大体了解 Azure 机器学习中的环境,请参阅如何使用环境

先决条件

使用少量包进行开发和测试

对于单个工作区的少量专用包,请使用静态 Environment.add_private_pip_wheel() 方法。 此方法可让你快速地将专用包添加到工作区,并且非常适用于开发和测试目的。

将文件路径参数指向本地 wheel 文件,然后运行 add_private_pip_wheel 命令。 该命令返回用于跟踪工作区中包位置的 URL。 捕获存储 URL,并将其传递给 add_pip_package() 方法。

whl_url = Environment.add_private_pip_wheel(workspace=ws,file_path = "my-custom.whl")
myenv = Environment(name="myenv")
conda_dep = CondaDependencies()
conda_dep.add_pip_package(whl_url)
myenv.python.conda_dependencies=conda_dep

Azure 机器学习服务在内部将 URL 替换为安全的 SAS URL,使 wheel 文件保持专用和安全。

从 Azure DevOps 源使用包的存储库

如果正积极开发机器学习应用程序的 Python 包,可以将它们作为项目托管在 Azure DevOps 存储库,并将其作为源发布。 此方法可让你集成 DevOps 工作流,以便通过 Azure 机器学习工作区生成包。 若要了解如何使用 Azure DevOps 设置 Python 源,请阅读 Azure Artifacts 中的 Python 包入门

此方法使用个人访问令牌对存储库进行身份验证。 同样的方法适用于采用基于令牌的身份验证的其他存储库,如专用 GitHub 存储库。

  1. 为 Azure DevOps 实例创建个人访问令牌 (PAT)。 将令牌的范围设为 Packaging > Read。

  2. 使用 Workspace.set_connection 方法添加 Azure DevOps URL 和 PAT 作为工作区属性。

    from azureml.core import Workspace
    
    pat_token = input("Enter secret token")
    ws = Workspace.from_config()
    ws.set_connection(name="connection-1", 
       category = "PythonFeed",
       target = "https://pkgs.dev.azure.com/<MY-ORG>", 
       authType = "PAT", 
       value = pat_token) 
    
  3. 创建 Azure 机器学习环境,并从源添加 Python 包。

    from azureml.core import Environment
    from azureml.core.conda_dependencies import CondaDependencies
    
    env = Environment(name="my-env")
    cd = CondaDependencies()
    cd.add_pip_package("<my-package>")
    cd.set_pip_option("--extra-index-url https://pkgs.dev.azure.com/<MY-ORG>/_packaging/<MY-FEED>/pypi/simple")")
    env.python.conda_dependencies=cd
    

环境现在已准备就绪,可用于训练运行或 Web 服务终结点部署。 构建环境时,Azure 机器学习服务使用 PAT 通过匹配的基 URL 对源进行身份验证。

从专用存储使用包的存储库

可以在组织的防火墙内使用 Azure 存储帐户的包。 该存储帐户可以包含一组特选包,或者可公开使用的包的内部镜像。

若要设置此类专用存储,请参阅保护 Azure 机器学习工作区和关联资源。 还必须将 Azure 容器注册表 (ACR) 放置在 VNet 后

重要

必须完成此步骤才能使用专用包存储库训练或部署模型。

完成这些部署后,便可以通过 Azure Blob 存储中的完整 URL 引用 Azure 机器学习环境定义中的包。

后续步骤