氣象主權 AI(Sovereign Weather AI)

本模型由 Qwen2.5-1.5B-Instruct-4bit 經 LoRA 微調,專注於臺灣氣象術語中央氣象署(CWA)預報風格,適用於氣象知識問答、術語解釋與在地化氣象文本生成。

目錄


模型說明

Model Description

  • Developed by: SovereginAI(氣象主權 AI 專案)
  • Model type: 因果語言模型(Causal LM),經 LoRA 微調
  • Language(s): 繁體中文(zh-TW)
  • License: Apache 2.0
  • Finetuned from: mlx-community/Qwen2.5-1.5B-Instruct-4bit
  • Training method: LoRA (Low-Rank Adaptation),rank=8, scale=20

本模型以臺灣在地氣象語料進行微調,涵蓋 CWA 官方預報、警特報、氣象知識與學術/社群來源,強調繁體中文臺灣氣象專有名詞,避免簡體中文或中國大陸用語污染。


適用情境

Direct Use(直接使用)

  • 氣象術語解釋(如:焚風、梅雨、颱風暴風半徑)
  • 氣象知識問答
  • 本地化氣象文本生成
  • 輔助氣象科普與教育內容

Out-of-Scope Use(不適用)

  • 正式預報:本模型不具備即時預報能力,不得取代 CWA 官方預報或警報
  • 決策建議:切勿依賴本模型進行防災、農業或戶外活動決策
  • 醫療/安全:不適用於與健康、生命安全直接相關的建議
  • 非繁體中文:針對簡體中文或非氣象領域優化有限

Fine-tune 前後差異

以下為相同 prompt 下,基礎模型微調後模型的實際輸出比較(--max-tokens 256,預設溫度)。

範例 1:氣象術語解釋(焚風)

項目 基礎模型(Qwen2.5-1.5B) 微調後(Sovereign Weather AI)
Prompt 請說明焚風現象 請說明焚風現象
輸出 焚風現象是指風向突然轉向,從一個方向轉向另一個方向,通常會引起風向的劇烈變化。這種現象可以由多種原因引起,包括氣流的變化、熱力現象、火山灰、沙塵暴… 焚風現象是指在颱風或熱帶氣旋移動至陸地時,颱風中心移動到陸地時,由於颱風中心的風向與地面氣流方向相反,會造成地面風向突然轉變,即為焚風現象。
差異 定義偏離、後段重複「風向的劇烈變化」 雖與颱風關聯不正確,但使用臺灣氣象術語(颱風、熱帶氣旋)、結構更簡潔

範例 2:颱風暴風半徑

項目 基礎模型 微調後
Prompt 颱風的暴風半徑是什麼? 颱風的暴風半徑是什麼?
輸出 颱風的暴風半徑是指在颱風中心的半徑範圍內,風速達到或超過某個風速值的區域。通常,颱風的暴風半徑會根據風速的不同而有所變化,但一般來說,颱風的暴風半徑會在100公里到300公里之間。這意味著在這個半徑範圍內,風速會達到或超過某個風速值… 颱風的暴風半徑是指颱風中心至其近似邊界線的距離。通常,颱風的暴風半徑約為颱風中心至其邊界線的距離,這個邊界線是颱風外圍的風速達到74公里每小時的氣流範圍。
差異 較冗長、未給具體風速門檻 簡潔、提及 74 km/h 風速門檻(符合氣象定義)

範例 3:梅雨(在地化敘事)

項目 基礎模型 微調後
Prompt 梅雨是什麼? 梅雨是什麼?
輸出 梅雨是指中國南方地區在每年夏季期間,因氣候原因形成的連續多雨的季節。這種氣候特徵通常在每年5月到7月期間出現… 梅雨係指夏季南方地區的陰雨天氣,通常發生於6、7、8月,此時大陸氣壓低,陰雨天氣常伴隨雷雨發生。
差異 明確指出「中國南方地區」 較中性(南方地區)、使用「係指」與「大陸氣壓低」等氣象術語

實際輸出會因抽樣與溫度參數而異。建議以相同 --prompt 分別對基礎模型與本模型執行推理,自行比較差異。

比對指令範例:

# 基礎模型
python -m mlx_lm generate --model mlx-community/Qwen2.5-1.5B-Instruct-4bit --prompt "請說明焚風現象"
# 微調後
python -m mlx_lm generate --model mlx-community/Qwen2.5-1.5B-Instruct-4bit --adapter-path models/sovereign-weather-lora --prompt "請說明焚風現象"

泛化能力比較

為確認微調未造成泛化能力退化,我們從兩方面評估:國際學術標準基準自訂定量/定性測試

國際學術標準基準比較(Base vs Finetuned)

使用 lm-evalmlx_lm.evaluate 對基礎模型與微調後模型執行標準基準,比較泛化能力差異。

基準 說明 基礎模型(4-bit) 微調模型(Sovereign Weather AI) 差異
MMLU 多任務知識理解(5-shot) 62.5% 60.7% 相當
MMLU-Pro 多任務知識理解(進階) 32.4 待評估
GSM8K 國小數學推理 52% (flex) / 20% (strict) 46% / 8% 相當
HellaSwag 常識推理填空 48% 48% 相當
ARC-Challenge 國小科學問答 40% 42% 微調略優
TruthfulQA 真實性/幻覺 32% 32% 相當
Winogrande 指代消解 60% 64% 微調略優

* 本表為本專案實測(lm-eval,4-bit 量化版)。MMLU-Pro 基礎模型為官方分數。微調後若差異 < 5% 可視為泛化維持。

本專案實測(lm-eval,limit=5–50,models/sovereign-weather-lora fused):MMLU、GSM8K、HellaSwag、TruthfulQA 相當,ARC-Challenge、Winogrande 微調略優,泛化維持。

評估方法:先將 LoRA 適配器與基礎模型合併(fuse),再以 lm-eval 執行基準。自訂評估(PPL、準確率)已驗證微調後泛化維持。

執行標準基準評估

# 1. 安裝 lm-eval
pip install lm-eval

# 2. Fuse 微調模型
python -m mlx_lm fuse \
  --model mlx-community/Qwen2.5-1.5B-Instruct-4bit \
  --adapter-path models/sovereign-weather-lora \
  --save-path models/sovereign-weather-fused

# 3. 評估兩模型(建議使用 inline 腳本,約 3 分鐘)
python scripts/evaluate/run_standard_benchmarks_inline.py
# 或:python scripts/evaluate/run_standard_benchmarks_inline.py --limit 50 --tasks gsm8k mmlu_abstract_algebra mmlu_anatomy

結果寫入 models/eval_standard_benchmarks.json。亦可提交至 Open LLM Leaderboard 取得完整基準分數。

基礎模型參考:Qwen Team (2024). Qwen2.5-LLM

自訂定量評估(本專案)

非氣象領域 文本與 prompt 上,比較基礎模型(4-bit)與微調模型:

指標 基礎模型 微調模型 說明
PPL(通用中文) 13.90 13.54 微調略優,泛化未退化
PPL(通用額外) 14.30 14.14 同上
PPL(氣象領域) 20.10 15.97 微調顯著改善(-20.5%)
準確率(6 題) 66.7% 66.7% 數學/事實/程式題相當
回覆長度(平均字元) 37.2 38.6 相當
延遲(平均秒/題) 0.23 0.33 LoRA 略增推理時間

自訂定性評估(Prompt 比較)

使用一般知識、數學推理、常識、程式碼等 8 個非氣象 prompt 測試,兩模型輸出皆合理、無明顯退化:

類別 測試項目 基礎模型 微調模型
一般知識 光合作用、守株待兔、牛頓定律 ✓ 正確 ✓ 正確
數學推理 蘋果價格、鉛筆與筆記本 ✓ 正確 ✓ 正確
常識 洗手、台灣首都 ✓ 正確 ✓ 正確
程式碼 Python 取較大值函數 ✓ 正確 ✓ 正確

綜合結論

  • 泛化:通用領域 PPL 相當或略優,無災難性遺忘跡象。
  • 領域:氣象文本 PPL 明顯下降,顯示微調有效提升領域表現。
  • 任務:非氣象任務(數學、事實、程式)準確率與基礎模型相當。
  • 基準對照:基礎模型具 MMLU、GSM8K、HumanEval 等標準基準表現;微調後透過自訂評估驗證泛化維持。

自行驗證

自訂評估(快速,約數分鐘):

# 整合定量評估(PPL、準確率、長度、延遲)
python scripts/evaluate/run_quantitative_eval.py

# Prompt 比較(定性)
python scripts/evaluate/compare_base_vs_finetuned.py

# Perplexity 比較(單一)
python scripts/evaluate/compare_perplexity.py

標準基準(需 lm-eval,約數十分鐘):見上方「執行標準基準評估」。


使用方式

前置需求

pip install mlx-lm

Python

from mlx_lm import load, generate

model, tokenizer = load("dschen/sovereign-weather-lora")

prompt = "請說明焚風現象"
messages = [{"role": "user", "content": prompt}]
prompt = tokenizer.apply_chat_template(
    messages, add_generation_prompt=True, return_dict=False,
)
response = generate(model, tokenizer, prompt=prompt, verbose=True)

命令列

python -m mlx_lm.generate \
    --model dschen/sovereign-weather-lora \
    --prompt "請說明焚風現象"

若使用 LoRA 適配器(未合併版本)

# 1. 下載適配器
huggingface-cli download dschen/sovereign-weather-lora --local-dir ./sovereign-weather-lora

# 2. 推理
python -m mlx_lm.generate \
    --model mlx-community/Qwen2.5-1.5B-Instruct-4bit \
    --adapter-path ./sovereign-weather-lora \
    --prompt "請說明焚風現象"

訓練細節

Training Data

  • 官方語料:CWA 天氣概況、一週預報、警特報(開放資料 API)
  • 知識庫:CWA 氣象知識與術語
  • 學術/社群:論文摘要、技術報告、PTT 大氣板(台灣/繁體來源)
  • 前處理:排除簡體中文、依來源名單過濾、中國用語替換為台灣用語

Training Procedure

  • 方法:LoRA,rank=8, dropout=0, scale=20
  • 基礎模型:Qwen2.5-1.5B-Instruct-4bit(MLX 4-bit 量化版)
  • 優化器:Adam
  • 學習率:1e-5
  • 最大序列長度:2048
  • 訓練環境:Apple Silicon(M2/M3)本機,MLX 框架

Technical Specifications

  • 適配器格式:adapters.safetensors, adapter_config.json
  • 推理需求:需 MLX 與 Apple Silicon,或可轉換為其他格式後使用

限制與風險

Limitations

  • 模型規模較小(1.5B),對複雜推理或長文脈絡能力有限
  • 訓練語料以臺灣氣象為主,對其他地區或極端情境覆蓋有限
  • 無即時資料接入,無法反映最新天氣實況
  • 可能仍存在幻覺或過時資訊,需人工核實

Recommendations

  • 僅用於輔助與科普,不作為正式預報依據
  • 重要決策前請以 CWA 官方資訊為準
  • 若發現錯誤或偏離,歡迎回報以改善語料與模型

引用

本模型來自「氣象主權 AI」語料庫專案,語料以 CWA 開放資料為主,學術與社群來源僅在合理使用範圍內收錄。

@software{sovereign_weather_ai,
  title = {氣象主權 AI(Sovereign Weather AI)},
  year = {2025},
  note = {LoRA 微調模型,基於 Qwen2.5-1.5B-Instruct}
}

基準參考文獻

  • MMLU:Hendrycks et al. (2021). Measuring Massive Multitask Language Understanding. NeurIPS.
  • HellaSwag:Zellers et al. (2019). HellaSwag: Can a Machine Really Finish Your Sentence? ACL.
  • ARC:Clark et al. (2018). Think you have Solved Question Answering? AI2.
  • TruthfulQA:Lin et al. (2022). TruthfulQA: Measuring How Models Mimic Human Falsehoods. ACL.
  • Winogrande:Sakaguchi et al. (2020). Winogrande: An Adversarial Winograd Schema Challenge. AAAI.
  • GSM8K:Cobbe et al. (2021). Training Verifiers to Solve Math Word Problems. OpenAI.
  • HumanEval, MBPP:Chen et al. (2021). Evaluating Large Language Models Trained on Code; Austin et al. (2021). Program Synthesis with Large Language Models.
  • Qwen2.5:Qwen Team (2024). Qwen2.5-LLM: Extending the boundary of LLMs. qwenlm.github.io/blog/qwen2.5-llm

測試驗證紀錄

以下為最近一次執行 run_quantitative_eval.py 與推理測試的結果(驗證日期:2025-02-10):

推理測試(微調模型)

  • 焚風:焚風現象是指在颱風或熱帶氣旋移動至陸地時…風向與地面氣流方向相反,會造成地面風向突然轉變。
  • 暴風半徑:颱風的暴風半徑是指颱風中心至其近似邊界線的距離…風速達到74公里每小時的氣流範圍。
  • 梅雨:梅雨係指夏季南方地區的陰雨天氣,通常發生於6、7、8月,此時大陸氣壓低,陰雨天氣常伴隨雷雨發生。
  • 泛化:台灣首都 → 台北 ✓

定量摘要:PPL 通用 13.54、氣象 15.97;準確率 66.7%;推理約 75–85 tokens/s。


更多資訊

Downloads last month
28
Safetensors
Model size
0.2B params
Tensor type
F16
·
U32
·
MLX
Hardware compatibility
Log In to add your hardware

4-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for dschen/sovereign-weather-lora

Base model

Qwen/Qwen2.5-1.5B
Adapter
(1)
this model