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.
Utiliser des modèles de base avec le SageMaker Python SDK
Tous les modèles de JumpStart base peuvent être déployés par programmation à l'aide du SageMaker Python SDK. Les modèles de base de génération de texte accessibles au public peuvent être déployés à l'aide de l'ID de modèle indiqué dans leTable modèle de génération de texte accessible au public. Les modèles propriétaires doivent être déployés à l'aide des informations du package de modèle après s'être abonné au modèle dans AWS Marketplace.
Les sections suivantes montrent comment affiner les modèles de base à l'aide de la JumpStartEstimator
classe et comment déployer des modèles à l'aide de la JumpStartModel
classe, ainsi que d'autres utilitaires du Python SDK.
Important
Certains modèles de fondation nécessitent l'acceptation explicite d'un contrat de licence d'utilisateur final (CLUF). Pour plus d’informations, consultez Acceptation du CLUF avec le SDK SageMaker Python.
Pour référencer les identifiants de modèle disponibles pour tous les modèles de base accessibles au public, consultez le tableau des algorithmes intégrés avec des modèles préentraînés
Ajustez les modèles de base accessibles au public avec la classe JumpStartEstimator
Vous pouvez affiner un algorithme intégré ou un modèle préentraîné en quelques lignes de code à l'aide du SageMaker Python SDK.
Tout d'abord, trouvez l'identifiant du modèle de votre choix dans le tableau des algorithmes intégrés avec des modèles préentraînés
. À l'aide de l'ID du modèle, définissez votre poste de formation en tant qu' JumpStart estimateur.
from sagemaker.jumpstart.estimator import JumpStartEstimator model_id =
"huggingface-textgeneration1-gpt-j-6b"
estimator = JumpStartEstimator(model_id=model_id)Exécutez
estimator.fit()
sur votre modèle en pointant vers les données d'entraînement à utiliser pour le peaufiner.estimator.fit( {"train":
training_dataset_s3_path
, "validation":validation_dataset_s3_path
} )Utilisez ensuite la
deploy
méthode pour déployer automatiquement votre modèle à des fins d'inférence. Dans cet exemple, nous utilisons le modèle GPT-J 6B de. Hugging Facepredictor = estimator.deploy()
Vous pouvez ensuite exécuter l'inférence avec le modèle déployé à l'aide de la
predict
méthode.question =
"What is Southern California often abbreviated as?"
response = predictor.predict(question) print(response)
Note
Cet exemple utilise le modèle de base GPT-J 6B, qui convient à un large éventail de cas d'utilisation de génération de texte, notamment la réponse à des questions, la reconnaissance d'entités nommées, la synthèse, etc. Pour plus d'informations sur les cas d'utilisation des modèles, consultezExploration des derniers modèles de fondation.
Vous pouvez éventuellement spécifier des versions de modèles ou des types d'instances lors de la création de votreJumpStartEstimator
. Pour plus d'informations sur la JumpStartEstimator
classe et ses paramètres, consultez JumpStartEstimator
Vérifier les types d'instances par défaut
Vous pouvez éventuellement inclure des versions de modèle ou des types d'instances spécifiques lorsque vous peaufinez un modèle préentraîné à l'aide de la JumpStartEstimator
classe. Tous les JumpStart modèles ont un type d'instance par défaut. Récupérez le type d'instance d'entraînement par défaut à l'aide du code suivant :
from sagemaker import instance_types instance_type = instance_types.retrieve_default( model_id=model_id, model_version=model_version, scope=
"training"
) print(instance_type)
Vous pouvez voir tous les types d'instances pris en charge pour un JumpStart modèle donné avec la instance_types.retrieve()
méthode.
Vérifiez les hyperparamètres par défaut
Pour vérifier les hyperparamètres par défaut utilisés pour l'entraînement, vous pouvez utiliser la retrieve_default()
méthode de la hyperparameters
classe.
from sagemaker import hyperparameters my_hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version) print(my_hyperparameters) # Optionally override default hyperparameters for fine-tuning my_hyperparameters["epoch"] = "3" my_hyperparameters["per_device_train_batch_size"] = "4" # Optionally validate hyperparameters for the model hyperparameters.validate(model_id=model_id, model_version=model_version, hyperparameters=my_hyperparameters)
Pour plus d'informations sur les hyperparamètres disponibles, consultezHyperparamètres de réglage précis couramment pris en charge.
Vérifiez les définitions des métriques par défaut
Vous pouvez également vérifier les définitions des métriques par défaut :
print(metric_definitions.retrieve_default(model_id=model_id, model_version=model_version))
Déployez des modèles de base accessibles au public avec la JumpStartModel
classe
Vous pouvez déployer un algorithme intégré ou un modèle préentraîné sur un SageMaker terminal en quelques lignes de code à l'aide du SageMaker Python SDK.
Tout d'abord, trouvez l'identifiant du modèle de votre choix dans le tableau des algorithmes intégrés avec des modèles préentraînés
. À l'aide de l'ID du modèle, définissez votre modèle en tant que JumpStart modèle.
from sagemaker.jumpstart.model import JumpStartModel model_id =
"huggingface-text2text-flan-t5-xl"
my_model = JumpStartModel(model_id=model_id)Utilisez
deploy
cette méthode pour déployer automatiquement votre modèle à des fins d'inférence. Dans cet exemple, nous utilisons le modèle FLAN-T5 XL de. Hugging Facepredictor = my_model.deploy()
Vous pouvez ensuite exécuter l'inférence avec le modèle déployé à l'aide de la
predict
méthode.question =
"What is Southern California often abbreviated as?"
response = predictor.predict(question) print(response)
Note
Cet exemple utilise le modèle de base FLAN-T5 XL, qui convient à un large éventail de cas d'utilisation de génération de texte, notamment la réponse à des questions, la synthèse, la création de chatbot, etc. Pour plus d'informations sur les cas d'utilisation des modèles, consultezExploration des derniers modèles de fondation.
Pour plus d'informations sur la JumpStartModel
classe et ses paramètres, consultez JumpStartModel
Vérifier les types d'instances par défaut
Vous pouvez éventuellement inclure des versions de modèle ou des types d'instances spécifiques lors du déploiement d'un modèle préentraîné à l'aide de la JumpStartModel
classe. Tous les JumpStart modèles ont un type d'instance par défaut. Récupérez le type d'instance de déploiement par défaut à l'aide du code suivant :
from sagemaker import instance_types instance_type = instance_types.retrieve_default( model_id=model_id, model_version=model_version, scope=
"inference"
) print(instance_type)
Consultez tous les types d'instances pris en charge pour un JumpStart modèle donné avec la instance_types.retrieve()
méthode.
Utiliser des composants d'inférence pour déployer plusieurs modèles sur un point de terminaison partagé
Un composant d'inférence est un objet SageMaker d'hébergement que vous pouvez utiliser pour déployer un ou plusieurs modèles sur un point de terminaison afin d'accroître la flexibilité et l'évolutivité. Vous devez modifier le point de terminaison endpoint_type
de votre JumpStart modèle inference-component-based plutôt que le point de terminaison basé sur le modèle par défaut.
predictor = my_model.deploy( endpoint_name =
'jumpstart-model-id-123456789012'
, endpoint_type =EndpointType.INFERENCE_COMPONENT_BASED
)
Pour plus d'informations sur la création de points de terminaison avec des composants d'inférence et le déploiement de SageMaker modèles, consultez. Utilisation partagée des ressources avec plusieurs modèles
Vérifiez les formats d'inférence d'entrée et de sortie valides
Pour vérifier les formats d'entrée et de sortie de données valides à des fins d'inférence, vous pouvez utiliser la retrieve_options()
méthode des Deserializers
classes Serializers
et.
print(sagemaker.serializers.retrieve_options(model_id=model_id, model_version=model_version)) print(sagemaker.deserializers.retrieve_options(model_id=model_id, model_version=model_version))
Vérifiez le contenu pris en charge et acceptez les types
De même, vous pouvez utiliser retrieve_options()
cette méthode pour vérifier le contenu pris en charge et accepter les types pour un modèle.
print(sagemaker.content_types.retrieve_options(model_id=model_id, model_version=model_version)) print(sagemaker.accept_types.retrieve_options(model_id=model_id, model_version=model_version))
Pour plus d'informations sur les utilitaires, consultez la section API des utilitaires
Utilisez des modèles de base propriétaires avec le SageMaker Python SDK
Les modèles propriétaires doivent être déployés à l'aide des informations du package de modèle après s'être abonné au modèle dans AWS Marketplace. Pour plus d'informations sur SageMaker et AWS Marketplace, consultez Buy and Sell Amazon SageMaker Algorithms and Models dans AWS Marketplace. Pour trouver AWS Marketplace des liens vers les derniers modèles propriétaires, consultez Getting started with Amazon SageMaker JumpStart
Après avoir souscrit au modèle de votre choix dans AWS Marketplace, vous pouvez déployer le modèle de base à l'aide du SageMaker Python SDK et du SDK associés au fournisseur de modèles. Par exemple, AI21 Labs, Cohere et LightOn Use the"ai21[SM]"
, et les lightonsage
packagescohere-sagemaker
, respectivement.
Par exemple, pour définir un JumpStart modèle à l'aide de Jurassic-2 Jumbo Instruct d'AI21 Labs, utilisez le code suivant :
import sagemaker import ai21 role = get_execution_role() sagemaker_session = sagemaker.Session() model_package_arn =
"arn:aws:sagemaker:us-east-1:865070037744:model-package/j2-jumbo-instruct-v1-1-43-4e47c49e61743066b9d95efed6882f35"
my_model = ModelPackage( role=role, model_package_arn=model_package_arn, sagemaker_session=sagemaker_session )
Par step-by-step exemple, recherchez et exécutez le bloc-notes associé au modèle de base propriétaire de votre choix dans SageMaker Studio Classic. Pour plus d’informations, consultez Utiliser des modèles de base dans Amazon SageMaker Studio Classic. Pour plus d'informations sur le SageMaker Python SDK, consultez ModelPackage