跳转到主要内容

Azure Machine Learning Designer SDK

项目描述

Azure Machine Learning Designer Python SDK

mldesigner 软件包提供与 Azure ML Designer(拖放机器学习)UI 体验一起工作的 SDK 接口。

该软件包简化了如 ComponentsPipelines 等资源的内容创建体验

  • Components:机器学习管道中执行单个步骤的自包含代码块:数据预处理、模型训练、模型评分、超参数调整运行等。这样,它可以被参数化并在不同的环境中使用。
  • Pipelines:由组件组成的独立可执行的工作流程,这些组件是机器学习任务。

变更日志

v0.1.0b18 (2024.01.31)

建议与 azure-ai-ml==1.13 一起使用

新功能

  • mldesigner compile 支持编译 并行组件
  • mldesigner generate 支持使用提供的认证生成包。

v0.1.0b17 (2023.11.14)

建议与 azure-ai-ml==1.12 一起使用。

改进

  • [编译] 更新编译命令组件模式路径为 https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json

修复错误

  • [编译] 修复了源组件输入为空时的错误。

v0.1.0b16 (2023.10.18)

建议与 azure-ai-ml==1.11 一起使用。

新功能

  • mldesigner compile 支持使用 .amlignore 编译。
    • mldesigner compile --source xxx.yaml --amlignore-file <path-to>/.amlignore

v0.1.0b15 (2023.09.13)

建议与 azure-ai-ml==1.10 一起使用。

新功能

  • mldesigner compile 支持版本 1.5 的 spark 组件。
  • is_control=True 对于原始类型输出不是必需的。
  • generate 包支持指定注册组件的版本,并通过 SDK 生成支持远程 URL。
    from mldesigner import generate
    generate(
      source="azureml://registries/{registry_name}/components/{component_name}/versions/0.0.8",
    )
    

v0.1.0b14 (2023.07.31)

建议与 azure-ai-ml==1.9.0 一起使用。

新功能

  • 支持将原始类型作为组件返回注释,并且不需要编写 is_control=True
  • 支持将 Annotated 类型作为组件输入或组件返回注释。
  • 支持在 @group 中使用 Annotated 类型。
    from mldesigner import command_component, Output, Meta
    from typing_extensions import Annotated
    
    @command_component()
    def my_component1(input_int: int) -> int:
        return input_int
    
    @command_component()
    def my_component2(input_int: Annotated[int, Meta(description="test annotation int", min=1, max=10, default=1)],) \
                                                         -> Annotated[int, Meta(description="test annotation int")]:  # using Meta class to configure more meta data
        return input_int
    

v0.1.0b13 (2023.05.16)

建议与 azure-ai-ml==1.7.0 一起使用。

改进

  • 支持生成指定版本或标签的组件。
    • azureml://subscriptions//resourcegroups/<resource_group>/workspaces//components/<component_name>/labels/
    • azureml://subscriptions//resourcegroups/<resource_group>/workspaces//components/<component_name>/versions/
  • 改进生成组件包的日志内容。

v0.1.0b12 (2023.03.28)

建议与 azure-ai-ml==1.5.0 一起使用。

改进

  • 支持动态管道创建的多种类型的身份验证,优先级为用户身份 > 管理身份 > 其他。
  • 改进 mldesigner execute
    • 当未指定组件名称时,如果源文件中只有一个组件,则执行该组件,如果有多个组件,则引发错误。
    • 如果未提供所需参数,则列出所有参数并引发错误。
  • 改进对 generate_packageenum 值的支持。
    • 支持没有 \w 字符的 enum 值,例如空字符串、-+\t
    • 支持具有重复清理名称的 enum 值,例如 Aa
  • 使用 curated environment 作为默认的 mldesigner 组件环境。
    • 对于命令组件: azureml://registries/azureml/environments/mldesigner-minimal/labels/latest
    • 对于动态管道: azureml://registries/azureml/environments/mldesigner/labels/latest
  • 支持 mltable 类型在 @dynamic 输出中。

修复错误

  • 修复当 mldesigner 组件代码设置为文件而不是文件夹时出现的错误。

v0.1.0b11 (2023.02.09)

建议与 azure-ai-ml==1.4.0 一起使用。

改进

  • 添加 Python 版本要求 <4.0,>=3.7

v0.1.0b10 (2023.01.20)

建议与 azure-ai-ml==1.3.0 一起使用。

新功能

  • 支持将原始类型作为组件返回注释。
  • 支持将 @group 作为组件返回注释。
  • 根据返回注释对组件执行结果进行验证。

改进

  • 将组件执行结果作为 mldesigner execute 结果返回。

修复错误

  • 修复在同时具有 mldesigner 和 azure-ai-ml 的环境中执行组件时缺少关键字参数的问题。
  • 修复编译管道时出现错误的编译错误,其中节点使用远程注册的组件,无论是来自工作区还是注册表。
  • 修复输入字符串是 JSON 序列化字符串时的解析错误。

v0.1.0b9 (2022.12.06)

建议与 azure-ai-ml==1.2.0 一起使用。

改进

  • 如果没有指定版本,则启用创建具有自动递增版本的组件。
  • 更新 mldesigner 默认环境镜像为 mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
  • Mldesigner 编译改进
    • 当编译失败时,以代码 1 退出。
    • 如果输入是yaml,则输出与原始文件名相同的yaml文件。
    • 生成的管道节点键是有序的。

修复错误

  • 修复了mldesigner执行器不将**kwargs传递给组件函数的问题。

v0.1.0b8 (2022.10.26)

修复错误

  • 修复了导入typing_extensions时的依赖问题。

v0.1.0b7 (2022.10.25)

新功能

  • 支持mldesigner编译:mldesigner compile
  • 支持generate_package的列表类型组件输入。

修复错误

  • 修复了输入字符串包含空格或"="时执行的错误。
  • 修复了布尔参数解析的执行错误。

改进

  • 从mldesigner的Input/Output类中移除了mode客户端默认值ro_mount/rw_mount
  • 精炼了在.ipynb中定义组件时的错误信息。
  • 精炼了创建组件实体失败时的错误信息。

v0.1.0b6 (2022.09.19)

改进

  • 采用可选输入的新格式:'$[[]]'代替旧的'[]'。
  • 支持mldesigner输入的Enum。
  • 如果输入没有指定注解,则引发错误。

修复错误

  • 修复了与azure-ai-ml<0.1.0b7一起使用时的导入错误。

v0.1.0b5 (2022.09.08)

新功能

  • 如果没有额外的参数,则启用使用@command_component时不需要括号。
    from mldesigner import command_component
    @command_component
    def my_component():
        pass
    
    # equals to
    @command_component()
    def my_component():
        pass
    

修复错误

  • 修复了未指定输入或输出时组件命令执行的错误。
  • 修复了与azure-ai-ml >=0.1.0b7不兼容的问题:尝试导入azure-ai-ml常量时的错误。

v0.1.0b4 (2022.08.22)

新功能

  • 支持mldesigner生成。
    • 从本地yaml文件或远程源生成组件包。
      • 请参阅参考文档:[mldesigner生成文档](https://github.com/Azure/azureml-pipelines-doc/tree/main/user_guide/component_import_experience "mldesigner generate doc")
      • 示例笔记本:[mldesigner生成示例](https://github.com/Azure/azureml-pipelines-doc/blob/main/user_guide/component_import_experience/component-import-experience.ipynb "mldesigner generate samples")
  • 支持mldesigner执行:在本地主机环境中执行组件。
    • CLI示例:mldesigner execute --source ./components.py --name my_component inputs a=1 b=2
    • SDK示例
      from mldesigner import execute
      from components import my_component
      node = my_component(a=1, b=2)
      res = execute(node)
      
    • 更多信息:mldesigner execute --help

改进

  • 修复了版本配置的递增。

v0.1.0b3 (2022.07.14)

新功能

  • 支持mldesigner输入类的可选输入。
    from mldesigner import command_component, Input
    @command_component()
    def my_component(optional_param: Input(type="integer", optional=True)):
        pass
    
  • 支持从文档字符串推断管道和组件的io描述。

改进

  • 处理未来更改的兼容性问题。减少私有函数的导入。
  • 移除了mldesigner输入类的默认属性。
  • 启用mldesigner使用argparser解析传入的参数。
  • 兼容性处理:旧版的azure ai ml包使用不同的方式加载组件。
  • 组件输入如"int_param=3",在注册到远程时不再被视为可选输入。

v0.1.0b2 (2022.05.23)

改进

  • 精炼代码术语,用新的mldesigner替换旧的dsl。

v0.1.0b1 (2022.05.20)

新功能

  • 支持使用装饰器@command_component定义组件。
    • 创建组件
      from mldesigner import command_component, Input, Output
      
      @command_component()
      def hello_world(input: Input, output: Output, param='str_param'):
          print("Hello World!")
      
    • 将组件注册到服务器
      from azure.ai.ml import MLClient
      client = MLClient.from_config(credential=credential)
      client.components.create_or_update(hello_world)
      
    • 在管道中使用SDK组件
      from azure.ai.ml import dsl
      
      @dsl.pipeline()
      def my_pipeline():
          node = hello_world()
          return {"pipeline_output": node.outputs.output}
      
      pipeline = my_pipeline()
      client.jobs.create_or_update(pipeline)
      

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

本版本没有可用的源代码分发文件。请参阅生成分发归档教程

构建分发

mldesigner-0.1.0b18-py3-none-any.whl (169.4 kB 查看哈希值)

上传时间 Python 3

支持者