「視覺語言模型 – Vision LM」


我之前接觸的 AI 語言模型應用,限於文字輸入/輸出類型,也就是 LLM (large language model). 但我認為多學一些語言模型類型,對於未來要做更多樣的應用會有所幫助,比如我這次挑戰的視覺語言模型 (vision LM)。

有此動機,是看到別人設計的 AI workflow 利用非文字輸入的語音轉文字 AI 作前端,再與 LLM 串接,如此一來就能用語音操縱 LLM! 因此激勵我學習不同輸入類型的 LM。

我這次挑戰的項目,是用圖片作為輸入AI 助理語言模型,再依指示輸出文字。我選的 VLM 是許多人在用的阿里巴巴開放模型 – 千問 (Qwen3 VL),前後端程式則是由我之前寫的另一個全端專案 demo_langchain_vec 改寫而成。

在開發過程,有使用 ChatGPT 輔助開發,不過一開始跑不起來,記憶體不足。後來上網研究才知道是輸入圖片解析度太高,要 downscale,所以程式要設限制。修正後就能跑了。

後來我將前後端程式依舊打包成 docker images,再使用 docker compose 一鍵啟動所有 containers。結果後端的 VLM 執行卻異常緩慢,根本不能用。後來才想起 container 要存取 nVIDIA GPU 要有特殊設定這件事,但我的電腦是 MacBook Pro 的 Apple Silicon MPS GPU, 不支援 container 存取🥲 只好將後端程式跑在本機上,才有 GPU 加速。下圖是 demo 傳一張蒲公英圖片並問 AI 它是什麼,AI 有正確回答圖片中的是蒲公英👍

經過這次實作,學到一些經驗,有一些問題有實作過,才會知道自己所學的盲點。

以下是程式原始碼:
https://github.com/MrMYHuang/demo_qwenvl


Leave a Reply