

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Implantar modelos MLflow com `ModelBuilder`
<a name="mlflow-track-experiments-model-deployment"></a>

Você pode implantar modelos MLflow em um endpoint de SageMaker IA usando o Amazon SageMaker AI Model Builder. Para obter mais informações sobre o Amazon SageMaker AI Model Builder, consulte [Criar um modelo no Amazon SageMaker AI com ModelBuilder](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-modelbuilder-creation.html).

`ModelBuilder` é uma função do Python que pega um modelo de estrutura ou uma especificação de inferência definida pelo usuário e o converte em um modelo implantável. Para obter mais detalhes sobre a `ModelBuilder` aula, consulte [ModelBuilder](https://sagemaker.readthedocs.io/en/stable/api/inference/model_builder.html#sagemaker.serve.builder.model_builder.ModelBuilder).

Para implantar seu modelo MLflow com uso do `ModelBuilder`, forneça um caminho para seus artefatos do MLflow, no atributo `model_metadata["MLFLOW_MODEL_PATH"]`. Continue a leitura para obter mais informações sobre formatos válidos de entrada para caminho de modelo:

**nota**  
Se você fornecer o caminho do artefato do modelo na forma de um ID de execução do MLflow ou um caminho de registro do modelo de MLflow, também deverá especificar o ARN do servidor de rastreamento pelo atributo `model_metadata["MLFLOW_TRACKING_ARN"]`.
+ [`Caminhos de modelo que exigem um ARN no model_metadata`](#mlflow-track-experiments-model-deployment-with-arn)
+ [`Caminhos de modelo que não exigem um ARN no model_metadata`](#mlflow-track-experiments-model-deployment-without-arn)

## `Caminhos de modelo que exigem um ARN no model_metadata`
<a name="mlflow-track-experiments-model-deployment-with-arn"></a>

Os seguintes caminhos de modelo exigem que você especifique um ARN no `model_metadata` para implantação:
+ [ID de execução](https://mlflow.org/docs/latest/python_api/mlflow.entities.html?highlight=mlflow%20info#mlflow.entities.RunInfo.run_id) do MLflow: `{{runs:/aloy-run-id/run-relative/path/to/model}}`
+ [Caminho de registro do modelo](https://mlflow.org/docs/latest/model-registry.html#find-registered-models) MLflow: `{{models:/model-name/model-version}}`

## `Caminhos de modelo que não exigem um ARN no model_metadata`
<a name="mlflow-track-experiments-model-deployment-without-arn"></a>

Os seguintes caminhos de modelo não exigem que você especifique um ARN no `model_metadata` para implantação:
+ Caminho do modelo local: `{{/Users/me/path/to/local/model}}`
+ Caminho do modelo Amazon S3: `{{s3://amzn-s3-demo-bucket/path/to/model}}`
+ ARN do pacote do modelo: `{{arn:aws:sagemaker:region:account-id:mlflow-tracking-server/tracking-server-name}}`

Para obter mais informações sobre como a implantação do modelo MLflow funciona com o Amazon SageMaker AI, consulte [Implantar o modelo MLflow no Amazon SageMaker AI na documentação](https://mlflow.org/docs/latest/deployment/deploy-model-to-sagemaker.html) do MLflow.

Se estiver usando um caminho do Amazon S3, você pode encontrar o caminho do seu modelo registrado com os seguintes comandos:

```
registered_model = client.get_registered_model(name={{'AutoRegisteredModel'}})
source_path = registered_model.latest_versions[0].source
```

O exemplo a seguir é uma visão geral de como implantar seu modelo MLflow com uso de `ModelBuilder` e um caminho de registro do modelo MLflow. Como esse exemplo fornece o caminho do artefato do modelo na forma de um caminho de registro do modelo MLflow, a chamada para `ModelBuilder` também deve especificar um ARN do servidor de rastreamento por meio do atributo `model_metadata["MLFLOW_TRACKING_ARN"]`.

**Importante**  
Você deve usar a versão [2.224.0](https://pypi.org/project/sagemaker/2.224.0/) ou posterior do SDK do SageMaker Python para usar. `ModelBuilder`

**nota**  
Use o exemplo de código a seguir como referência. Para exemplos completos que mostram como implantar modelos MLflow registrados, consulte [Tutoriais do MLflow usando os cadernos Jupyter de exemplo](mlflow-tutorials.md).

```
from sagemaker.serve import ModelBuilder
from sagemaker.serve.mode.function_pointers import Mode
from sagemaker.serve import SchemaBuilder

my_schema = SchemaBuilder(
    sample_input={{sample_input}}, 
    sample_output={{sample_output}}
)

model_builder = ModelBuilder(
    mode=Mode.SAGEMAKER_ENDPOINT,
    schema_builder=my_schema,
    role_arn="{{Your-service-role-ARN}}",
    model_metadata={
        # both model path and tracking server ARN are required if you use an mlflow run ID or mlflow model registry path as input
        "MLFLOW_MODEL_PATH": "{{models:/sklearn-model/1}}"
        "MLFLOW_TRACKING_ARN": "{{arn:aws:sagemaker:region:account-id:mlflow-tracking-server/tracking-server-name}}"
    }
)
model = model_builder.build()
predictor = model.deploy( initial_instance_count={{1}}, instance_type="{{ml.c6i.xlarge}}" )
```

Para manter o [rastreamento de linhagem](https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking.html) dos modelos MLflow implantados com uso do `ModelBuilder`, você deve ter as seguintes permissões do IAM:
+ `sagemaker:CreateArtifact`
+ `sagemaker:ListArtifacts`
+ `sagemaker:AddAssociation`
+ `sagemaker:DescribeMLflowTrackingServer`

**Importante**  
O rastreamento de linhagem é opcional. A implantação é concluída corretamente sem as permissões relacionadas ao rastreamento de linhagem. Se você não tiver as permissões configuradas, verá um erro de permissões de rastreamento de linhagem ao chamar `model.deploy()`. No entanto, a implantação do endpoint ainda será concluída corretamente e você pode interagir diretamente com o endpoint do modelo. Se as permissões acima estiverem configuradas, as informações de rastreamento de linhagem serão criadas e armazenadas automaticamente.

Para ter mais informações e exemplos completos, consulte [Tutoriais do MLflow usando os cadernos Jupyter de exemplo](mlflow-tutorials.md).