Share Azure ML job results

The training job finished. Azure ML Studio has the metrics, the run history, the artifacts, the responsible-AI dashboard.

To see it, someone needs to be in your Entra ID tenant and hold an RBAC role on the workspace. For a colleague that is a ticket. For a partner or a client it is a guest account, which is a conversation with IT.

The access ladder is steep

Azure's identity model is thorough, and for a workspace holding training data that is correct. It is also disproportionate to the actual request, which is usually: what was the AUC, and is it better than what we have?

Between that question and the answer sit a guest invitation, a role assignment, an MFA enrolment and a Studio UI the person has never used. The predictable outcome is a screenshot in Teams and a number nobody can verify.

Publish the job's results

from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

ml = MLClient(DefaultAzureCredential(), sub_id, rg, workspace)
job = ml.jobs.get(job_name)
# read logged metrics and download the plots you want to include

Assemble a page that leads with the decision:

  1. What we recommend, in one sentence.
  2. Candidate vs incumbent on the metric that decides it.
  3. The regression — whichever slice or metric got worse.
  4. Appendix — job name, compute target, dataset version, environment.

An AutoML run benefits especially from this treatment: the leaderboard's top row is the answer, and the other forty rows are for you, not for the reader.

Responsible-AI figures travel as images

Fairness dashboards and error analysis are Studio-interactive. Export the charts you need as images and state the numbers in text alongside them — a stakeholder needs "false-negative rate is 8 points higher for the under-25 segment", not a widget they cannot filter.

Pairs with sharing a Fairlearn or SHAP plot for the same reason: the explanation has to survive leaving the tool.

The conversation has to survive too

A published page keeps the discussion anchored to the number being discussed — see commenting on HTML. In Teams the same exchange scrolls away, and six months later nobody can reconstruct why the model shipped with that regression.

Worth knowing

  • Restrict the report. Metrics often reveal training-data composition — see security.
  • Publish from the pipeline's last step, updating one report id, so the URL in the ticket is never stale.
  • Include the job name. Anyone with Studio access should be able to get from the page to the run in one step.
  • 5 MB per report body.

Try it

Free — unlimited reports, commenters and revisions.

Read the API reference →

Related