微调T5模型上传Hugging Face时git push报错Port number ended with 'a'如何解决
报错原因
该报错的核心诱因是你构造的Git远程仓库URL中,密码字段包含@/:这类Git URL规则的保留特殊字符。Git解析URL时会把密码里的@错误识别为「用户认证信息和仓库域名的分隔符」,导致后续域名、端口解析完全错位,本该是端口的位置出现了字母,最终触发Port number ended with 'a'的错误。
少数场景是手动填写的远程URL格式错误,比如多写了特殊符号、错填了域名。
解决方案
- 方案1:改用Hugging Face授权认证,移除URL中的账号密码
你之前已经调用notebook_login()完成了账号授权,不需要再在远程URL里拼接账号密码,直接替换为不带认证信息的远程地址即可:
先删除错误的远程地址:
再添加正确的远程地址:!git remote remove origin
之后执行推送命令即可,注意Hugging Face现在默认主分支名为!git remote add origin https://huggingface.co/你的用户名/my-t5-qa-legalmain而非master,推送时可以对应调整:!git push --set-upstream origin main - 方案2:转义密码中的特殊字符
如果你一定要使用账号密码拼接URL的方式,需要把密码里的@转义为%40、:转义为%3A后再填入URL。 - 方案3:直接使用封装API上传,避免手动操作Git
可以直接用transformers库自带的push_to_hub方法,不需要手动处理Git配置、提交逻辑,操作更简单:
只要你之前完成了from transformers import AutoModelForSeq2SeqLM, AutoTokenizer model = AutoModelForSeq2SeqLM.from_pretrained("my-t5-qa-legal") tokenizer = AutoTokenizer.from_pretrained("my-t5-qa-legal") model.push_to_hub("my-t5-qa-legal") tokenizer.push_to_hub("my-t5-qa-legal")notebook_login()授权,执行上述代码就能自动完成模型、分词器的上传。
内容的提问来源于stack exchange,提问作者Sht
相关产品推荐
相关产品推荐

