Attivazione della memorizzazione nella cache delle fasi - Amazon SageMaker AI

Attivazione della memorizzazione nella cache delle fasi

Per attivare il caching delle fasi, devi aggiungere una proprietà CacheConfig alla definizione della fase. Le proprietà CacheConfig utilizzano il seguente formato nel file di definizione della pipeline:

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

Il campo Enabled indica se la memorizzazione nella cache è attivata per la fase specifica. Puoi impostare il campo su true, che indica a SageMaker AI di provare a trovare un’esecuzione precedente della fase con gli stessi attributi. In alternativa, puoi impostare il campo su false, che indica a SageMaker AI di eseguire la fase ogni volta che viene eseguita la pipeline. ExpireAfter è una stringa nel formato di durata ISO 8601 che definisce il periodo di timeout. La durata ExpireAfter può essere un valore espresso in anni, mesi, settimane, giorni, ore o minuti. Ogni valore è costituito da un numero seguito da una lettera che indica l'unità di durata. Per esempio:

  • "30d" = 30 giorni

  • "5y" = 5 anni

  • "T16m" = 16 minuti

  • "30DT5h" = 30 giorni e 5 ore.

La discussione seguente descrive la procedura per attivare la memorizzazione nella cache per pipeline nuove o preesistenti utilizzando Amazon SageMaker Python SDK.

Attivazione della memorizzazione nella cache per nuove pipeline

Per le nuove pipeline, inizializza un'istanza CacheConfig con enable_caching=True e forniscila come input per la fase della pipeline. L'esempio seguente attiva la memorizzazione nella cache con un periodo di timeout di 1 ora per una fase di addestramento:

from sagemaker.workflow.pipeline_context import PipelineSession from sagemaker.workflow.steps import CacheConfig cache_config = CacheConfig(enable_caching=True, expire_after="PT1H") estimator = Estimator(..., sagemaker_session=PipelineSession()) step_train = TrainingStep( name="TrainAbaloneModel", step_args=estimator.fit(inputs=inputs), cache_config=cache_config )

Attivazione della memorizzazione nella cache per pipeline preesistenti

Per attivare la memorizzazione nella cache per pipeline preesistenti e già definite, attiva la proprietà enable_caching per la fase e imposta un valore di timeout per expire_after. Infine, aggiorna la pipeline con pipeline.upsert() o pipeline.update(). Una volta eseguito di nuovo, il seguente esempio di codice attiva la memorizzazione nella cache con un periodo di timeout di 1 ora per una fase di addestramento:

from sagemaker.workflow.pipeline_context import PipelineSession from sagemaker.workflow.steps import CacheConfig from sagemaker.workflow.pipeline import Pipeline cache_config = CacheConfig(enable_caching=True, expire_after="PT1H") estimator = Estimator(..., sagemaker_session=PipelineSession()) step_train = TrainingStep( name="TrainAbaloneModel", step_args=estimator.fit(inputs=inputs), cache_config=cache_config ) # define pipeline pipeline = Pipeline( steps=[step_train] ) # additional step for existing pipelines pipeline.update() # or, call upsert() to update the pipeline # pipeline.upsert()

In alternativa, aggiorna la configurazione della cache dopo aver già definito la pipeline (preesistente), consentendo l'esecuzione continua del codice. Il seguente esempio di codice illustra questo metodo:

# turn on caching with timeout period of one hour pipeline.steps[0].cache_config.enable_caching = True pipeline.steps[0].cache_config.expire_after = "PT1H" # additional step for existing pipelines pipeline.update() # or, call upsert() to update the pipeline # pipeline.upsert()

Per esempi di codice più dettagliati e una discussione su come i parametri di Python SDK influiscono sulla memorizzazione nella cache, consulta Configurazione della memorizzazione nella cache nella documentazione di Amazon SageMaker Python SDK.