View a markdown version of this page

Déploiement de modèles de fondation accessibles au public à l’aide de la classe ModelBuilder - 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.

Déploiement de modèles de fondation accessibles au public à l’aide de la classe ModelBuilder

Vous pouvez déployer un algorithme intégré ou un modèle pré-entraîné sur un terminal d' SageMaker IA en quelques lignes de code à l'aide du SageMaker Python SDK.

  1. Tout d'abord, recherchez l'identifiant du modèle de votre choix dansModèles de fondation disponibles.

  2. À l'aide de l'ID du modèle, définissez votre modèle en tant que JumpStart modèle.

    from sagemaker.serve import ModelBuilder from sagemaker.core.jumpstart.configs import JumpStartConfig jumpstart_config = JumpStartConfig(model_id="huggingface-text2text-flan-t5-xl") model_builder = ModelBuilder.from_jumpstart_config(jumpstart_config=jumpstart_config)
  3. Utilisez la méthode deploy pour déployer automatiquement votre modèle à des fins d’inférence. Dans cet exemple, nous utilisons le modèle FLAN-T5 XL deHugging Face.

    model = model_builder.build() endpoint = model_builder.deploy()
  4. Vous pouvez ensuite exécuter une inférence avec le modèle déployé à l'aide de la invoke méthode. Text-generation les modèles comme celui-ci acceptent un corps de requête JSON avec une inputs clé. Sérialisez la charge utile avec json.dumps et définissez le type de contenu sur. application/json

    import json question = "What is Southern California often abbreviated as?" payload = {"inputs": question, "parameters": {"max_new_tokens": 100}} response = endpoint.invoke(body=json.dumps(payload), content_type="application/json") print(response.body.read().decode('utf-8'))
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 chatbots, etc. Pour plus d’informations sur les cas d’utilisation d’un modèle, consultez Modèles de fondation disponibles.

Pour plus d'informations sur la ModelBuilder classe et ses paramètres, consultez ModelBuilder la documentation du SageMaker Python SDK sur le site Web Read the Docs.

Vérification de types d’instance par défaut

Lorsque vous déployez un modèle pré-entraîné, vous pouvez éventuellement spécifier une version du modèle sur votreJumpStartConfig. Vous pouvez également choisir un type d'instance sur votre ModelBuilder (par exemple, avec le instance_type paramètre). Tous les JumpStart modèles possèdent un type d'instance par défaut. Extrayez le type d’instance de déploiement par défaut à l’aide du code suivant :

from sagemaker.core 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é à l'aide de la instance_types.retrieve() méthode.

Utilisation de composants d’inférence pour déployer plusieurs modèles vers un point de terminaison partagé

Un composant d'inférence est un objet d'hébergement d' SageMaker IA que vous pouvez utiliser pour déployer un ou plusieurs modèles sur un terminal afin d'améliorer la flexibilité et l'évolutivité. Vous devez modifier le paramètre endpoint_type pour que votre JumpStart modèle soit basé sur des composants d'inférence plutôt que le point de terminaison par défaut basé sur le modèle. Importez EndpointType et déployez avec le type de point de terminaison basé sur les composants d'inférence :

from sagemaker.core.enums import EndpointType endpoint = model_builder.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 modèles d' SageMaker IA, consultez. Utilisation partagée des ressources avec plusieurs modèles

Vérification des 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 méthode retrieve_options() des classes Serializers et Deserializers.

from sagemaker.core.serializers.implementations import retrieve_options as retrieve_serializer_options from sagemaker.core.deserializers.implementations import retrieve_options as retrieve_deserializer_options print(retrieve_serializer_options(model_id=model_id, model_version=model_version)) print(retrieve_deserializer_options(model_id=model_id, model_version=model_version))

Vérification du contenu pris en charge et des types d’acceptations

De même, vous pouvez utiliser la méthode retrieve_options() pour vérifier le contenu pris en charge et les types d’acceptations pour un modèle.

from sagemaker.core import content_types, accept_types print(content_types.retrieve_options(model_id=model_id, model_version=model_version)) print(accept_types.retrieve_options(model_id=model_id, model_version=model_version))

Pour plus d’informations sur les utilitaires, consultez API d’utilitaire.