Script upgrade uitvoeren naar SDK v2

In SDK v2 worden 'experimenten' en 'uitvoeringen' samengevoegd tot taken.

Een taak heeft een type. De meeste taken zijn opdrachttaken die een commanduitvoeren, zoals python main.py. Wat in een taak wordt uitgevoerd, is agnostisch voor elke programmeertaal, zodat u scripts kunt uitvoeren bash , interpreters kunt aanroepen python , een aantal curl opdrachten kunt uitvoeren of iets anders.

Als u een upgrade wilt uitvoeren, moet u de code voor het verzenden van taken naar SDK v2 wijzigen. Wat u in de taak uitvoert, hoeft niet te worden bijgewerkt naar SDK v2. Het is echter raadzaam om code die specifiek is voor Azure Machine Learning te verwijderen uit uw modeltrainingsscripts. Deze scheiding maakt een eenvoudigere overgang tussen lokale en cloud mogelijk en wordt beschouwd als best practice voor volwassen MLOps. In de praktijk betekent dit het verwijderen azureml.* van coderegels. Modelregistratie- en traceringscode moet worden vervangen door MLflow. Zie MLflow gebruiken in v2 voor meer informatie.

Dit artikel bevat een vergelijking van scenario('s) in SDK v1 en SDK v2.

Een scriptuitvoering verzenden

  • SDK v1

    from azureml.core import Workspace, Experiment, Environment, ScriptRunConfig
    
    # connect to the workspace
    ws = Workspace.from_config()
    
    # define and configure the experiment
    experiment = Experiment(workspace=ws, name='day1-experiment-train')
    config = ScriptRunConfig(source_directory='./src',
                                script='train.py',
                                compute_target='cpu-cluster')
    
    # set up pytorch environment
    env = Environment.from_conda_specification(
        name='pytorch-env',
        file_path='pytorch-env.yml')
    config.run_config.environment = env
    
    run = experiment.submit(config)
    
    aml_url = run.get_portal_url()
    print(aml_url)
    
  • SDK v2

    #import required libraries
    from azure.ai.ml import MLClient, command
    from azure.ai.ml.entities import Environment
    from azure.identity import DefaultAzureCredential
    
    #connect to the workspace
    ml_client = MLClient.from_config(DefaultAzureCredential())
    
    # set up pytorch environment
    env = Environment(
        image="mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04",
        conda_file="pytorch-env.yml",
        name="pytorch-env"
    )
    
    # define the command
    command_job = command(
        code="./src",
        command="train.py",
        environment=env,
        compute="cpu-cluster",
    )
    
    returned_job = ml_client.jobs.create_or_update(command_job)
    returned_job
    

Toewijzing van de belangrijkste functionaliteit in v1 en v2

Functionaliteit in SDK v1 Ruwe toewijzing in SDK v2
experiment.submit MLCLient.jobs.create_or_update
ScriptRunConfig() command()

Volgende stappen

Zie voor meer informatie: