国内网络 HuggingFace 下载大模型权重及文件的一些加速小技巧!从wget 到 aria2 多线程加速实战!

张开发
2026/4/10 13:11:15 15 分钟阅读

分享文章

国内网络 HuggingFace 下载大模型权重及文件的一些加速小技巧!从wget 到 aria2 多线程加速实战!
适用场景服务器无法访问 huggingface.co、下载大文件频繁断连、单线程速度龟速想用最稳最快的方式把模型权重和数据集拉下来。一、背景为什么 HuggingFace 在国内这么难用对于国内的 AI 开发者和竞赛选手来说HuggingFace 几乎是绕不开的资源站——无论是预训练权重、数据集还是 tokenizer 配置十有八九都托管在上面。然而由于众所周知的网络原因直接访问huggingface.co往往要么超时要么速度慢到令人崩溃。更糟糕的是当你在云 GPU 实例比如 AutoDL、恒源云上训练模型时服务器本身也无法出境访问wget挂着跑了几个小时结果下载到一半直接断开——什么都没留下。本文以AGIBot World Challenge ICRA 2026参赛过程中下载模型权重和训练数据集为实际案例系统整理一套国内环境下 HuggingFace 大文件下载的最优实践。二、核心思路使用 HF-Mirror 镜像站hf-mirror.com是目前国内最稳定的 HuggingFace 镜像站之一使用方式极其简单——将原始 URL 中的huggingface.co替换为hf-mirror.com即可其余路径完全一致。原始地址无法访问https://huggingface.co/agibot-world/EnerVerse-AC/resolve/main/EnerV_AC_deepspeed_v0.1.pt镜像地址国内可用https://hf-mirror.com/agibot-world/EnerVerse-AC/resolve/main/EnerV_AC_deepspeed_v0.1.pt规则通用数据集也适用# 原始 https://huggingface.co/datasets/agibot-world/AgiBotWorldChallenge-2026/resolve/main/WorldModel/train.tar.gz # 镜像 https://hf-mirror.com/datasets/agibot-world/AgiBotWorldChallenge-2026/resolve/main/WorldModel/train.tar.gz三、方案一wget简单但有局限wget是最基础的下载工具配合-c参数可以实现断点续传适合网络稳定、文件不太大的场景。基本用法# 下载模型权重wget-c\-O/coding/AgiBotWorldChallenge/weights/evac/EnerV_AC_deepspeed_v0.1.pt\https://hf-mirror.com/agibot-world/EnerVerse-AC/resolve/main/EnerV_AC_deepspeed_v0.1.pt# 下载 CLIP 权重wget-c\-O/coding/AgiBotWorldChallenge/weights/clip/open_clip_pytorch_model.bin\https://hf-mirror.com/laion/CLIP-ViT-H-14-laion2B-s32B-b79K/resolve/main/open_clip_pytorch_model.bin参数说明参数作用-c断点续传中断后可接着下-O 路径指定输出文件路径和文件名wget 的致命弱点单线程无论网速多好wget 只用一个连接大文件速度天花板极低重试机制弱默认遇到连接失败会放弃需要手动加--tries0才能无限重试没有并发10 GB 的数据集单线程跑一晚上都是常事对于 GB 级别的大文件强烈建议跳过 wget直接用下面的 aria2。四、方案二aria2推荐多线程碾压级提速aria2是一款支持多协议、多线程的命令行下载工具16 线程并发相比 wget 单线程实测速度可以提升 5~10 倍甚至更多且原生支持断点续传和自动重试。安装# Ubuntu / Debiansudoapt-getupdatesudoapt-getinstall-yaria2# 或者用 conda不需要 sudo更适合云实例condainstall-cconda-forge aria2-y完整下载命令以训练数据集为例aria2c-c\-x16-s16-k1M\--file-allocationnone\--max-tries0--retry-wait5\-d/coding/AgiBotWorldChallenge/data/WorldModel/archives\-otrain.tar.gz\https://hf-mirror.com/datasets/agibot-world/AgiBotWorldChallenge-2026/resolve/main/WorldModel/train.tar.gz参数详解参数含义推荐值-c断点续传必加-x 16最大连接数线程数16网络好时/ 8不稳定时-s 16将文件分成 N 段并行下载与-x保持一致-k 1M每段最小分片大小1M--file-allocationnone禁止预分配磁盘空间必加否则启动极慢--max-tries0无限重试直到成功大文件必加--retry-wait5失败后等待 5 秒再重试避免频繁触发限速-d 目录下载目录按需设置-o 文件名输出文件名按需设置下载模型权重的完整示例# 下载 EnerVerse-AC 权重aria2c-c-x16-s16-k1M\--file-allocationnone\--max-tries0--retry-wait5\-d/coding/AgiBotWorldChallenge/weights/evac\-oEnerV_AC_deepspeed_v0.1.pt\https://hf-mirror.com/agibot-world/EnerVerse-AC/resolve/main/EnerV_AC_deepspeed_v0.1.pt# 下载 CLIP 权重aria2c-c-x16-s16-k1M\--file-allocationnone\--max-tries0--retry-wait5\-d/coding/AgiBotWorldChallenge/weights/clip\-oopen_clip_pytorch_model.bin\https://hf-mirror.com/laion/CLIP-ViT-H-14-laion2B-s32B-b79K/resolve/main/open_clip_pytorch_model.bin五、进阶技巧5.1 使用 tmux/screen 防止会话断开在云服务器或远程 SSH 环境中一旦终端断开下载进程就会被杀掉。哪怕 aria2 有断点续传重新连上之后还得重新执行命令——非常麻烦。解决方案在 tmux 或 screen 里跑下载命令。# 新建 tmux 会话tmux new-sdownload# 在 tmux 内执行 aria2 命令aria2c-c-x16-s16...https://hf-mirror.com/...# CtrlB, D 可以安全脱离会话进程继续在后台跑# 需要查看进度时tmux attach-tdownload用screen也一样screen-Sdownload# 执行下载命令后按 CtrlA, D 脱离screen-rdownload# 重新连接这一步是长时间大文件下载的必备操作别省。5.2 配置代理加速如果你的服务器或本地机器有 HTTP/HTTPS 代理可以在下载前临时设置环境变量所有命令行工具wget、aria2、curl 等都会自动走代理# 临时设置仅对当前 shell 会话生效exporthttps_proxyhttp://你的代理IP:端口exporthttp_proxyhttp://你的代理IP:端口# 验证是否生效curl-Ihttps://huggingface.co# 下载完成后取消unsethttps_proxy http_proxy⚠️ 注意云 GPU 实例AutoDL 等一般不允许出境流量即使设置代理也可能无效。此时应优先使用 hf-mirror 镜像站。5.3 并发数的选择策略并发数并不是越高越好服务器端可能会对单 IP 的并发请求做限速甚至封禁。场景推荐并发数网络稳定、服务器带宽充足-x 16 -s 16偶发断连速度不稳定-x 8 -s 8频繁被限速或报错-x 4 -s 4带宽本身就是瓶颈任意值瓶颈不在并发5.4 下载前先确认目标路径存在aria2 不会自动创建目录如果-d指定的目录不存在会直接报错。养成下载前先建目录的习惯mkdir-p/coding/AgiBotWorldChallenge/weights/evacmkdir-p/coding/AgiBotWorldChallenge/weights/clipmkdir-p/coding/AgiBotWorldChallenge/data/WorldModel/archives六、wget vs aria2 对比总结维度wgetaria2安装复杂度系统自带零配置需要额外安装下载速度单线程慢多线程快 5~10 倍断点续传支持-c支持-c自动重试有限需手动配置支持无限重试适用文件大小 500 MB任意大小GB 级首选推荐程度⭐⭐⭐⭐⭐⭐⭐七、完整快速参考脚本把以下内容保存为download_weights.sh按需修改路径和 URL 后直接运行#!/bin/bashset-e# 配置区 BASE_DIR/coding/AgiBotWorldChallengeWEIGHTS_EVAC$BASE_DIR/weights/evacWEIGHTS_CLIP$BASE_DIR/weights/clipDATA_DIR$BASE_DIR/data/WorldModel/archivesHF_MIRRORhttps://hf-mirror.comARIA2_ARGS-c -x 16 -s 16 -k 1M --file-allocationnone --max-tries0 --retry-wait5# echo[1/3] 创建目录...mkdir-p$WEIGHTS_EVAC$WEIGHTS_CLIP$DATA_DIRecho[2/3] 下载模型权重...aria2c$ARIA2_ARGS\-d$WEIGHTS_EVAC-oEnerV_AC_deepspeed_v0.1.pt\$HF_MIRROR/agibot-world/EnerVerse-AC/resolve/main/EnerV_AC_deepspeed_v0.1.ptaria2c$ARIA2_ARGS\-d$WEIGHTS_CLIP-oopen_clip_pytorch_model.bin\$HF_MIRROR/laion/CLIP-ViT-H-14-laion2B-s32B-b79K/resolve/main/open_clip_pytorch_model.binecho[3/3] 下载训练数据集...aria2c$ARIA2_ARGS\-d$DATA_DIR-otrain.tar.gz\$HF_MIRROR/datasets/agibot-world/AgiBotWorldChallenge-2026/resolve/main/WorldModel/train.tar.gzecho✅ 全部下载完成运行方式chmodx download_weights.sh# 建议在 tmux 内运行tmux new-sdownloadbashdownload_weights.sh八、小结步骤操作1将 URL 中的huggingface.co替换为hf-mirror.com2安装aria2apt install aria2或conda install aria23使用aria2c -c -x 16 -s 16 ...多线程下载4用tmux或screen包裹命令防止断会话5网络不稳时调低并发数至-x 8或-x 4一套流程跑通后再大的模型权重和数据集都可以稳稳地拉下来专注在真正重要的训练和调参上。作者备注本文记录于参加 AGIBot World Challenge ICRA 2026 过程中实际在云 GPU 实例RTX 4090上验证可用。如有更好的方案欢迎评论区交流。

更多文章