作者:杨雪锋 博士
英特尔边缘计算创新大使
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”代码时会收到报错信息,如下图所示:
鉴于直接从 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
左滑查看更多
3.2用下载器下载
在模型页面,右键菜单启动:“多选下载模式”,如下图所示。
模型页面:
然后选择所有要下载的文件,最后按“Enter”启动下载。
实际测试,迅雷下载的方式,速度最快,平均在 6MB/s 左右。
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 从本地加载模型的运行效果,如下图所示:
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”所展示的路径里,如下图所示。
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(),如下图所示:
#从本地载入分词器 tok = AutoTokenizer.from_pretrained("D:/chatglm2-6b", trust_remote_code=True)
左滑查看更多
254-llm-chatbot.ipynb 从本地加载模型的运行结果,如下图所示:
总 结
当遇到从 HuggingFace 官网无法下载 AI 大模型时,可以从国内镜像网站或魔搭社区下载,然后从本地加载模型权重,实现 OpenVINO Notebooks 的范例代码顺利运行。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !