快速下载OpenVIN Notebooks中的AI大模型

描述

作者:杨雪锋 博士

英特尔边缘计算创新大使

01OpenVINO Notebooks 简介

OpenVINO Notebooks 是 Jupyter Notebook 形式的 OpenVINO 范例程序大集合,方便开发者快速学习并掌握 OpenVINO 推理程序,并通过 Copy&Paste 方式将范例中的关键程序应用到自己的 AI 软件中去。

01运行 AI 大模型的挑战

OpenVINO Notebooks 提供了非常丰富的 AI 大模型范例程序,例如:Dolly2、Stable Diffusion、LLama2、ChatGLM2 等等,方便广大开发者学习并应用 AI 大模型。

但运行 AI 大模型范例程序时,由于众所周知的原因,通常会遇到因无法从 HuggingFace 官网下载模型,导致范例程序无法运行的情况。

以 240-dolly-2-instruction-following.ipynb 为例,运行“Download and Convert Model”代码时会收到报错信息,如下图所示:

OpenVINO

鉴于直接从 HuggingFace 官网无法下载 AI 大模型,可以考虑使用国内的两个下载速度非常好的网站:

一个是 HuggingFace 的国内镜像网站;另一个是魔搭社区。

本文将演示分别从 HuggingFace 的国内镜像网站和魔搭社区来解决下载 AI 大模型问题。

03从 HuggingFace 国内镜像网站

解决下载问题

3.1命令行模式

第一步,安装下载工具:

 

pip install -U huggingface_hub hf_transfer

 

左滑查看更多

第二步,设置环境变量

在Linux中,执行:

 

export HF_HUB_ENABLE_HF_TRANSFER=1
export HF_ENDPOINT=https://hf-mirror.com

 

左滑查看更多

在Windows中,执行:

 

SET HF_HUB_ENABLE_HF_TRANSFER=1
SET HF_ENDPOINT=https://hf-mirror.com

 

左滑查看更多

第三步,运行下载命令,下载模型到本地

 

huggingface-cli download --resume-download databricks/dolly-v2-3b --local-dir dolly-v2-3b

 

左滑查看更多

OpenVINO

3.2用下载器下载

在模型页面,右键菜单启动:“多选下载模式”,如下图所示。

模型页面:

OpenVINO

然后选择所有要下载的文件,最后按“Enter”启动下载。

OpenVINO

实际测试,迅雷下载的方式,速度最快,平均在 6MB/s 左右。

OpenVINO

3.3从本地加载模型权重

将 dolly-v2-3b 下载到本地后,把 model_id 改为 model_local_path, 让程序从本地加载模型权重,例如:

 

model_id = "databricks/dolly-v2-3b"
model_local_path = "D:/dolly-v2-3b"
tokenizer = AutoTokenizer.from_pretrained(model_local_path,local_file_only=True)
ov_model = OVModelForCausalLM.from_pretrained(model_local_path, device=current_device, export=True, ov_config=ov_config, load_in_8bit=False,local_file_only=True)

 

左滑查看更多

在 240-dolly-2-instruction-following.ipynb 中“Download and Convert Model”代码块更改如下所示:

 

from pathlib import Path
from transformers import AutoTokenizer
from optimum.intel.openvino import OVModelForCausalLM


model_id = "databricks/dolly-v2-3b"
model_local_path = "D:/dolly-v2-3b"
model_path = Path("dolly-v2-3b")
tokenizer = AutoTokenizer.from_pretrained(model_local_path,local_file_only=True)
current_device = device.value
ov_config = {'PERFORMANCE_HINT': 'LATENCY', 'NUM_STREAMS': '1', "CACHE_DIR": ""}
if model_path.exists():
    ov_model = OVModelForCausalLM.from_pretrained(model_path, device=current_device, ov_config=ov_config)
else:
    ov_model = OVModelForCausalLM.from_pretrained(model_local_path, device=current_device, export=True, ov_config=ov_config, load_in_8bit=False,local_file_only=True)
    ov_model.half()
    ov_model.save_pretrained(model_path)

 

左滑查看更多

240-dolly-2-instruction-following.ipynb 从本地加载模型的运行效果,如下图所示:

OpenVINO

04从魔搭社区解决下载问题

4.1使用 modelscope API 下载模型

第一步,安装 modelscope:

 

pip install modelscope

 

左滑查看更多

第二步,运行 Python 脚本,下载模型到本地

 

from modelscope import snapshot_download 
model_dir = snapshot_download("ZhipuAI/chatglm2-6b", revision = "v1.0.12")
print(model_dir)

 

左滑查看更多

下载速度非常快,模型保存在“model_dir”所展示的路径里,如下图所示。

OpenVINO

4.2使用 git lfs 工具下载

 

git lfs install 
git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git

 

左滑查看更多

4.3从本地加载模型权重

打开 OpenVINO Notebooks 的 254-llm-chatbot.ipynb,把本地模型所在路径传入 AutoModelForCausalLM.from_pretrained(),如下图所示:

OpenVINO

 

#从本地载入分词器
tok = AutoTokenizer.from_pretrained("D:/chatglm2-6b", trust_remote_code=True)

 

左滑查看更多

254-llm-chatbot.ipynb 从本地加载模型的运行结果,如下图所示:

OpenVINO

总 结

当遇到从 HuggingFace 官网无法下载 AI 大模型时,可以从国内镜像网站或魔搭社区下载,然后从本地加载模型权重,实现 OpenVINO Notebooks 的范例代码顺利运行。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分