用 450M 參數的 VLM 看懂衛星影像:Liquid AI LFM2.5-VL Fine-tuning 實錄
Liquid AI 的做法和那些拚大模型規模的玩家不太一樣。他們押注的是小模型 + 領域特化——用一個 450M 參數的視覺語言模型,透過針對性微調,在衛星影像理解這個特定領域達到夠用的效果。
這不是「湊合能跑」的妥協,而是一個有意識的架構選擇:參數少代表推理快、部署成本低、對 edge device 友好。如果資料集夠好、任務夠聚焦,450M 可以遠遠超過一個泛化 7B 在同樣任務上的表現。
這篇文章的起點是 Liquid AI 官方的一個 example:在 VRSBench 衛星影像資料集上微調 LFM2.5-VL-450M,整個訓練流程跑在 Modal 雲端 H100 上,不需要本地任何 GPU 資源。
VRSBench:NeurIPS 2024 的衛星影像基準資料集
VRSBench 是 2024 年 NeurIPS 上發布的一個遙感視覺語言基準資料集,全名 Visual Remote Sensing Benchmark。規模是 20 萬 4 千筆樣本,覆蓋三個任務:
視覺問答(Visual QA)— 12 萬 3 千對
給一張衛星影像,問一個關於場景內容的問題。答案通常是短字串或選項,評估方式是 substring match(模型輸出是否包含正確答案)。例如:「圖中有幾條跑道?」、「這個區域的主要土地利用類型是什麼?」
視覺定位(Visual Grounding)— 5 萬 2 千筆
給一段描述(「左上角的停車場」),模型要輸出一個 bounding box 座標,定位到對應的物件。座標格式是 0 到 1 的正規化值,用 [x_min, y_min, x_max, y_max] 表示。評估指標是 IoU@0.5——預測框與真實框的交聯比需超過 0.5 才算正確。
影像描述(Image Captioning)— 2 萬 9 千筆
輸入衛星影像,輸出一段完整的場景描述。評估指標是 CIDEr(衡量描述與參考描述的語義一致性)和 BLEU(n-gram 精確度)。
這三個任務的難度和輸出形式差異很大:VQA 要的是精確的短回答,Grounding 要的是結構化座標,Captioning 要的是連貫的自然語言段落。三個任務同時訓練,是對模型多任務泛化能力的考驗。
| 任務 | 樣本數 | 輸出格式 | 主要評估指標 |
|---|---|---|---|
| Visual QA | 123K | 短字串 | Substring Match |
| Visual Grounding | 52K | Bounding Box | IoU@0.5 |
| Image Captioning | 29K | 自然語言段落 | CIDEr / BLEU |
訓練流程:leap-finetune + Modal,零本地 GPU
leap-finetune
Liquid AI 自己做了一套微調框架叫 leap-finetune,託管在 GitHub 的 Liquid4All/cookbook repo 裡。它不是通用的開源框架(不是 Hugging Face Trainer 或 LLaMA Factory 那種),而是為了讓 LFM 系列模型的微調體驗更直接而設計的工具。
主要設計哲學是:設定用 YAML 配置檔,不需要改動訓練腳本本體;資料格式用標準的對話格式(system、user、assistant 輪流),視覺輸入用 <image> token 標記。
Modal:按需取用雲端 H100
Modal 是一個無伺服器 GPU 雲平台。對獨立開發者來說,它解決的核心問題是:你不需要維護一台 GPU 機器,只需要在需要的時候呼叫算力。
新帳號有 $30 免費額度,跑這個 VRSBench 範例的訓練成本在這個額度範圍內可以完成。使用 H100(80GB HBM3),不需要任何本地 GPU。
整個設定大約是:
# 安裝
pip install modal
modal token new
# Clone cookbook
git clone https://github.com/Liquid4All/cookbook
cd cookbook
# 設定資料集路徑與訓練配置
# 執行訓練(Modal 會自動 spin up H100)
modal run train.py
所有的 GPU 配置、容器環境、依賴版本都由 Modal 的 Python decorator 宣告,不需要手動管理 Docker 或 CUDA 環境。
訓練 Pipeline 架構
整個 pipeline 的關鍵設計是一次 fine-tuning run 同時覆蓋三個任務。這和分開訓練三個專門模型的做法不同——multi-task 學習讓模型在任務之間形成正遷移(positive transfer),Captioning 的語言生成能力可以強化 VQA 的表達,Grounding 的空間定位能力可以幫助模型更準確地回答「哪裡」類型的問題。
三個任務的評估指標拆解
VQA、Grounding 和 Captioning 這三個任務在評估複雜度上有明顯差異:
VRSBench 三個任務的樣本分佈 (%)
**Substring Match(VQA)**是最寬鬆的指標——模型輸出只要包含正確答案字串就算對。這對於處理遙感影像問答中的格式差異很友好,但也意味著模型有機會靠「多說幾個關鍵詞」蒙混過關。
**IoU@0.5(Grounding)**是最嚴格的指標之一。模型必須把一個 bounding box 定位到跟真實框有超過 50% 重疊的位置,才算正確。對於衛星影像來說,物件尺度差異極大(從一台車到一個機場),這個任務對模型的空間推理能力要求很高。座標格式是正規化的 0-1 浮點值,模型需要輸出類似 [0.234, 0.156, 0.489, 0.312] 這樣的字串,再由評估腳本解析成實際坐標。
**CIDEr + BLEU(Captioning)**衡量的是生成描述的整體品質。CIDEr 側重語義相關性(用 TF-IDF 加權的 n-gram 相似度),BLEU 側重 surface-level 的字符精確度。兩者一起用才能比較全面地評估描述品質。
為什麼 450M 參數夠用
這是這個方案裡最值得認真想的問題。
LFM2.5-VL-450M 使用的是 Liquid AI 的 LFM(Liquid Foundation Model)架構,它不完全是標準 Transformer,而是加入了 Liquid Neural Networks 的動態計算特性。這讓它在同樣參數量下的效率比傳統架構更高。
但架構只是部分原因。更根本的原因是任務定義的邊界夠清楚。
衛星影像理解是一個相對封閉的域(closed domain):
- 輸入類型固定(高解析度俯瞰影像)
- 輸出類型固定(短答案、座標、段落)
- 詞彙域固定(地物類別、方位描述、數量詞)
在這樣的條件下,你需要的不是一個「懂所有事情」的大模型,而是一個「對這個域的影像有足夠感知力」的小模型。用 VRSBench 的 20 萬筆資料微調,把所有的模型容量都集中在這個任務分佈上,結果比用一個沒有見過衛星影像的 7B 泛化模型直接推理要好得多。
這個邏輯對所有的 B2B 垂直應用都成立:醫療影像、工業瑕疵檢測、農業遙測。你不需要大模型,你需要的是在你的資料分佈上訓練過的模型。
AI in Space Hackathon 背景
這個 LFM2.5-VL-450M + VRSBench 的組合是 Liquid AI 為 DPhi Space 主辦的 AI in Space Hackathon 提供的官方基線(official baseline)。
Hackathon 的任務就是在衛星影像理解上做最好的成績,評估標準直接對應 VRSBench 的三個任務指標。Liquid AI 提供這個基線的用意是:讓參賽者從一個已知可跑通的 fine-tuning 流程出發,把精力放在改進資料品質、調整訓練策略、或嘗試不同的推理方法,而不是卡在環境設定上。
對獨立開發者來說,這個組合的額外價值是:你現在有一個完整的、可驗證的、零本地 GPU 的 VLM 微調參考實作。把 VRSBench 換成你自己的影像資料集,流程完全可以複用。
複製這個流程需要什麼
- Modal 帳號(新帳號 $30 免費額度)
- 一個可以跑 Python 的環境(本地或 Codespace)
- Liquid AI 的
cookbookrepo 存取權限(GitHub 公開) - VRSBench 資料集下載(論文附帶的 HuggingFace 連結)
官方文件:docs.liquid.ai/examples/customize-models/satellite-vlm
整個流程從環境設定到第一個 checkpoint 完成,在 H100 上大約是幾個小時的訓練時間。這是一個低門檻、有明確基線、有完整評估框架的好入口。
如果你對遙感 AI、衛星影像分析、或者純粹對「小模型能做什麼」這個問題有興趣,這個範例值得親自跑一遍。