























核心摘要 (TL;DR)
- 痛点解决:彻底告别 Kaggle 网页版 Notebook 糟糕的补全、延迟和难以管理的依赖。
- 核心方案:采用 VS Code 官方的 Remote Tunnels(远程隧道)技术,无需内网穿透工具,原生接入。
- 实战流程:Kaggle 开启 Internet -> 运行 VS Code CLI 脚本 -> GitHub 授权 -> 本地一键连接。
平时使用Kaggle来进行开发,稍微小一点的学习项目还是可以轻松搞定的,但是涉及到复杂一点的debug,Kaggle自带的网页端Jupyter Notebook界面就不好用了,没办法自动补全,没办法断点调试,也没法用习惯的vscode插件,也没法做多文件管理。
基于此,稍微倒腾研究了一下,如何在本地VS-Code连接Kaggle的算力资源来进行开发。这里介绍使用VS Code官方提供的 Remote Tunnels方案。
在开始动手前,我们先看看目前市面上几种主流的连接方案:
| 方案 | 复杂度 | 稳定性 | 评价 |
|---|---|---|---|
| Kaggle 网页版 | 零配置 | 一般 | 工程级别代码写起来折磨。 |
| SSH + Ngrok | 高 | 中 | 需要第三方工具,且配置繁琐。 |
| Remote Tunnels | 低 | 高 | 官方原生支持,通过 GitHub 账号绑定,安全且稳定。 |
首先,我们需要在 Kaggle 的服务器上把隧道“打通”。
打开你的 Kaggle Notebook,在右侧的 Settings 面板中务必检查两项:
在新的Code Cell中运行以下下载VS Code CLI,以及启动Tunnels的脚本。
1 | import os |
运行后,观察输出日志。你会看到类似这样的一行:To grant access to the server, please log into https://github.com/login/device and use code XXXX-XXXX
现在,回到你自己的电脑前。
kaggle-gpu-node。这是最核心的一点:Kaggle 网页版必须保持开启状态。
虽然脚本里面写了心跳机制去保活,但还是要注意以下几点
/kaggle/working 目录下创建你的项目。只有这个目录下的内容在 Session 存续期间是相对安全的。requirements.txt,或者用uv来进行项目管理。连接上 VS Code 后,直接在内置终端里执行 pip install或者uv sync。进入 VS Code 远程环境后,打开终端(Ctrl + `),输入以下命令确认算力就绪:
1 | nvidia-smi |
Q1: 为什么我的 VS Code 连不上,一直卡在 Connecting?
A: 请按以下顺序排查:
linux-x64 的 CLI 版本。Q2: 我可以在 VS Code 里直接打开多个文件夹吗?
A: 可以。隧道建立的是“机器级”的连接。连接成功后,你可以通过 File -> Open Folder 切换到 /kaggle/working 或根目录下的任何位置。
Q3: 这种方式会消耗 Kaggle 的 GPU 额度吗?
A: 会。 只要你的交互式 Session 处于 Running 状态且开启了 Accelerator,就会扣除周度配额。注意: 当你完成调试时,务必点击 Kaggle 网页端的 Stop Session,仅仅关闭本地 VS Code 不会停止计费。
Q4: 为什么我每次重连,VS Code 都要重新安装 Python 插件?
A: 这是因为 Kaggle 的系统盘(根目录 /)是非持久化的。每次 Session 重启,VS Code Server 组件都会丢失。建议开启 VS Code 的 Settings Sync,让其在连入后自动后台安装插件。
Q5: 我在根目录下安装的库,断开重连后找不到了?
A: 重点! 只有 /kaggle/working 目录在同一个 Session 内是相对持久的。建议在 /kaggle/working 下使用 uv 创建虚拟环境 .venv,这样即便断连,只要你没 Stop Session,环境就依然在。
Q6: 远程调试时 GPU 显存溢出(OOM)了怎么办?
A: 隧道不会自动感知显存回收。如果脚本崩溃但显存没释放,请在 VS Code 终端执行:
1 | fuser -v /dev/nvidia* |
Q7: Kaggle 的 Session 时长限制怎么办?
A: 这是一个硬限制(通常为 12 小时)。即使有保活脚本,Kaggle 也会强行关闭。建议在 VS Code 中完成代码调试后,通过 Save Version 提交后台任务进行长时间训练。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。