如何将HF模型推送至Hub?遇repository.init()参数错误求助
解决HF模型推送时
repository.init()的TypeError问题 问题原因
这个错误是因为huggingface_hub库的版本差异导致的——旧版本的Repository.init()方法不支持token参数,新版本已将认证逻辑迁移到其他方法中。
解决步骤
升级
huggingface_hub库
先确保使用最新版本,执行命令:pip install --upgrade huggingface_hub正确的认证与初始化方式
升级后,不要在Repository.init()中传入token,改用以下两种方式处理认证:- 方式一:提前用
login()方法认证from huggingface_hub import login, Repository # 传入你的HF访问令牌完成登录 login(token="你的HF访问令牌") # 初始化仓库,无需再传token参数 repo = Repository(local_dir="本地模型目录", repo_id="你的HF用户名/仓库名") - 方式二:通过环境变量设置token
运行脚本前先设置环境变量:
之后直接初始化仓库:export HUGGING_FACE_HUB_TOKEN="你的HF访问令牌"from huggingface_hub import Repository repo = Repository(local_dir="本地模型目录", repo_id="你的HF用户名/仓库名")
- 方式一:提前用
完整推送模型的示例代码
确保推送包含模型、tokenizer、processor等所有相关文件:from huggingface_hub import login, Repository from transformers import AutoModel, AutoTokenizer, AutoProcessor # 登录认证 login(token="你的HF访问令牌") # 加载本地模型、tokenizer、processor model = AutoModel.from_pretrained("本地模型目录") tokenizer = AutoTokenizer.from_pretrained("本地模型目录") processor = AutoProcessor.from_pretrained("本地模型目录") # 初始化仓库 repo = Repository(local_dir="本地模型目录", repo_id="你的HF用户名/仓库名") # 推送所有文件到Hub repo.push_to_hub()
额外注意事项
- 若因特殊原因无法升级库,旧版本可使用
use_auth_token参数替代token:
但更推荐升级到最新版本,避免其他兼容性问题。repo = Repository(local_dir="本地模型目录", repo_id="你的HF用户名/仓库名", use_auth_token="你的HF访问令牌")
内容的提问来源于stack exchange,提问作者Mohammed
相关产品推荐
相关产品推荐

