人工智能處理器和軟件將個(gè)人計(jì)算的強(qiáng)大功能帶到人工智能PC上,將工作、協(xié)作和創(chuàng)新的效率提升到一個(gè)全新的水平。生成式AI應(yīng)用程序(如AI聊天機(jī)器人)由于高處理要求而存在于云中。在這篇博客中,我們將探索Ryzen ? AI技術(shù)的構(gòu)建模塊,并展示利用它來構(gòu)建一個(gè)僅在Ryzen AI筆記本電腦上以最佳性能運(yùn)行的AI聊天機(jī)器人是多么容易。
全棧Ryzen? AI軟件
Ryzen AI配備了一個(gè)專用的神經(jīng)處理單元(NPU),用于與CPU內(nèi)核集成在片上的AI加速。AMD Ryzen AI軟件開發(fā)工具包(SDK)使開發(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í)庫。安裝很簡單,該套件配備了各種預(yù)量化的準(zhǔn)備部署模型的擁抱臉AMD模型動(dòng)物園。開發(fā)人員可以在幾分鐘內(nèi)開始構(gòu)建他們的應(yīng)用程序,在Ryzen AI PC上釋放AI加速的全部潛力。
構(gòu)建AI Chatbot
人工智能聊天機(jī)器人需要大量的處理能力,以至于它們通常生活在云中。nbsp;實(shí)際上,我們可以在PC上運(yùn)行ChatGPT,但是本地應(yīng)用程序通過Internet將提示發(fā)送到服務(wù)器進(jìn)行LLM模型處理,并在收到響應(yīng)后簡單地顯示響應(yīng)。
然而,在這種情況下,本地和高效的AI聊天機(jī)器人不需要云支持。您可以從Hugging Face下載一個(gè)開源的預(yù)訓(xùn)練OPT1.3B模型,并通過一個(gè)簡單的三步過程將其部署在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,如果需要,請從 這里
最新的Ryzen AI AIE驅(qū)動(dòng)程序和軟件。遵循簡單的單擊安裝 這里
本博客的輔助材料發(fā)布在AMD GitHub存儲(chǔ)庫中。
接下來,克隆存儲(chǔ)庫或下載并解壓縮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)在,您可以通過3個(gè)步驟創(chuàng)建聊天機(jī)器人:
Step-1從Hugging Face下載預(yù)訓(xùn)練模型
在此步驟中,從Hugging Face下載預(yù)訓(xùn)練的Opt-1.3b模型。您可以修改run.py腳本,從您自己或您公司的存儲(chǔ)庫下載預(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
下載完成后,我們使用以下命令對模型進(jìn)行重新配置:
python run.py--model_name opt-1.3b-python
量化是一個(gè)兩步的過程。首先,F(xiàn)P32模型是“平滑量化”的,以減少量化過程中的精度損失。它本質(zhì)上是識(shí)別激活系數(shù)中的異常值并相應(yīng)地調(diào)節(jié)權(quán)重。因此,在量化期間,如果離群值被丟棄,則誤差引入是可忽略的。Smooth Quant是由AMD的先驅(qū)研究人員之一Song Han博士發(fā)明的,他是麻省理工學(xué)院EECS系的教授。下面是平滑量化技術(shù)如何工作的可視化演示。
你可以在這里了解更多關(guān)于平滑量化(smoothquant)技術(shù)的信息。在平滑建模過程之后,條件模型沿著與mart.json文件一起保存在opt-1.3b_smoothquant文件夾的“model_onnx”文件夾中。以下是平滑量化對數(shù)的屏幕截圖:
平滑量化需要約30秒才能完成。一旦完成,最佳量化器用于將模型轉(zhuǎn)換為int 8。int 8量化模型然后保存在“opt-1.3b_smoothquant "文件夾內(nèi)的”model_onnx_int8“文件夾中。量化是一個(gè)離線過程。大約需要2-3分鐘完成,需要一次完成。下面是Int 8量化日志的屏幕截圖:
Step-3評(píng)估模型并使用聊天機(jī)器人應(yīng)用程序部署它
接下來,評(píng)估量化模型并使用以下命令以NPU為目標(biāo)運(yùn)行它。注意,模型路徑被設(shè)置為我們在上一步中保存int8量化模型的位置,
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è)兩步的過程:首先,編譯器識(shí)別可以在NPU中執(zhí)行的層和需要在CPU中執(zhí)行的層。然后創(chuàng)建子圖集。一組用于NPU,另一組用于CPU。最后,它為每個(gè)子圖創(chuàng)建針對相應(yīng)執(zhí)行單元的指令集。這些指令由兩個(gè)ONNX執(zhí)行提供程序(EP)執(zhí)行,一個(gè)用于CPU,一個(gè)用于NPU。在第一次編譯之后,已編譯的模型保存在該高速緩存中,因此在后續(xù)部署中它避免了編譯。下面是一個(gè)屏幕截圖,其中模型信息是在編譯流程中打印出來的。
編譯后,模型在NPU和CPU上運(yùn)行。將應(yīng)用測試提示。LLM Opt1.3B模型的響應(yīng)顯示了正確的答案。請記住,我們下載并部署了一個(gè)公開的預(yù)訓(xùn)練模型。因此,它的準(zhǔn)確性是主觀的,可能并不總是像預(yù)期的那樣。我們強(qiáng)烈建議在生產(chǎn)部署之前對公開可用的模型進(jìn)行微調(diào)。下面是測試提示和響應(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)行。
打開瀏覽器并瀏覽到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(大型語言模型)。
結(jié)論
AMD銳龍? AI全棧工具使用戶能夠在AI PC上輕松創(chuàng)建以前無法實(shí)現(xiàn)的體驗(yàn)-開發(fā)人員使用AI應(yīng)用程序,創(chuàng)作者使用創(chuàng)新和引人入勝的內(nèi)容,企業(yè)主使用工具優(yōu)化工作流程和效率。
我們很高興能將這項(xiàng)技術(shù)帶給我們的客戶和合作伙伴。如果您有任何問題或需要澄清,我們很樂意聽取您的意見。查看我們的GitHub存儲(chǔ)庫以獲取教程和示例設(shè)計(jì),加入我們的討論論壇,或發(fā)送電子郵件至amd_ai_mkt@amd.com。
審核編輯 黃宇
-
處理器
+關(guān)注
關(guān)注
68文章
19259瀏覽量
229651 -
機(jī)器人
+關(guān)注
關(guān)注
211文章
28379瀏覽量
206914 -
AI
+關(guān)注
關(guān)注
87文章
30728瀏覽量
268886 -
ryzen
+關(guān)注
關(guān)注
1文章
81瀏覽量
16987
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論