一、问题

代码中无法访问huggingface.co的问题,而通过浏览器能正常访问huggingface.co?

二、代码

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF"
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.bfloat16, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name) # 注:此句需要远程连接huggingface离线模型,报错无法访问huggingface.co

注:上述第4行代码需要访问huggingface.co

三、原因及解决方法

  • 原因:浏览器访问huggingface时通过代理时,通过代理进行加速;相比之下,代码访问不一定有加速,需要加代理设置为全局模式或在代码中设置代理。

  • 解决方法(一):在python代码中指定代理有两种方法:

    • 方法1.1:环境变量法(对整个程序的http请求生效)

    • os.environ['HTTP_PROXY'] = 'http://【华为账号】:【华为密码】@proxy.huawei.com:8080'
      os.environ['HTTPS_PROXY'] = 'http://【华为账号】:【华为密码】@proxy.huawei.com:8080'
      get = requests.get("https://api.gradio.app/v2/tunnel-request", timeout=3)
      response = httpx.get("https://api.gradio.app/v2/tunnel-request", timeout=3)
      
    • 方法1.2:指定代理法

    • proxies = {
        'https': 'http://【华为账号】:【华为密码】@proxy.huawei.com:8080', # 替换为自己的域账号和密码
        'http': 'http://【华为账号】:【华为密码】@proxy.huawei.com:8080',
      }
      requests.get("https://api.gradio.app/v2/tunnel-request", proxies=proxies, timeout=3)
      
  • 解决方法(二):代理开启全局模式,使得本机所有流量都走代理。

    • 代理模式介绍

    • PAC模式:仅加速部分国外网站,国内不加速,代码中的http访问不加速。
      	评价:流量消耗小,访问国内快。
      全局模式:加速所有网站,包括python代码中的网站。
          评价:流量消耗大,访问国内慢。
      
  • 场景:以python代码为例,当代码需要连接外网,方法1:通过解决方法一指定代理。方法2:通过解决方案二代理开启全局模式。

Logo

尧米是由西云算力与CSDN联合运营的AI算力和模型开源社区品牌,为基于DaModel智算平台的AI应用企业和泛AI开发者提供技术交流与成果转化平台。

更多推荐