向Hugging Face上传大文件:慢速与中断问题的解决方案问询
解决Hugging Face大模型上传的限速与断网中断问题
方法一:Git LFS多线程配置+断点续传
既然你已经安装了Git和Git LFS,直接用Git原生流程替代huggingface-cli upload,可突破单线程限速,同时支持断点续传:
配置Git LFS并发与重试参数
在本地仓库执行以下命令,开启多线程上传和自动重试:git config lfs.concurrenttransfers 8 # 设置8个并发上传线程,可根据网络调整 git config lfs.retries 100 # 失败后自动重试100次 git config lfs.resumable true # 启用断点续传 git config lfs.resumabletimeout 3600 # 续传超时时间设为1小时关联仓库并上传
先将本地仓库关联到Hugging Face模型仓库:git remote add origin https://huggingface.co/maddes8cht/my-repo-id.git git config credential.helper store # 保存token避免重复输入然后添加文件、提交并推送:
git add ggml-my-filename.gguf git commit -m "upload ggml-my-filename.gguf" git push origin main推送时会提示输入用户名(你的Hugging Face账号)和密码(填你的token
hf_***xyz***),断网恢复后重新执行git push会自动续传未完成的部分。
方法二:用Hugging Face Hub Python库实现分片上传+自动重试
如果Git流程不太顺手,可使用官方Python库自定义上传逻辑,针对SSL错误和断网做自动重试:
安装依赖:
pip install huggingface_hub编写上传脚本(保存为
upload_model.py):from huggingface_hub import upload_file import time from ssl import SSLError def upload_with_retry(): try: upload_file( path_or_fileobj="ggml-my-filename.gguf", path_in_repo="ggml-my-filename.gguf", repo_id="maddes8cht/my-repo-id", repo_type="model", commit_message="upload ggml-my-filename.gguf", token="hf_***xyz***", chunk_size=1024*1024*1024, # 1GB分片 max_retries=20, retry_on_exceptions=(ConnectionError, TimeoutError, SSLError), retry_delay=10 # 重试间隔10秒 ) except Exception as e: print(f"上传中断:{e},将在5分钟后重试") time.sleep(300) upload_with_retry() if __name__ == "__main__": upload_with_retry()运行脚本:
python upload_model.py,断网后会自动重试,分片上传也能提升整体速度。
方法三:用rclone挂载仓库后多线程复制
rclone支持与Hugging Face仓库对接,提供更灵活的多线程上传和断点续传:
配置rclone:
执行rclone config,选择huggingface类型,输入你的token和仓库ID(maddes8cht/my-repo-id),完成配置。多线程上传文件:
rclone copy ggml-my-filename.gguf huggingface:my-repo-id --multi-thread-streams 8 --retries 100 --low-level-retries 20该命令会用8个线程上传,断网后自动重试,续传未完成的部分。
关键注意事项
- 所有方法都依赖断点续传,确保上传中断后无需从头开始
- 多线程数量建议设置为4-8,避免触发Hugging Face的额外限制
- 夜间断网期间,工具会自动重试,无需人工干预,恢复网络后继续上传剩余部分
内容的提问来源于stack exchange,提问作者maddes8cht
相关产品推荐
相关产品推荐

