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

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

3天内不再提示

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

英特尔物联网 来源:英特尔物联网 2024-05-10 10:34 次阅读

01

Llama3简介

Llama3 是Meta最新发布的开源大语言模型(LLM), 当前已开源8B和70B参数量的预训练模型权重,并支持指令微调。详情参见:

https://ai.meta.com/blog/meta-llama-3/

Llama3性能优异,8B和70B参数模型的性能在chatbot-arena-leaderboard中皆进入前十;LLama-3-70b-Instruct仅次于闭源的GPT-4系列模型。

排行榜链接:

https://chat.lmsys.org/?leaderboard

b3bd5d62-0dfd-11ef-a297-92fbcf53809c.png

魔搭社区已提供Llama3 8B和70B模型的预训练权重下载,实测下载速度平均34MB/s。

b3d29b8c-0dfd-11ef-a297-92fbcf53809c.png

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

git clone https://www.modelscope.cn/LLM-Research/Meta-Llama-3-8B.git
git clone https://www.modelscope.cn/LLM-Research/Meta-Llama-3-70B.git

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

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

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

02

三步完成Llama3的INT4量化和本地部署

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

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

Optimum Intel代码仓连接:

https://github.com/huggingface/optimum-intel。

01

第一步,搭建开发环境

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

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

由于Optimum Intel代码迭代速度很快,请用从源代码安装的方式,安装Optimum Intel和其依赖项openvino与nncf。

python -m pip install "optimum-intel[openvino,nncf]"@git+https://github.com/huggingface/optimum-intel.git

02

第二步,用optimum-cli对Llama3模型进行INT4量化

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

执行命令将Llama3-8B模型量化为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

b40612c8-0dfd-11ef-a297-92fbcf53809c.png

03

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

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

1.

初始化OpenVINO Core对象:ov.Core()

2.

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

3.

实例化Llama3模型的Tokenizer:tok=AutoTokenizer.from_pretrained()

4.

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

5.

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

6.

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

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

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


# 初始化OpenVINO Core对象
core = ov.Core()
ov_config = {"PERFORMANCE_HINT": "LATENCY", "NUM_STREAMS": "1", "CACHE_DIR": ""}
model_dir = "d:\llama3_int4_ov_model" #llama3 int4模型路径
DEVICE = "CPU" #可更换为"GPU", "AUTO"...
# 编译并载入Llama3模型到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模型的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_int4_ov_infer.py:

python llama3_int4_ov_infer.py

运行结果,如下所示:

b41a8794-0dfd-11ef-a297-92fbcf53809c.png

03

构建图形化的Llama3 demo

请先安装依赖软件包:

pip install gradio mdtex2html streamlit -i https://mirrors.aliyun.com/pypi/simple/

下载范例程序:

然后运行:

python llama3_webui.py

运行结果如下:

b5465e9a-0dfd-11ef-a297-92fbcf53809c.png

b574c000-0dfd-11ef-a297-92fbcf53809c.jpg

04

总结

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



审核编辑:刘清

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

    关注

    68

    文章

    19245

    浏览量

    229599
  • python
    +关注

    关注

    56

    文章

    4792

    浏览量

    84615
  • LLM
    LLM
    +关注

    关注

    0

    文章

    286

    浏览量

    327
  • OpenVINO
    +关注

    关注

    0

    文章

    92

    浏览量

    195
  • AI大模型
    +关注

    关注

    0

    文章

    314

    浏览量

    305

原文标题:Optimum Intel三步完成Llama3在算力魔方的本地量化和部署 | 开发者实战

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

收藏 人收藏

    评论

    相关推荐

    能RADXA微服务器试用体验】+ GPT语音与视觉交互:1,LLM部署

    。环境变量的配置,未来具体项目中我们会再次提到。 下面我们正式开始项目。项目从输入到输出分别涉及了语音识别,图像识别,LLM,TTS这几个与AI相关的模块。先从最核心的LLM开始。 由于LLAMA3
    发表于 06-25 15:02

    深入浅析云存储部署三步

    不会使采用云服务的最终结果难以实现。 第一 - 从本地部署的服务开始 由于组织拥有的大多数数据都是本地部署的,而不是
    发表于 09-07 15:19 214次阅读

    菱FX3U接入MQTT平台的三步

    菱FX3U接入MQTT平台的三步第一:PLC网关通过串口采集菱FX3U的数据 第二
    发表于 11-11 16:01 1137次阅读
    <b class='flag-5'>三</b>菱FX<b class='flag-5'>3</b>U接入MQTT平台的<b class='flag-5'>三步</b>

    基于LLAMA的魔改部署

    训练),并且和Vision结合的大模型也逐渐多了起来。所以怎么部署大模型是一个 超级重要的工程问题 ,很多公司也紧锣密鼓的搞着。 目前效果最好讨论最多的开源实现就是LLAMA,所以我这里讨论的也是基于
    的头像 发表于 05-23 15:08 5461次阅读
    基于<b class='flag-5'>LLAMA</b>的魔改<b class='flag-5'>部署</b>

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

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

    LLaMa量化部署

    Optimal Brain Quanization (OBQ),对OBQ 方法进行了提速改进。有网友 文章 中对 GPTQ, OBQ, OBS 等量化策略进行了整理,这里就不多赘述了。
    的头像 发表于 08-28 16:44 1443次阅读
    <b class='flag-5'>LLaMa</b><b class='flag-5'>量化</b><b class='flag-5'>部署</b>

    如何本地部署大模型

    近期,openEuler A-Tune SIGopenEuler 23.09版本引入llama.cpp&chatglm-cpp两款应用,以支持用户本地
    的头像 发表于 10-18 11:48 2511次阅读
    如何<b class='flag-5'>本地</b><b class='flag-5'>部署</b>大模型

    Llama 3 王者归来,Airbox 率先支持部署

    前天,智领域迎来一则令人振奋的消息:Meta正式发布了备受期待的开源大模型——Llama3Llama3的卓越性能Meta表示,Llama3
    的头像 发表于 04-22 08:33 629次阅读
    <b class='flag-5'>Llama</b> <b class='flag-5'>3</b> 王者归来,Airbox 率先支持<b class='flag-5'>部署</b>

    使用OpenVINO™在你的本地设备上离线运行Llama3之快手指南

    人工智能领域,大型语言模型(LLMs)的发展速度令人震惊。2024年4月18日,Meta正式开源了LLama系列的新一代大模型Llama3,在这一领域中树立了新的里程碑。
    的头像 发表于 04-26 09:42 831次阅读
    使用OpenVINO™在你的<b class='flag-5'>本地</b>设备上离线运行<b class='flag-5'>Llama3</b>之快手指南

    【AIBOX上手指南】快速部署Llama3

    Firefly开源团队推出了Llama3部署包,提供简易且完善的部署教程,过程无需联网,简单快捷完成本地部署。点击观看
    的头像 发表于 06-06 08:02 637次阅读
    【AIBOX上手指南】快速<b class='flag-5'>部署</b><b class='flag-5'>Llama3</b>

    源2.0-M32大模型发布量化版 运行显存仅需23GB 性能可媲美LLaMA3

    北京2024年8月23日 /美通社/ -- 近日,浪潮信息发布源2.0-M32大模型4bit和8bit量化版,性能比肩700亿参数的LLaMA3开源大模型。4bit量化版推理运行显存仅需
    的头像 发表于 08-25 22:06 295次阅读
    源2.0-M32大模型发布<b class='flag-5'>量化</b>版 运行显存仅需23GB 性能可媲美<b class='flag-5'>LLaMA3</b>

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

    前面我们分享了《三步完成Llama3魔方
    的头像 发表于 10-12 09:39 554次阅读
    使用OpenVINO 2024.4<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><b class='flag-5'>Llama</b>-3.2-1B-Instruct模型

    Meta发布Llama 3.2量化版模型

    近日,Meta开源Llama 3.2的1B与3B模型后,再次为人工智能领域带来了新进展。10月24日,Meta正式推出了这两个模型的量化版本,旨在进一
    的头像 发表于 10-29 11:05 369次阅读

    从零开始训练一个大语言模型需要投资多少钱?

    关于训练技巧和模型评估的文章,但很少有直接告诉你如何估算训练时间和成本的。前面分享了一些关于大模型/本地知识库的安装部署方法,无需编写代码,即可使用 Ollama+AnythingLLM搭建企业私有知识库 ,或者, 三步
    的头像 发表于 11-08 14:15 188次阅读
    从零开始训练一个大语言模型需要投资多少钱?

    用Ollama轻松搞定Llama 3.2 Vision模型本地部署

    Ollama 是一个开源的大语言模型服务工具,它的核心目的是简化大语言模型(LLMs)的本地部署和运行过程,请参考《Gemma 2+Ollama
    的头像 发表于 11-23 17:22 856次阅读
    用Ollama轻松搞定<b class='flag-5'>Llama</b> 3.2 Vision模型<b class='flag-5'>本地</b><b class='flag-5'>部署</b>