xCloudinfo/Llama-xReadable-11B-zhTW-OCR-v3
Llama-xReadable-11B-zhTW-OCR-v3
Built with Llama
云碩科技 · xCloudinfo · 系列:Meta Llama 3.2 Vision · 云碩繁體中文 OCR
以 `meta-llama/Llama-3.2-11B-Vision-Instruct` 為基底,由云碩科技在自有 AI 算力資源池上微調的繁體中文(台灣)OCR 模型。專注台灣場景的文字辨識——公文、票據、文件與各類筆記的中英混寫內容,可地端部署、資料不外流。xReadable:讓文件被讀懂。
v3 相對 v2 的變化:合成語料的字型多樣性由 5 個設計家族擴充到 16 個家族/36 個字型檔(另保留 8 家族/17 字型檔全程不進訓練,專供泛化量測)。印刷辨識在四項量測上全面優於 v2。
能力與量測
所有數字皆為逐字元錯誤率(CER,越低越好)。評測集的字型與訓練字型完全不重疊——保留字型從建池起就切開,從未進入訓練。
印刷/掃描文件
保留字型集為逐張配對比較(同 200 張圖):v3 逐張勝 51 / 負 21 / 平手 128,平均改善 −0.52pp(95% CI [−1.02, −0.03]),完全正確張數 124 vs 115。
外部對照:`nvidia/nemotron-ocr-v2` 為偵測+辨識管線(非語言模型),在相同影像、相同 CER 計算下量測。
手寫
手寫的 64~88% 是影像難度地板,非模型天花板。 我們以架構完全不同的開源 OCR(NVIDIA nemotron-ocr-v2,偵測+辨識管線)在同一組真實手寫影像上交叉驗證,逐張 CER 與本模型幾乎一致(某淡鉛筆掃描頁兩者皆約 88%、某清晰頁皆約 45%)。兩種原理迥異的系統得到相同的逐張結果,代表該數字主要由影像本身的可辨識度決定,而非單一模型的弱點。
字型分層方法
訓練字型(16 家族/36 檔):Noto Sans/Serif CJK、文鼎 UMing/UKai、Chiron Hei/Sung/GoRound、Zev Hei、GenKiGothic、GenKiMin、GenWanMin、cwTeX 明/楷/圓、jf-openhuninn、辰宇落雁體。
保留字型(8 家族/17 檔,永不進訓練):GenRyuMin、GenSekiGothic、GenSenRounded、cwTeX 仿宋、EvilSung、LXGW 文楷、芫荽 Iansui、Cubic 11。
同一套設計的所有字重與正/斜體一律歸同一家族(例:ChironSungHKVF 與 ChironSungHKItVF;GenRyuMin 與其注音版 Bpmf、台語版 Taigi 衍生字型),避免同一設計同時出現在訓練與評測兩側而高估泛化能力。
用途與限制
- 適用:台灣繁中印刷/掃描文件的地端 OCR、文件數位化、票據與筆記辨識前處理;長篇手寫筆記轉錄。
- 輸出正規化:本模型輸出統一為繁體中文(訓練標註採繁體正規化);輸入含簡寫字時亦會輸出對應繁體。
- 限制:
- 手寫辨識仍在迭代;潦草、淡筆、低對比字跡可能出錯,重要用途請務必人工複核。
- 純英文段落已納入訓練但樣本量仍有限。
- 表格/複雜版面建議先切行/切格再辨識。
- 輸出僅供辨識參考,不宜作為法律、醫療、財務等關鍵決策的唯一依據。
量測方法提醒:自行評測時,請先確認測試影像的字型確實含有待測字元。部分字型檔(如 macOS Songti.ttc 的第 0 個字面為簡體字面)缺繁體字時,PIL 等渲染器會靜默畫成空白而非豆腐字,導致模型被錯誤扣分。建議渲染後逐字驗證非空白再用於評測。格式與相容性
本 repo 提供 bf16 safetensors(transformers/vLLM 原生格式),未提供 GGUF:Llama 3.2 Vision 的 mllama 架構 llama.cpp 官方尚未支援轉換/載入,故 llama.cpp/LM Studio/Ollama 目前無法運行本模型;transformers 與 vLLM 可原生載入。上游支援後將補上官方相容 GGUF。
硬體需求
bf16 權重約 21GB,推論建議單張 ≥ 24GB VRAM 的 GPU(RTX 3090/4090、A10、L4、A100 等),或以 device_map="auto" 多卡分攤;記憶體不足可用 bitsandbytes 做 int8/int4 量化。
用法(transformers)
from transformers import MllamaForConditionalGeneration, AutoProcessor
from PIL import Image
import torch
model_id = "xCloudinfo/Llama-xReadable-11B-zhTW-OCR-v3"
model = MllamaForConditionalGeneration.from_pretrained(
model_id, torch_dtype=torch.bfloat16, device_map="auto"
).eval()
processor = AutoProcessor.from_pretrained(model_id)
image = Image.open("your_document.jpg").convert("RGB")
prompt = "請辨識圖片中的所有文字,逐字完整輸出,只輸出文字本身。"
messages = [{"role": "user", "content": [{"type": "image"}, {"type": "text", "text": prompt}]}]
text = processor.apply_chat_template(messages, add_generation_prompt=True, tokenize=False)
inputs = processor(text=[text], images=[image], return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=768, do_sample=False)
print(processor.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))用法(vLLM)
vllm serve xCloudinfo/Llama-xReadable-11B-zhTW-OCR-v3 --dtype bfloat16 --max-model-len 4096授權與來源聲明(Llama 3.2 Community License)
本模型為 Meta Llama 3.2 的衍生模型,散布須遵守 Llama 3.2 Community License Agreement:
- Built with Llama。 本模型以 Meta Llama 3.2 建構。
- 基底模型:`meta-llama/Llama-3.2-11B-Vision-Instruct`(Meta Platforms, Inc.)。
- 模型命名:依授權要求,衍生模型名稱以「Llama」開頭。
- 授權文本:本散布隨附 Llama 3.2 Community License Agreement 副本(見本 repo
LICENSE);須提供該授權副本並保留本聲明。 - 可接受使用政策:使用須遵守 Meta Acceptable Use Policy。
- 歐盟(EU)限制:Llama 3.2 授權規定,設立地或主要營業地在歐盟的個人或公司,不被授予使用 Llama 3.2 多模態模型所含之多模態能力的授權。
- 大規模服務門檻:月活躍使用者超過 7 億須另向 Meta 申請授權。
- 微調與散布由 云碩科技 xCloudinfo 進行;不得用於非法用途;須遵守中華民國相關法律。
字型:合成訓練語料所用字型均為開放授權(SIL OFL 1.1、jf 開放授權、GPL+字型例外等),僅用於產生訓練影像,本 repo 不散布字型檔本身。
Built with Llama. 由 云碩科技 xCloudinfo 於自有 AI 算力資源池微調、散布;基底模型之權利屬 Meta Platforms, Inc.。
