Mise en cache des étapes du pipeline - Amazon SageMaker

Mise en cache des étapes du pipeline

Lorsque vous utilisez la mise en cache de signature d'étape, avant que SageMaker Pipelines n'exécute une étape, il tente de trouver une exécution précédente d'une étape appelée avec les mêmes arguments. SageMaker Pipelines vérifie que les signatures d'appel sont identiques. Pipelines ne vérifie pas si les données ou le code pointés par les arguments ont changé. Si une exécution précédente est trouvée, un accès au cache est créé. Pipelines propage ensuite les valeurs à partir de l'accès au cache lors de l'exécution, plutôt que de recalculer l'étape.

La mise en cache des étapes ne prend en compte que les exécutions réussies, de sorte qu'aucune exécution échouée n'est jamais réutilisée. Lorsqu'il existe plusieurs exécutions réussies au cours de la période d'expiration, Pipelines utilise le résultat pour l'exécution réussie la plus récente. Si aucune exécution réussie ne correspond au cours de la période d'expiration, Pipelines ne réutilisera aucune étape. Si l'exécuteur trouve un accès au cache pour l'exécution d'une étape précédente qui est toujours en cours, les deux étapes poursuivent leur exécution et mettent à jour le cache, si elles réussissent.

Vous devez vous inscrire à la mise en cache d'étape, sinon elle est désactivée par défaut. Lorsque vous activez la mise en cache d'étape, vous devez également définir un délai d'expiration. Ce délai définit la période au cours de laquelle une exécution précédente peut être considérée comme réutilisable.

La mise en cache d'étape n'est limitée que pour les pipelines individuels, de sorte que vous ne pouvez pas réutiliser une étape d'un autre pipeline. Même s'il y a une correspondance de signature d'étape dans l'autre pipeline, l'étape n'est pas réutilisée.

La mise en cache d'étape est disponible pour les types d'étape suivants :

  • Entrainement

  • En cours

  • Transformation

Activation de la mise en cache d'étape

Pour activer la mise en cache d'étape, vous devez ajouter une propriété CacheConfig à la définition de l'étape.

CacheConfigLes propriétés utilisent le format suivant dans le fichier de définition de pipeline.

{     "CacheConfig": {         "Enabled": false,         "ExpireAfter": "<time>"     } }

Le champ Enabled peut avoir la valeur true ou false. ExpireAfter est une chaîne qui définit le délai d'expiration. Toute chaîne de durée ISO 8601 est une valeur ExpireAfter valide. La durée ExpireAfter peut contenir une valeur d'une année, un mois, une semaine, un jour, une heure et une minute. Chaque valeur est constituée d'un nombre suivi d'une lettre indiquant l'unité de durée pour laquelle elle est utilisée. Par exemple :

  • « 30d » = Trente jours

  • « 5y » = Cinq ans

  • « T16m » = 16 minutes

  • « 30dT5h » = 30 jours et cinq heures.

L'exemple suivant montre comment activer la mise en cache pour une étape d'entraînement à l'aide du kit SDK Amazon SageMaker Python.

cache_config = CacheConfig(enable_caching=True, expire_after="PT1H") step_train = TrainingStep( name="TrainAbaloneModel", estimator=xgb_train, inputs=inputs, cache_config=cache_config )