Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
In diesem Abschnitt werden die Richtlinien beschrieben, die Modellanbieter bei der Erstellung eines benutzerdefinierten ML-Modellalgorithmus für Clean Rooms ML beachten sollten.
-
Verwenden Sie das entsprechende Container-Basis-Image, das von SageMaker KI-Schulungen unterstützt wird, wie im SageMaker AI Developer Guide beschrieben. Mit dem folgenden Code können Sie die unterstützten Container-Basis-Images von öffentlichen SageMaker KI-Endpunkten abrufen.
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 -
Achten Sie bei der lokalen Erstellung des Modells auf Folgendes, damit Sie Ihr Modell lokal, auf einer Entwicklungsinstanz, auf SageMaker AI Training in Ihrem AWS-Konto und auf Clean Rooms ML testen können.
-
Wir empfehlen, ein Trainingsskript zu schreiben, das über verschiedene Umgebungsvariablen auf nützliche Eigenschaften der Trainingsumgebung zugreift. Clean Rooms ML verwendet die folgenden Argumente, um das Training für Ihren Modellcode aufzurufen:
SM_MODEL_DIR
,SM_OUTPUT_DIR
SM_CHANNEL_TRAIN
, und.FILE_FORMAT
Diese Standardwerte werden von Clean Rooms ML verwendet, um Ihr ML-Modell in einer eigenen Ausführungsumgebung mit den Daten aller Parteien zu trainieren. -
Clean Rooms ML stellt Ihre Trainingseingabekanäle über die
/opt/ml/input/data/
Verzeichnisse im Docker-Container zur Verfügung. Jeder ML-Eingangskanal wird auf der Grundlage seines in der Anfragechannel-name
channel_name
angegebenen entsprechenden Kanals zugeordnet.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"))
-
Stellen Sie sicher, dass Sie in der Lage sind, einen synthetischen Datensatz oder einen Testdatensatz auf der Grundlage des Schemas der Mitarbeiter zu generieren, das in Ihrem Modellcode verwendet wird.
-
Stellen Sie sicher, dass Sie einen SageMaker KI-Trainingsjob selbst ausführen können, AWS-Konto bevor Sie den Modellalgorithmus einer AWS Clean Rooms Kollaboration zuordnen.
Der folgende Code enthält eine Docker-Beispieldatei, die mit lokalen Tests, Tests der SageMaker KI-Trainingsumgebung und Clean Rooms ML kompatibel ist
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"]
-
-
Um Container-Fehler bestmöglich zu überwachen, empfehlen wir, Ausnahmen abzufangen oder alle Fehlermodi in Ihrem Code zu behandeln und in diese zu
/opt/ml/output/failure
schreiben. In einerGetTrainedModel
Antwort gibt Clean Rooms ML die ersten 1024 Zeichen aus dieser Datei unter zurückStatusDetails
. -
Nachdem Sie alle Modelländerungen vorgenommen haben und bereit sind, es in der SageMaker KI-Umgebung zu testen, führen Sie die folgenden Befehle in der angegebenen Reihenfolge aus.
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
Nachdem der SageMaker KI-Job abgeschlossen ist und Sie mit Ihrem Modellalgorithmus zufrieden sind, können Sie das Amazon ECR-Register bei AWS Clean Rooms ML registrieren. Verwenden Sie die
CreateConfiguredModelAlgorithm
Aktion, um den ModellalgorithmusCreateConfiguredModelAlgorithmAssociation
zu registrieren und ihn anschließend einer Kollaboration zuzuordnen.