你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
ml 包
包
automl |
包含 Azure 机器学习 SDKv2 的自动化机器学习类。 主要领域包括管理 AutoML 任务。 |
constants |
此包定义 Azure 机器学习 SDKv2 中使用的常量。 |
data_transfer | |
dsl | |
entities |
包含 Azure 机器学习 SDKv2 的实体和 SDK 对象。 主要领域包括管理计算目标、创建/管理工作区和作业、提交/访问模型、运行和运行输出/日志记录等。 |
identity |
包含 Azure 机器学习 SDKv2 的标识配置。 |
operations |
包含 Azure 机器学习 SDKv2 支持的操作。 操作是包含与后端服务交互的逻辑的类,通常是自动生成的操作调用。 |
parallel | |
sweep |
模块
exceptions |
包含 Azure 机器学习 SDKv2 中的异常模块。 这包括异常的枚举和类。 |
类
AmlTokenConfiguration |
AzureML 令牌标识配置。 |
Input |
初始化 Input 对象。 |
MLClient |
用于与 Azure ML 服务交互的客户端类。 使用此客户端管理 Azure ML 资源,例如工作区、作业、模型等。 |
ManagedIdentityConfiguration |
托管标识凭据配置。 |
MpiDistribution |
MPI 分发配置。 |
Output | |
PyTorchDistribution |
PyTorch 分发配置。 |
RayDistribution |
注意 这是一个试验性的类,随时可能更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental。 光线分布配置。 |
TensorFlowDistribution |
TensorFlow 分发配置。 |
UserIdentityConfiguration |
用户标识配置。 |
函数
command
创建一个 Command 对象,该对象可在 dsl.pipeline 函数内使用或用作独立 Command 作业。
command(*, name: str | None = None, description: str | None = None, tags: Dict | None = None, properties: Dict | None = None, display_name: str | None = None, command: str | None = None, experiment_name: str | None = None, environment: str | Environment | None = None, environment_variables: Dict | None = None, distribution: Dict | MpiDistribution | TensorFlowDistribution | PyTorchDistribution | RayDistribution | None = None, compute: str | None = None, inputs: Dict | None = None, outputs: Dict | None = None, instance_count: int | None = None, instance_type: str | None = None, locations: List[str] | None = None, docker_args: str | None = None, shm_size: str | None = None, timeout: int | None = None, code: PathLike | str | None = None, identity: ManagedIdentityConfiguration | AmlTokenConfiguration | UserIdentityConfiguration | None = None, is_deterministic: bool = True, services: Dict[str, JobService | JupyterLabJobService | SshJobService | TensorBoardJobService | VsCodeJobService] | None = None, job_tier: str | None = None, priority: str | None = None, **kwargs) -> Command
参数
- environment
- Optional[Union[str, Environment]]
运行作业的环境。
- distribution
- Optional[Union[dict, PyTorchDistribution, MpiDistribution, TensorFlowDistribution, RayDistribution]]
分布式作业的配置。 默认值为“None”。
输入名称到作业中使用的输入数据源的映射。 默认值为“None”。
要传递给 Docker run 命令的额外参数。 这将替代系统或本部分中已设置的任何参数。 此参数仅支持 Azure ML 计算类型。 默认值为“None”。
Docker 容器的共享内存块的大小。 这应采用 (number) (单位) 格式,其中数字必须大于 0,单位可以是 b (字节) 、k (千字节) 、m (兆字节) 或 g (千兆字节) 之一。
- identity
- Optional[Union[ ManagedIdentityConfiguration, AmlTokenConfiguration, UserIdentityConfiguration]]
命令作业在计算运行时将使用的标识。
- is_deterministic
- bool
指定在给定相同输入的情况下,命令是否返回相同的输出。 默认为 True。 如果为 True,则如果命令组件是确定性的,并且之前已在当前工作区中使用相同的输入和设置运行,则当在管道中用作节点或步骤时,它将重复使用以前提交的作业的结果。 在这种情况下,不会使用计算资源。
- services
- Optional[dict[str, Union[JobService, JupyterLabJobService, SshJobService, TensorBoardJobService, VsCodeJobService]]]
节点的交互式服务。 默认值为“None”。 这是一个实验性参数,随时可能会更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental。
返回
Command 对象。
返回类型
示例
使用 command () 生成器方法创建命令作业。
from azure.ai.ml import Input, Output, command
train_func = command(
environment="AzureML-sklearn-1.0-ubuntu20.04-py38-cpu:33",
command='echo "hello world"',
distribution={"type": "Pytorch", "process_count_per_instance": 2},
inputs={
"training_data": Input(type="uri_folder"),
"max_epochs": 20,
"learning_rate": 1.8,
"learning_rate_schedule": "time-based",
},
outputs={"model_output": Output(type="uri_folder")},
)
load_batch_deployment
从 yaml 文件构造批处理部署对象。
load_batch_deployment(source: str | PathLike | IO, *, relative_origin: str | None = None, **kwargs) -> BatchDeployment
参数
- source
- Union[<xref:PathLike>, str, TextIOWrapper]
批处理部署对象的本地 yaml 源。 必须是本地文件的路径或已打开的文件。 如果源是路径,它将打开并读取。 如果文件不存在,则会引发异常。 如果源是打开的文件,则将直接读取该文件,如果该文件不可读,则会引发异常。
- relative_origin
- str
在分析的 yaml 中引用的文件的相对位置时要使用的原点。 如果输入的源是文件或文件路径输入,则默认为该目录。 如果源是没有名称值的流输入,则默认为“./”。
返回
构造的批处理部署对象。
返回类型
load_batch_endpoint
从 yaml 文件构造批处理终结点对象。
load_batch_endpoint(source: str | PathLike | IO, relative_origin: str | None = None, **kwargs) -> BatchEndpoint
参数
- source
- Union[<xref:PathLike>, str, TextIOWrapper]
批处理终结点对象的本地 yaml 源。 必须是本地文件的路径或已打开的文件。 如果源是路径,它将打开并读取。 如果文件不存在,则会引发异常。 如果源是打开的文件,则将直接读取该文件,如果该文件不可读,则会引发异常。
- relative_origin
- str
在分析的 yaml 中引用的文件的相对位置时要使用的原点。 如果输入的源是文件或文件路径输入,则默认为该目录。 如果源是没有名称值的流输入,则默认为“./”。
返回
构造的批处理终结点对象。
返回类型
load_component
将组件从本地或远程加载到组件函数。
load_component(source: str | PathLike | IO | None = None, *, relative_origin: str | None = None, **kwargs) -> CommandComponent | ParallelComponent | PipelineComponent
参数
- source
- Union[<xref:PathLike>, str, TextIOWrapper]
组件的本地 yaml 源。 必须是本地文件的路径或已打开的文件。 如果源是路径,它将打开并读取。 如果文件不存在,则会引发异常。 如果源是打开的文件,则将直接读取该文件,如果该文件不可读,则会引发异常。
- relative_origin
- str
在分析的 yaml 中引用的文件的相对位置时要使用的原点。 如果输入的源是文件或文件路径输入,则默认为该目录。 如果源是没有名称值的流输入,则默认为“./”。
返回
Component 对象
返回类型
示例
从 YAML 文件加载 Component 对象,将其版本重写为“1.0.2”,并远程注册它。
from azure.ai.ml import load_component
component = load_component(
source="./sdk/ml/azure-ai-ml/tests/test_configs/components/helloworld_component.yml",
params_override=[{"version": "1.0.2"}],
)
registered_component = ml_client.components.create_or_update(component)
load_compute
从 yaml 文件构造计算对象。
load_compute(source: str | PathLike | IO, *, relative_origin: str | None = None, params_override: List[Dict[str, str]] | None = None, **kwargs) -> Compute
参数
- source
- Union[<xref:PathLike>, str, TextIOWrapper]
计算的本地 yaml 源。 必须是本地文件的路径或已打开的文件。 如果源是路径,它将打开并读取。 如果文件不存在,则会引发异常。 如果源是打开的文件,则将直接读取该文件,如果该文件不可读,则会引发异常。
在分析的 yaml 中引用的文件的相对位置时要使用的原点。 如果输入的源是文件或文件路径输入,则默认为该目录。 如果源是没有名称值的流输入,则默认为“./”。
要覆盖 yaml 文件顶部的字段。 格式为 [{“field1”: “value1”}, {“field2”: “value2”}]
返回
加载的计算对象。
返回类型
示例
从 YAML 文件加载 Compute 对象并重写其说明。
from azure.ai.ml import load_compute
compute = load_compute(
"../tests/test_configs/compute/compute-vm.yaml",
params_override=[{"description": "loaded from compute-vm.yaml"}],
)
load_data
从 yaml 文件构造数据对象。
load_data(source: str | PathLike | IO, *, relative_origin: str | None = None, **kwargs) -> Data
参数
- source
- Union[<xref:PathLike>, str, TextIOWrapper]
数据对象的本地 yaml 源。 必须是本地文件的路径或已打开的文件。 如果源是路径,它将打开并读取。 如果文件不存在,则会引发异常。 如果源是打开的文件,则将直接读取该文件,如果该文件不可读,则会引发异常。
- relative_origin
- str
在分析的 yaml 中引用的文件的相对位置时要使用的原点。 如果输入的源是文件或文件路径输入,则默认为该目录。 如果源是没有名称值的流输入,则默认为“./”。
返回
构造的 Data 或 DataImport 对象。
返回类型
例外
如果无法成功验证数据,则引发。 错误消息中将提供详细信息。
load_datastore
从 yaml 文件构造数据存储对象。
load_datastore(source: str | PathLike | IO, *, relative_origin: str | None = None, **kwargs) -> Datastore
参数
- source
- Union[<xref:PathLike>, str, TextIOWrapper]
数据存储的本地 yaml 源。 必须是本地文件的路径或已打开的文件。 如果源是路径,它将打开并读取。 如果文件不存在,则会引发异常。 如果源是打开的文件,则将直接读取该文件,如果该文件不可读,则会引发异常。
- relative_origin
- str
在分析的 yaml 中引用的文件的相对位置时要使用的原点。 如果输入的源是文件或文件路径输入,则默认为该目录。 如果源是没有名称值的流输入,则默认为“./”。
返回
加载的数据存储对象。
返回类型
例外
如果无法成功验证数据存储,则引发。 错误消息中将提供详细信息。
load_environment
从 yaml 文件构造环境对象。
load_environment(source: str | PathLike | IO, *, relative_origin: str | None = None, **kwargs) -> Environment
参数
- source
- Union[<xref:PathLike>, str, TextIOWrapper]
环境的本地 yaml 源。 必须是本地文件的路径或已打开的文件。 如果源是路径,它将打开并读取。 如果文件不存在,则会引发异常。 如果源是打开的文件,则将直接读取该文件,如果该文件不可读,则会引发异常。
- relative_origin
- str
在分析的 yaml 中引用的文件的相对位置时要使用的原点。 如果输入的源是文件或文件路径输入,则默认为该目录。 如果源是没有名称值的流输入,则默认为“./”。
返回
构造的环境对象。
返回类型
例外
如果无法成功验证 Environment,则引发。 错误消息中将提供详细信息。
load_job
从 YAML 文件构造 Job 对象。
load_job(source: str | PathLike | IO, *, relative_origin: str | None = None, **kwargs) -> Job
参数
- source
- Union[<xref:PathLike>, str, TextIOWrapper]
本地 YAML 文件或包含作业配置的已打开文件对象的路径。 如果源是路径,则会打开并读取该路径。 如果源是打开的文件,则将直接读取该文件。
YAML 的根目录。 此目录将用作源,用于在分析的 YAML 中引用的文件的相对位置。 如果 source 是文件或文件路径输入,则默认为与 source 相同的目录。 如果源是没有名称值的流输入,则默认为“./”。
返回
加载的 Job 对象。
返回类型
例外
如果作业无法成功验证,则引发。 错误消息中将提供详细信息。
示例
从 YAML 配置文件加载作业。
from azure.ai.ml import load_job
job = load_job(source="./sdk/ml/azure-ai-ml/tests/test_configs/command_job/command_job_test_local_env.yml")
load_model
从 YAML 文件构造 Model 对象。
load_model(source: str | PathLike | IO, *, relative_origin: str | None = None, **kwargs) -> Model
参数
- source
- Union[<xref:PathLike>, str, TextIOWrapper]
本地 YAML 文件或包含作业配置的已打开文件对象的路径。 如果源是路径,则会打开并读取该路径。 如果源是打开的文件,则将直接读取该文件。
YAML 的根目录。 此目录将用作源,用于在分析的 YAML 中引用的文件的相对位置。 如果 source 是文件或文件路径输入,则默认为与 source 相同的目录。 如果源是没有名称值的流输入,则默认为“./”。
返回
加载的 Model 对象。
返回类型
例外
如果作业无法成功验证,则引发。 错误消息中将提供详细信息。
示例
从 YAML 配置文件加载模型,重写名称和版本参数。
from azure.ai.ml import load_model
model = load_model(
source="./sdk/ml/azure-ai-ml/tests/test_configs/model/model_with_stage.yml",
params_override=[{"name": "new_model_name"}, {"version": "1"}],
)
load_model_package
注意
这是一个实验性的方法,可能会在任何时候更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental。
从 YAML 文件构造 ModelPackage 对象。
load_model_package(source: str | PathLike | IO, *, relative_origin: str | None = None, **kwargs) -> ModelPackage
参数
- source
- Union[<xref:PathLike>, str, TextIOWrapper]
本地 YAML 文件或包含作业配置的已打开文件对象的路径。 如果源是路径,则会打开并读取该路径。 如果源是打开的文件,则将直接读取该文件。
YAML 的根目录。 此目录将用作源,用于在分析的 YAML 中引用的文件的相对位置。 如果 source 是文件或文件路径输入,则默认为与 source 相同的目录。 如果源是没有名称值的流输入,则默认为“./”。
返回
加载的 ModelPackage 对象。
返回类型
例外
如果作业无法成功验证,则引发。 错误消息中将提供详细信息。
示例
从 YAML 配置文件加载 ModelPackage。
from azure.ai.ml import load_model_package
model_package = load_model_package(
"./sdk/ml/azure-ai-ml/tests/test_configs/model_package/model_package_simple.yml"
)
load_online_deployment
从 yaml 文件构造联机部署对象。
load_online_deployment(source: str | PathLike | IO, *, relative_origin: str | None = None, **kwargs) -> OnlineDeployment
参数
- source
- Union[<xref:PathLike>, str, TextIOWrapper]
联机部署对象的本地 yaml 源。 必须是本地文件的路径或已打开的文件。 如果源是路径,它将打开并读取。 如果文件不存在,则会引发异常。 如果源是打开的文件,则将直接读取该文件,如果该文件不可读,则会引发异常。
- relative_origin
- str
在分析的 yaml 中引用的文件的相对位置时要使用的原点。 如果输入的源是文件或文件路径输入,则默认为该目录。 如果源是没有名称值的流输入,则默认为“./”。
返回
构造的联机部署对象。
返回类型
例外
如果无法成功验证联机部署,则引发。 错误消息中将提供详细信息。
load_online_endpoint
从 yaml 文件构造联机终结点对象。
load_online_endpoint(source: str | PathLike | IO, *, relative_origin: str | None = None, **kwargs) -> OnlineEndpoint
参数
- source
- Union[<xref:PathLike>, str, TextIOWrapper]
联机终结点对象的本地 yaml 源。 必须是本地文件的路径或已打开的文件。 如果源是路径,它将打开并读取。 如果文件不存在,则会引发异常。 如果源是打开的文件,则将直接读取该文件,如果该文件不可读,则会引发异常。
- relative_origin
- str
在分析的 yaml 中引用的文件的相对位置时要使用的原点。 如果输入的源是文件或文件路径输入,则默认为该目录。 如果源是没有名称值的流输入,则默认为“./”。
返回
构造的联机终结点对象。
返回类型
例外
如果无法成功验证联机终结点,则引发。 错误消息中将提供详细信息。
load_registry
从 yaml 文件加载注册表对象。
load_registry(source: str | PathLike | IO, *, relative_origin: str | None = None, **kwargs) -> Registry
参数
- source
- Union[<xref:PathLike>, str, TextIOWrapper]
注册表的本地 yaml 源。 必须是本地文件的路径或已打开的文件。 如果源是路径,它将打开并读取。 如果文件不存在,则会引发异常。 如果源是打开的文件,则将直接读取该文件,如果该文件不可读,则会引发异常。
- relative_origin
- str
在分析的 yaml 中引用的文件的相对位置时要使用的原点。 如果输入的源是文件或文件路径输入,则默认为该目录。 如果源是没有名称值的流输入,则默认为“./”。
返回
加载的注册表对象。
返回类型
load_workspace
从 yaml 文件加载工作区对象。
load_workspace(source: str | PathLike | IO, *, relative_origin: str | None = None, **kwargs) -> Workspace
参数
- source
- Union[<xref:PathLike>, str, TextIOWrapper]
工作区的本地 yaml 源。 必须是本地文件的路径或已打开的文件。 如果源是路径,它将打开并读取。 如果文件不存在,则会引发异常。 如果源是打开的文件,则将直接读取该文件,如果该文件不可读,则会引发异常。
- relative_origin
- str
在分析的 yaml 中引用的文件的相对位置时要使用的原点。 如果输入的源是文件或文件路径输入,则默认为该目录。 如果源是没有名称值的流输入,则默认为“./”。
返回
加载的工作区对象。
返回类型
load_workspace_connection
从 yaml 文件构造工作区连接对象。
load_workspace_connection(source: str | PathLike | IO, *, relative_origin: str | None = None, **kwargs) -> WorkspaceConnection
参数
- source
- Union[<xref:PathLike>, str, TextIOWrapper]
工作区连接对象的本地 yaml 源。 必须是本地文件的路径或已打开的文件。 如果源是路径,它将打开并读取。 如果文件不存在,则会引发异常。 如果源是打开的文件,则将直接读取该文件,如果该文件不可读,则会引发异常。
- relative_origin
- str
在分析的 yaml 中引用的文件的相对位置时要使用的原点。 如果输入的源是文件或文件路径输入,则默认为该目录。 如果源是没有名称值的流输入,则默认为“./”。
返回
构造的工作区连接对象。
返回类型
load_workspace_hub
注意
这是一个实验性的方法,可能会在任何时候更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental。
从 yaml 文件加载 WorkspaceHub 对象。
load_workspace_hub(source: str | PathLike | IO, *, relative_origin: str | None = None, **kwargs) -> WorkspaceHub
参数
- source
- Union[<xref:PathLike>, str, TextIOWrapper]
WorkspaceHub 的本地 yaml 源。 必须是本地文件的路径或已打开的文件。 如果源是路径,它将打开并读取。 如果文件不存在,则会引发异常。 如果源是打开的文件,则将直接读取该文件,如果该文件不可读,则会引发异常。
- relative_origin
- str
在分析的 yaml 中引用的文件的相对位置时要使用的原点。 如果输入的源是文件或文件路径输入,则默认为该目录。 如果源是没有名称值的流输入,则默认为“./”。
返回
加载的 WorkspaceHub 对象。
返回类型
spark
创建可在 dsl.pipeline 函数内使用或用作独立 Spark 作业的 Spark 对象。
spark(*, experiment_name: str | None = None, name: str | None = None, display_name: str | None = None, description: str | None = None, tags: Dict | None = None, code: PathLike | str | None = None, entry: Dict[str, str] | SparkJobEntry | None = None, py_files: List[str] | None = None, jars: List[str] | None = None, files: List[str] | None = None, archives: List[str] | None = None, identity: Dict[str, str] | ManagedIdentity | AmlToken | UserIdentity | None = None, driver_cores: int | None = None, driver_memory: str | None = None, executor_cores: int | None = None, executor_memory: str | None = None, executor_instances: int | None = None, dynamic_allocation_enabled: bool | None = None, dynamic_allocation_min_executors: int | None = None, dynamic_allocation_max_executors: int | None = None, conf: Dict[str, str] | None = None, environment: str | Environment | None = None, inputs: Dict | None = None, outputs: Dict | None = None, args: str | None = None, compute: str | None = None, resources: Dict | SparkResourceConfiguration | None = None, **kwargs) -> Spark
参数
- code
运行作业的源代码。 可以是指向远程位置的本地路径或“http:”、“https:”或“azureml:”URL。
- identity
- Optional[Union[ dict[str, str], ManagedIdentityConfiguration, AmlTokenConfiguration, UserIdentityConfiguration]]
Spark 作业在计算运行时将使用的标识。
- environment
- Optional[Union[str, Environment]]
要运行作业的 Azure ML 环境。
- resources
- Optional[Union[dict, SparkResourceConfiguration]]
作业的计算资源配置。
返回
Spark 对象。
返回类型
示例
使用 DSL 管道修饰器生成 Spark 管道
from azure.ai.ml import Input, Output, dsl, spark
from azure.ai.ml.constants import AssetTypes, InputOutputModes
# define the spark task
first_step = spark(
code="/src",
entry={"file": "add_greeting_column.py"},
py_files=["utils.zip"],
files=["my_files.txt"],
driver_cores=2,
driver_memory="1g",
executor_cores=1,
executor_memory="1g",
executor_instances=1,
inputs=dict(
file_input=Input(path="/dataset/iris.csv", type=AssetTypes.URI_FILE, mode=InputOutputModes.DIRECT)
),
args="--file_input ${{inputs.file_input}}",
resources={"instance_type": "standard_e4s_v3", "runtime_version": "3.2.0"},
)
second_step = spark(
code="/src",
entry={"file": "count_by_row.py"},
jars=["scala_project.jar"],
files=["my_files.txt"],
driver_cores=2,
driver_memory="1g",
executor_cores=1,
executor_memory="1g",
executor_instances=1,
inputs=dict(
file_input=Input(path="/dataset/iris.csv", type=AssetTypes.URI_FILE, mode=InputOutputModes.DIRECT)
),
outputs=dict(output=Output(type="uri_folder", mode=InputOutputModes.DIRECT)),
args="--file_input ${{inputs.file_input}} --output ${{outputs.output}}",
resources={"instance_type": "standard_e4s_v3", "runtime_version": "3.2.0"},
)
# Define pipeline
@dsl.pipeline(description="submit a pipeline with spark job")
def spark_pipeline_from_builder(data):
add_greeting_column = first_step(file_input=data)
count_by_row = second_step(file_input=data)
return {"output": count_by_row.outputs.output}
pipeline = spark_pipeline_from_builder(
data=Input(path="/dataset/iris.csv", type=AssetTypes.URI_FILE, mode=InputOutputModes.DIRECT),
)