Ajustez les modèles avec les composants d'inférence des adaptateurs - 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.

Ajustez les modèles avec les composants d'inférence des adaptateurs

Avec Amazon SageMaker AI, vous pouvez héberger des modèles de base préentraînés sans avoir à créer vos propres modèles à partir de zéro. Toutefois, pour adapter un modèle de base à usage général aux besoins uniques de votre entreprise, vous devez en créer une version affinée. L'adaptation Low-Rank (Low-Rank Adaptation, LoRa) est une technique de réglage fin peu coûteuse. Le principe qui sous-tend LoRa est que seule une petite partie d'un grand modèle de fondation doit être mise à jour pour l'adapter à de nouvelles tâches ou à de nouveaux domaines. Un adaptateur LoRa augmente l'inférence à partir d'un modèle de base avec seulement quelques couches d'adaptateur supplémentaires.

Si vous hébergez votre modèle de base à l'aide d'un composant d'inférence SageMaker AI, vous pouvez affiner ce modèle de base à l'aide d'adaptateurs LoRa en créant des composants d'inférence d'adaptateurs. Lorsque vous créez un composant d'inférence d'adaptateur, vous spécifiez les éléments suivants :

  • Le composant d'inférence de base qui doit contenir le composant d'inférence de l'adaptateur. Le composant d'inférence de base contient le modèle de base que vous souhaitez adapter. Le composant d'inférence d'adaptateur utilise les ressources de calcul que vous avez attribuées au composant d'inférence de base.

  • L'emplacement où vous avez stocké l'adaptateur LoRa dans Amazon S3.

Après avoir créé le composant d'inférence d'adaptateur, vous pouvez l'invoquer directement. Lorsque vous le faites, l' SageMaker IA combine l'adaptateur avec le modèle de base pour augmenter la réponse générée.

Avant de commencer

Avant de créer un composant d'inférence d'adaptateur, vous devez satisfaire aux exigences suivantes :

  • Vous disposez d'un composant d'inférence de base qui contient le modèle de base à adapter. Vous avez déployé ce composant d'inférence sur un point de terminaison d' SageMaker IA.

    Pour plus d'informations sur le déploiement de composants d'inférence sur des points de terminaison, consultez. Déployez des modèles pour une inférence en temps réel

  • Vous avez un modèle d'adaptateur LoRa et vous avez stocké les artefacts du modèle sous forme de tar.gz fichier dans Amazon S3. Vous spécifiez le S3 URI des artefacts lorsque vous créez le composant d'inférence de l'adaptateur.

Les exemples suivants utilisent SDK for Python (Boto3) pour créer et invoquer un composant d'inférence d'adaptateur.

Exemple create_inference_componentappel pour créer un composant d'inférence d'adaptateur

L'exemple suivant crée un composant d'inférence d'adaptateur et l'affecte à un composant d'inférence de base :

sm_client.create_inference_component( InferenceComponentName = adapter_ic_name, EndpointName = endpoint_name, Specification={ "BaseInferenceComponentName": base_inference_component_name, "Container": { "ArtifactUrl": adapter_s3_uri }, }, )

Lorsque vous utilisez cet exemple dans votre propre code, remplacez les valeurs d'espace réservé comme suit :

  • adapter_ic_name— Nom unique pour le composant d'inférence de votre adaptateur.

  • endpoint_name— Le nom du point de terminaison qui héberge le composant d'inférence de base.

  • base_inference_component_name— Nom du composant d'inférence de base qui contient le modèle de base à adapter.

  • adapter_s3_uri— Le S3 URI qui localise le tar.gz fichier contenant les artefacts de votre adaptateur LoRa.

Vous créez un composant d'inférence d'adaptateur avec un code similaire au code d'un composant d'inférence normal. L'une des différences est que, pour le Specification paramètre, vous omettez la ComputeResourceRequirements clé. Lorsque vous appelez un composant d'inférence d'adaptateur, il est chargé par le composant d'inférence de base. Le composant d'inférence d'adaptateur utilise les ressources de calcul du composant d'inférence de base.

Pour plus d'informations sur la création et le déploiement de composants d'inférence avec le SDK pour Python (Boto3), consultez. Déployez des modèles avec Python SDKs

Après avoir créé un composant d'inférence d'adaptateur, vous l'invoquez en spécifiant son nom dans une invoke_endpoint demande.

Exemple invoke_endpointappel pour invoquer un composant d'inférence d'adaptateur

L'exemple suivant invoque un composant d'inférence d'adaptateur :

response = sm_rt_client.invoke_endpoint( EndpointName = endpoint_name, InferenceComponentName = adapter_ic_name, Body = json.dumps( { "inputs": prompt, "parameters": {"max_new_tokens": 100, "temperature":0.9} } ), ContentType = "application/json", ) adapter_reponse = response["Body"].read().decode("utf8")["generated_text"]

Lorsque vous utilisez cet exemple dans votre propre code, remplacez les valeurs d'espace réservé comme suit :

  • endpoint_name— Nom du point de terminaison qui héberge les composants d'inférence de base et d'adaptateur.

  • adapter_ic_name— Nom du composant d'inférence de l'adaptateur.

  • prompt— L'invite à envoyer la demande d'inférence.

Pour plus d'informations sur l'invocation de composants d'inférence avec for SDK Python (Boto3), consultez. Invoquez des modèles pour une inférence en temps réel