Utiliser des modèles de base avec le SageMaker Python SDK - Amazon SageMaker

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. Recherchez le nom du modèle de base de votre choix dans la barre de recherche, modifiez le nombre d'entrées affichées à l'aide du menu déroulant Afficher les entrées ou choisissez le texte suivant surligné en bleu sur le côté gauche de la page pour parcourir les modèles disponibles.

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.

  1. 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.

  2. À 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)
  3. 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} )
  4. 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 Face

    predictor = estimator.deploy()
  5. 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.

  1. 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.

  2. À 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)
  3. 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 Face

    predictor = my_model.deploy()
  4. 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.