关于 kaggle-environment
面向在 Kaggle 托管运行环境中开发和运行笔记本的用户,汇总路径、加速器、网络、依赖与资源限制等注意事项。还包含可复现运行、安全处理机密信息及排查环境差异的建议。
主要功能
- 01说明 Kaggle 文件路径用途
- 02概述加速器与网络设置
- 03提供可复现运行检查项
- 04说明机密信息处理注意事项
- 05排查本地与 Kaggle 环境差异
适用场景
- 01将提交文件和产物保存到正确位置
- 02检查训练运行的加速器和资源需求
- 03排查笔记本在 Kaggle 上的运行问题
- 04避免在笔记本或上传文件中嵌入令牌
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ josiahsiegel/ claude-plugin-marketplace --skill kaggle-environment安装后在 Claude Code 中输入/kaggle-environment确认已加载。
详细介绍
Kaggle 环境
概述
此技能适用于 Kaggle 托管运行时行为:文件系统路径、加速器、互联网访问、依赖项变动、输出位置、可复现性和资源限制。请区分本地开发假设与 Kaggle 执行假设。
路径约定
| 路径 | 用途 |
|---|---|
/kaggle/input | 以只读方式挂载的数据集、竞赛数据、模型和笔记本源文件 |
/kaggle/working | 可写工作目录;在此保存提交文件和产物 |
| 本地项目文件夹 | CLI 推送/拉取使用的源文件和元数据文件夹 |
切勿只将最终输出写入 /kaggle/input,该目录为只读。对于提交文件或产物,请写入 /kaggle/working/<file>,并确认该文件出现在笔记本输出中。
加速器 ID
kaggle kernels push -p <folder> --accelerator <ID> 可请求加速器。有效 ID 包括 NvidiaTeslaP100、NvidiaTeslaT4、NvidiaTeslaT4Highmem、NvidiaTeslaA100、NvidiaL4、NvidiaL4X1、NvidiaH100、NvidiaRtxPro6000、TpuV38、Tpu1VmV38、TpuV5E8 和 TpuV6E8。请先选择满足需求的最小加速器,并提醒用户,高端 GPU/TPU 加上较长的超时时间可能会消耗配额。
运行时检查清单
- 为语言运行时、库和数据拆分器设置随机种子。
- 保留一个
DEBUG标志,用于小样本和较短的训练轮次。 - 固定会影响结果的依赖项版本。
- 在开始长时间训练前,断言输入路径存在。
- 将检查点、提交文件和日志保存到
/kaggle/working。 - 使用大型数组或 GPU 张量时,在各折或模型阶段之间清理内存。
- 除非规则允许且确有必要,否则在竞赛最终运行时禁用互联网。
互联网和密钥
元数据中的 enable_internet 默认为 false。只有在工作流和竞赛规则允许时才启用。对于敏感值,请建议通过 Kaggle UI 使用 Kaggle Secrets。不要在笔记本、元数据、命令历史记录或上传的产物中嵌入令牌。不要声称支持通过公共 API 管理密钥。
通过 CLI 推送的已提交运行
不要假设 UserSecretsClient().get_secret() 在通过 Kaggle CLI 推送的已提交运行或批处理运行中可用。即使密钥存在并已在 Kaggle UI 中关联,它也可能返回 HTTP 400。kernel-metadata.json 没有受支持的 secrets、environment 或环境变量字段;不要凭空编造此类字段。
如果工作流可以避免使用密钥,请优先采用零认证设计。对于从 Kaggle 建立的临时公共隧道,Cloudflare TryCloudflare 快速隧道无需 ngrok 令牌:
cloudflared tunnel --url http://127.0.0.1:11434
请在 Kaggle 内部通过 localhost 验证服务,而不是使用公共隧道主机名。Cloudflare 隧道主机名可能无法从 Kaggle 网络解析:
curl -fsS http://127.0.0.1:11434
将发现的公共 URL 写入 /kaggle/working/<name>.txt,这样即使在保持连接的单元格运行期间 kaggle kernels logs 为空,外部工具也能通过 kaggle kernels output 获取这些 URL。
Apt 可靠性
Kaggle 基础镜像可能包含第三方 PPA 源,这些源偶尔会出现 DNS 解析失败,导致 apt-get update 出错。安装软件包前,可考虑禁用 PPA 源文件,并使用重试和较短的超时时间:
sudo mkdir -p /etc/apt/sources.list.d/disabled
sudo find /etc/apt/sources.list.d -type f -name "*.list" -print -exec sudo mv {} /etc/apt/sources.list.d/disabled/ \;
sudo apt-get update \
-o Acquire::Retries=5 \
-o Acquire::http::Timeout=20 \
-o Acquire::https::Timeout=20
请尽量减少软件包安装,因为笔记本启动时网络可能不稳定。
本地与 Kaggle 的差异
如果代码在本地运行正常但在 Kaggle 上失败,请检查挂载的源名称、大小写敏感性、缺失的软件包版本、写入路径、互联网连接、加速器可用性和内存。仅当路径检测包装器能保持执行的确定性时才添加;避免使用会改变建模逻辑的隐式环境专属分支。
不受支持的公共 API 范围
不要声称公共 API 支持 Docker 镜像选择、配额管理、调度器管理、协作者管理或单元格级编辑。如果这些任务超出公共 CLI/API 的支持范围,请说明需要通过 UI 操作。
Sources
- Kaggle notebooks docs: https://www.kaggle.com/docs/notebooks
- Kaggle kernels CLI: https://github.com/Kaggle/kaggle-api/blob/main/docs/kernels.md