解决代码中无法访问huggingface.co的问题,而通过浏览器能正常访问huggingface.co?
代码中无法访问huggingface.co的问题,而通过浏览器能正常访问huggingface.co?
·
一、问题
代码中无法访问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:通过解决方案二代理开启全局模式。
更多推荐
已为社区贡献1条内容
所有评论(0)