如何防止 Google Colab 在训练期间断开连接 2025
完整指南教你防止 AI 训练期间 Google Colab 断开连接。JavaScript 保活脚本、检查点策略、Colab Pro 对比以及可靠的工作流程。
当你的 LoRA 训练进行到第 3 小时时,Google Colab 突然断开连接。数小时的 GPU 计算瞬间消失。你的训练进度在没有保存检查点的情况下化为乌有。Google Colab 的 90 分钟空闲超时和 12 小时最大运行时间会造成持续的断开连接焦虑。结合 JavaScript 保活技术和稳健的检查点策略,可以在 Colab 的免费和 Pro 版本上实现可靠的长时间训练。
快速回答: 通过浏览器控制台 JavaScript 绕过 90 分钟空闲超时来防止 Google Colab 断开连接,每 15-30 分钟实施模型检查点以保存训练进度,升级到 Colab Pro 获得 24 小时运行时间,并将训练会话构建为可恢复的片段,自动保存状态并从中断处继续。
- 空闲超时解决方案: JavaScript 控制台脚本模拟活动,防止 90 分钟断开连接
- 进度保护: 每 15-30 分钟向 Google Drive 保存检查点,保存训练状态
- Colab Pro 优势: 24 小时运行时间(相比免费版 12 小时)、更好的 GPU 可用性、更长的空闲超时
- 最佳实践: 结合保活脚本和检查点以获得最大可靠性
- 替代方案: 将训练拆分为多个较短的会话,从检查点自动恢复
你在晚上 10 点开始训练,期待醒来时看到完成的 LoRA 模型。相反,你发现"运行时已断开连接",零进度被保存。当你意识到这种情况反复发生,浪费免费 GPU 时间并阻碍训练项目完成时,挫败感会加剧。你需要在 2025 年真正有效的可靠方法,而不是被 Colab 界面更改破坏的过时脚本。
Google Colab 提供了宝贵的免费 GPU 访问,但其断开连接策略为严肃的 AI 训练项目带来了挑战。了解断开连接机制和经过验证的缓解策略,可以将 Colab 从不可靠的实验平台转变为可行的训练环境。虽然像 Apatero.com 这样的专用解决方案通过稳定的基础设施完全消除了断开连接的担忧,但掌握 Colab 技术可以实现预算友好的训练,并通常理解云训练工作流程。
- 了解 Google Colab 的断开连接机制和超时策略
- 实施 2025 年有效的 JavaScript 保活脚本
- 构建保存训练状态的稳健检查点系统
- 比较 Colab 免费版 vs Pro vs Pro+ 的训练可靠性
- 构建在断开连接后继续运行的可恢复训练工作流程
- 排除常见的保活脚本故障和 CAPTCHA 问题
- 优化 Google Drive 集成以快速保存检查点
- 监控会话健康状况并在断开连接发生之前预测
为什么 Google Colab 会在训练期间断开连接?
在实施解决方案之前,了解 Colab 的断开连接机制有助于你选择适当的对策并设定现实的期望。
Colab 断开连接的两种类型
Google Colab 强制执行两种不同的超时策略,这些策略对训练会话的影响不同。根据官方 Colab 文档,这些限制的存在是为了确保所有用户之间的公平资源分配。
空闲超时(90 分钟):
当大约 90 分钟内没有用户交互时,空闲超时就会触发。用户交互意味着单击按钮、运行单元格或将鼠标移动到笔记本界面上。你的训练脚本可以持续运行处理数据,但如果没有用户交互,你的笔记本仍会在 90 分钟后断开连接。
这个超时的存在是因为空闲会话会消耗其他用户可以利用的 GPU 资源。一个打开但不活动的笔记本会浪费昂贵的计算容量。90 分钟的窗口为主动开发工作提供了充足的时间,同时防止无限期的资源占用。
最大运行时间限制:
Colab 免费版实施 12 小时的绝对运行时间限制。连续 12 小时后,无论活动或训练状态如何,会话都会终止。Colab Pro 将此时间延长至 24 小时。Colab Pro+ 为某些 GPU 类型提供最多 36 小时。
这个硬性限制防止个别用户无限期地垄断计算资源。它也反映了商业模式,即延长的运行时间鼓励 Pro 订阅。
| Colab 等级 | 空闲超时 | 最大运行时间 | GPU 优先级 | 费用 |
|---|---|---|---|---|
| 免费 | ~90 分钟 | 12 小时 | 低 | $0/月 |
| Pro | ~90 分钟 | 24 小时 | 高 | $10/月 |
| Pro+ | ~90 分钟 | 36 小时 | 最高 | $50/月 |
了解这些限制有助于设定现实的训练会话长度和检查点频率。
什么会触发空闲检测?
Colab 的空闲检测监控用户与笔记本界面的交互,而不是代码执行。即使你的 GPU 以 100% 利用率运行,如果你最近没有在浏览器窗口中单击任何内容,也无法防止空闲超时。
监控的活动:
系统跟踪鼠标在笔记本上的移动、对单元格或按钮的点击、单元格或界面元素中的键盘输入,以及用户手动启动的单元格执行。代码中的自动单元格执行不计为用户交互。
不监控的活动:
训练脚本输出打印到单元格不会注册为活动。GPU 利用率百分比不影响空闲检测。你的代码向外部服务发出的网络请求不计数。在运行单元格内自动更新的进度条不提供保护。
这种区别至关重要,因为这意味着即使需要数小时的繁重计算训练,如果你不手动与界面交互,也会显示为空闲。
关于 Colab 断开连接的常见误解
几个广泛的误解导致了对为什么会发生断开连接以及如何防止断开连接的混淆。
误解 1:活动的代码执行可以防止断开连接
许多用户认为正在运行的代码可以防止空闲超时。这是错误的。根据2024-2025 年的 Stack Overflow 讨论,运行 6 小时的训练脚本在没有用户交互的情况下仍会在 90 分钟时触发空闲超时。
误解 2:Colab Pro 消除断开连接
Colab Pro 延长了最大运行时间并提高了 GPU 可用性,但保持 90 分钟的空闲超时。Pro 订阅者仍然需要保活解决方案,以便超过 90 分钟的训练会话而无需手动交互。
误解 3:打印输出可以防止空闲检测
通过打印语句或进度条生成控制台输出不会注册为用户活动。无论输出生成如何,空闲计时器都会继续倒计时。
误解 4:打开多个标签共享超时
每个 Colab 笔记本标签都有独立的空闲超时。与一个笔记本交互不会重置其他打开笔记本的空闲计时器。每个都需要单独关注以防止断开连接。
JavaScript 保活脚本如何工作?
在浏览器控制台中执行的 JavaScript 可以模拟用户交互,防止空闲超时检测。这代表了在训练期间保持 Colab 会话活动的最常见方法。
了解浏览器控制台 JavaScript 执行
现代浏览器允许在开发者控制台中运行 JavaScript 代码。此代码在当前网页的上下文中执行,并可以像手动用户操作一样与页面元素交互。
Colab 的笔记本界面在你的浏览器中作为 JavaScript 应用程序运行。浏览器控制台 JavaScript 可以触发与手动点击相同的界面交互,有效地模拟重置空闲计时器的用户活动。
为什么这种方法有效:
从 Colab 的角度来看,JavaScript 触发的交互与手动交互无法区分。系统在浏览器事件级别跟踪鼠标事件、点击和键盘输入。JavaScript 生成的这些事件看起来与人类生成的事件相同。
这种技术完全在你的浏览器中的客户端工作。在 Google 服务器上运行的训练代码保持不变。保活逻辑在你的浏览器中单独存在,维护连接。
实施基本保活脚本
在查看 Colab 笔记本时打开浏览器的开发者控制台。在 Windows 和 Linux 上按 F12 或在 Mac 上按 Cmd+Option+I。或者,在 Colab 页面的任何位置右键单击并选择"检查",然后单击"控制台"选项卡。
当前有效的脚本(2025):
创建一个名为 KeepClicking 的函数,将消息记录到控制台并使用 document.querySelector 查找 colab-connect-button 元素。通过 shadowRoot 导航以访问连接按钮的 ID 并在其上触发点击事件。将此函数包装在 setInterval 中,延迟 60000 毫秒,使其每 60 秒重复一次。将此代码粘贴到控制台并按 Enter 键开始执行。
只要浏览器标签保持打开且控制台保持活动状态,脚本就会持续运行。关闭控制台或浏览器标签会停止执行,空闲超时会恢复正常计数。
脚本的功能:
querySelector 在页面中查找 Colab 连接按钮元素。shadowRoot.getElementById 通过 shadow DOM 导航,其中 Colab 的自定义元素隐藏在那里。click() 方法在按钮上触发点击事件。setInterval 无限期地每 60 秒重复此操作。
根据Colab 保活实现的研究,每 60 秒点击一次提供足够的活动,而不会用过多的请求压倒 Colab 的系统。
替代保活脚本方法
不同的 JavaScript 方法在可靠性和复杂性方面提供了变化。某些方法对 Colab 界面更改更具弹性。
鼠标移动模拟:
创建一个名为 simulateMouseActivity 的函数,创建一个类型为 mousemove 的新 MouseEvent。配置事件,将 view 设置为 window,bubbles 设置为 true,cancelable 设置为 true。将此事件分派到文档并记录确认模拟的消息。将其包装在 setInterval 中,间隔为 60000 毫秒。此脚本模拟鼠标移动事件。它对界面更改更具弹性,因为它不依赖于特定的按钮选择器。但是,最近的 Colab 更新有时会忽略模拟的鼠标移动,使其不如按钮点击可靠。
键盘活动模拟:
创建一个名为 simulateKeyPress 的函数,生成类型为 keydown 的新 KeyboardEvent,键属性设置为 Shift。将此事件分派到文档并记录确认消息。使用 setInterval 每 60000 毫秒重复一次。模拟 Shift 键按下提供另一个活动信号。此方法避免点击按钮或移动鼠标,但 Colab 的空闲检测可能不如鼠标交互那样可靠地注册键盘事件。
组合方法:
创建一个 keepAlive 函数,首先记录保活 ping 消息。在 try-catch 块中,尝试使用 querySelector 查找 colab-connect-button,访问其 shadowRoot,通过 ID 获取 connect 元素,并触发点击。如果失败并抛出错误,catch 块会记录失败消息并分派类型为 mousemove 的 MouseEvent 作为后备。使用 setInterval 将此函数设置为每 60000 毫秒运行一次。此组合脚本尝试按钮点击,如果按钮选择器失败,则回退到鼠标移动。try-catch 错误处理使脚本对 Colab 界面更改更具鲁棒性。
排除保活脚本故障
由于 Colab 界面更新、浏览器安全更改或 CAPTCHA 挑战,保活脚本偶尔会失败。系统排除故障可识别并解决问题。
脚本未运行:
如果将脚本粘贴到控制台中没有产生输出或错误,请验证你在正确的控制台选项卡中。某些浏览器具有多个控制台上下文。确保你在主页面控制台中,而不是 iframe 或扩展控制台。
检查以红色文本显示的 JavaScript 错误。语法错误会阻止脚本执行。仔细复制脚本,不要添加额外的字符或遗漏代码段。
找不到按钮选择器:
如果控制台显示"Cannot read property of null"错误,则按钮选择器失败。Colab 界面更新会更改元素 ID 和类名,破坏脚本。
使用浏览器开发者工具检查连接按钮元素。右键单击连接按钮,选择"检查",并检查元素结构。更新 querySelector 路径以匹配当前元素层次结构。
根据最近的 Colab 界面分析,Google 定期更新 Colab 的 UI,需要调整脚本。加入 Colab 用户社区,在界面更改破坏现有解决方案时查找更新的脚本。
CAPTCHA 挑战:
即使运行保活脚本,Google 偶尔也会显示 CAPTCHA 挑战。系统检测到可疑模式并需要人工验证。
CAPTCHA 是自动脚本无法解决的手动干预。你必须亲自完成 CAPTCHA 才能继续会话。保活脚本无法绕过此安全措施。
为了最大限度地减少 CAPTCHA 频率,避免运行过多的脚本,使用适度的保活间隔(60-90 秒而不是每 5 秒),并且不要同时运行多个带有保活脚本的 Colab 会话。负责任的脚本使用会减少安全标志触发。
什么是稳健检查点,为什么它很重要?
保活脚本可以缓解空闲超时,但不能防止硬运行时间限制或意外崩溃。检查点提供了基本的安全网,无论断开连接原因如何,都能保存训练进度。
了解训练检查点
检查点是训练状态的完整快照,可以从特定点恢复。根据机器学习最佳实践,稳健的检查点比保活脚本对于生产训练工作流程更重要。
检查点包括什么:
完整的检查点保存模型权重(当前神经网络参数)、优化器状态(Adam、SGD 动量和学习率值)、训练步骤计数器(当前 epoch 和批次编号)、随机数生成器状态(确保可重现的延续)以及训练损失历史(能够跨断开连接监控)。
仅保存模型权重的部分检查点无法完全恢复训练。优化器状态至关重要,因为像 Adam 这样的优化器维护影响学习轨迹的动量。在没有优化器状态的情况下恢复会继续训练,但会失去优化动量。
检查点频率权衡:
更频繁的检查点提供更好的进度保护,但会消耗更多时间和存储空间。每个 epoch 检查点适用于具有少量 epoch 的慢速训练。每 100-200 步检查点适用于具有数千步的快速训练。
根据实际测试,每 15-30 分钟检查点为 Colab 训练提供最佳平衡。这可以防止空闲超时(90 分钟),同时将检查点开销限制在训练时间的 5-10%。
在 Colab 中实施 PyTorch 检查点
PyTorch 通过 torch.save() 和 torch.load() 函数提供简单的检查点。实施稳健的检查点需要仔细的状态管理和错误处理。
基本 PyTorch 检查点保存:
在训练循环期间保存检查点:
在每个 epoch 或每 N 步之后,创建包含所有状态的检查点字典,保存到 Google Drive 以便在会话之间持久化,并优雅地处理潜在的 I/O 错误。
检查点字典应包括:
model.state_dict() 用于模型参数,optimizer.state_dict() 用于优化器状态,epoch 编号,训练损失历史以及任何自定义训练变量。
用于恢复的检查点加载:
在训练开始时,检查检查点是否存在。如果找到,则加载检查点,提取并恢复所有保存的状态,并从保存的点继续训练。
处理不存在检查点的情况(首次训练运行)与可用检查点(恢复训练)的情况。代码应该在两种情况下都正常工作,无需手动干预。
Google Drive 集成:
挂载 Google Drive 以在会话生命周期之外保留检查点。如果不挂载 Drive,检查点会保存到临时会话存储,该存储会随着断开连接而消失。
在训练开始之前尽早挂载 Drive。所有检查点路径都应写入 /content/drive/MyDrive/checkpoints/ 或类似的 Drive 位置。
实施 TensorFlow/Keras 检查点
TensorFlow 和 Keras 提供 ModelCheckpoint 回调,用于在训练期间自动检查点。这个高级界面简化了检查点管理。
Keras ModelCheckpoint 设置:
创建 ModelCheckpoint 回调,指定检查点文件路径、监控指标(验证损失或训练损失)、仅保存最佳或保存所有 epoch,以及保存频率(每个 epoch 或每 N 个批次)。
将检查点回调传递给 model.fit(),它会在训练期间自动处理检查点保存。
自定义 TensorFlow 检查点:
对于自定义训练循环,使用 tf.train.Checkpoint() 和 CheckpointManager 以获得更多控制。这种方法可以检查点自定义训练变量,超出标准模型权重和优化器状态。
CheckpointManager 处理检查点轮换,仅保留最近的 N 个检查点。这可以防止无限制的检查点累积消耗过多的 Drive 存储空间。
优化检查点保存速度
检查点保存速度很重要,因为缓慢的 I/O 会造成训练瓶颈。每 15 分钟保存 5GB 检查点需要 3 分钟才能写入,浪费了 20% 的训练时间。
检查点大小优化:
仅保存基本状态而不是冗余信息。不要在检查点中保存训练数据或验证数据(从源重新加载)。不要在检查点中保存生成的样本或可视化图像。仅保存模型参数、优化器状态和最少的训练元数据。
使用高效的序列化格式。PyTorch 的 torch.save() 默认使用 pickle,这是相当高效的。对于极大的模型,考虑 safetensors 格式,它提供更快的加载和更好的安全属性。
并行检查点保存:
在后台线程中保存检查点,允许训练立即继续。Python 的线程模块支持并行 I/O 操作。
小心线程安全。检查点字典应该在后台保存开始之前在主线程中创建。在后台保存操作时不要修改状态字典。
Google Drive 写入性能:
从 Colab 到 Google Drive 的写入速度根据当前负载从 10-50 MB/s 不等。大型检查点自然需要更长时间。
监控实际的检查点保存时间并相应地调整频率。如果 15 分钟检查点需要 5 分钟才能保存,则将频率减少到 30 分钟间隔或优化检查点大小。
Colab Pro 在训练可靠性方面如何比较?
Colab Pro 和 Pro+ 订阅提供影响训练可靠性的改进。了解你得到什么有助于评估订阅是否值得你的项目。
Colab Pro 功能和优势
根据官方 Colab 定价,Colab Pro 每月花费 10 美元,并提供免费版本的几项改进。
延长的运行时间限制:
Pro 提供 24 小时最大运行时间,而免费版为 12 小时。这使可用训练时间翻倍,然后才会被强制断开连接。对于需要 15-20 小时训练的项目,Pro 变得必不可少而不是可选。
请注意,Pro 仍然强制执行 90 分钟的空闲超时。对于超过 90 分钟的无人值守训练会话,保活脚本仍然是必要的。
更好的 GPU 可用性:
Pro 用户获得优先 GPU 访问。在免费版用户无法访问 GPU 的高峰使用期间,Pro 订阅者通常会立即获得 GPU 分配。这消除了等待,并在需要时而不是恰好可用容量时启动训练。
Pro 提供对更好 GPU 类型的访问。虽然免费版用户通常获得 T4 GPU,但 Pro 用户可以访问 V100 或 A100 GPU,提供 2-4 倍的训练速度改进。更快的训练意味着在运行时间限制内完成变得更加可行。
增加的资源限制:
Pro 提供更多 RAM(最多 52GB vs 免费版 13GB)和更多磁盘空间(最多 225GB vs 免费版 78GB)。对于使用大型数据集或模型的训练,这些增加的限制可以防止困扰免费版用户的内存不足错误。
Colab Pro 值得吗?:
对于休闲实验和学习,免费版就足够了。对于需要定期训练会话的严肃项目,Pro 提供了宝贵的可靠性改进,证明每月 10 美元的费用是合理的。考虑到由于断开连接而浪费的单个训练会话代表数小时的损失时间,对大多数专业人士来说远远超过 10 美元的价值。
Colab Pro+ 功能和优势
Colab Pro+ 每月花费 50 美元,针对需要最大资源的专业用户。根据实际用户报告,价值主张不如常规 Pro 明确。
延长运行时间至 36 小时:
Pro+ 理论上为某些 GPU 类型提供 36 小时运行时间。但是,用户报告执行不一致,许多会话仍在 24 小时断开连接。36 小时限制似乎仅在特定条件下适用,这些条件并不总是清楚地传达。
加入其他115名学员
51节课创建超逼真AI网红
创建具有逼真皮肤细节、专业自拍和复杂场景的超逼真AI网红。一个套餐获得两门完整课程。ComfyUI Foundation掌握技术,Fanvue Creator Academy学习如何将自己营销为AI创作者。
更好的 GPU 选项:
Pro+ 提供对高级 GPU 的访问,包括 A100 和 V100 32GB 模型的可能性。这些 GPU 明显优于 T4 和标准 V100 选项。对于许多工作负载,A100 的训练速度大约是 T4 的 4 倍。
后台执行:
Pro+ 承诺后台执行,允许在训练继续时关闭浏览器标签。但是,实施不稳定,用户报告结果好坏参半。此功能目前不够可靠,无法依赖。
Pro+ 值得吗?:
对于大多数用户来说,与 10 美元的 Pro 相比,Pro+ 不提供 50 美元的价值。主要好处是 A100 GPU 访问。如果你的训练工作负载可以利用 A100 性能,Pro+ 就值得。对于在 V100 上运行良好的训练,常规 Pro 提供更好的价值。
许多用户发现,对于证明 Pro+ 成本合理的项目,专用 GPU 云提供商(如 Vast.ai 或 RunPod)具有更好的价值。这些替代方案以可比或更低的价格提供更可预测的访问和性能。像 Apatero.com 这样的平台提供了另一种选择,具有托管基础设施,完全消除了断开连接的担忧。
比较特定训练项目的 Colab 等级
不同的训练项目类型从 Colab 等级功能中受益不同。将你的等级选择与项目要求相匹配。
短训练(6 小时以下):
免费版通过保活脚本和检查点可以很好地处理短训练。12 小时的限制提供了充足的余地。GPU 可用性可能会在高峰时段令人沮丧,但耐心通常会获得访问。
中等训练(6-20 小时):
Colab Pro 在此范围内变得有价值。免费版的 12 小时限制会缩短训练时间,需要重新启动和继续。Pro 的 24 小时限制允许单会话完成,并为意外减速提供余地。
通过 Pro 更好的 GPU 访问显著减少了等待计算可用性的挫败感。优先访问意味着在准备好时开始训练,而不是反复检查希望有容量。
长训练(20+ 小时):
即使使用 Pro,需要超过 24 小时的项目也面临挑战。Pro+ 理论上有帮助,但不可靠的 36 小时限制使规划变得困难。
考虑将训练重组为多个可恢复的片段。训练 20 小时,保存最终检查点,开始新会话,加载检查点,再继续 20 小时。这种方法适用于任何 Colab 等级,但需要适当的检查点实施。
或者,对于非常长的训练作业,使用专用 GPU 云提供商。Colab 最适合在 12-24 小时窗口内完成的训练,并具有适当的检查点。
如何构建可恢复的训练工作流程?
适当的工作流程结构将训练从脆弱的单会话作业转变为在任何断开连接后继续运行的稳健多会话项目。
设计自动恢复训练脚本
自动恢复功能使训练能够在断开连接后自动继续,无需手动干预。这为 Colab 训练提供了最终的可靠性。
核心自动恢复组件:
在训练开始时检查现有检查点。如果检查点存在,则加载完整的训练状态并从上次保存的点继续。如果不存在检查点,则从头开始初始化新训练。每次笔记本执行时,此逻辑都会自动运行。
实施模式:
构建训练初始化代码以遵循此模式。在 Google Drive 中定义检查点路径,尝试使用错误处理加载检查点,如果成功则提取加载的状态,如果找不到检查点则初始化新训练,并从正确的位置开始训练循环。
这种结构意味着你可以随时重新启动笔记本,训练会自动从上次检查点继续。断开连接成为不便而不是灾难。
跨多个会话管理训练
跨越多个 Colab 会话的长训练项目需要仔细的状态管理和日志记录以保持连续性。
持久训练日志:
将训练日志保存到 Google Drive,与检查点一起。包括训练损失历史、验证指标、学习率计划以及每个记录指标的生成时间戳。
加载检查点时,还要加载训练历史,允许你绘制跨多个会话的完整训练曲线。这种统一的视图有助于识别学习问题和最佳停止点。
跟踪总训练时间:
跨会话维护累积训练时间。每个检查点都应包括总训练时间。恢复时,将当前会话时间添加到加载的累积时间。
这可以准确跟踪实际训练成本,并有助于规划未来的训练预算。知道 LoRA 需要跨 3 个会话总共 8 小时有助于估计未来类似的项目。
会话元数据记录:
将每个训练会话的详细信息记录到 Drive,包括会话开始时间、会话结束时间、使用的 GPU 类型、加载的初始检查点、保存的最终检查点、完成的训练步骤以及遇到的任何错误或问题。
此元数据对于调试不一致的训练结果和了解哪些会话对最终模型质量贡献最大非常有价值。
实施优雅关闭程序
训练脚本应检测即将发生的断开连接并优雅地保存状态,而不是在更新中途突然终止。
检测运行时警告:
Colab 偶尔会在断开连接之前显示警告。虽然你无法在代码中可靠地捕获这些警告,但你可以实施定期检查点检查,以确保最近的检查点始终存在。
定期检查点(如所讨论的每 15-30 分钟)而不是仅在 epoch 边界。这确保了即使断开连接发生在 epoch 中间,也能保存最大进度。
处理中断信号:
Python 信号处理程序可以捕获一些终止事件,从而实现最终检查点保存:
注册在接收终止信号时保存检查点的信号处理程序。这在某些断开连接场景中提供了最后机会的状态保存。
但是,并非所有 Colab 断开连接都发送可捕获的信号。硬运行时间限制断开连接可能会突然终止,而不执行信号处理程序。无论信号处理如何,定期检查点仍然至关重要。
常见问题
运行代码可以防止 Google Colab 断开连接吗?
不,活动的代码执行不能防止空闲超时断开连接。Colab 的空闲检测监控用户与界面的交互,而不是代码执行。你的训练脚本可以以 100% 的 GPU 利用率运行,但如果没有手动鼠标或键盘交互,仍会在 90 分钟后触发空闲超时。这就是为什么需要模拟用户活动的保活脚本来进行无人值守的训练会话。
Colab 能检测到并禁止使用保活脚本的帐户吗?
Google 的服务条款禁止"滥用"Colab 资源,包括运行无限期的后台脚本。但是,在合理的时间内使用保活脚本进行合法的训练项目处于灰色地带。大多数用户报告适度的保活使用没有问题。过度使用,如跨多个帐户运行 24/7 脚本或加密货币挖矿,会引起注意和潜在的禁令。负责任地使用保活进行实际训练项目以最小化风险。
为什么我的保活脚本在 Colab 更新后停止工作?
Colab 的界面更新会更改保活脚本所依赖的 HTML 元素 ID、类和结构。当 Google 更新界面时,脚本中的 querySelector 选择器会中断,导致点击尝试失败。这需要更新脚本以匹配新的界面结构。加入 GitHub、Reddit 或 Stack Overflow 上的 Colab 用户社区,当界面更改破坏现有脚本时,用户会共享更新的脚本。
如果我使用保活脚本,检查点是否必要?
是的,即使使用有效的保活脚本,检查点仍然至关重要。保活可以防止空闲超时,但不能防止硬运行时间限制(免费 12 小时,Pro 24 小时)、意外的 Colab 崩溃或维护、中断会话的网络断开连接或杀死保活脚本的浏览器崩溃。稳健的检查点可以防止所有断开连接原因,并被认为是任何严肃训练项目的最佳实践。
我应该多久保存一次训练期间的检查点?
每 15-30 分钟检查点一次,以获得进度保护和训练效率之间的最佳平衡。更频繁的检查点(每 5 分钟)会在 I/O 开销上浪费时间。较少的检查点(每 2 小时)会冒着因意外断开连接而失去大量进度的风险。监控你的检查点保存时间并相应地调整频率。如果检查点需要 3 分钟才能保存,20-30 分钟的间隔可以防止相对于训练而言在检查点上花费过多时间。
Colab Pro 会防止所有断开连接吗?
不,Colab Pro 仍然强制执行 90 分钟的空闲超时,需要保活脚本进行无人值守训练。Pro 将最大运行时间从 12 小时延长到 24 小时,但不会完全消除断开连接。Pro 通过优先 GPU 访问和更长的运行时间提供更好的可靠性,但对于任何 Colab 等级(包括 Pro 和 Pro+)的长训练会话,保活脚本和检查点仍然是必要的。
我可以同时运行多个带有保活脚本的 Colab 笔记本吗?
技术上可以,但这会增加 CAPTCHA 可能性和帐户限制风险。每个笔记本都需要自己的保活脚本,因为空闲超时是针对每个笔记本的。使用保活脚本同时运行许多笔记本在 Google 的滥用检测系统看来是可疑的。出于合法需要,同时运行 2-3 个笔记本通常是可以接受的,但使用保活脚本同时运行 10 个以上的笔记本会带来问题。考虑使用 Vast.ai 或 RunPod 等替代方案进行大规模并行训练。
训练检查点会消耗多少 Google Drive 存储空间?
检查点大小取决于你的模型。小型模型(SD 1.5 LoRA)创建 50-200MB 检查点。中型模型(SDXL LoRA)创建 200-800MB 检查点。大型模型(完整 SDXL 微调)创建 5-7GB 检查点。将检查点大小乘以你保存的检查点数量。实施检查点轮换,仅保留最近的 3-5 个检查点,以防止无限制的存储增长。免费的 Google Drive 提供 15GB,可以处理 LoRA 训练,但对于需要检查点轮换的完整模型微调可能不足。
如果在使用保活脚本时我的浏览器关闭,训练会发生什么?
关闭运行保活脚本的浏览器标签会停止 JavaScript 执行,允许空闲超时恢复正常计数。你在 Colab 服务器上的训练代码会暂时继续运行,但在保活停止后大约 90 分钟后会断开连接。这就是为什么检查点至关重要。当你意识到浏览器关闭时,立即重新打开笔记本,重新启动保活脚本,并监控是否发生断开连接。如果断开连接,重新启动笔记本,训练会从上次检查点自动恢复。
Colab Pro+ 后台执行可靠吗?
用户报告表明 Pro+ 后台执行在 2025 年不可靠。该功能承诺允许在训练继续时关闭浏览器标签,但实施不一致。许多用户报告即使使用 Pro+ 关闭标签时训练仍会断开连接。目前不要依赖此功能。即使使用 Pro+ 订阅,也要使用保活脚本和检查点。Google 可能会在未来的更新中改进后台执行可靠性,但目前将其视为实验性的而不是可靠的。
在 Colab 上构建可靠的训练工作流程
你现在了解了防止 Colab 断开连接和保护训练进度的完整策略。成功的 Colab 训练结合了多种技术,分层防御断开连接原因。
实施保活 JavaScript 脚本以缓解空闲超时。使用本指南中共享的当前有效脚本变体,并在界面更改破坏现有脚本时监控 Colab 用户社区以获取更新的脚本。以合理的间隔(60-90 秒)负责任地运行脚本,以最大限度地减少 CAPTCHA 触发和帐户限制风险。
将稳健的检查点构建到每个训练项目中。每 15-30 分钟向 Google Drive 保存完整的训练状态,包括模型权重、优化器状态、步骤计数器和训练日志。实施自动恢复逻辑,以便重新启动笔记本自动从上次检查点继续,无需手动干预。
考虑为需要 12-24 小时训练会话的项目订阅 Colab Pro。每月 10 美元的费用提供延长的运行时间、更好的 GPU 可用性和增加的资源限制,证明对严肃项目的投资是合理的。仔细评估 Pro+,因为大多数用户发现在该价格点上,常规 Pro 或专用 GPU 云提供商具有更好的价值。
将训练构建为在多次断开连接后继续运行的可恢复片段。跨会话维护持久日志,提供训练进度的统一视图。跟踪累积训练时间和会话元数据,以实现项目规划和调试。
请记住,Colab 提供了宝贵的免费和低成本 GPU 访问,但并非设计用于长时间无人值守的训练作业。该平台擅长交互式开发、实验以及在 12-24 小时窗口内完成的训练,并具有适当的检查点。对于需要保证正常运行时间和资源的生产训练,请考虑专用替代方案。
虽然像 Apatero.com 这样的平台通过稳定的托管基础设施消除了这些断开连接挑战,但掌握 Colab 技术提供了宝贵的云训练经验和预算友好的 GPU 资源访问。你在 Colab 约束下开发的技能可以转移到理解任何基于云的训练环境。
你的分层方法结合了保活脚本、稳健的检查点、适当的等级订阅和可恢复的工作流程设计,将 Colab 从令人沮丧的断开连接源转变为适合其预期用例内的严肃 AI 项目的可靠训练平台。
准备好创建你的AI网红了吗?
加入115名学生,在我们完整的51节课程中掌握ComfyUI和AI网红营销。
相关文章
通过AI图像生成实时创建AI冒险书
使用AI生成的故事和实时图像创建创建动态、互动的冒险书。学习如何构建沉浸式叙事体验,以即时视觉反馈适应读者的选择。
使用AI图像生成创作AI漫画书
使用AI图像生成工具创建专业漫画书。学习角色一致性、面板布局和故事可视化的完整工作流程,可与传统漫画制作相媲美。
2025年最佳AI图像放大工具:ESRGAN vs Real-ESRGAN vs SwinIR 对比评测
AI放大技术的终极对比。从ESRGAN到Real-ESRGAN、SwinIR等等——看看哪款AI放大工具能为你带来最佳效果。