问题一

问题描述:下载hugging face上需要登陆的模型(例如Llama3)时,使用hf auth login命令添加access tokens时总是遇见网络错误,以下是没有使用vpn的情况会无法连接
在这里插入图片描述
使用了vpn也会报错
在这里插入图片描述
解决办法:直接通过文件的方式添加token

  1. 进入C:\Users\<你的用户名>\.cache\huggingface\token目录
  2. 新建.txt文件,打开并将access token直接粘贴进去,保存退出
  3. 然后修改文件名称为:token。(没有后缀名)

之后可以在尝试下载模型就可以了但是可能很慢,可以使用镜像
https://hf-mirror.com
https://alpha.hf-mirror.com/

# 在.py文件的最前面添加以下代码,确保使用的是镜像网站
import os 
os.environ['HF_ENDPOINT'] = 'https://alpha.hf-mirror.com/'

不使用镜像,使用了代理但是还是访问不了hugging face,可以使用代码设置代理,代码如下:

# 设置代理,端口要看你使用的代理软件
os.environ["HTTP_PROXY"] = "http://127.0.0.1:7897"
os.environ["HTTPS_PROXY"] = "http://127.0.0.1:7897"

问题二

使用远程主机下载预训练模型Salesforce/mixqg-base,代码如下:

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
QG_model = AutoModelForSeq2SeqLM.from_pretrained('Salesforce/mixqg-base').cuda()
QG_model.eval()
QG_tokenizer = AutoTokenizer.from_pretrained('Salesforce/mixqg-base')

遇见如下错误

Traceback (most recent call last):
  File "/root/miniconda/envs/cgba/lib/python3.10/site-packages/transformers/configuration_utils.py", line 601, in _get_config_dict
    resolved_config_file = cached_path(
  File "/root/miniconda/envs/cgba/lib/python3.10/site-packages/transformers/utils/hub.py", line 284, in cached_path
    output_path = get_from_cache(
  File "/root/miniconda/envs/cgba/lib/python3.10/site-packages/transformers/utils/hub.py", line 594, in get_from_cache
    http_get(url_to_download, temp_file, proxies=proxies, resume_size=resume_size, headers=headers)
  File "/root/miniconda/envs/cgba/lib/python3.10/site-packages/transformers/utils/hub.py", line 432, in http_get
    r = requests.get(url, stream=True, proxies=proxies, headers=headers)
  File "/root/miniconda/envs/cgba/lib/python3.10/site-packages/requests/api.py", line 73, in get
    return request("get", url, params=params, **kwargs)
  File "/root/miniconda/envs/cgba/lib/python3.10/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
  File "/root/miniconda/envs/cgba/lib/python3.10/site-packages/requests/sessions.py", line 575, in request
    prep = self.prepare_request(req)
  File "/root/miniconda/envs/cgba/lib/python3.10/site-packages/requests/sessions.py", line 484, in prepare_request
    p.prepare(
  File "/root/miniconda/envs/cgba/lib/python3.10/site-packages/requests/models.py", line 367, in prepare
    self.prepare_url(url, params)
  File "/root/miniconda/envs/cgba/lib/python3.10/site-packages/requests/models.py", line 438, in prepare_url
    raise MissingSchema(
requests.exceptions.MissingSchema: Invalid URL '/api/resolve-cache/models/Salesforce/mixqg-base/cdca34de1d975f1d3f89a25f818c190cee751c90/config.json?%2FSalesforce%2Fmixqg-base%2Fresolve%2Fmain%2Fconfig.json=&etag=%224bd829267482a76a474e414f83cf7f7ff1ddcb4a%22': No scheme supplied. Perhaps you meant https:///api/resolve-cache/models/Salesforce/mixqg-base/cdca34de1d975f1d3f89a25f818c190cee751c90/config.json?%2FSalesforce%2Fmixqg-base%2Fresolve%2Fmain%2Fconfig.json=&etag=%224bd829267482a76a474e414f83cf7f7ff1ddcb4a%22?

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/workspace/CGBA/Claim_Extraction/Extract_Questions.py", line 21, in <module>
    QG_model = AutoModelForSeq2SeqLM.from_pretrained('Salesforce/mixqg-base').cuda()
  File "/root/miniconda/envs/cgba/lib/python3.10/site-packages/transformers/models/auto/auto_factory.py", line 423, in from_pretrained
    config, kwargs = AutoConfig.from_pretrained(
  File "/root/miniconda/envs/cgba/lib/python3.10/site-packages/transformers/models/auto/configuration_auto.py", line 705, in from_pretrained
    config_dict, _ = PretrainedConfig.get_config_dict(pretrained_model_name_or_path, **kwargs)
  File "/root/miniconda/envs/cgba/lib/python3.10/site-packages/transformers/configuration_utils.py", line 553, in get_config_dict
    config_dict, kwargs = cls._get_config_dict(pretrained_model_name_or_path, **kwargs)
  File "/root/miniconda/envs/cgba/lib/python3.10/site-packages/transformers/configuration_utils.py", line 634, in _get_config_dict
    raise EnvironmentError(
OSError: We couldn't connect to 'https://huggingface.co' to load this model, couldn't find it in the cached files and it looks like Salesforce/mixqg-base is not the path to a directory containing a config.json file.
Checkout your internet connection or see how to run the library in offline mode at 'https://huggingface.co/docs/transformers/installation#offline-mode'.

使用的主机环境为:
python==3.10.0
transformers==4.20.1
requests==2.32.3
Ubuntu==24.04.3 LTS,Codename: noble

解决方案:修改代码为:

QG_model = AutoModelForSeq2SeqLM.from_pretrained('Salesforce/mixqg-base',mirror='https://huggingface.co/').cuda() # 指定网址
QG_model.eval()
QG_tokenizer = AutoTokenizer.from_pretrained('Salesforce/mixqg-base')

问题解决

使用hugging-cli工具下载模型

官方教程

  1. 安装工具
pip install -U "huggingface_hub[cli]"

参数-U指定pip首先检查本地安装的包是否是最新版本,不是最新的则更新到最新的版本,如果-U参数后面没有指定包的名称,则更新所有的包

安装完成后使用hf --help查看是否能正确输出信息

  1. 下载指定模型的指定文件
hf download gpt2-xl config.json pytorch_model.bin vocab.json merges.txt tokenizer.json --local-dir .

以上命令的含义是下载模型gpt2-xl仓库中的config.json、pytorch_model.bin、vocab.json、merges.txt和tokenizer.json这5个文件,并通过参数--local-dir指定保存的本地文件夹为当前文件夹(.指的是当前文件夹可以结合命令行前的文件地址灵活指定)。

  1. 直接下载整个仓库
hf download openai-community/gpt2-xl
  1. 手动清理缓存
  • 查看缓存的使用情况
    huggingface-cli scan-cache
    
  • 交互式清理缓存(按提示操作即可)
    huggingface-cli delete-cache
    # 新版本的命令格式为
    hf cache delete
    

在这里插入图片描述

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐