实战精选 | 5分钟利用 OpenVINO™ 部署 Qwen2.5
本文将以 Qwen2.5-7B-Instruct 为例,介绍如何利用 OpenVINO™ 的 Python API 在本地部署 Qwen2.5 系列模型。
本文将以 Qwen2.5-7B-Instruct 为例,介绍如何利用 OpenVINO™ 的 Python API 在本地部署 Qwen2.5 系列模型。
Qwen2.5 是阿里通义团队近期最新发布的文本生成系列模型,基于更富的语料数据集训练,相较于 Qwen2,Qwen2.5 获得了显著更多的知识(MMLU:85+),并在编程能力(HumanEval 85+)和数学能力(MATH 80+)方面有了大幅提升。
此外,新模型在指令执行、生成长文本(超过 8K 标记)、理解结构化数据(例如表格)以及生成结构化输出特别是 JSON 方面取得了显著改进。Qwen2.5 模型总体上对各种 system prompt 更具适应性,增强了角色扮演实现和聊天机器人的条件设置功能。
与 Qwen2 类似,Qwen2.5 语言模型支持高达 128K tokens,并能生成最多 8K tokens 的内容。它们同样保持了对包括中文、英文、法文、西班牙文、葡萄牙文、德文、意大利文、俄文、日文、韩文、越南文、泰文、阿拉伯文等 29 种以上语言的支持。本文将以 Qwen2.5-7B-Instruct 为例,介绍如何利用 OpenVINO™ 的 Python API 在本地部署 Qwen2.5 系列模型。
安装相关依赖
本示例有以下依赖组件,需要通过 pip install 提前安装。
-
nncf==2.12.0
-
torch==2.3.1
-
modelscope
-
optimum[“openvino”]
-
openvino==2024.4.0
-
openvino-genai==2024.4.0
原始模型下载
我们可以通过魔搭社区提供的命令行工具,下载 Qwen2.5-7B-Instruct 的预训练模型:
modelscope download --model 'qwen/Qwen2.5-7B-Instruct ' --include '*.json' --cache_dir './local_dir'
这里的 ‘./local_dir’ 为保存模型的本地路径。
模型格式转换与量化
在部署模型之前,我们首先需要将原始的 PyTorch 模型转换为 OpenVINO™ 的 IR 静态图格式,并对其进行压缩,以实现更轻量化的部署和最佳的性能表现。通过 Optimum 提供的命令行工具 optimum-cli,我们可以一键完成模型的格式转换和权重量化任务:
optimum-cli export openvino --model './local_dir' --task text-generation-with-past --weight-format int4 --group-size 128 --ratio 0.8 Qwen2.5-7B-Instruct-int4-ov
开发者可以根据模型的输出结果,调整其中的量化参数,包括:
- –weight-format:量化精度,可以选择
fp32,fp16,int8,int4,int4_sym_g128,int4_asym_g128,int4_sym_g64,int4_asym_g64
-
–group-size:权重里共享量化参数的通道数量
-
–ratio:int4/int8 权重比例,默认为1.0,0.6表示60%的权重以 int4 表,40%以 int8 表示
-
–sym:是否开启对称量化
模型部署
OpenVINO™ 目前提供两种针对大语言模型的部署方案,如果您习惯于 Transformers 库的接口来部署模型,并想体验相对更丰富的功能,推荐使用基于 Python 接口的 Optimum-intel 工具来进行任务搭建。如果您想尝试更极致的性能或是轻量化的部署方式,GenAI API 则是不二的选择,它同时支持 Python 和 C++ 两种编程语言,安装容量不到200MB。
Optimum-intel 部署示例
from optimum.intel.openvino import OVModelForCausalLM
from transformers import AutoConfig, AutoTokenizer
ov_model = OVModelForCausalLM.from_pretrained(
llm_model_path,
device='GPU',
config=AutoConfig.from_pretrained(llm_model_path),
)
tok = AutoTokenizer.from_pretrained(llm_model_path)
prompt = "<|im_start|>system\n<|im_end|>\n<|im_start|>user\n什么是人工智能?<|im_end|>\n<|im_start|>assistant\n"
input_tokens = tok(prompt, return_tensors="pt", **tokenizer_kwargs)
answer = ov_model.generate(**input_tokens, max_new_tokens=1024)
tok.batch_decode(answer, skip_special_tokens=True)[0]
GenAI API 部署示例
import openvino_genai as ov_genai
pipe = ov_genai.LLMPipeline(llm_model_path, "GPU")
pipe.generate(prompt, eos_token_id=151645, max_length=500)
当然你也可以通过以下方式实现流式输出。
def streamer(subword):
print(subword, end='', flush=True)
return False
pipe.generate(prompt, eos_token_id=151645, max_length=500, streamer=streamer)
输出结果示例:
人工智能(Artificial Intelligence,简称 AI)是指由计算机系统所表现出的一种智能行为。它是一门研究如何创建具有智能的计算机程序或系统的学科。人工智能的目标是使计算机能够执行通常需要人类智能才能完成的任务,例如学习、推理、感知、理解自然语言、解决问题、识别图像和语音等。
此外,GenAI API 提供了 chat 模式的构建方法,通过声明 pipe.start_chat()以及pipe.finish_chat(),多轮聊天中的历史数据将被以 kvcache 的形态,在内存中进行管理,从而提升运行效率。
pipe.start_chat()
while True:
try:
prompt = input('question:\n')
except EOFError:
break
pipe.generate(prompt, config, streamer)
print('\n----------')
pipe.finish_chat()
chat模式输出结果示例:
总结
可以看到,不管是利用 Optimum-intel 或是 OpenVINO™ GenAI API,我们都可以非常轻松地将转换后的 Qwen2.5 模型部署在 Intel 的硬件平台上,从而进一步在本地构建起各类基于 LLM 的服务和应用。
如何系统的去学习大模型LLM ?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业
?”“谁的饭碗又将不保了?
”等问题热议不断。
事实上,抢你饭碗的不是AI,而是会利用AI的人。
继科大讯飞、阿里、华为
等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?
与其焦虑……
不如成为「掌握AI工具的技术人
」,毕竟AI时代,谁先尝试,谁就能占得先机!
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。
针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
一、LLM大模型经典书籍
AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。
二、640套LLM大模型报告合集
这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)
三、LLM大模型系列视频教程
四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)
LLM大模型学习路线 ↓
阶段1:AI大模型时代的基础理解
-
目标:了解AI大模型的基本概念、发展历程和核心原理。
-
内容:
- L1.1 人工智能简述与大模型起源
- L1.2 大模型与通用人工智能
- L1.3 GPT模型的发展历程
- L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践
- L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
-
目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
-
内容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例
- L2.2 Prompt框架
- L2.3 流水线工程
- L2.4 总结与展望
阶段3:AI大模型应用架构实践
-
目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
-
内容:
- L3.1 Agent模型框架
- L3.2 MetaGPT
- L3.3 ChatGLM
- L3.4 LLAMA
- L3.5 其他大模型介绍
阶段4:AI大模型私有化部署
-
目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
-
内容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的关键技术
- L4.3 模型私有化部署的实施步骤
- L4.4 模型私有化部署的应用场景
这份 LLM大模型资料
包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
更多推荐
所有评论(0)