簡體   English   中英

在 Sagemaker 和 Huggingface 中訓練一個已經訓練過的 model 而無需重新初始化

[英]Train an already trained model in Sagemaker and Huggingface without re-initialising

假設我已經在一些訓練數據上成功地訓練了 model 10 個時期。 我怎樣才能訪問完全相同的 model 並再訓練 10 個時期?

在文檔中它建議“你需要通過超參數指定一個檢查點 output 路徑”——> 怎么樣?

# define my estimator the standard way
huggingface_estimator = HuggingFace(
    entry_point='train.py',
    source_dir='./scripts',
    instance_type='ml.p3.2xlarge',
    instance_count=1,
    role=role,
    transformers_version='4.10',
    pytorch_version='1.9',
    py_version='py38',
    hyperparameters = hyperparameters,
    metric_definitions=metric_definitions
)

# train the model
huggingface_estimator.fit(
    {'train': training_input_path, 'test': test_input_path}
)

如果我再次運行huggingface_estimator.fit ,它將重新開始整個過程並覆蓋我之前的訓練。

您可以在Spot Instances - Amazon SageMaker x Hugging Face Transformers中找到相關的檢查點保存/加載代碼。
(該示例啟用 Spot 實例,但您可以使用按需實例)。

  1. 在您設置的超參數中: 'output_dir':'/opt/ml/checkpoints'
  2. 您在 Estimator 中定義一個checkpoint_s3_uri (對於您將運行的一系列作業而言是唯一的)。
  3. 您為 train.py 添加代碼以支持檢查點:
 from transformers.trainer_utils import get_last_checkpoint # check if checkpoint existing if so continue training if get_last_checkpoint(args.output_dir) is not None: logger.info("***** continue training *****") last_checkpoint = get_last_checkpoint(args.output_dir) trainer.train(resume_from_checkpoint=last_checkpoint) else: trainer.train()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM