和软件将个人计算的强大功能带到人工智能PC上,将工作、协作和创新的效率提升到一个全新的水平。生成式应用程序(如AI聊天)由于高处理要求而存在于云中。在这篇博客中,我们将探索Ryzen ™ 的构建模块,并展示利用它来构建一个仅在Ryzen AI笔记本上以最佳性能运行的AI聊天机器人是多么容易。
全栈Ryzen™ AI软件
Ryzen AI配备了一个专用的神经处理单元(NPU),用于与内核集成在片上的AI加速。 Ryzen AI软件开发工具包(K)使开发人员能够采用在PyTch或中训练的模型,并在由Ryzen AI支持的PC上运行它们,可以地优化任务和工作负载,释放CPU和资源,并以更低的功耗确保最佳性能。了解更多关于Ryzen AI的。
SDK包括用于在NPU上优化和部署AI推理的工具和运行时库。安装很简单,该套件配备了各种预量化的准备部署模型的拥抱脸AMD模型动物园。开发人员可以在几分钟内开始构建他们的应用程序,在Ryzen AI PC上释放AI加速的全部潜力。
构建AI Chatbot
人工智能聊天机器人需要大量的处理能力,以至于它们通常生活在云中。nbsp;实际上,我们可以在PC上运行ChatGPT,但是本地应用程序通过Internet将提示发送到服务器进行LLM模型处理,并在收到响应后简单地显示响应。
然而,在这种情况下,本地和高效的AI聊天机器人不需要云支持。您可以从Hugging Face一个开源的预训练OPT1.3B模型,并通过一个简单的三步过程将其部署在Ryzen AI笔记本电脑上,并使用预构建的Gradio Chatbot应用程序。
步骤1:从Hugging Face下载预训练的opt-1.3b模型
步骤2:量化从FP32到INT 8的下载模型
步骤3:使用模型部署Chatbot应用程序
先决条件
首先,您需要确保满足以下先决条件。
AMD锐龙AI笔记本电脑与Windows®(R) 11个
Anaconda,如果需要,请从 这里
的Ryzen AI AIE驱动程序和软件。遵循简单的单击安装 这里
本博客的辅助材料发布在AMD GitHub存储库中。
接下来,克隆存储库或下载并解压缩Chatbot-with-RyzenAI-1.0.zip到安装Ryzen AI SW的根目录中。在本例中,它是C:UserahoqRyzenAI
cd C:UseahoqRyzenAI
git clone alimulh/Chatbot-with-RyzenAI-1.0
#激活安装RyzenAI时创建的conda环境。在我的情况下,它是ryzenai-1.0-20231204-120522
Conda vate Ryzenai-1.0-20231204-120522
#使用requirements.txt文件安装gradio pkage。聊天机器人的浏览器应用程序是用Gradio创建的
p安装-r要求. txt
#初始化路径
setup.bat
现在,您可以通过3个步骤创建聊天机器人:
Step-1从Hugging Face下载预训练模型
在此步骤中,从Hugging Face下载预训练的Opt-1.3b模型。您可以修改run.py脚本,从您自己或您的存储库下载预训练模型。Opt-1.3b是一个大的,~B的模型。下载时间取决于网速。在这种情况下,它花了~6分钟。
cd Chatbot-with-RyzenAI-1.0
run.py--model_name opt-1.3b --下载
下载的模型保存在文件夹opt-1.3b_pretrained_fp32中,如下所示。
步骤2量化下载的模型从FP32到Int8
下载完成后,我们使用以下命令对模型进行重新配置:
python run.py--model_name opt-1.3b-python
量化是一个两步的过程。首先,FP32模型是“平滑量化”的,以减少量化过程中的精度损失。它本质上是识别激活系数中的异常值并相应地调节权重。因此,在量化期间,如果离群值被丢弃,则误差引入是可忽略的。Smooth Quant是由AMD的先驱研究人员之一Song Han博士发明的,他是麻省理工学院EECS系的教授。下面是平滑量化技术如何工作的可视化演示。
你可以在这里了解更多关于平滑量化(smoothquant)技术的信息。在平滑建模过程之后,条件模型沿着与mart.json文件一起保存在opt-1.3b_smoothquant文件夹的“model_onnx”文件夹中。以下是平滑量化对数的屏幕截图:
平滑量化需要约30秒才能完成。一旦完成,最佳量化器用于将模型转换为int 8。int 8量化模型然后保存在“opt-1.3b_smoothquant "文件夹内的”model_onnx_int8“文件夹中。量化是一个离线过程。大约需要2-3分钟完成,需要一次完成。下面是Int 8量化日志的屏幕截图:
Step-3评估模型并使用聊天机器人应用程序部署它
接下来,评估量化模型并使用以下命令以NPU为目标运行它。注意,模型路径被设置为我们在上一步中保存int8量化模型的位置,
python run.py --model_name opt-1.3b --target aie --local_path。 opt-1.3b_smoothquantmodel_onnx_int8
在第一次运行期间,模型由内联编译器自动编译。编译也是一个两步的过程:首先,编译器识别可以在NPU中执行的层和需要在CPU中执行的层。然后创建子图集。一组用于NPU,另一组用于CPU。最后,它为每个子图创建针对相应执行单元的指令集。这些指令由两个ONNX执行提供程序(EP)执行,一个用于CPU,一个用于NPU。在第一次编译之后,已编译的模型保存在该高速缓存中,因此在后续部署中它避免了编译。下面是一个屏幕截图,其中模型信息是在编译流程中打印出来的。
编译后,模型在NPU和CPU上运行。将应用测试提示。LLM Opt1.3B模型的响应显示了正确的答案。请记住,我们下载并部署了一个公开的预训练模型。因此,它的准确性是主观的,可能并不总是像预期的那样。我们强烈建议在生产部署之前对公开可用的模型进行微调。下面是测试提示和响应的屏幕截图:
现在,让我们使用保存在路径opt-1. 3b-smoothquantmodel_onnx_int 8中的int 8量化模型启动聊天机器人
python gradio_appopt_demo_gui. py——model_file. opt—1.3b_smoothquantmodel_onnx_int8
如命令提示符所示,聊天机器人应用程序在1234上的本地主机上运行。
打开浏览器并浏览到http://localhost:1234。
在浏览器应用程序上,设置max_output_token=64并输入提示“AMD做什么?“输入文本框中。聊天机器人输出如下所示的响应。它还将KPI(关键性能指标)计算为token/sec。在这种情况下,它是每秒约4.7个令牌。
恭喜你,你已经成功构建了一个私人AI聊天机器人。它完全运行在笔记本电脑上,OPT1.3B是一种LLM(大型语言模型)。
结论
AMD锐龙™ AI全栈工具使用户能够在AI PC上轻松创建以前无法实现的体验-开发人员使用AI应用程序,创作者使用创新和引人入胜的内容,企业主使用工具优化工作流程和效率。
我们很高兴能将这项技术带给我们的客户和合作伙伴。如果您有任何问题或需要澄清,我们很乐意听取您的意见。查看我们的GitHub存储库以获取和示例设计,加入我们的讨论,或发送邮件至amd_ai_mkt@amd.com。
审核编辑 黄宇
上一篇:美的集团再冲港股IPO!2023年机器人收入超330亿,募资扩张海外业务
下一篇:移动机器人的未来:利用最新芯片与技术实现行业革命
- 热门资源推荐
- 热门放大器推荐
- LTC1261CS8 最小部件数 -4V 发生器的典型应用电路
- 基于STM32和SLLIMM nano™的BLDC / PMSM驱动器演示板
- 使用 onsemi 的 NCP1410DM 的参考设计
- 基于 AD2S1210 的高性能 10 位至 16 位旋转变压器数字转换器
- 使用 Microchip Technology 的 TCL1117-2.85 的参考设计
- LM199 10V 缓冲电压基准的典型应用电路
- 使用 ROHM Semiconductor 的 BD83070GWL 的参考设计
- 【训练营】蹦迪机械狗
- LTC1704EGN 演示板、550kHz 同步降压、具有线性稳压器的突发模式
- LTC2228 的典型应用 - 12 位、65Msps 低功率 3V ADC