使用OpenVINO™在你的AI PC上离线运行Llama3之快手指南

点击蓝字

关注我们,让开发变得更有趣

作者| 武卓博士 英特尔OpenVINO布道师

排版| 李擎

使用OpenVINO™在你的

AI PC上离线运行Llama3之快手指南

在人工智能领域,大型语言模型(LLMs)的发展速度令人震惊。2024年4月18日,Meta 正式开源了 LLama 系列的新一代大模型 Llama3,在这一领域中树立了新的里程碑。

Llama3 不仅继承了先前模型的强大能力,还通过技术革新,在多模态理解、长文本处理及语言生成等多个方面实现了质的飞跃。Llama3 的开放性和灵活性也为开发者提供了前所未有的便利。无论是进行模型微调,还是集成到现有的系统中,Llama3 都展现了极高的适应性和易用性。

除此之外,提到 Llama3 模型的部署,除了将其部署在云端之外,模型的本地化部署可以让开发者能够在不依赖云计算资源的情况下,实现数据处理和大模型运算的高效率和高隐私性。利用 OpenVINO™ 部署 Llama3 到本地计算资源,例如 AI PC,不仅意味着更快的响应速度和更低的运行成本,还能有效地保护数据安全,防止敏感信息外泄。这对于需要处理高度敏感数据的应用场景尤其重要,如医疗、金融和个人助理等领域。

本文将在简要介绍 Llama3 模型的基础上,重点介绍如何使用 OpenVINO™ 对 Llama3 模型进行优化和推理加速,并将其部署在本地的 AI PC上,进行更快、更智能推理的 AI 推理。

eb7b120730eba1293914a14515945672.jpeg

OpenVINO™

 Llama3 模型简介

Llama3 提供了多种参数量级的模型,如8B和70B参数模型。其核心特点和优势可总结如下:

· 先进的能力与强大的性能:Llama3 模型提供了在推理、语言生成和代码执行等方面的 SOTA 性能,为大型语言模型(LLMs)设定了新的行业标准。

· 增强的效率:采用仅解码器的 Transformer 架构与群组查询注意力(GQA),优化了语言编码效率和计算资源使用,适用于大规模 AI 任务。

· 全面的训练与调优:在超过15万亿的 tokens 上进行预训练,并通过 SFT 和 PPO 等创新的指令微调技术,Llama3在处理复杂的多语言任务和多样化的AI应用中表现卓越。

· 开源社区焦点:作为 Meta 开源倡议的一部分发布, Llama3 鼓励社区参与和创新,开发者可以轻松访问其生态系统并贡献其发展。

OpenVINO™

利用 OpenVINO™ 优化和加速推理

如前所述,部署 Llama3 模型到本地设备上,不仅意味着更快的响应速度和更低的运行成本,还能有效地保护数据安全,防止敏感信息外泄。因此,本文将重点介绍如何利用 OpenVINO™ 将 Llama3 模型进行优化后部署到本地的 AI  PC上。这个过程包括以下具体步骤,使用的是我们常用的OpenVINO™  Notebooks GitHub 仓库中的llm-chatbot 代码示例:https://github.com/openvinotoolkit/openvino_notebooks/tree/latest

详细信息和完整的源代码可以在这里找到:https://github.com/openvinotoolkit/openvino_notebooks/tree/latest/notebooks/llm-chatbot

3dfe0882e3a2affd70263bf004d140aa.gif

由安装必要的依赖包开始

运行 OpenVINO™ Notebooks 仓库的具体安装指南在这里:https://github.com/openvinotoolkit/openvino_notebooks?tab=readme-ov-file#-installation-guide

运行这个llm-chatbot 的代码示例,需要安装以下必要的依赖包。

a69472907270ee8afc684d687fa71d50.png

78f75d76ecdfbd688c925beb17e446cf.gif

选择推理的模型

由于我们在 Jupyter Notebook 演示中提供了一组由 OpenVINO™ 支持的 多语种的大预言模型,您可以从下拉框中首先选择语言。针对Llama3,我们选择英语

1d357374adaeb712aaa773aac5de712e.png

接下来选择 “llama-3-8b-instruct” 来运行该模型的其余优化和推理加速步骤。当然,很容易切换到其他列出的任意模型。

10a17a81b1c06d003e582f391743a6aa.png

65c0a4597332d9610da8b00eecae1332.gif

使用 Optimum-CLI进行模型转换

Optimum Intel 是 Hugging Face Transformers 和  Diffuser 库与 OpenVINO™ 之间的接口,用于加速  Intel 体系结构上的端到端流水线。它提供了易于使用的cli接口,即命令行接口,用于将模型导出为 OpenVINO™ 中间表示(IR)格式。使用下面的一行命令,就可以完成模型的导出

optimum-cli export openvino --model <model_id_or_path> --task <task> <out_dir>

其中,--model 参数是来自 HuggingFace Hub 的模型 ID 或带有模型 ID 的已经将模型下载到本地目录的路径地址(使用.save_pretrained方法保存),--task是导出模型应解决的支持任务之一。对于LLM,它将是 text-generation-with-past。如果模型初始化需要使用远程代码,则应额外传递--trust-remote-code远程代码标志。

f74d19b58bc61dee07aaf2bc7bfec89d.gif

模型权重压缩

尽管像 Llama-3-8B-Instruct 这样的 LLM 在理解和生成类人文本方面变得越来越强大和复杂,但管理和部署这些模型在计算资源、内存占用、推理速度等方面带来了关键挑战,尤其是对于AI PC这种客户端设备。权重压缩算法旨在压缩模型的权重,并可用于优化大型模型的模型占用空间和性能,其中权重的大小相对大于激活的大小,例如大型语言模型(LLM)。与INT8压缩相比,INT4压缩可以进一步压缩模型大小,并提升文本生成性能,但预测质量略有下降。因此,在这里我们选择模型权重压缩为INT4精度。

b4864a1531a14823529d40fa828a28e8.png

0b8d8218c9ecdac0d1d28a0700974b12.gif

使用 Optimum-CLI进行权重压缩

当使用 Optimum-CLI 导出模型时,您还可以选择在线性、卷积和嵌入层上应用 FP16、INT8 位或 INT4 位权重压缩。使用方法非常的简便,就是将--weight格式分别设置为fp16、int8或int4。这种类型的优化允许减少内存占用和推理延迟。默认情况下,int8/int4的量化方案将是不对称的量化压缩。如果您需要使用对称压缩,可以添加--sym。

对 Llama-3-8B-Instruct 模型进行 INT4 量化,我们指定以下参数:

compression_configs = {
        "llama-3-8b-instruct": {
            "sym": True,
            "group_size": 128,
            "ratio": 0.8,
        },
}

--group size参数将定义用于量化的组大小,为128。

--ratio参数控制4位和8位量化之间的比率。这意味着80%的层将被量化为int4,而20%的层将量化为int8。

运行Optimum-CLI进行模型的下载及权重压缩的命令如下:

optimum-cli export openvino --model "llama-3-8b-instruct" --task text-generation-with-past --weight-format int4 --group-size 128 --ratio 0.8 –sym

运行上述命令后,模型将从 Hugging Face Hub 自动下载 Llama-3-8B-Instruct 模型,并进行相应的模型压缩操作。

对于模型下载有困难的开发者,也可以从 ModelScope 开源社区的以下链接:

Meta-Llama-3-8B-Instruct:

https://modelscope.cn/models/LLM-Research/Meta-Llama-3-8B-Instruct

Meta-Llama-3-70B-Instruct:

https://modelscope.cn/models/LLM-Research/Meta-Llama-3-70B-Instruct

通过Git的方式进行下载:

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

经过权重压缩后,我们可以看到,8B模型的体积大小已经被压缩为仅有5GB左右。

3f42ed3e1713f1fa6cad6a0abfdc2485.png

06db6026326dfbb905cd10e4adabe337.gif

选择推理设备和模型变体

由于 OpenVINO™ 能够在一系列硬件设备上轻松部署,因此还提供了一个下拉框供您选择将在其上运行推理的设备。考虑到要对模型尺寸和性能需求,在这里我们选择搭载了英特尔®酷睿™ Ultra7 155H 处理器的 AI PC 上的 GPU 作为推理设备。

414878e9fea73af90d6188312a80afd4.png

6e45ad9ebde632bcc5708c2cc34ef341.gif

使用 Optimum Intel 实例化模型

Optimum Intel 可用于从将下载到本地并完成了权重压缩后的模型进行加载,并创建推理流水线,通过Hugging FaceAPI 使用 OpenVINO Runtime 运行推理。在这种情况下,这意味着我们只需要将  AutoModelForXxx 类替换为相应的 OVModelForXxx 类。

e17d11e3f1792a6e08c06605598558c3.png

a79ab4e08e419e1c21bc29c31be07ece.gif

运行聊天机器人

现在万事具备,在这个 Notebook 代码示例中我们还提供了一个基于 Gradio 的用户友好的界面。现在就让我们把聊天机器人运行起来吧。

69b08460c9d0272b5ea0e26d370a8578.gif

OpenVINO™

小结:

整个的步骤就是这样!现在就开始跟着我们提供的代码和步骤,动手试试用 OpenVINO™ 在AI PC上运行基于Llama3大语言模型的聊天机器人吧。

关于英特尔 OpenVINO™ 工具套件的详细资料,包括其中我们提供的三百多个经验证并优化的预训练模型的详细资料,请您点击https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/overview.html

除此之外,为了方便大家了解并快速掌握 OpenVINO™ 的使用,我们还提供了一系列开源的 Jupyter notebook demo。

运行这些 notebook,就能快速了解在不同场景下如何利用 OpenVINO™ 实现一系列、包括计算机视觉、语音及自然语言处理任务。

OpenVINO™ notebooks 的资源可以在 GitHub 下载安装:https://github.com/openvinotoolkit/openvino_notebooks 。

OpenVINO™

--END--

点击下方图片,让我们一起成为“Issues 猎手”,共创百万用户开源生态!
你也许想了解(点击蓝字查看)⬇️➡️ 隆重介绍 OpenVINO™ 2024.0: 为开发者提供更强性能和扩展支持➡️ 隆重推出 OpenVINO 2023.3 ™ 最新长期支持版本➡️ OpenVINO™ 2023.2 发布:让生成式 AI 在实际场景中更易用➡️ 开发者实战 | 介绍OpenVINO™ 2023.1:在边缘端赋能生成式AI➡️ 基于 ChatGLM2 和 OpenVINO™ 打造中文聊天助手➡️ 基于 Llama2 和 OpenVINO™ 打造聊天机器人➡️ OpenVINO™ DevCon 2023重磅回归!英特尔以创新产品激发开发者无限潜能➡️ 5周年更新 | OpenVINO™  2023.0,让AI部署和加速更容易➡️ OpenVINO™5周年重头戏!2023.0版本持续升级AI部署和加速性能➡️ 开发者实战系列资源包来啦!➡️ 以AI作画,祝她节日快乐;简单三步,OpenVINO™ 助你轻松体验AIGC
扫描下方二维码立即体验 
OpenVINO™ 工具套件 2024.0

点击 阅读原文 立即体验OpenVINO™ 2024.0,评论区已开放,欢迎大家留言评论!

文章这么精彩,你有没有“在看”?

  • 19
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
llama2是一款AI模型部署引擎,可以将训练好的模型应用到实际的生产环境中。与在线部署不同,离线部署是指将模型部署到本地设备,使其可以在没有网络连接的情况下运行llama2离线部署的主要优点之一是保护模型的私密性和安全性。由于模型和数据都存储在本地,而不是通过网络传输,因此可以有效地防止未经授权的访问和攻击。此外,离线部署还可以提高模型的响应速度,因为数据不需要通过网络传输。 离线部署过程相对较为简单。首先,需要将训练好的模型从云端或其他地方导出为可用于离线部署的格式,如TensorFlow SavedModel或ONNX。接下来,在目标设备上安装llama2,并将模型文件传输到该设备上。然后,使用llama2提供的命令行工具或API调用去加载模型,创建推理引擎,并开始进行推理操作。 离线部署的一个挑战是设备的计算资源限制。由于离线部署通常在资源有限的设备上进行,如边缘设备或移动设备,因此需要对模型进行优化,以在有限的资源下实现高性能。这可以通过量化模型、裁剪冗余参数和使用硬件加速等方法来实现。 总之,llama2离线部署提供了一种安全、高效的方式,将训练好的AI模型部署到本地设备上。这种部署方式在一些特定的场景中非常有用,尤其是对于需要保护私密数据和实现低延迟的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值