Spaces:
Sleeping
Sleeping
docs: Add README
Browse files
README.md
CHANGED
|
@@ -12,9 +12,103 @@ short_description: Twinkle Eval:高效且準確的 AI 評測工具
|
|
| 12 |
license: mit
|
| 13 |
---
|
| 14 |
|
| 15 |
-
#
|
| 16 |
|
| 17 |
-
|
| 18 |
|
| 19 |
-
|
| 20 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12 |
license: mit
|
| 13 |
---
|
| 14 |
|
| 15 |
+
# 🌟 Eval Analyzer
|
| 16 |
|
| 17 |
+
一個基於 🎈 **Streamlit** 的互動式工具,用來分析 **[Twinkle Eval](https://github.com/ai-twinkle/Eval)** 格式的評估檔案(`.json` / `.jsonl`)。
|
| 18 |
|
| 19 |
+
## 📌 功能特色
|
| 20 |
+
|
| 21 |
+
<p align="center">
|
| 22 |
+
<img src="https://github.com/ai-twinkle/llm-lab/blob/main/courses/2025-0827-llm-eval-with-twinkle/assets/gpt-oss-120b-mmlu-eval-report.png?raw=1" width="100%"/><br/>
|
| 23 |
+
<em>圖:gpt-oss-120b 在 MMLU 部分子集上的表現成績預覽</em>
|
| 24 |
+
</p>
|
| 25 |
+
|
| 26 |
+
- 支援上傳多個 **Twinkle Eval 檔案**(`json` / `jsonl`)。
|
| 27 |
+
- 自動解析評估結果,抽取:
|
| 28 |
+
- `dataset`
|
| 29 |
+
- `category`
|
| 30 |
+
- `file`
|
| 31 |
+
- `accuracy_mean`
|
| 32 |
+
- `source_label`(模型名稱 + timestamp)
|
| 33 |
+
- 提供整體平均值的計算,缺漏時自動補足。
|
| 34 |
+
- 視覺化:
|
| 35 |
+
- 各類別的柱狀圖(依模型分組對照)。
|
| 36 |
+
- 可選擇排序方式(平均由高→低、平均由低→高、字母排序)。
|
| 37 |
+
- 支援分頁顯示(自訂每頁顯示類別數量)。
|
| 38 |
+
- 指標可切換為原始值或 0–100 比例。
|
| 39 |
+
- 支援 **CSV 匯出**(下載分頁結果)。
|
| 40 |
+
|
| 41 |
+
## 🚀 使用方式
|
| 42 |
+
|
| 43 |
+
### 1. 安裝環境
|
| 44 |
+
建議使用虛擬環境(如 `venv` 或 `conda`):
|
| 45 |
+
|
| 46 |
+
```bash
|
| 47 |
+
pip install -r requirements.txt
|
| 48 |
+
```
|
| 49 |
+
### 2. 啟動應用程式
|
| 50 |
+
```bash
|
| 51 |
+
streamlit run app.py
|
| 52 |
+
```
|
| 53 |
+
|
| 54 |
+
### 3. 操作流程
|
| 55 |
+
1. 在左側 Sidebar 上傳一個或多個 **Twinkle Eval 檔案**。
|
| 56 |
+
2. 選擇要查看的資料集。
|
| 57 |
+
3. 設定排序方式、分頁大小、顯示比例(0–1 或 0–100)。
|
| 58 |
+
4. 查看圖表與資料表,並可下載 CSV。
|
| 59 |
+
|
| 60 |
+
## 📂 檔案格式要求
|
| 61 |
+
每份 json / jsonl 檔案需符合 Twinkle Eval 格式,至少包含以下欄位:
|
| 62 |
+
|
| 63 |
+
```json
|
| 64 |
+
{
|
| 65 |
+
"timestamp": "2025-08-20T10:00:00",
|
| 66 |
+
"config": {
|
| 67 |
+
"model": { "name": "my-model" }
|
| 68 |
+
},
|
| 69 |
+
"dataset_results": {
|
| 70 |
+
"datasets/my_dataset": {
|
| 71 |
+
"average_accuracy": 0.85,
|
| 72 |
+
"results": [
|
| 73 |
+
{
|
| 74 |
+
"file": "category1.json",
|
| 75 |
+
"accuracy_mean": 0.9
|
| 76 |
+
},
|
| 77 |
+
{
|
| 78 |
+
"file": "category2.json",
|
| 79 |
+
"accuracy_mean": 0.8
|
| 80 |
+
}
|
| 81 |
+
]
|
| 82 |
+
}
|
| 83 |
+
}
|
| 84 |
+
}
|
| 85 |
+
```
|
| 86 |
+
或者可以到 Twinkle AI [Eval logs](https://huggingface.co/collections/twinkle-ai/eval-logs-6811a657da5ce4cbd75dbf50) collections 下載範例。
|
| 87 |
+
|
| 88 |
+
## ⚠️ 檔案格式相容性注意事項
|
| 89 |
+
|
| 90 |
+
**重要提醒**:此工具目前支援特定的 JSON/JSONL 格式。來自外部資料集(如 Hugging Face 儲存庫)的檔案可能無法直接相容。
|
| 91 |
+
|
| 92 |
+
### 常見問題
|
| 93 |
+
- **缺少必要欄位**:缺少 `config` 或 `dataset_results` 欄位的檔案將無法載入
|
| 94 |
+
- **錯誤的檔案命名**:請使用 `results_*.json` 而非 `eval_results_*.jsonl` 格式
|
| 95 |
+
- **外部資料集格式**:來自其他工具或儲存庫的評估日誌可能使用不同的架構
|
| 96 |
+
- **欄位命名**:不同的欄位名稱(例如 `accuracy` vs `accuracy_mean`)可能導致解析錯誤
|
| 97 |
+
|
| 98 |
+
### 疑難排解
|
| 99 |
+
如果遇到「缺少必要欄位」錯誤:
|
| 100 |
+
1. 確認您的檔案包含所有必要的頂層欄位
|
| 101 |
+
2. 檢查巢狀物件是否遵循預期結構
|
| 102 |
+
3. 對於外部資料集,考慮建立轉換腳本或[提出議題](https://github.com/ai-twinkle/eval-analyzer/issues)請求格式支援
|
| 103 |
+
|
| 104 |
+
### 貢獻
|
| 105 |
+
我們歡迎支援額外格式的貢獻!請參閱我們的[貢獻指南](CONTRIBUTING.md)或提交功能請求。
|
| 106 |
+
|
| 107 |
+
## 📊 輸出範例
|
| 108 |
+
|
| 109 |
+
- **圖表**:顯示各模型在不同類別的 accuracy_mean 比較。
|
| 110 |
+
- **表格**:Pivot Table,行為類別,列為模型,值為 accuracy。
|
| 111 |
+
- **下載**:每頁結果可匯出成 CSV。
|
| 112 |
+
|
| 113 |
+
## 📄 License
|
| 114 |
+
MIT
|