Google Colab会话过期后无法从Checkpoint恢复模型训练的解决方法
解决Colab会话过期导致微调训练无法恢复的问题
一、核心解决:把Checkpoint存到持久化存储
Colab的本地临时存储会在会话过期后清空,所以关键是把训练checkpoint存到Google云端硬盘,步骤如下:
- 先挂载你的Google Drive到Colab环境:
from google.colab import drive drive.mount('/content/drive')
- 修改
TrainingArguments(即你的args),指定checkpoint保存路径到Drive内的目录:
from transformers import TrainingArguments args = TrainingArguments( output_dir='/content/drive/MyDrive/your_model_checkpoints', # 替换为你Drive里的目标路径 per_device_train_batch_size=8, gradient_accumulation_steps=2, learning_rate=2e-5, num_train_epochs=3, logging_dir='/content/drive/MyDrive/your_model_checkpoints/logs', save_strategy='epoch', # 按epoch保存,也可选择按steps保存 save_total_limit=3, # 只保留最近3个checkpoint,避免占用过多空间 # 其他原有参数... )
训练时生成的checkpoint会直接存在Drive里,即便会话过期,下次重新挂载Drive就能找到,执行trainer.train("/content/drive/MyDrive/your_model_checkpoints/checkpoint-5500")即可恢复训练。
二、延长Colab会话时长的技巧
1. 免费用户可用技巧
- 保持Colab标签页活跃:不要最小化标签页,浏览器会给活跃标签分配更多资源,降低自动断开概率。
- 用脚本阻止页面休眠:打开浏览器控制台(按F12),输入以下代码,让页面每分钟自动触发一次交互,避免被判定为闲置:
function keepAlive() { console.log("保持会话活跃..."); document.querySelector("colab-connect-button").click(); } setInterval(keepAlive, 60000);
注意:免费版Colab会话最长约12小时,即便保持活跃也可能被强制断开。
2. 付费版(Colab Pro/Pro+)
- 会话时长最高可达24小时,资源优先级更高,不易被强制回收。
- 支持使用更高配置的GPU(如A100),大幅缩短训练时间,从根源减少会话过期的问题。
三、恢复训练的正确步骤
重新打开Colab后:
- 重新挂载Drive,加载预处理好的数据集(也可直接从Drive加载预处理后的数据集,避免重复操作)。
- 重新初始化模型、tokenizer、data_collator、compute_metrics等组件。
- 初始化
Seq2SeqTrainer时,确保args的output_dir仍指向Drive里的checkpoint目录。 - 执行恢复命令:
trainer.train(resume_from_checkpoint="/content/drive/MyDrive/your_model_checkpoints/checkpoint-5500")
内容的提问来源于stack exchange,提问作者Seungjun
相关产品推荐
相关产品推荐

