

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Linee guida per la creazione di modelli per il contenitore di formazione
<a name="custom-model-guidelines"></a>

Questa sezione descrive in dettaglio le linee guida che i fornitori di modelli devono seguire durante la creazione di un algoritmo di modello ML personalizzato per Clean Rooms ML.
+ Utilizza l'immagine di base del contenitore appropriata supportata dalla formazione SageMaker AI, come descritto nella [SageMaker AI Developer Guide](https://docs.aws.amazon.com/sagemaker/latest/dg-ecr-paths/sagemaker-algo-docker-registry-paths.html). Il codice seguente consente di estrarre le immagini di base del contenitore supportate dagli endpoint SageMaker AI pubblici.

  ```
  ecr_registry_endpoint='{{763104351884}}.dkr.ecr.$REGION.amazonaws.com'
  base_image='pytorch-training:2.3.0-cpu-py311-ubuntu20.04-sagemaker'
  aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $ecr_registry_endpoint
  docker pull $ecr_registry_endpoint/$base_image
  ```
+ Quando create il modello localmente, assicuratevi di quanto segue in modo da poter testare il modello localmente, su un'istanza di sviluppo, su SageMaker AI Training in your Account AWS e su Clean Rooms ML.
  + Ti consigliamo di scrivere uno script di formazione che acceda a proprietà utili sull'ambiente di addestramento tramite varie variabili di ambiente. Clean Rooms ML utilizza i seguenti argomenti per richiamare la formazione sul codice del modello:`SM_MODEL_DIR`, `SM_OUTPUT_DIR``SM_CHANNEL_TRAIN`, e. `FILE_FORMAT` Questi valori predefiniti vengono utilizzati da Clean Rooms ML per addestrare il modello ML nel proprio ambiente di esecuzione con i dati di tutte le parti.
  + Clean Rooms ML rende disponibili i canali di input per la formazione tramite `/opt/ml/input/data/{{channel-name}}` le directory nel contenitore docker. Ogni canale di input ML viene mappato in base al corrispondente `channel_name` fornito nella richiesta. `CreateTrainedModel`

    ```
    parser = argparse.ArgumentParser()# Data, model, and output directories
    
    parser.add_argument('--model_dir', type=str, default=os.environ.get('SM_MODEL_DIR', "/opt/ml/model"))
    parser.add_argument('--output_dir', type=str, default=os.environ.get('SM_OUTPUT_DIR', "/opt/ml/output/data"))
    parser.add_argument('--train_dir', type=str, default=os.environ.get('SM_CHANNEL_TRAIN', "/opt/ml/input/data/train"))
    parser.add_argument('--train_file_format', type=str, default=os.environ.get('FILE_FORMAT', "csv"))
    ```
  + Assicurati di essere in grado di generare un set di dati sintetico o di test basato sullo schema dei collaboratori che verrà utilizzato nel codice del modello.
  + Assicurati di poter eseguire autonomamente un processo di formazione sull' SageMaker intelligenza artificiale Account AWS prima di associare l'algoritmo del modello a una AWS Clean Rooms collaborazione.

    Il codice seguente contiene un file Docker di esempio compatibile con i test locali, i test dell'ambiente SageMaker AI Training e Clean Rooms ML

    ```
    FROM  {{763104351884}}.dkr.ecr.us-west-2.amazonaws.com/pytorch-training:2.3.0-cpu-py311-ubuntu20.04-sagemaker
    MAINTAINER $author_name
    
    ENV PYTHONDONTWRITEBYTECODE=1 \
        PYTHONUNBUFFERED=1 \
        LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib"
    
    ENV PATH="/opt/ml/code:${PATH}"
    
    # this environment variable is used by the SageMaker PyTorch container to determine our user code directory
    ENV SAGEMAKER_SUBMIT_DIRECTORY /opt/ml/code
    
    # copy the training script inside the container
    COPY train.py /opt/ml/code/train.py
    # define train.py as the script entry point
    ENV SAGEMAKER_PROGRAM train.py
    ENTRYPOINT ["python", "/opt/ml/code/train.py"]
    ```
+ Per monitorare al meglio gli errori dei container, consigliamo di esportare i log e di eseguire il debug per motivi di errore. In `GetTrainedModel` risposta, Clean Rooms ML restituisce i primi 1024 caratteri di questo file sotto. `StatusDetails` 
+ Dopo aver completato le modifiche al modello e essere pronto per testarlo nell'ambiente SageMaker AI, esegui i seguenti comandi nell'ordine fornito.

  ```
  export ACCOUNT_ID=xxx
  export REPO_NAME=xxx
  export REPO_TAG=xxx
  export REGION=xxx
  
  docker build -t $ACCOUNT_ID.dkr.ecr.us-west-2.amazonaws.com/$REPO_NAME:$REPO_TAG
  
  # Sign into AWS $ACCOUNT_ID/ Run aws configure
  # Check the account and make sure it is the correct role/credentials
  aws sts get-caller-identity
  aws ecr create-repository --repository-name $REPO_NAME --region $REGION
  aws ecr describe-repositories --repository-name $REPO_NAME --region $REGION
  
  # Authenticate Doker
  aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com
  
  # Push To ECR Images
  docker push  $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com$REPO_NAME:$REPO_TAG
  
  # Create Sagemaker Training job
  # Configure the training_job.json with
  # 1. TrainingImage
  # 2. Input DataConfig
  # 3. Output DataConfig
  aws sagemaker create-training-job --cli-input-json file://training_job.json --region $REGION
  ```

  Dopo aver completato il processo di SageMaker intelligenza artificiale e aver soddisfatto l'algoritmo del modello, puoi registrare il registro Amazon ECR con AWS Clean Rooms ML. Usa l'`CreateConfiguredModelAlgorithm`azione per registrare l'algoritmo del modello e poi `CreateConfiguredModelAlgorithmAssociation` per associarlo a una collaborazione.