http://m.007sbw.cn 2025-09-04 13:37 來源:米爾電子
當(dāng) GPT-4o 用毫秒級響應(yīng)處理圖文混合指令、Gemini-1.5-Pro 以百萬 token 上下文 “消化” 長文檔時,行業(yè)的目光正從云端算力競賽轉(zhuǎn)向一個更實際的命題:如何讓智能 “落地”?—— 擺脫網(wǎng)絡(luò)依賴、保護(hù)本地隱私、控制硬件成本,讓設(shè)備真正具備 “看見并對話” 的離線智能,成為邊緣 AI 突破的核心卡點。
2024 年,隨著邊緣 SoC 算力正式邁入 6 TOPS 門檻,瑞芯微 RK3576 給出了首個可量產(chǎn)的答案:一套完整的多模態(tài)交互對話解決方案。
RK3576 多模態(tài)純文字:自我介紹
如今,“端側(cè)能否獨立運行圖文多輪對話” 已不再是技術(shù)疑問,而是工程實現(xiàn)問題。RK3576 通過硬件算力優(yōu)化與軟件棧協(xié)同,將視覺編碼、語言推理、對話管理三大核心能力封裝為可落地的工程方案,而本文將聚焦其多輪對話的部署全流程,拆解從模型加載到交互推理的每一個關(guān)鍵環(huán)節(jié)。
RK3576 多輪對話:基于歷史回答圖中女孩頭發(fā)和衣服分別是什么顏色
上一次我們詳細(xì)講解在RK3576上部署多模態(tài)模型的案例,這次將繼續(xù)講解多輪對話的部署流程。整體流程基于 rknn-llm 里的多輪對話案例[1]。
RK3576 工作狀態(tài)
一、引言
1.1 什么是多輪對話?
1.2 多輪對話系統(tǒng)鳥瞰:三顆“核心”協(xié)同驅(qū)動
1.3 核心邏輯:多輪對話的處理流程
二、工程化落地:從源碼到部署的全流程
2.1 依賴環(huán)境
2.2 一鍵編譯
2.3 端側(cè)部署步驟
三、效果展示:圖文多輪問答
四、二次開發(fā)與拓展方向
五、結(jié)論與未來發(fā)展方向
多輪對話(Multi-Turn Dialogue)是指用戶與智能系統(tǒng)通過多輪交互逐步明確需求、解決問題的對話形式。這種交互依賴對話歷史的上下文連貫性,要求系統(tǒng)能夠動態(tài)理解用戶意圖、維護(hù)對話狀態(tài)并生成符合語境的回應(yīng)。
本質(zhì)是動態(tài)語境下的交互推理,其核心在于通過多輪信息交換逐步明確用戶需求。例如,用戶可能先詢問 “附近有餐廳嗎?”,系統(tǒng)回應(yīng)后用戶補充 “要適合家庭聚餐的”,系統(tǒng)需結(jié)合歷史對話調(diào)整推薦策略。
這種交互模式與單輪問答的區(qū)別在于:
RK3576 多模態(tài)交互對話方案基于 RKLLM 的核心運作,依賴于圖像視覺編碼器、大語言模型與對話管家這三大模塊的協(xié)同配合,三者各司其職、無縫銜接,共同構(gòu)建起完整的多模態(tài)對話能力。
多輪對話系統(tǒng)架構(gòu)
基于純 C++實現(xiàn),采用單線程事件循環(huán)機制,承擔(dān)著對話流程的統(tǒng)籌調(diào)度工作,具體職責(zé)包括:
該方案的多模態(tài)多輪對話 demo,整體遵循“模型加載 → 圖片預(yù)處理 → 用戶交互 → 推理輸出”的核心流程,支持圖文一體的多模態(tài)對話,適配多輪問答、視覺問答等典型場景。
具體運行機制可拆解為以下步驟:
首先加載大語言模型(LLM),并配置模型路徑、max_new_tokens(生成內(nèi)容最大 token 數(shù))、max_context_len(最大上下文長度)、top_k、特殊 token 等關(guān)鍵參數(shù);隨后加載視覺編碼模型(imgenc),為后續(xù)圖片處理做好準(zhǔn)備。
RK3576 平臺運行多模態(tài)對話 Demo 的終端日志,顯示視覺與語言模型成功加載,包含模型版本、硬件配置及張量信息,完成多模態(tài)交互前的初始化。
讀取輸入圖片后,先將其擴(kuò)展為正方形并填充背景色以統(tǒng)一尺寸,再調(diào)整至模型要求的 392x392 分辨率,最后送入視覺編碼模型進(jìn)行處理,生成圖片的 embedding 向量,完成圖像特征的提取。
程序會提供預(yù)設(shè)問題供用戶選擇(官方案例中也有輸入序號,可以快速提問),同時支持用戶自定義輸入,核心交互邏輯通過以下機制實現(xiàn):
模板示例如下:
<|im_start|>system
You are a helpful assistant.<|im_end|>
<|im_start|>user
{用戶輸入}<|im_end|>
<|im_start|>assistant
用戶輸入后,系統(tǒng)先判斷輸入中是否包含<image>標(biāo)簽:若包含,則將文本與圖片 embedding 結(jié)合,啟動多模態(tài)推理;若不包含,則進(jìn)行純文本推理。組裝輸入結(jié)構(gòu)體并傳遞給模型后,推理結(jié)果將實時打印輸出。
支持用戶輸入“exit”退出程序,此時系統(tǒng)會自動銷毀已加載的模型,并釋放占用的硬件資源,確保運行環(huán)境的整潔。
由于先前我們已經(jīng)講過環(huán)境的部署,如刷機、文件準(zhǔn)備等,這里步驟只提出比較關(guān)鍵的。工程位于:rknn-llm/examples/Multimodal_Interactive_Dialogue_Demo,下面我們來逐步看下操作步驟。
方案的編譯與運行需滿足以下依賴條件
針對不同操作系統(tǒng)提供便捷的編譯腳本,我們是 Linux 系統(tǒng)執(zhí)行./build-linux.sh,編譯結(jié)果如下:
產(chǎn)物目錄為:
install/demo_Linux_aarch64/
├─ demo # 主程序可執(zhí)行文件
└─ lib # 依賴動態(tài)庫
通過 U 盤或者手機將編譯好的產(chǎn)物文件、模型、圖片上傳到開發(fā)板上,然后在多輪對話的實例的目錄下,執(zhí)行以下命令:
cd /data/demo_Linux_aarch64
export LD_LIBRARY_PATH=./lib
./demo demo.jpg vision.rknn llm.rkllm 128 512
其中,部署命令需傳入 5 個核心參數(shù),分別對應(yīng):
以下面這張圖片作為測試圖片,選擇下面這張圖是因為,有人物、文字、物體、背景等。
測試圖片2:圖片背景是賽博風(fēng)格
我們依次準(zhǔn)備的問題如下:
每輪對話我都有截動態(tài)圖,可以感受下體感速度。
rkllm 模型加載 6.7 秒
視覺編碼 rknn 模型進(jìn)行處理,生成圖片的 embedding 向量,完成圖像特征的提取,4.5 秒
可以明顯感受到這兩個過程是串行的,如果異步處理可以更快。
感受一下第一次出詞的耗時
多輪對話1:這張圖片上有哪些文字信息
第二次回答就非??欤幸粋€很短暫的等待時間
多輪對話2:圖中電路板上的字是什么顏色
多輪對話3:圖中女孩頭發(fā)和衣服分別是什么顏色,問題基本回答正確,速度和正常閱讀速度差不多
多輪對話3:圖中女孩頭發(fā)和衣服分別是什么顏色
多輪對話4:圖中動漫角色看起來多大年齡
多輪對話4:圖中動漫角色看起來多大年齡
記不住了,因為我們設(shè)置的rkllm_infer_params.keep_history = 1
代碼中keep_history = 1是開啟上下文記憶功能,即模型應(yīng)記住前序?qū)υ捴械年P(guān)鍵信息,如 “女孩眼睛顏色”“背景顏色”,而 “記不住” 是記憶功能未生效的表現(xiàn),原因可能除了超過歷史上下文預(yù)設(shè)的閾值,有時還有可能是因為上下文長度超限(max_context_len=512),或者KV-Cache 清理機制誤觸發(fā)等。
多輪對話5:圖中背景顏色和女孩眼睛顏色一樣嘛
方案具備良好的可擴(kuò)展性,便于開發(fā)者根據(jù)需求進(jìn)行二次開發(fā):
如果說 “大模型上云” 是 AI 的 “星辰大海”,那么 “多模態(tài)落地端側(cè)” 就是 AI 的 “柴米油鹽”—— 后者決定了智能技術(shù)能否真正滲透到智能家居、工業(yè)質(zhì)檢、穿戴設(shè)備等千萬級場景中。RK3576 的多模態(tài)交互對話方案,其價值遠(yuǎn)不止 “實現(xiàn)了一項技術(shù)”,更在于提供了一套 “算力適配 - 工程封裝 - 二次拓展” 的端側(cè) AI 落地范式。
從技術(shù)內(nèi)核看,它通過 “視覺編碼器 + LLM + 對話管家” 的模塊化設(shè)計,平衡了推理性能與開發(fā)靈活性:W4A16 量化方案讓 30 億參數(shù)模型適配 6 TOPS 算力,KV-Cache 動態(tài)維護(hù)實現(xiàn)多輪對話效率躍升,單線程事件循環(huán)降低了資源占用 —— 這些細(xì)節(jié)不是技術(shù)炫技,而是直擊端側(cè) “算力有限、場景碎片化” 的痛點。從工程落地看,一鍵編譯腳本、清晰的參數(shù)配置、可復(fù)現(xiàn)的部署流程,讓開發(fā)者無需深耕底層優(yōu)化即可快速驗證場景,大幅縮短了從技術(shù)原型到產(chǎn)品的周期。
展望未來,這套方案的演進(jìn)將圍繞三個方向深化:
當(dāng) RK3576 證明 “端側(cè)能跑好轉(zhuǎn)好多模態(tài)對話” 時,邊緣 AI 的競爭已從 “能否實現(xiàn)” 轉(zhuǎn)向 “如何更優(yōu)”。而這套方案的真正意義,在于為行業(yè)提供了一塊 “可復(fù)用的基石”—— 讓更多開發(fā)者無需重復(fù)造輪子,只需聚焦場景創(chuàng)新,就能讓 “離線智能” 從實驗室走向量產(chǎn)貨架,最終讓 “AI 就在身邊” 成為無需網(wǎng)絡(luò)支撐的常態(tài)。