docs(architect): weekly KB update — 52 files refreshed (2026-04)
Key content changes: - MLOps: MLflow 3 scorers expanded (RetrievalRelevance, Fluency, multi-turn judges) - MLflow 3 A/B eval: mirror_traffic GA confirmed, new scorer catalog - CI/CD: OIDC auth replaces deprecated --sdk-auth (Azure ML GitHub Actions) - Agent framework A2A: updated SDK patterns (A2ACardResolver, BearerAuth) - AG-UI backend tool rendering: accurate TOOL_CALL_* event shapes - Computer Use agents: US region requirement, credentials patterns - Purview governance: bulk term edit, expire/delete workflows - CAF AI Secure: 3-phase structure confirmed current - Copilot Studio: Claude Sonnet 4.5/4.6 GA, new orchestration controls - M365 manifest: v1.26 GA (April 2026), copilotAgents node - Power Platform: agent flow capacity enforcement corrected - Azure Monitor: Simple Log Alerts GA, AMBA for policy-based alerting - Security Copilot: SCU capacity model (400 SCU/1000 users) - EU Data Boundary: all EU + EFTA countries confirmed - gateway-multi-backend: added 4th topology, subscription-level quota note Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
6645e93205
commit
be4925a8ff
40 changed files with 398 additions and 239 deletions
|
|
@ -1,6 +1,6 @@
|
|||
# Azure ML Pipelines - Orchestration and Automation
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04
|
||||
**Verified:** MCP 2026-04
|
||||
**Status:** GA
|
||||
**Category:** MLOps & GenAIOps
|
||||
|
|
@ -22,59 +22,81 @@ Fra et kostnads- og effektivitetsperspektiv gir pipelines betydelige fordeler: d
|
|||
### Pipeline Components (v2)
|
||||
|
||||
|
||||
### Azure ML Pipelines — Python SDK v2 (Tutorial 2026)
|
||||
### Azure ML Pipelines — Python SDK v2 (Tutorial, Verified MCP 2026-04)
|
||||
|
||||
**Key benefits**: Standardized MLOps, scalable team collaboration, training efficiency, cost reduction.
|
||||
**Key benefits**: Standardized MLOps practice, scalable team collaboration, training efficiency, cost reduction.
|
||||
|
||||
**Pipeline creation pattern** (SDK v2):
|
||||
**Pipeline creation pattern** (SDK v2 — from official tutorial):
|
||||
```python
|
||||
from azure.ai.ml import MLClient, dsl, Input, Output, command
|
||||
from azure.identity import DefaultAzureCredential
|
||||
from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential
|
||||
|
||||
ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace)
|
||||
try:
|
||||
credential = DefaultAzureCredential()
|
||||
credential.get_token("https://management.azure.com/.default")
|
||||
except Exception:
|
||||
credential = InteractiveBrowserCredential()
|
||||
|
||||
# 1. Create reusable components
|
||||
ml_client = MLClient(credential, subscription_id, resource_group, workspace)
|
||||
# Note: MLClient initialization is lazy — no connection until first call
|
||||
|
||||
# 1. Create reusable components (programmatic definition)
|
||||
data_prep_component = command(
|
||||
name="data_prep",
|
||||
name="data_prep_credit_defaults",
|
||||
inputs={"data": Input(type="uri_folder"), "test_train_ratio": Input(type="number")},
|
||||
outputs={"train_data": Output(type="uri_folder"), "test_data": Output(type="uri_folder")},
|
||||
outputs={"train_data": Output(type="uri_folder", mode="rw_mount"),
|
||||
"test_data": Output(type="uri_folder", mode="rw_mount")},
|
||||
code="./components/data_prep",
|
||||
command="python data_prep.py --data ${{inputs.data}} ...",
|
||||
environment=f"{env.name}:{env.version}",
|
||||
command="python data_prep.py --data ${{inputs.data}} --test_train_ratio ${{inputs.test_train_ratio}} ...",
|
||||
environment=f"{pipeline_job_env.name}:{pipeline_job_env.version}",
|
||||
)
|
||||
# Register for reuse
|
||||
ml_client.create_or_update(data_prep_component.component)
|
||||
data_prep_component = ml_client.create_or_update(data_prep_component.component)
|
||||
|
||||
# 2. Define pipeline with @dsl.pipeline decorator
|
||||
@dsl.pipeline(compute="serverless", description="E2E training pipeline")
|
||||
def training_pipeline(data_input, test_train_ratio, learning_rate, model_name):
|
||||
@dsl.pipeline(
|
||||
compute="serverless", # "serverless" runs on serverless compute
|
||||
description="E2E data_prep-train pipeline",
|
||||
)
|
||||
def credit_defaults_pipeline(data_input, test_train_ratio, learning_rate, registered_model_name):
|
||||
prep_job = data_prep_component(data=data_input, test_train_ratio=test_train_ratio)
|
||||
train_job = train_component(
|
||||
train_data=prep_job.outputs.train_data,
|
||||
test_data=prep_job.outputs.test_data,
|
||||
learning_rate=learning_rate,
|
||||
registered_model_name=model_name,
|
||||
registered_model_name=registered_model_name,
|
||||
)
|
||||
return {
|
||||
"pipeline_job_train_data": prep_job.outputs.train_data,
|
||||
"pipeline_job_test_data": prep_job.outputs.test_data,
|
||||
}
|
||||
|
||||
# 3. Submit pipeline
|
||||
pipeline_job = ml_client.jobs.create_or_update(
|
||||
training_pipeline(data_input=..., ...),
|
||||
experiment_name="e2e_pipeline"
|
||||
credit_defaults_pipeline(
|
||||
data_input=Input(type="uri_file", path=credit_data.path),
|
||||
test_train_ratio=0.25,
|
||||
learning_rate=0.05,
|
||||
registered_model_name="credit_defaults_model",
|
||||
),
|
||||
experiment_name="e2e_registered_components"
|
||||
)
|
||||
ml_client.jobs.stream(pipeline_job.name)
|
||||
```
|
||||
|
||||
**Component lifecycle**:
|
||||
1. Write YAML spec or create programmatically (`CommandComponent`)
|
||||
2. Register with name+version in workspace or registry
|
||||
3. Load and compose into pipeline
|
||||
4. Submit via `ml_client.jobs.create_or_update()`
|
||||
1. Write YAML spec (`train.yml`) or create programmatically (`CommandComponent` / `command()`)
|
||||
2. Register with name+version: `ml_client.create_or_update(component)`
|
||||
3. Load and compose into pipeline using `@dsl.pipeline` decorator
|
||||
4. Submit via `ml_client.jobs.create_or_update()` with experiment name
|
||||
|
||||
**Compute options**: `serverless` (recommended), named compute cluster, or per-step compute override.
|
||||
**Environment**: Curated environments (`azureml://registries/azureml/environments/sklearn-1.5/labels/latest`) or custom conda/Docker.
|
||||
**Compute options**: `serverless` (recommended — zero config), named compute cluster, or per-step compute override (e.g., `train_step.compute = "cpu-cluster"`).
|
||||
**Environment**: Curated environments (`azureml://registries/azureml/environments/sklearn-1.0/labels/latest`) or custom conda/Docker (base image: `mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu22.04:latest`).
|
||||
**Output types**: `uri_folder` (data), `mlflow_model` (model), `uri_file` (file).
|
||||
|
||||
**MLflow integration**: Use `mlflow.start_run()` in scripts for automatic experiment tracking (metrics, parameters, models).
|
||||
**MLflow integration**: Use `mlflow.start_run()` + `mlflow.sklearn.autolog()` in training scripts for automatic experiment tracking. Models registered via `mlflow.sklearn.log_model()` with `registered_model_name`.
|
||||
|
||||
**VNet note**: If workspace uses a managed virtual network, add outbound rules to allow access to public Python package repositories.
|
||||
|
||||
| Komponent-type | Beskrivelse | Bruksområde |
|
||||
|----------------|-------------|-------------|
|
||||
|
|
@ -564,41 +586,41 @@ Er det >3 steg i workflow?
|
|||
|
||||
1. **What are Azure Machine Learning pipelines?**
|
||||
https://learn.microsoft.com/en-us/azure/machine-learning/concept-ml-pipelines?view=azureml-api-2
|
||||
*Confidence: Verified (Feb 2026)*
|
||||
*Confidence: Verified (April 2026)*
|
||||
|
||||
2. **Schedule machine learning pipeline jobs**
|
||||
https://learn.microsoft.com/en-us/azure/machine-learning/how-to-schedule-pipeline-job?view=azureml-api-2
|
||||
*Confidence: Verified (Feb 2026)*
|
||||
*Confidence: Verified (April 2026)*
|
||||
|
||||
3. **Create and run machine learning pipelines using components with the Azure Machine Learning SDK v2**
|
||||
https://learn.microsoft.com/en-us/azure/machine-learning/how-to-create-component-pipeline-python?view=azureml-api-2
|
||||
*Confidence: Verified (Feb 2026)*
|
||||
*Confidence: Verified (April 2026)*
|
||||
|
||||
4. **Tutorial: Create production machine learning pipelines**
|
||||
https://learn.microsoft.com/en-us/azure/machine-learning/tutorial-pipeline-python-sdk?view=azureml-api-2
|
||||
*Confidence: Verified (Feb 2026)*
|
||||
*Confidence: Verified (April 2026)*
|
||||
|
||||
5. **Use parallel jobs in pipelines**
|
||||
https://learn.microsoft.com/en-us/azure/machine-learning/how-to-use-parallel-job-in-pipeline?view=azureml-api-2
|
||||
*Confidence: Verified (Feb 2026)*
|
||||
*Confidence: Verified (April 2026)*
|
||||
|
||||
6. **Manage inputs and outputs for components and pipelines**
|
||||
https://learn.microsoft.com/en-us/azure/machine-learning/how-to-manage-inputs-outputs-pipeline?view=azureml-api-2
|
||||
*Confidence: Verified (Feb 2026)*
|
||||
*Confidence: Verified (April 2026)*
|
||||
|
||||
7. **Create jobs and input data for batch endpoints**
|
||||
https://learn.microsoft.com/en-us/azure/machine-learning/how-to-access-data-batch-endpoints-jobs?view=azureml-api-2
|
||||
*Confidence: Verified (Feb 2026)*
|
||||
*Confidence: Verified (April 2026)*
|
||||
|
||||
8. **Upgrade pipeline endpoints to SDK v2**
|
||||
https://learn.microsoft.com/en-us/azure/machine-learning/migrate-to-v2-deploy-pipelines?view=azureml-api-2
|
||||
*Confidence: Verified (Feb 2026)*
|
||||
*Confidence: Verified (April 2026)*
|
||||
|
||||
### Code Samples (Verified)
|
||||
|
||||
- **Azure ML Examples Repository (azureml-examples/sdk/python/schedules):**
|
||||
https://github.com/Azure/azureml-examples
|
||||
*Confidence: Verified (Feb 2026)*
|
||||
*Confidence: Verified (April 2026)*
|
||||
|
||||
### Konfidensgradering per seksjon
|
||||
|
||||
|
|
@ -613,5 +635,5 @@ Er det >3 steg i workflow?
|
|||
| Kostnad og lisensiering | Verified + Baseline | MS Learn: cost considerations + Azure pricing |
|
||||
| For arkitekten | Baseline | Arkitekturkonsulent-erfaring |
|
||||
|
||||
**Verified:** Informasjon hentet direkte fra Microsoft Learn MCP-dokumentasjon (februar 2026).
|
||||
**Verified:** Informasjon hentet direkte fra Microsoft Learn MCP-dokumentasjon (april 2026).
|
||||
**Baseline:** Informasjon basert på modellkunnskap og arkitekturerfaring, konsistent med Azure ML prinsipper.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue