Invoquer un modèle basé sur une image dans SageMaker

Dans cette rubrique, nous vous expliquons comment invoquer un modèle basé sur une image sur AWS SageMaker à l'aide d'un exemple qui redimensionne l'image d'entrée (procédé d'« upscaling »). Le redimensionnement d'images avec l'apprentissage machine implique généralement l'utilisation de modèles d'apprentissage profond, tels que les réseaux neuronaux convolutifs (CNN), pour augmenter la résolution ou la qualité des images.

Remarque :

La marque et le logo AWS sont des marques commerciales ou des marques déposées d'Amazon.com, Inc. et ne sont utilisés qu'à des fins d'identification.

Pour convertir une image faible résolution en image haute résolution, il convient de redimensionner l'image à l'aide d'une diffusion stable dans le modèle Amazon AWS SageMaker JumpStart. L'image faible résolution est codée au format Base64, puis transmise au modèle pour être redimensionnée. Regardez l'image ci-dessous pour connaître le déroulement du processus de redimensionnement. Pour en savoir plus sur le modèle AWS SageMaker JumpStart, consultez les rubriques Images AWS SageMaker InvokeEndpoint JumpStart Upscale et AWS SageMaker InvokeEndpoint JumpStart Upscaling. Processus de conversion des images AWS SageMaker

Procédure

  1. Dans la Control Room, cliquez sur Configurer à l'aide de la découverte des points de terminaison SageMaker pour obtenir la liste des points de terminaison. Invoquer le point de terminaison AWS SageMaker
    1. Saisissez les infos d'identification conformément aux instructions de la rubrique Action d'authentification.
    2. Cliquez sur le menu déroulant Région pour sélectionner une région de votre instance AWS à partir de laquelle obtenir les points de terminaison.
    3. Cliquez sur Connecter.
      Vous vous connectez à SageMaker et obtenez la liste des points de terminaison disponibles dans la région sélectionnée.
    4. Cliquez sur le nom du point de terminaison correspondant au modèle que vous souhaitez utiliser, puis cliquez sur Sélectionner. Dans cet exemple, nous utilisons un modèle basé sur l'image. Nous utilisons un modèle existant préentraîné. Vous pouvez afficher les modèles déjà déployés en accédant à Inférence > Points de terminaison. Pour déployer le modèle de votre choix, consultez la rubrique AWS SageMaker Déployer des modèles pour l'inférence ; pour entraîner les modèles déployés, consultez la rubrique AWS SageMaker Créer, former et déployer des modèles pour l'inférence. Pour en savoir plus sur les modèles, cliquez sur un modèle.
    5. Cliquez sur Sélectionner.
      Les champs Nom du point de terminaison et Région sont automatiquement renseignés dans l'écran parent.
  2. Cliquez sur le menu déroulant Type de contenu pour sélectionner le type de charge utile de contenu que vous souhaitez saisir. Dans cet exemple, sélectionnez application/json;jpeg comme type de charge utile.
  3. Stockez l'image faible résolution dans un dossier et utilisez l'action Conversion Base64 : Codage Base64 pour convertir l'image en un texte codé en base64. Saisissez le texte codé en base64 dans un format JSON, comme indiqué dans l'exemple ci-dessous :
    {
       "prompt":"a cat",
       "image":encoded_image,
       "num_inference_steps":50,
       "guidance_scale":7.5
    }
    Le résultat du codage en base64 est utilisé dans encoded_image.
  4. Saisissez Par défaut comme nom de session ou enregistrez la session dans une variable.
  5. La réponse JSON est stockée dans une variable str-ImageBasedModelResponse.
    La réponse JSON contient deux parties :
    • Image générée : le nœud Image générée contient le binaire de l'image redimensionnée.
    • Invite : l'invite de saisie. Dans cet exemple, il s'agit de a cat.
  6. Vous pouvez utiliser un décodeur en base 64 pour convertir la sortie en image. Dans cet exemple, chaque nœud du fichier JSON est lu et la valeur du nœud Image générée : est transmise au décodeur pour générer l'image redimensionnée.