Twinkle AI 深夜實作課2:用 Twinkle Eval 評測大型語言模型 (LLM)
第二周的 Twinkle AI 的深夜實作課,講的是 LLM 評估,我覺得這塊很少人在提但很重要,
以下是 Will 保哥 幫忙整理的筆記 (有取得本人同意),跟大家分享!
課程名稱:用 Twinkle Eval 評測大型語言模型 (LLM)
本次課程旨在建立對大型語言模型 (LLM) 評測的正確觀念,並透過社群開發的評測框架 Twinkle Eval,帶領學員實際操作,體驗一個快速、公平且能揭示模型真實能力的評測流程。
一、為什麼需要對 LLM 進行評測?
克服「體感」驗收的困境:
在業界專案中,客戶常以「感覺不太準」等主觀體感來評估模型,導致專案驗收困難、沒完沒了。
解決方案:建立一個客觀、量化的 Benchmark (基準測試),與客戶約定好,當模型在此評測集上達到特定分數時,即視為驗收通過。
作為模型的「照妖鏡」:
評測是檢驗一個模型好壞的唯一客觀標準,能揭示其真實的能力強弱,避免盲目吹捧或不實宣傳。
它可以明確指出模型在哪些特定領域 (如:病毒學、台灣在地知識) 表現較弱,為後續的模型迭代或微調指明方向。
同時,也能判斷模型在訓練後是否發生「災難性遺忘」(Catastrophic Forgetting)。
節省運算資源:
在決定是否對模型進行微調 (Fine-tune) 前,可先進行評測。若基礎模型在特定領域的表現已足夠好,則無需投入額外算力進行訓練,可直接部署。
二、常見的 LLM 評測集 (考卷) 介紹
課程主要專注於文字模態的評測,常見的評測集可分為以下幾類:
類別經典評測集說明通用知識與推理MMLU, GPQA類似百科全書或大學學科知識,衡量模型的知識廣度與深度。數學與邏輯MATH測試模型的數學解題與邏輯推理能力。程式碼能力LiveCodeBench, CodeForce評估模型撰寫和理解程式碼的能力。函式呼叫 (Function Calling)BFCL評估模型作為 Agent 呼叫外部工具的能力,是現代模型的重要指標。
重要觀念:
MMLU已逐漸被各大模型攻破,代表性下降。更具挑戰性的MMLU Pro正在興起。一個好的評測集應著重於不變的學科知識 (如:歷史、物理定律),而非變動快速的即時資訊 (如:網路新梗、昨日新聞)。
三、繁體中文模型的專屬評測:TWMMLU+
地位:目前繁體中文領域最重要、最具代表性的評測基準,由 iKala 團隊推出。
內容:主要由台灣的國家考試題目 (國考題) 組成,涵蓋會計、法律、醫學等領域。
特色:包含了大量台灣在地化知識 (如:台語、台灣行政法規),能有效鑑別模型是否真正「懂台灣」,這是國外模型難以企及的。
結論:訓練繁體中文模型時,
TWMMLU+的分數是檢驗其是否成功的一個關鍵指標。
四、評測工具介紹與 Twinkle Eval 的優勢
工具名稱開發者特色lm-evaluation-harnessEleutherAI學術界最常用,功能強大但較為笨重。LightEvalHugging FaceHugging Face 官方推出的輕量級評估工具。DeepEval對岸團隊新興的評測框架。Twinkle EvalTwinkle AI 社群專為繁中社群設計,具備以下核心優勢:
Twinkle Eval 的核心優勢:
極致的速度:
針對選擇題評測進行了工程優化,相較於傳統 for-loop 的評測方法,速度提升高達 17 倍。
讓開發者能快速得到評測結果,加速模型迭代的週期。
確保公平與客觀性:
選項隨機化 (
Shuffle):自動打亂 ABCD 選項的順序,防止模型依賴位置偏見或背誦答案。多輪測試 (
Runs):對同一評測集進行多次測試 (預設 5 次),計算平均分數與標準差,結果更具統計意義和穩定性。
詳細的日誌與報告:
會產出詳細的 JSON 格式報告,記錄每一題的題目、模型原始輸出 (
LM Output)、解析後的答案 (Predicted Answer) 以及是否正確,方便進行錯誤分析。
五、實戰操作流程
安裝
Twinkle Eval:pip install git+https://github.com/ai-twinkle/Eval.git pyyamlimport twinkle_eval, sys print("Twinkle Eval version:", twinkle_eval.__version__)初始化設定檔:
在終端機執行
twinkle-eval --init,會自動生成config.yaml模板。
編輯
config.yaml:填寫模型的
llm_api.base_url,llm_api.api_key,model.name。設定要評測的資料集路徑
dataset_paths。(可選) 調整測試輪數
repeat_runs或是否隨機化選項shuffle_options。
執行評測:
twinkle-eval --config config.yaml分析結果:
評測結果會儲存在
results資料夾中。可將
results.json檔案下載到本地。上傳至
Twinkle Eval Analyzer視覺化分析工具,以互動式圖表清晰地看到模型在各個子領域的分數表現。
課程總結與未來展望
核心心態:不要再依賴主觀體感,學會使用客觀數據來評估和討論模型。
Twinkle Eval就是幫助你實現這一目標的利器。社群呼籲:歡迎社群夥伴一同貢獻
Twinkle Eval,擴充其功能,加入對數學、程式碼、Function Calling 等更多評測基準的支援。下期預告:將帶來「滿漢大餐」等級的課程 —— 實戰 Fine-tune 一個 270M 的 Ggemma 模型。
快速體驗 tmmluplus 評測
git clone https://huggingface.co/datasets/ikala/tmmluplus# 產生 config.yaml
twinkle-eval --init...
evaluation:
dataset_paths: # 資料集路徑
- "tmmluplus/"
...# 開始執行評測 (會跑很久)
twinkle-eval --config config.yamlLinks
實作手冊
評測集
TMMLU+ (Traditional Chinese Massive Multitask Language Understanding Plus)
評測工具 / 框架
Twinkle Eval:高效且準確的 AI 評測工具
Twinkle Eval 視覺化報告 (Visualized Report)
DeepEval (@allenlin316 推薦這套)
資料集
論文
作者:Chi