Kaggle数据集在中国下载慢?4种加速方案实测
下载进度条跑到99%,然后连接超时,一切归零。如果你在中国用过Kaggle下载数据集,这个场景应该不陌生。
Kaggle被Google收购后,其服务完全托管在Google Cloud基础设施上。在中国大陆直接访问Kaggle,不仅网页加载慢,数据集下载更是一场与网络稳定性的斗争——尤其是那些几个GB的大数据集,浏览器直接下载几乎不可能一次成功。
这篇文章提供4种经过实测的加速方案,从Kaggle官方API到VPN专线,帮你彻底解决下载问题。
为什么Kaggle在中国下载这么难?
Kaggle的文件存储在Google Cloud Storage上,而Google的服务在中国大陆没有节点。你的下载请求需要经过国际出口到达Google的服务器,这条链路的问题包括:
- 带宽有限,延迟高:数据要跨越太平洋,往返延迟通常在200-400ms
- TCP连接不稳定:国际出口的丢包率在高峰期可能达到5-10%,TCP会反复重传和降速
- 浏览器下载不支持断点续传:Kaggle网页下载一旦中断就必须重新开始,对大文件来说是致命问题
方案一:Kaggle API命令行下载(最推荐)
放弃浏览器下载,使用Kaggle官方API通过命令行下载。API下载支持更稳定的连接控制,而且可以在服务器上后台运行。
初始配置(一次性):
# 1. 安装Kaggle库 pip install kaggle # 2. 获取API Token # 登录 kaggle.com → 点击头像 → Settings → API → Create New Token # 会自动下载 kaggle.json 文件 # 3. 放置密钥文件 mkdir -p ~/.kaggle mv ~/Downloads/kaggle.json ~/.kaggle/ chmod 600 ~/.kaggle/kaggle.json
下载数据集:
# 竞赛数据集(在竞赛页面的Data标签页找到API命令) kaggle competitions download -c titanic # 社区数据集 kaggle datasets download -d heptapod/titanic # 指定下载路径 kaggle datasets download -d heptapod/titanic -p ./data/ # 下载并自动解压 kaggle datasets download -d heptapod/titanic -p ./data/ --unzip
获取API命令的快捷方式: 在任何Kaggle数据集页面,点击右侧的 "..." → "Copy API command",直接粘贴到终端运行即可。
优点: 官方支持、连接比浏览器稳定、可在服务器上后台运行。
局限: 速度仍受国际出口带宽限制;超大数据集仍可能中断。
方案二:Google Colab中转下载
利用Google Colab的服务器来中转——Colab的服务器与Kaggle同在Google Cloud内网,下载速度极快(通常100MB/s+)。下载到Colab后,再传到你的Google Drive或直接下载到本地。
步骤:
- 打开 Google Colab(需要能访问Google)
- 新建Notebook,运行以下代码:
# 第一步:安装并配置Kaggle !pip install kaggle -q # 第二步:上传你的kaggle.json密钥文件 from google.colab import files uploaded = files.upload() # 选择你的kaggle.json !mkdir -p ~/.kaggle !mv kaggle.json ~/.kaggle/ !chmod 600 ~/.kaggle/kaggle.json # 第三步:下载数据集(秒速完成) !kaggle datasets download -d heptapod/titanic -p /content/data/ --unzip # 第四步:挂载Google Drive并复制 from google.colab import drive drive.mount('/content/drive') !cp -r /content/data/* /content/drive/MyDrive/kaggle_data/
- 之后从Google Drive下载到本地(Drive支持断点续传)
优点: Kaggle→Colab是内网速度(极快);数据通过Drive中转更可靠。
局限: 需要能访问Google(可能需要VPN);Colab免费版有存储和时间限制。
方案三:多线程工具加速
如果API单线程下载速度不够,可以先获取下载链接,再用多线程工具(aria2/IDM)加速。
Linux/macOS(aria2):
# 1. 安装aria2 sudo apt-get install aria2 # Ubuntu brew install aria2 # macOS # 2. 先用Kaggle API获取下载链接 # 在浏览器中开始下载,然后从下载管理器(Ctrl+J)复制真实下载URL # 3. 使用aria2多线程下载 aria2c -x 8 -s 8 --file-allocation=none \ "https://storage.googleapis.com/kaggle-data-sets/..." \ -d ./data/ -o dataset.zip
Windows(IDM):
在浏览器中点击Kaggle的下载按钮,IDM(Internet Download Manager)会自动接管下载,提供多线程和断点续传能力。
技巧: 如果aria2下载中途失败了,重新运行同一条命令,它会自动从断点继续,不需要从头开始。
优点: 多线程显著提速;aria2的断点续传极其可靠。
局限: 需要手动获取下载链接(比较麻烦);部分链接有时效性。
方案四:VPN专线——打通Kaggle全流程
以上方案可以解决"下载数据集"这个单一问题。但如果你的Kaggle工作流包含以下环节,仍然需要稳定的全局网络连接:
- 参与Kaggle竞赛——提交Notebook、查看排行榜、参与Discussion都需要访问Kaggle网站
- 使用Kaggle Notebooks——在线运行环境需要持续连接,断网就丢失进度
- 同时使用Google Colab + Kaggle + GitHub——整个数据科学工具链都在海外
- 下载竞赛的私有数据集——部分竞赛数据只能通过Kaggle网站下载,没有API命令
Jetstream的IEPL专线提供稳定的Google Cloud访问通道:
# 连接Jetstream后,Kaggle全流程均可正常使用 # 1. 网页正常打开,无需特殊配置 # 2. API下载速度显著提升 kaggle competitions download -c playground-series-s4e1 # 3. Kaggle Notebooks稳定运行 # 4. Google Colab同样可用
推荐策略: 日常下载公开数据集用Kaggle API(方案一);参与竞赛或需要完整Kaggle体验时使用VPN。
各方案对比总结
| 方案 | 成本 | 配置难度 | 速度 | 适用场景 |
|---|---|---|---|---|
| Kaggle API | 免费 | ⭐⭐ 低 | ⭐⭐⭐ 比浏览器好 | 数据集下载首选 |
| Colab中转 | 免费 | ⭐⭐⭐ 中 | ⭐⭐⭐⭐⭐ 内网速度 | 大数据集 |
| aria2多线程 | 免费 | ⭐⭐⭐ 中 | ⭐⭐⭐⭐ 多线程加速 | 频繁下载 |
| VPN专线 | 付费 | ⭐⭐ 低 | ⭐⭐⭐⭐⭐ 稳定 | 完整Kaggle工作流 |
常见问题
Kaggle API下载到99%卡住怎么办?
通常是网络抖动导致TCP连接超时。重新运行同一条 kaggle 命令,大部分情况下可以续传(取决于数据集类型)。更可靠的方式是用Colab中转或VPN。
kaggle.json文件在哪里获取?
登录 kaggle.com,点击右上角头像 → Settings → 找到 "API" 部分 → 点击 "Create New Token"。系统会自动下载一个 kaggle.json 文件。
能不能用国内镜像访问Kaggle?
目前没有Kaggle的官方或社区镜像站(不像Hugging Face有hf-mirror)。Kaggle的数据和服务完全依赖Google Cloud,无法简单镜像。这也是为什么对于Kaggle来说,API下载或VPN是主要的加速手段。
在服务器上怎么用Kaggle API?
完全一样的配置流程:安装kaggle库、放置kaggle.json到 ~/.kaggle/、运行API命令。可以配合 nohup 或 tmux 在后台运行大数据集的下载任务。
相关阅读:
