View a markdown version of this page

Fine-tune modèles de hubs sélectionnés - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Fine-tune modèles de hubs sélectionnés

Dans votre hub de modèles privé organisé, vous pouvez exécuter des tâches d’entraînement de peaufinage à l’aide de vos références de modèles. Les références aux modèles renvoient à un JumpStart modèle accessible au public dans le hub public d' SageMaker IA, mais vous pouvez affiner le modèle en fonction de vos propres données pour votre cas d'utilisation spécifique. Une fois le travail de peaufinage effectué, vous avez accès aux poids du modèle que vous pouvez ensuite utiliser ou déployer sur un point de terminaison.

Vous pouvez affiner les modèles de hub sélectionnés en quelques lignes de code à l'aide du SDK SageMaker Python. Pour plus d'informations générales sur la mise au point de JumpStart modèles accessibles au public, consultezModèles de fondation et hyperparamètres pour le peaufinage.

Conditions préalables

Pour affiner une référence de JumpStart modèle dans votre hub sélectionné, procédez comme suit :

  1. Assurez-vous que le rôle IAM de votre utilisateur est associé à l'TrainHubModelautorisation SageMaker AI. Pour plus d’informations, consultez Ajout et suppression d’autorisations basées sur l’identité IAM dans le Guide de l’utilisateur AWS IAM.

    Vous pouvez attacher l’exemple de politique suivant à votre rôle IAM :

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sagemaker:TrainHubModel", "Resource": "arn:aws:sagemaker:*:111122223333:hub/*" } ] }
    Note

    Si votre hub organisé est partagé entre plusieurs comptes et que son contenu appartient à un autre compte, assurez-vous que votre HubContent (la ressource de référence du modèle) dispose d’une politique IAM basée sur les ressources, qui accorde également l’autorisation TrainHubModel au compte demandeur, comme illustré dans l’exemple suivant.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountSageMakerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "sagemaker:TrainHubModel" ], "Resource": [ "arn:aws:sagemaker:*:111122223333:hub/*" ] } ] }
  2. Disposez d'un hub privé avec une référence à un JumpStart modèle que vous souhaitez affiner. Pour plus d’informations sur la création d’un hub privé, consultez Création d’un hub de modèle privé. Pour savoir comment ajouter des JumpStart modèles accessibles au public à votre hub privé, consultezAjout de modèles à un hub privé.

    Note

    Le JumpStart modèle que vous choisissez doit être parfaitement ajustable. Vous pouvez vérifier si un modèle est ajustable en consultant le tableau Built-in Algorithmes avec Pre-trained modèles.

  3. Disposez du jeu de données d’entraînement que vous souhaitez utiliser pour le peaufinage du modèle. Le jeu de données doit être dans le format d’entraînement approprié pour le modèle que vous souhaitez optimiser.

Fine-tune une référence de modèle de hub organisée

La procédure suivante vous montre comment affiner une référence de modèle dans votre hub privé organisé à l'aide du SDK SageMaker Python.

  1. Assurez-vous que la dernière version (au moins2.242.0) du SDK SageMaker Python est installée. Pour plus d'informations, consultez la section Utiliser la version 3.x du SDK SageMaker Python.

    !pip install --upgrade sagemaker
  2. Importez AWS SDK for Python (Boto3) les modules dont vous aurez besoin à partir du SDK SageMaker Python.

    import boto3 from sagemaker.train import ModelTrainer from sagemaker.core.jumpstart.configs import JumpStartConfig from sagemaker.core.helper.session_helper import Session
  3. Initialisez une session Boto3, un client SageMaker AI et une session du SDK SageMaker Python.

    sagemaker_client = boto3.Session(region_name=<AWS-region>).client("sagemaker") sm_session = Session(sagemaker_client=sagemaker_client)
  4. Créez un code d'ModelTrainerutilisation from_jumpstart_config et indiquez l'ID du JumpStart modèle, le nom de votre hub contenant la référence du modèle et votre session du SDK SageMaker Python. Pour obtenir la liste des ID de modèles, consultez le tableau Built-in Algorithmes avec Pre-trained modèles.

    Vous pouvez éventuellement spécifier les instance_count champs instance_type et lors de la création du ModelTrainer. Si vous ne le faites pas, la tâche d’entraînement utilise le type et le nombre d’instances par défaut pour le modèle que vous utilisez.

    Facultatif : vous pouvez également spécifier le paramètre output_path sur l’emplacement Amazon S3 où vous souhaitez stocker les poids des modèles peaufinés. Si vous ne spécifiez pas leoutput_path, utilisez alors un compartiment SageMaker AI Amazon S3 par défaut pour la région de votre compte, nommé au format suivant :sagemaker-<region>-<account-id>.

    jumpstart_config = JumpStartConfig( model_id="meta-textgeneration-llama-3-2-1b", hub_name=<your-hub-name>, # Optional: specify your desired instance type and count for the training job # instance_type = "ml.g5.2xlarge" # instance_count = 1 ) model_trainer = ModelTrainer.from_jumpstart_config(jumpstart_config=jumpstart_config) # Optional: specify a custom S3 location to store the fine-tuned model artifacts # output_path: "s3://<output-path-for-model-artifacts>"
  5. Créez un dictionnaire avec la clé training, dans lequel vous spécifiez l’emplacement de votre jeu de données de peaufinage. Cet exemple renvoie à un URI Amazon S3. Si vous avez d'autres considérations, telles que l'utilisation du mode local ou de plusieurs canaux de données d'entraînement, consultez ModelTrainer.train () dans la documentation du SDK SageMaker Python pour plus d'informations.

    training_input = { "training": "s3://<your-fine-tuning-dataset>" }
  6. Appelez la train() méthode du formateur modèle et transmettez vos données d'entraînement et votre acceptation du CLUF (le cas échéant).

    Note

    L’exemple suivant définit la valeur sur accept_eula=False. Vous devez la modifier sur True afin d’accepter le CLUF.

    model_trainer.train(input_data_config=[training_input], accept_eula=False)

Votre tâche de peaufinage devrait maintenant commencer.

Vous pouvez vérifier vos tâches de mise au point en consultant vos tâches d'entraînement, soit dans la console SageMaker AI, soit à l'aide de l'ListTrainingJobsAPI.

Vous pouvez accéder à vos artefacts de modèle affinés sur l'Amazon S3 output_path qui a été spécifié dans l'ModelTrainerobjet (soit le compartiment Amazon S3 SageMaker AI par défaut pour la région, soit un chemin Amazon S3 personnalisé que vous avez spécifié, le cas échéant).