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 :
-
Assurez-vous que l'
TrainHubModelautorisation SageMaker AI est associée au rôle IAM de votre utilisateur. 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 :
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’autorisationTrainHubModelau compte demandeur, comme illustré dans l’exemple suivant. -
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 répertorier les modèles disponibles par programmation à l'aide de la
hub.list_sagemaker_public_hub_models()méthode du SDK SageMaker Python. -
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.
-
Assurez-vous que la dernière version (au moins
3.0.0) du SDK SageMaker Python est installée. Pour plus d'informations, consultez la section Utiliser la version 3.x du SDK SageMaker Pythonsur le site Web Read the Docs. !pip install --upgrade sagemaker -
Importez AWS SDK pour Python (Boto3) les modules dont vous avez besoin depuis le SDK SageMaker Python.
import boto3 from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute, InputData from sagemaker.core.jumpstart.configs import JumpStartConfig from sagemaker.core.helper.session_helper import Session -
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) -
Créez un code d'
ModelTrainerutilisationfrom_jumpstart_configet 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 répertorier les ID de modèle disponibles par programmation, utilisez lahub.list_sagemaker_public_hub_models()méthode du SDK SageMaker Python.Vous pouvez éventuellement spécifier les
instance_countchampsinstance_typeet 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_pathsur 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>, # For gated models, set accept_eula=True to accept the end-user license agreement. # This example uses False. Change it to True to accept the EULA for gated models. accept_eula=False, ) model_trainer = ModelTrainer.from_jumpstart_config( jumpstart_config=jumpstart_config, # Optional: specify your desired instance type and count for the training job. # compute=Compute(instance_type="ml.g5.2xlarge", instance_count=1), # Optional: specify a custom S3 location to store the fine-tuned model artifacts. # output_path="s3://<output-path-for-model-artifacts>", ) -
Créez un objet
InputData. Réglezchannel_nameverstrainetdata_sourcevers l'emplacement de votre jeu de données de réglage. Dans l'exemple suivant, remplacezpar l'URI Amazon S3 de votre ensemble de données. 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 la documentation du SDK SageMaker Train<your-fine-tuning-dataset>in the SageMaker Python sur le site Web Read the Docs. training_input = InputData( channel_name="train", data_source="s3://<your-fine-tuning-dataset>", ) -
Appelez la
train()méthode du formateur modèle et transmettez vos données d'entraînement. Déclarez l'acceptation du CLUF leJumpStartConfig(indiqué à l'étape précédente), et non lors de l'train()appel.Note
Les ensembles d'
JumpStartConfigexemples précédentsaccept_eula=False. Pour les modèles sécurisés, vous devez modifier la valeurTruepour accepter le CLUF.model_trainer.train(input_data_config=[training_input])
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).