📋總覽摘要

590
總學生數
完成評分
579
雙 Phase 齊全
覆蓋率 98.1%
35
Phase 1 CI 未通過
5.9%
94
Phase 2 CI 未通過
15.9%
81.13
平均分
final_with_bonus
86.44
中位數
Q1=80.26 / Q3=90.41
162
高分(≥ 90)
佔 27.5%
1
兩模型 |Δ| ≥ 20
P1 或 P2 任一相差超過 20 分
執行架構

HW3 採用三層 LLM 分工雙模型盲評機制。
Haiku 4.5 對每位學生的 README + Phase 1/2 程式碼做結構化摘要(590 次廉價 pass);
Opus 4.7 從全班摘要 map-reduce 建立 22 個 primary taxonomy 與跨面向統計;
Opus 4.7 + GPT-5.5 平行盲評 Phase 1 與 Phase 2,每位學生 × 2 phases × 2 models = 4 次評分呼叫;
Opus 4.7 產生全班分析報告 narrative。整體以 Anthropic + OpenAI Batch API 批次送出以取得約 50% 折扣。

📊分數分布

📈 final_with_bonus 直方圖(含 bonus 套用後,N = 590)

μ = 81.13 / median = 86.44 / σ = 18.56 / range = [0.00, 97.08]

📊 原始加權總分直方圖(未 Normalize、未 bonus)

μ = 75.14 / median = 82.56 / σ = 20.84 / range = [0.00, 93.95]

觀察: 原始加權平均(兩模型平均後 0.4·P1 + 0.6·P2)μ ≈ 75.14、median ≈ 82.56; 經全班 Normalize(floor=60,繳件過於空白者另判)與老師加分後,最終 μ = 81.13、median = 86.44。 25 位學生 final 低於 60,皆為內容嚴重不完整 / 空殼繳件(兩模型對所有 facet 皆評 < 30)。

🔍面向分析(7 個 facets)

🎯 七面向雷達圖(兩模型平均)
📏 各面向 IQR 與中位數
📋 各面向統計(兩模型平均 0–100 分)
面向PhaseMeanMedianσ MinMaxQ25Q75
資料收集 (P1)P172.7578.019.580.096.566.085.0
RAG 系統完整度 (P1)P181.0587.019.70.096.082.589.0
冪等性 (P1)P181.1392.023.280.097.578.094.0
資料收集深度 (P2)P276.2680.013.852.593.574.083.5
skill.md 品質 (P2)P275.5682.519.60.094.073.087.0
README 設計決策 (P2)P283.3789.017.831.096.085.091.0
skill_builder 品質 (P2)P276.1482.018.070.093.575.585.5
資料收集 (P1)
RAG 系統完整度 (P1)
冪等性 (P1)
資料收集深度 (P2)
skill.md 品質 (P2)
README 設計決策 (P2)
skill_builder 品質 (P2)

🤖雙模型比較(Opus 4.7 vs GPT-5.5)

590
雙模型齊全
可做一致性分析
29
P1 或 P2 |Δ| > 10
佔 4.9%,已標記
-2.80
總分差中位數 (Opus − GPT)
σ = 3.31
73.97
Opus 4.7 平均
0.4·P1 + 0.6·P2
76.30
GPT-5.5 平均
0.4·P1 + 0.6·P2
📊 兩模型加權差(Opus − GPT)直方圖
📐 各面向:Opus vs GPT 平均
觀察:兩模型加權總分差中位數 = -2.80(Opus 略低於 GPT)。 29 位學生 P1 或 P2 雙模型給分差 > 10 分;分歧多集中在 skill_builder_quality(最主觀的整合品質判斷) 與 data_collection(檔案完整度判斷有寬嚴差異)兩個面向。所有 |Δ| > 20 的高分歧案例自動寫入 _grade_review_index.md 並標示於評分 UI,最終結合人工覆核裁定。

🏷️領域分佈 (Taxonomy by Opus 4.7)

22 個 primary 領域分佈(依人數)
領域 × 平均分數
領域人數平均分中位數
academic_research_papers14784.7386.13
biomedical_health_domain6885.0886.31
industry_specific_apps6383.8788.17
ai_ml_systems_engineering5385.4788.18
finance_investment3584.2786.52
vendor_documentation3386.0989.08
broken_or_incomplete256.60.0
semiconductor_industry2485.4787.94
legal_regulatory_compliance2184.5984.08
personal_study_notes1984.2685.19
humanities_culture_entertainment1483.4386.11
lifestyle_entertainment1482.5183.81
engineering_industrial1087.2788.88
ai_safety_alignment984.1985.51
esg_sustainability985.7387.66
talent_workforce981.4586.21
policy_news_tracking887.2390.31
edtech776.1777.99
open_source_codebase785.9286.58
marketing_consumer_insights566.881.96
other574.2165.0
hci_design_research586.8689.06
Opus 4.7 以 map-reduce 對全班 590 份摘要建立 22 個 primary 領域, 其中 academic_research_papers 為最大宗領域(學術論文知識庫導向),其次為 vendor_documentation(框架文件)、biomedical_health_domain(生醫健康)等。 長尾領域涵蓋金融、法律、政策、文學與娛樂等垂直應用。

🎯兩個分數政策

本次 HW3 每位同學會公布兩個分數,取以下三個候選值中最高的兩個

A
Max(Phase 1 兩模型)
max(Opus_P1, GPT_P1)
B
Max(Phase 2 兩模型)
max(Opus_P2, GPT_P2)
C
final_with_bonus
加權平均 + Normalize + 老師加分
三個候選值中,「全班最高分」分布

最高分(score_1)來源分布: A(Max P1)293 位B(Max P2)66 位C(final_with_bonus)231 位。 多數學生的最高分來自 final_with_bonus(C),代表雙 phase 整體表現一致; 若 A 或 B 高於 C,通常代表該學生只有單一 phase 表現特別好(例如 Phase 1 強但 Phase 2 較弱)。

為什麼是兩個分數? HW3 涵蓋資料工程(P1)與知識萃取(P2)兩個不同性質的能力,且 P1 與 P2 各佔加權 40% / 60%。 若僅以加權平均一個分數呈現,會掩蓋學生在「資料工程」或「知識萃取」其中一面的突出表現。 改公布兩個分數,可同時呈現「綜合表現」與「單面向最佳表現」,更完整反映每位同學的實作能力。

⚠️常見問題

🚫 檔案 / 內容缺失統計
📉 全班常見 anti-pattern
  • 整個 repo 幾乎空白(僅 Classroom skeleton),兩 phase 都未實作
  • skill_builder.py 未呼叫向量檢索,僅一次 LLM call 自由生成 skill.md,違反 RAG 萃取精神
  • chunking 使用固定字元 / token 切分,未針對領域結構(法條、論文 section、code block)做特化
  • data_update.py增量 hash 機制,每次 rebuild 等同全量重建
  • README 未說明 chunking / embedding / vectorDB / retrieval / prompt 的設計取捨
  • skill.md 章節缺漏(最常見:Knowledge Gaps、Source References、Key Trends)
  • 幾乎無人實作 rerankinghybrid retrieval(BM25 + 向量)

🔎評分透明度

為了讓評分盡量公正,系統會自動標記以下幾種需要更多判讀的情境,並經由人工複核後才定案。

1
兩模型高度分歧 |Δ| ≥ 20
P1 或 P2 任一
35
Phase 1 CI 未通過
D13:不自動 clamp P2,由老師裁量
94
Phase 2 CI 未通過
同 D13
16
空殼繳件(bonus < 0)
兩模型對所有 facet 評 < 30 → 移除 60 floor
為什麼需要兩個模型 + 人工複核? RAG 系統的「設計決策論證」與「skill_builder 是否真的做 retrieval」這類面向, 容易因模型偏好造成分歧;用「Opus 4.7 × GPT-5.5」兩家不同家族的模型做盲評, 搭配差距超過 20 分就強制進入人工複核,是為了降低單一模型偏差對學生分數的影響。

⚖️評分方法論

面向權重
面向Phase權重
data_collectionPhase 1P1 內部均分
rag_system_completenessPhase 1P1 內部均分
idempotencyPhase 1P1 內部均分
data_collection_depthPhase 2P2 內部均分
skill_md_qualityPhase 2P2 內部均分
readme_design_decisionsPhase 2P2 內部均分
skill_builder_qualityPhase 2P2 內部均分
Phase 加權final = 0.4 × P1_avg + 0.6 × P2_avg
融合與 Normalize 公式
# 各面向由兩模型獨立給 0–100 分
opus_P1 = mean(opus 對 P1 三個 facet 評分)
opus_P2 = mean(opus 對 P2 四個 facet 評分)
gpt_P1  = mean(gpt  對 P1 三個 facet 評分)
gpt_P2  = mean(gpt  對 P2 四個 facet 評分)

# 兩模型平均
final_P1 = (opus_P1 + gpt_P1) / 2
final_P2 = (opus_P2 + gpt_P2) / 2

# 加權
raw_avg  = 0.4 × final_P1 + 0.6 × final_P2

# Normalize(max-floor 模式)
Normalize 後 = max(60, raw_avg)
# 空殼繳件(max of all 4 cells < 30)→ 改用 raw_avg 不套 floor

# 老師加分
final_with_bonus = min(100, Normalize + professor_bonus)
模型分工
階段模型呼叫數理由
Summarizeclaude-haiku-4-5590 (batch)每生一份結構化摘要;Haiku 最廉價且足夠精準
Taxonomyclaude-opus-4-7~14(map-reduce)需全局視野建立 22 個 primary 領域;只跑 Opus 一次
Score Aclaude-opus-4-7590 × 2 = 1180 (batch+cache)Phase 1 + Phase 2 評分;Opus 4.7 + 1h prompt cache 享 65%+ hit rate
Score Bgpt-5.5590 × 2 = 1180 (batch)獨立盲評作為交叉驗證;不同家族模型降低單模型偏差
Report Narrativeclaude-opus-4-71Executive Summary + 各領域 narrative + anti-patterns 彙整
成本優化:所有大量呼叫(summarize、score × 2 providers)均走 Anthropic Message Batches API 與 OpenAI Batch API; Opus score 階段疊加 1h prompt cache,cache hit rate 約 65–83%,總成本 US$208 比 sync-no-cache baseline(~$430)節省約 52%。
💰 實際執行成本
US$81
OpenAI API
GPT-5.5(score × 2 phase)
US$128
Anthropic API
Haiku + Opus(taxonomy / score / report)
US$208
總計
~3,000 次 LLM 呼叫、~$0.35/生

Haiku 4.5 做 590 次 summarize、Opus 4.7 做 taxonomy(~13 map + 1 reduce)、雙模型各 1180 次評分、Opus 做 1 次 narrative report。 大宗呼叫走 batch + cache,享 50% batch 折扣再疊 65%+ cache hit。