人工智能處理器和軟件將個(gè)人計(jì)算的強(qiáng)大功能帶到人工智能PC上,將工作、協(xié)作和創(chuàng)新的效率提升到一個(gè)全新的水平。生成式AI應(yīng)用程序(如AI聊天機(jī)器人)由于高處理要求而存在于云中。在這篇博客中,我們將探索Ryzen ? AI技術(shù)的構(gòu)建模塊,并展示利用它來(lái)構(gòu)建一個(gè)僅在Ryzen AI筆記本電腦上以最佳性能運(yùn)行的AI聊天機(jī)器人是多么容易。
全棧Ryzen? AI軟件
Ryzen AI配備了一個(gè)專用的神經(jīng)處理單元(NPU),用于與CPU內(nèi)核集成在片上的AI加速。AMD Ryzen AI軟件開(kāi)發(fā)工具包(SDK)使開(kāi)發(fā)人員能夠采用在PyTorch或TensorFlow中訓(xùn)練的機(jī)器學(xué)習(xí)模型,并在由Ryzen AI支持的PC上運(yùn)行它們,可以智能地優(yōu)化任務(wù)和工作負(fù)載,釋放CPU和GPU資源,并以更低的功耗確保最佳性能。了解更多關(guān)于Ryzen AI產(chǎn)品的信息。
SDK包括用于在NPU上優(yōu)化和部署AI推理的工具和運(yùn)行時(shí)庫(kù)。安裝很簡(jiǎn)單,該套件配備了各種預(yù)量化的準(zhǔn)備部署模型的擁抱臉AMD模型動(dòng)物園。開(kāi)發(fā)人員可以在幾分鐘內(nèi)開(kāi)始構(gòu)建他們的應(yīng)用程序,在Ryzen AI PC上釋放AI加速的全部潛力。
構(gòu)建AI Chatbot
人工智能聊天機(jī)器人需要大量的處理能力,以至于它們通常生活在云中。nbsp;實(shí)際上,我們可以在PC上運(yùn)行ChatGPT,但是本地應(yīng)用程序通過(guò)Internet將提示發(fā)送到服務(wù)器進(jìn)行LLM模型處理,并在收到響應(yīng)后簡(jiǎn)單地顯示響應(yīng)。
然而,在這種情況下,本地和高效的AI聊天機(jī)器人不需要云支持。您可以從Hugging Face下載一個(gè)開(kāi)源的預(yù)訓(xùn)練OPT1.3B模型,并通過(guò)一個(gè)簡(jiǎn)單的三步過(guò)程將其部署在Ryzen AI筆記本電腦上,并使用預(yù)構(gòu)建的Gradio Chatbot應(yīng)用程序。
步驟1:從Hugging Face下載預(yù)訓(xùn)練的opt-1.3b模型
步驟2:量化從FP32到INT 8的下載模型
步驟3:使用模型部署Chatbot應(yīng)用程序
先決條件
首先,您需要確保滿足以下先決條件。
AMD銳龍AI筆記本電腦與Windows?(R) 11個(gè)操作系統(tǒng)
Anaconda,如果需要,請(qǐng)從 這里
最新的Ryzen AI AIE驅(qū)動(dòng)程序和軟件。遵循簡(jiǎn)單的單擊安裝 這里
本博客的輔助材料發(fā)布在AMD GitHub存儲(chǔ)庫(kù)中。
接下來(lái),克隆存儲(chǔ)庫(kù)或下載并解壓縮Chatbot-with-RyzenAI-1.0.zip到安裝Ryzen AI SW的根目錄中。在本例中,它是C:UserahoqRyzenAI
cd C:UsersahoqRyzenAI
git clone alimulh/Chatbot-with-RyzenAI-1.0
#激活安裝RyzenAI時(shí)創(chuàng)建的conda環(huán)境。在我的情況下,它是ryzenai-1.0-20231204-120522
Conda activate Ryzenai-1.0-20231204-120522
#使用requirements.txt文件安裝gradio pkage。聊天機(jī)器人的瀏覽器應(yīng)用程序是用Gradio創(chuàng)建的
pip安裝-r要求. txt
#初始化路徑
setup.bat
現(xiàn)在,您可以通過(guò)3個(gè)步驟創(chuàng)建聊天機(jī)器人:
Step-1從Hugging Face下載預(yù)訓(xùn)練模型
在此步驟中,從Hugging Face下載預(yù)訓(xùn)練的Opt-1.3b模型。您可以修改run.py腳本,從您自己或您公司的存儲(chǔ)庫(kù)下載預(yù)訓(xùn)練模型。Opt-1.3b是一個(gè)大的,~4GB的模型。下載時(shí)間取決于網(wǎng)速。在這種情況下,它花了~6分鐘。
cd Chatbot-with-RyzenAI-1.0
python run.py--model_name opt-1.3b --下載
下載的模型保存在文件夾opt-1.3b_pretrained_fp32中,如下所示。
步驟2量化下載的模型從FP32到Int8
下載完成后,我們使用以下命令對(duì)模型進(jìn)行重新配置:
python run.py--model_name opt-1.3b-python
量化是一個(gè)兩步的過(guò)程。首先,F(xiàn)P32模型是“平滑量化”的,以減少量化過(guò)程中的精度損失。它本質(zhì)上是識(shí)別激活系數(shù)中的異常值并相應(yīng)地調(diào)節(jié)權(quán)重。因此,在量化期間,如果離群值被丟棄,則誤差引入是可忽略的。Smooth Quant是由AMD的先驅(qū)研究人員之一Song Han博士發(fā)明的,他是麻省理工學(xué)院EECS系的教授。下面是平滑量化技術(shù)如何工作的可視化演示。
你可以在這里了解更多關(guān)于平滑量化(smoothquant)技術(shù)的信息。在平滑建模過(guò)程之后,條件模型沿著與mart.json文件一起保存在opt-1.3b_smoothquant文件夾的“model_onnx”文件夾中。以下是平滑量化對(duì)數(shù)的屏幕截圖:
平滑量化需要約30秒才能完成。一旦完成,最佳量化器用于將模型轉(zhuǎn)換為int 8。int 8量化模型然后保存在“opt-1.3b_smoothquant "文件夾內(nèi)的”model_onnx_int8“文件夾中。量化是一個(gè)離線過(guò)程。大約需要2-3分鐘完成,需要一次完成。下面是Int 8量化日志的屏幕截圖:
Step-3評(píng)估模型并使用聊天機(jī)器人應(yīng)用程序部署它
接下來(lái),評(píng)估量化模型并使用以下命令以NPU為目標(biāo)運(yùn)行它。注意,模型路徑被設(shè)置為我們?cè)谏弦徊街斜4鎖nt8量化模型的位置,
python run.py --model_name opt-1.3b --target aie --local_path。 opt-1.3b_smoothquantmodel_onnx_int8
在第一次運(yùn)行期間,模型由內(nèi)聯(lián)編譯器自動(dòng)編譯。編譯也是一個(gè)兩步的過(guò)程:首先,編譯器識(shí)別可以在NPU中執(zhí)行的層和需要在CPU中執(zhí)行的層。然后創(chuàng)建子圖集。一組用于NPU,另一組用于CPU。最后,它為每個(gè)子圖創(chuàng)建針對(duì)相應(yīng)執(zhí)行單元的指令集。這些指令由兩個(gè)ONNX執(zhí)行提供程序(EP)執(zhí)行,一個(gè)用于CPU,一個(gè)用于NPU。在第一次編譯之后,已編譯的模型保存在該高速緩存中,因此在后續(xù)部署中它避免了編譯。下面是一個(gè)屏幕截圖,其中模型信息是在編譯流程中打印出來(lái)的。
編譯后,模型在NPU和CPU上運(yùn)行。將應(yīng)用測(cè)試提示。LLM Opt1.3B模型的響應(yīng)顯示了正確的答案。請(qǐng)記住,我們下載并部署了一個(gè)公開(kāi)的預(yù)訓(xùn)練模型。因此,它的準(zhǔn)確性是主觀的,可能并不總是像預(yù)期的那樣。我們強(qiáng)烈建議在生產(chǎn)部署之前對(duì)公開(kāi)可用的模型進(jìn)行微調(diào)。下面是測(cè)試提示和響應(yīng)的屏幕截圖:
現(xiàn)在,讓我們使用保存在路徑opt-1. 3b-smoothquantmodel_onnx_int 8中的int 8量化模型啟動(dòng)聊天機(jī)器人
python gradio_appopt_demo_gui. py——model_file. opt—1.3b_smoothquantmodel_onnx_int8
如命令提示符所示,聊天機(jī)器人應(yīng)用程序在端口1234上的本地主機(jī)上運(yùn)行。
打開(kāi)瀏覽器并瀏覽到http://localhost:1234。
在瀏覽器應(yīng)用程序上,設(shè)置max_output_token=64并輸入提示“AMD做什么?“輸入文本框中。聊天機(jī)器人輸出如下所示的響應(yīng)。它還將KPI(關(guān)鍵性能指標(biāo))計(jì)算為token/sec。在這種情況下,它是每秒約4.7個(gè)令牌。
?
恭喜你,你已經(jīng)成功構(gòu)建了一個(gè)私人AI聊天機(jī)器人。它完全運(yùn)行在筆記本電腦上,OPT1.3B是一種LLM(大型語(yǔ)言模型)。
結(jié)論
AMD銳龍? AI全棧工具使用戶能夠在AI PC上輕松創(chuàng)建以前無(wú)法實(shí)現(xiàn)的體驗(yàn)-開(kāi)發(fā)人員使用AI應(yīng)用程序,創(chuàng)作者使用創(chuàng)新和引人入勝的內(nèi)容,企業(yè)主使用工具優(yōu)化工作流程和效率。
我們很高興能將這項(xiàng)技術(shù)帶給我們的客戶和合作伙伴。如果您有任何問(wèn)題或需要澄清,我們很樂(lè)意聽(tīng)取您的意見(jiàn)。查看我們的GitHub存儲(chǔ)庫(kù)以獲取教程和示例設(shè)計(jì),加入我們的討論論壇,或發(fā)送電子郵件至amd_ai_mkt@amd.com。
審核編輯 黃宇
-
處理器
+關(guān)注
關(guān)注
68文章
19740瀏覽量
232872 -
機(jī)器人
+關(guān)注
關(guān)注
212文章
29280瀏覽量
210873 -
AI
+關(guān)注
關(guān)注
87文章
33554瀏覽量
274196 -
ryzen
+關(guān)注
關(guān)注
1文章
81瀏覽量
17141
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
聊天機(jī)器人在國(guó)內(nèi)為什么只能做客服?
聊天機(jī)器人的自動(dòng)問(wèn)答技術(shù)實(shí)現(xiàn)
如何利用Python+ESP8266 DIY 一個(gè)智能聊天機(jī)器人?
聊天機(jī)器人的作用分析
AI聊天機(jī)器人發(fā)展的前途怎么樣
一個(gè)基于Microsoft聊天機(jī)器人Tay的示例
構(gòu)建聊天機(jī)器人需要哪些資源?
GoGlobal 推出全新 AI 聊天機(jī)器人 – ChatGoGlobal

評(píng)論