當 GPT-4o 用毫秒級響應處理圖文混合指令、Gemini-1.5-Pro 以百萬 token 上下文 “消化” 長文檔時,行業(yè)的目光正從云端算力競賽轉向一個更實際的命題:如何讓智能 “落地”?—— 擺脫網(wǎng)絡依賴、保護本地隱私、控制硬件成本,讓設備真正具備 “看見并對話” 的離線智能,成為邊緣 AI 突破的核心卡點。
如今,“端側能否獨立運行圖文多輪對話” 已不再是技術疑問,而是工程實現(xiàn)問題。RK3576 通過硬件算力優(yōu)化與軟件棧協(xié)同,將視覺編碼、語言推理、對話管理三大核心能力封裝為可落地的工程方案,而本文將聚焦其多輪對話的部署全流程,拆解從模型加載到交互推理的每一個關鍵環(huán)節(jié)。
RK3576 多輪對話:基于歷史回答圖中女孩頭發(fā)和衣服分別是什么顏色
一、引言1.1 什么是多輪對話?這種交互模式與單輪問答的區(qū)別在于:
- 上下文依賴性:每輪對話需關聯(lián)歷史信息(如用戶偏好、已確認的細節(jié))。
- 狀態(tài)維護:系統(tǒng)需跟蹤對話狀態(tài)(如未完成的信息補全),避免重復詢問或信息遺漏。
- 動態(tài)意圖調整:用戶可能在對話中修正或細化需求,系統(tǒng)需實時調整響應策略
1.2 多輪對話系統(tǒng)鳥瞰:三顆“核心”協(xié)同驅動基于純 C++實現(xiàn),采用單線程事件循環(huán)機制,承擔著對話流程的統(tǒng)籌調度工作,具體職責包括:
- 多輪對話的 KV-Cache 維護與手動清除;
- Prompt 模板的動態(tài)渲染;
- 用戶輸入的解析處理與推理結果的回顯展示。
1.3 核心邏輯:多輪對話的處理流程該方案的多模態(tài)多輪對話 demo,整體遵循“模型加載 → 圖片預處理 → 用戶交互 → 推理輸出”的核心流程,支持圖文一體的多模態(tài)對話,適配多輪問答、視覺問答等典型場景。
首先加載大語言模型(LLM),并配置模型路徑、max_new_tokens(生成內容最大 token 數(shù))、max_context_len(最大上下文長度)、top_k、特殊 token 等關鍵參數(shù);隨后加載視覺編碼模型(imgenc),為后續(xù)圖片處理做好準備。
RK3576 平臺運行多模態(tài)對話 Demo 的終端日志,顯示視覺與語言模型成功加載,包含模型版本、硬件配置及張量信息,完成多模態(tài)交互前的初始化。
2. 圖片處理與特征提取 程序會提供預設問題供用戶選擇(官方案例中也有輸入序號,可以快速提問),同時支持用戶自定義輸入,核心交互邏輯通過以下機制實現(xiàn):
- 上下文記憶
- 通過設置rkllm_infer_params.keep_history = 1,開啟上下文記憶功能,KV-Cache 在顯存中持續(xù)追加存儲,每輪對話僅計算新增 token,大幅提升推理效率。使模型能關聯(lián)多輪對話內容;
- 若設為 0,則每輪對話獨立,不保留歷史信息,詳見src/main.cpp。
- 歷史緩存清空:當用戶輸入“clear”時,系統(tǒng)調用rkllm_clear_kv_cache(llmHandle, 1, nullptr, nullptr),清空模型的 KV 緩存,重置對話上下文。
- Prompt 工程:動態(tài)定義模型“人設”:采用三段式 Prompt 模板,通過rkllm_set_chat_template()動態(tài)注入模型,無需重新訓練即可切換人設,支持中英文雙語系統(tǒng)提示。
用戶輸入后,系統(tǒng)先判斷輸入中是否包含標簽:若包含,則將文本與圖片 embedding 結合,啟動多模態(tài)推理;若不包含,則進行純文本推理。組裝輸入結構體并傳遞給模型后,推理結果將實時打印輸出。 5. 退出與資源釋放 由于先前我們已經(jīng)講過環(huán)境的部署,如刷機、文件準備等,這里步驟只提出比較關鍵的。工程位于:rknn-llm/examples/Multimodal_Interactive_Dialogue_Demo,下面我們來逐步看下操作步驟。 2.1 依賴環(huán)境針對不同操作系統(tǒng)提供便捷的編譯腳本,我們是 Linux 系統(tǒng)執(zhí)行./build-linux.sh,編譯結果如下:
通過 U 盤或者手機將編譯好的產(chǎn)物文件、模型、圖片上傳到開發(fā)板上,然后在多輪對話的實例的目錄下,執(zhí)行以下命令: cd /data/demo_Linux_aarch64
export LD_LIBRARY_PATH=./lib
./demo demo.jpg vision.rknn llm.rkllm 128 512
以下面這張圖片作為測試圖片,選擇下面這張圖是因為,有人物、文字、物體、背景等。
測試圖片2:圖片背景是賽博風格
每輪對話我都有截動態(tài)圖,可以感受下體感速度。
rkllm 模型加載 6.7 秒
視覺編碼 rknn 模型進行處理,生成圖片的 embedding 向量,完成圖像特征的提取,4.5 秒
方案具備良好的可擴展性,便于開發(fā)者根據(jù)需求進行二次開發(fā):
- 替換視覺骨干:修改image_enc.cc文件,將輸入分辨率調整為與模型匹配的大小,原因是這些參數(shù)與模型的固有結構設計和輸入處理邏輯強綁定,直接影響特征提取的正確性和數(shù)據(jù)傳遞的一致性。不同的 Qwen2-VL 模型(2B 和 7B)需要代碼中指定IMAGE_HEIGHT、IMAGE_WIDTH及EMBED_SIZE;
- 微調 LLM 模型:借助 RKLLM 工具鏈的 LoRA-INT4 量化支持,在 24 GB 顯存的 PC 上,30 分鐘內可完成 2 億參數(shù)模型的增量訓練;
- 接入語音能力:在main.cpp中集成 VAD(語音活動檢測)+ ASR(語音識別,如 Whisper-Tiny INT8)模塊,將語音轉換為文本后接入現(xiàn)有推理流水線,實現(xiàn)“看圖說話+語音問答”的融合交互。
五、結論與未來發(fā)展方向如果說 “大模型上云” 是 AI 的 “星辰大海”,那么 “多模態(tài)落地端側” 就是 AI 的 “柴米油鹽”—— 后者決定了智能技術能否真正滲透到智能家居、工業(yè)質檢、穿戴設備等千萬級場景中。RK3576 的多模態(tài)交互對話方案,其價值遠不止 “實現(xiàn)了一項技術”,更在于提供了一套 “算力適配 - 工程封裝 - 二次拓展” 的端側 AI 落地范式。
展望未來,這套方案的演進將圍繞三個方向深化:
- 其一,算力效率再突破—— 通過異步模型加載、NPU 與 CPU 協(xié)同調度,進一步壓縮首輪推理延遲,適配對響應速度敏感的車載、醫(yī)療等場景;
- 其二,多模態(tài)融合再升級—— 在圖文基礎上集成語音、傳感器數(shù)據(jù),實現(xiàn) “看 + 聽 + 感知” 的跨模態(tài)對話;
- 其三,生態(tài)適配再拓展—— 支持更多開源多模態(tài)模型的快速移植,形成 “芯片 - 工具鏈 - 模型” 的協(xié)同生態(tài)。
參考資料 [1] airockchip/rknn-llm: 'https://github.com/airockchip/rknn-llm'
|