0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用OpenVINO 2024.4在算力魔方上部署Llama-3.2-1B-Instruct模型

英特尔物联网 来源:英特尔物联网 2024-10-12 09:39 次阅读

作者:

刘力 算力魔方创始人

前面我们分享了《三步完成Llama3在算力魔方的本地量化和部署》。2024年9月25日,Meta又发布了Llama3.2:一个多语言大型语言模型(LLMs)的集合,其中包括:

大语言模型:1B和3B参数版本,仅接收多种语言文本输入。

多模态模型:11B和90B参数版本,既能接收文本输入又能接收图像输入。

本文将介绍使用OpenVINO 2024.4在算力魔方上部署Llama-3.2-1B-Instruct模型。

1.1Llama 3.2简介

Llama 3.2的1B和3B参数版本是一个支持多种语言大型语言模型,其指令调优纯文本模型Llama-3.2-1B-Instruct和Llama-3.2-3B-Instruct,针对多语言对话用例进行了优化,包括代理检索和摘要任务,性能参数如下图所示。

3bc8c1f6-877f-11ef-b8af-92fbcf53809c.png

Llama3.2官方正式支持的语言包括英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。

请读者用下面的命令把Llama-3.2-1B-Instruct模型的预训练权重下载到本地待用。

git clone https://www.modelscope.cn/LLM-Research/Llama-3.2-1B-Instruct.git

1.2算力魔方简介

算力魔方是一款可以DIY的迷你主机,采用了抽屉式设计,后续组装、升级、维护只需要拔插模块。通过选择不同算力的计算模块,再搭配不同的 IO 模块可以组成丰富的配置,适应不同场景。

性能不够时,可以升级计算模块提升算力;IO 接口不匹配时,可以更换 IO 模块调整功能,而无需重构整个系统。

本文以下所有步骤将在带有英特尔i7-1265U处理器的算力魔方上完成验证。

1.3三步完成Llama-3.2-1B-Instruct的INT4量化和本地部署

把Llama-3.2-1B-Instruct模型的预训练权重下载到本地后,接下来本文将依次介绍基于Optimum Intel工具将Llama-3.2-1B-Instruct进行INT4量化,并完成本地部署。

Optimum Intel作为Transformers和Diffusers库与Intel提供的各种优化工具之间的接口层,它给开发者提供了一种简便的使用方式,让这两个库能够利用Intel针对硬件优化的技术,例如:OpenVINO、IPEX等,加速基于Transformer或Diffusion构架的AI大模型在英特尔硬件上的推理计算性能。

Optimum Intel代码仓连接:https://github.com/huggingface/optimum-intel

1.3.1 第一步,搭建开发环境

请下载并安装Anaconda,然后用下面的命令创建并激活名为llama32的虚拟环境:

conda create -n llama32 python=3.11#创建虚拟环境
conda activate llama32#激活虚拟环境
python -m pip install --upgrade pip #升级pip到最新版

然后安装Optimum Intel和其依赖项OpenVINO:

pip install optimum-intel[openvino]

1.3.2 第二步,用optimum-cli对Llama-3.2-1B-Instruct模型进行INT4量化

optimum-cli是Optimum Intel自带的跨平台命令行工具,可以不用编写量化代码,实现对Llama-3.2-1B-Instruct模型的量化。

执行命令将Llama-3.2-1B-Instruct模型量化为INT4 OpenVINO格式模型:

optimum-cli export openvino --model D:llama3Meta-Llama-3-8B --task text-generation-with-past --weight-format int4 --group-size 128 --ratio 0.8 --sym llama3_int4_ov_model

3c14a5e4-877f-11ef-b8af-92fbcf53809c.png

1.3.3第三步:编写推理程序llama3_2_int4_ov_infer.py

基于Optimum Intel工具包的API函数编写Llama3的推理程序,非常简单,只需要调用五个API函数:

编译并载入Llama-3.2模型到指定DEVICE:OVModelForCausalLM.from_pretrained()

实例化Llama-3.2模型的Tokenizer:tok=AutoTokenizer.from_pretrained()

将自然语言转换为Token序列:tok(question, return_tensors="pt", **{})

生成答案的Token序列:ov_model.generate()

将答案Token序列解码为自然语言:tok.batch_decode()

完整范例程序如下所示下载链接:git clone

https://gitee.com/Pauntech/llama3.git

import openvino as ov
from transformers import AutoConfig, AutoTokenizer
from optimum.intel.openvino import OVModelForCausalLM


ov_config = {"PERFORMANCE_HINT": "LATENCY", "NUM_STREAMS": "1", "CACHE_DIR": ""}
model_dir = "d:\llama3_2_1B_int4" #llama3.2 1B int4模型路径
DEVICE = "CPU" #可更换为"GPU", "AUTO"...


# 编译并载入Llama3.2模型到指定DEVICE
ov_model = OVModelForCausalLM.from_pretrained(
  model_dir,
  device=DEVICE,
  ov_config=ov_config,
  config=AutoConfig.from_pretrained(model_dir, trust_remote_code=True),
  trust_remote_code=True,
)


# 实例化Llama3.2模型的Tokenizer
tok = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True)
# 设置问题
question = "What's the OpenVINO?" 
# 将自然语言转换为Token序列
input_tokens = tok(question, return_tensors="pt", **{})
# 生成答案的Token序列
answer = ov_model.generate(**input_tokens, max_new_tokens=128)
# 将答案Token序列解码为自然语言
print(tok.batch_decode(answer, skip_special_tokens=True)[0])

运行llama3_2_int4_ov_infer.py:

python llama3_2_int4_ov_infer.py

运行结果,如下所示:

3c430b6e-877f-11ef-b8af-92fbcf53809c.png

1.4总结

Optimum Intel工具包简单易用,仅需三步即可完成开发环境搭建、Llama-3.2-1B-Instruct模型INT4量化和推理程序开发。基于Optimum Intel工具包开发Llama3推理程序仅需调用五个API函数,方便快捷的实现将Llama-3.2-1B-Instruct本地化部署在基于英特尔处理器的算力魔方上。

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

    关注

    1

    文章

    3054

    浏览量

    48547
  • Meta
    +关注

    关注

    0

    文章

    247

    浏览量

    11299
  • 算力
    +关注

    关注

    1

    文章

    867

    浏览量

    14640
  • OpenVINO
    +关注

    关注

    0

    文章

    81

    浏览量

    153

原文标题:三步完成Llama3.2在算力魔方的INT4量化和部署|开发者实战

文章出处:【微信号:英特尔物联网,微信公众号:英特尔物联网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于C#和OpenVINO英特尔独立显卡上部署PP-TinyPose模型

    OpenVINO,将 PP-TinyPose 模型部署英特尔独立显卡上。 1.1 PP-TinyPose 模型简介 PP-TinyP
    的头像 发表于 11-18 18:27 2371次阅读

    LabVIEW+OpenVINOCPU上部署新冠肺炎检测模型实战(含源码)

    使用LabVIEW+OpenVINOCPU上部署新冠肺炎CT图像病害分割
    的头像 发表于 03-23 13:34 1654次阅读
    LabVIEW+<b class='flag-5'>OpenVINO</b><b class='flag-5'>在</b>CPU<b class='flag-5'>上部署</b>新冠肺炎检测<b class='flag-5'>模型</b>实战(含源码)

    如何使用OpenVINO C++ API部署FastSAM模型

    FastSAM 模型 | 开发者实战》,该文章中我们向大家展示了基于 OpenVINO Python API 的基本部署流程。实际
    的头像 发表于 11-17 09:53 773次阅读
    如何使用<b class='flag-5'>OpenVINO</b> C++ API<b class='flag-5'>部署</b>FastSAM<b class='flag-5'>模型</b>

    能RADXA微服务器试用体验】Radxa Fogwise 1684X Mini 规格

    ChatGLM2-6B、AIGC、Llama2、SAM、Whisper等超大参数模型 还有一份详细的英文的规格表: 另外,能RADXA微服务器服务器,还是大学生集成电路创新创业大
    发表于 02-28 11:21

    模型时代的需求

    现在AI已进入大模型时代,各企业都争相部署模型,但如何保证大模型,以及相关的稳定性和性能
    发表于 08-20 09:04

    介绍STM32cubeIDE上部署AI模型的系列教程

    介绍STM32cubeIDE上部署AI模型的系列教程,开发板型号STM32H747I-disco,值得一看。MCUAI原文链接:【嵌入式AI开发】篇四|部署篇:STM32cubeID
    发表于 12-14 09:05

    Arm虚拟硬件上部署PP-PicoDet模型

    1Arm虚拟硬件上部署PP-PicoDet模型  经典的深度学习工程是从确认任务目标开始的,我们首先来简单地介绍一下目标检测任务以及本期部署
    发表于 09-16 14:42

    英特尔独立显卡上部署YOLOv5 v7.0版实时实例分割模型

    本文将介绍基于 OpenVINO 英特尔独立显卡上部署 YOLOv5 实时实例分割模型的全流程,并提供完整范例代码供读者使用。
    的头像 发表于 12-20 11:32 3835次阅读

    使用OpenVINO魔方上加速stable diffusion模型

    魔方一款可以DIY的迷你主机,采用了抽屉式设计,后续组装、升级、维护只需要拔插模块。通过选择计算模块的版本,再搭配不同额IO模块可以组成丰富的配置,适应不同场景。
    的头像 发表于 05-25 14:34 575次阅读
    使用<b class='flag-5'>OpenVINO</b>™<b class='flag-5'>在</b><b class='flag-5'>算</b><b class='flag-5'>力</b><b class='flag-5'>魔方</b>上加速stable diffusion<b class='flag-5'>模型</b>

    OpenNCC上部署人脸检测模型

    电子发烧友网站提供《OpenNCC上部署人脸检测模型.zip》资料免费下载
    发表于 06-27 10:34 0次下载
    <b class='flag-5'>在</b>OpenNCC<b class='flag-5'>上部署</b>人脸检测<b class='flag-5'>模型</b>

    PODsys:大模型AI平台部署的开源“神器”

    的大模型研发工具和框架。平台的部署过程中,大模型研发机构常常需要面对一系列的问题:大
    的头像 发表于 11-08 09:17 779次阅读
    PODsys:大<b class='flag-5'>模型</b>AI<b class='flag-5'>算</b><b class='flag-5'>力</b>平台<b class='flag-5'>部署</b>的开源“神器”

    NNCF压缩与量化YOLOv8模型OpenVINO部署测试

    OpenVINO2023版本衍生出了一个新支持工具包NNCF(Neural Network Compression Framework – 神经网络压缩框架),通过对OpenVINO IR格式模型的压缩与量化更好的提升
    的头像 发表于 11-20 10:46 1355次阅读
    NNCF压缩与量化YOLOv8<b class='flag-5'>模型</b>与<b class='flag-5'>OpenVINO</b><b class='flag-5'>部署</b>测试

    Optimum Intel三步完成Llama3魔方的本地量化和部署

    Llama3 是Meta最新发布的开源大语言模型(LLM), 当前已开源8B和70B参数量的预训练模型权重,并支持指令微调。
    的头像 发表于 05-10 10:34 880次阅读
    Optimum Intel三步完成<b class='flag-5'>Llama</b>3<b class='flag-5'>在</b><b class='flag-5'>算</b><b class='flag-5'>力</b><b class='flag-5'>魔方</b>的本地量化和<b class='flag-5'>部署</b>

    亚马逊云科技正式上线Meta Llama 3.2模型

    亚马逊云科技宣布,Meta的新一代模型Llama 3.2,包括其首款多模态模型,现已在Amazon Bedrock和Amazon SageMaker中正式可用。
    的头像 发表于 10-11 09:20 341次阅读

    亚马逊云科技上线Meta Llama 3.2模型

    亚马逊云科技近日宣布,Meta公司的新一代模型Llama 3.2已在其平台上正式上线。该模型包括Meta首款多模态模型,现已在Amazon
    的头像 发表于 10-11 18:08 332次阅读