生成式 AI 不断重塑内容创作的行业格局,为内容创作者带来无限可能。这项技术可用于创作之前无法想象的图像、视频和文章。大语言模型 (LLM) 已成为 AI 时代的热门话题。通过创建提示词,任何人都可以利用它生成歌词,解决复杂的物理问题,或者草拟演示稿的大纲。这些 AI 功能不再需要通过云或订阅服务来实现。它们可以运行在您的本地 PC 上,允许您对模型进行全面控制,以创建您专属的模型输出。
在本文中,我们将向您展示如何在搭载英特尔锐炫™ A770 16GB 显卡的 PC 上进行设置,以及尝试使用多种常见的大语言模型 (LLM)。本教程将使用 Mistral-7B-Instruct LLM。借助相同的步骤,您还可以运行 Phi2、Llama2 等 PyTorch LLM,甚至是最新的 Llama3 模型!
Intel® LLM Library for PyTorch
我们之所以能够使用相同的基础安装来运行各种模型,要归功于 Intel® LLM Library for PyTorch(一种面向 PyTorch 的 LLM 库 https://github.com/intel-analytics/ipex-llm ),以下简称为IPEX-LLM。它在面向 PyTorch* 的英特尔® 扩展的基础上构建而成,包含先进的 LLM 优化和低位 (INT4/FP4/INT8/FP8) 权重压缩,以及面向英特尔硬件的最新性能优化。IPEX-LLM 利用英特尔独立显卡(例如锐炫 A 系列显卡)中的 Xe 内核 XMX AI 加速来提升性能。它支持用户在Windows的第二代Linux子系统、原生 Windows 环境和原生 Linux 中使用英特尔锐炫 A 系列显卡。
由于这个方案是基于原生 PyTorch的实现,因此您可以轻松替换为其他PyTorch支持的模型及输入数据,并可在具有加速功能的英特尔锐炫 GPU 上高效运行。
例如,当使用 IPEX-LLM 库运行 Mistral 7B 模型时,锐炫 A770 16GB 显卡每秒可处理 70 个Token词元 (每秒Token数TPS)。这意味着什么?一般而言,1 个词元相当于 0.75 个词。人类的平均阅读速度是每秒 4 个词(参考:https://wordsrated.com/speed-reading-statistics/),或者 5.3 TPS。因此锐炫 A770 16GB 显卡生成单词的速度比普通人的阅读速度要快得多!
我们的内部测试表明,锐炫 A770 16GB 显卡在运行各类模型时均能提供出众功能,因此,它是在端侧运行 LLM 的理想选择。
接下来,我们来看一下安装指南,以帮助您在锐炫 A 系列 GPU 上使用 LLM。
安装说明
您也可以参照此页面来设置环境:在搭载英特尔 GPU 的 Windows 系统上安装 IPEX-LLM — IPEX-LLM 最新文档(https://ipex-llm.readthedocs.io/en/latest/doc/LLM/Quickstart/install_windows_gpu.html)
1. 在设备管理器中禁用集成显卡。
2. 下载并安装 Anaconda(https://www.anaconda.com/download)。
3. 安装完成后,打开“开始”菜单,搜索 Anaconda Prompt,以管理员身份运行它,然后使用以下命令创建一个虚拟环境。分别输入每个命令:
4. 创建一个文本文档,将其命名为 demo.py,并保存到 C:\Users\Your_Username\Documents 或者您选择的目录中。
5. 使用您所选的编辑器打开 demo.py,并将以下代码示例复制到 demo.py 中:
注:上述代码从此代码仓库(https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2)的示例代码中构建。
6. 保存 demo.py。在 Anaconda 中,使用 cd 命令导航至 demo.py 所在的目录,并在 Anaconda Prompt 中运行以下命令:
运行演示样例代码,就可以在发出“do you have mayonnaise recipe”的询问后,获得由模型提供的相应回答。
现在,您可以得到制作蛋黄酱的一份美味食谱!
更换模型
在我们刚才设置好的环境中,您可以通过替换上述 demo.py 中的 Hugging Face 模型 id,尝试运行其他常见的 Hugging Face 模型,例如 llama2-7B-chat-hf、llama3-8B-it、phi-2、gemma-7B-i 和 stablelm2。
不同的模型可能需要不同版本的 transformer 包。如果您在启动 demo.py 时遇到了错误,请按照以下步骤对 transformer 进行升级/降级:
1. Open Anaconda Prompt
2. conda activate llm
3. pip install transformers==4.37.0
经过验证的 transformer 版本:
内存要求可能因模型和框架而异。对于运行 IPEX-LLM 的英特尔锐炫 A750 8GB,建议您使用 Llama-2-7B-chat-hf、Mistral-7B-Instruct-v0.2、phi-2 或 chatglm3-6B。
实现聊天机器人 WebUI
现在,让我们实施一个 Gradio 聊天机器人 WebUI,以改善您的 web 浏览器使用体验。如欲进一步了解如何实施基于 LLM 的交互式聊天机器人,请参见 https://www.gradio.app/guides/creating-a-chatbot-fast
1. 使用您所选的文本编辑器,创建一个名为 chatbot_gradio.py 的文档。
2. 将以下代码段复制粘贴到 chatbot_gradio.py 中:
3. 打开一个新的 anaconda prompt,并输入以下命令:
-
pip install gradio
-
conda activate llm
-
cd to the directory that chat_gradio.py is located in
-
python chatbot_gradio.py
4. 打开您的 web 浏览器并导航至 127.0.0.1:7860。您应看到一个使用 mistral-7b-instruct-v0.2 语言模型设置的聊天机器人!现在,您的聊天机器人有了一个美观的 WebUI。
5.提出一个问题,与您的聊天机器人开始对话吧。
系统配置与工作负载
补充说明:
各位读者可以根据上面的步骤,利用现有相仿的环境实现模型的下载及部署。如果需要使用托管在魔搭社区的模型完成下载及部署,可以参考 IPEX-LLM 相关的部署指南 (https://github.com/intel-analytics/ipex-llm/tree/main/python/llm/example/GPU/ModelScope-Models )及魔搭社区的相关模型下载方式。
通知和免责声明
1、实际性能受使用情况、配置和其他因素的差异影响。更多信息请访问性能指标网站。
2、性能测试结果基于配置信息中显示的日期进行测试,且可能并未反映所有公开可用的安全更新。
3、详情请参阅配置信息披露。没有任何产品或组件是绝对安全的。
4、基于预生产系统和组件的结果,以及使用英特尔参考平台(内部示例新系统)、英特尔内部分析或架构模拟或建模评估或模拟的结果,仅供您参考。结果可能因任何系统、组件、规格或配置未来进行更改而有所差异。
5、具体成本和结果可能不同。
6、英特尔技术可能需要启用硬件、软件或激活服务。
© 英特尔公司版权所有。英特尔、英特尔标识、锐炫和其他英特尔标志是英特尔公司或其子公司在美国和/或其他国家(地区)的商标。
*其他的名称和品牌可能是其他所有者的资产。
疑问没解决? 我们帮您!
如果您在本文中未能找到解决当前疑问的办法,不用担心——正睿专业技术支持团队随时待命
文章来源:微博 作者:英特尔开发人员专区