[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-how-to-build-vintage-llm-testbed-5-steps-zh":3,"article-related-how-to-build-vintage-llm-testbed-5-steps-zh":30,"series-research-72828ff9-cbfb-4e10-81b2-9c4c9544b7f1":82},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":23,"views":27,"created_at":28,"published_at":29,"topic_cluster_id":11},"72828ff9-cbfb-4e10-81b2-9c4c9544b7f1","how-to-build-vintage-llm-testbed-5-steps-zh","5 步建出 1930 截止 LLM 測試台","\u003Cp data-speakable=\"summary\">用 5 個步驟建立一個 1930 截止的 \u003Ca href=\"\u002Ftag\u002Fllm\">LLM\u003C\u002Fa> 測試台，驗證歷史推理與無污染泛化。\u003C\u002Fp>\u003Cp>這篇給 ML 工程師、研究科學家與平台團隊看，目標是把一個只吃 1931 年以前英文文本的實驗管線做出來。照著做完，你會得到可追溯的歷史語料、去時間污染的篩選流程、OCR 清理後的訓練資料、古典指令微調資料，以及一套能和現代基線對照的評估流程。\u003C\u002Fp>\u003Cp>這個做法適合用來研究歷史推理、資料污染、以及模型在截止日期之後的泛化能力。你也會直接看到 OCR 品質、日期過濾與後訓練資料設計，如何和模型規模一樣重要。\u003C\u002Fp>\u003Ch2>開始之前\u003C\u002Fh2>\u003Cul>\u003Cli>Python 3.11+\u003C\u002Fli>\u003Cli>CUDA GPU，至少 28 GB VRAM，適合 13B 模型\u003C\u002Fli>\u003Cli>PyTorch 2.4+\u003C\u002Fli>\u003Cli>Hugging Face 帳號與模型權重存取權\u003C\u002Fli>\u003Cli>Git 2.40+\u003C\u002Fli>\u003Cli>OCR 工具，例如 Tesseract 5+ 或自建文件 OCR 管線\u003C\u002Fli>\u003Cli>可取得歷史語料，包含書籍、報紙、期刊、專利與判例\u003C\u002Fli>\u003Cli>選用：偏好最佳化用的 judge model API key 或本地模型\u003C\u002Fli>\u003C\u002Ful>\u003Cp>參考實作可先看專案頁、論文與 demo，再對照原始碼與權重。第一次出現的公開資源可從 \u003Ca href=\"https:\u002F\u002Ftalkie-lm.com\u002Fchat\">Talkie-1930 demo\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fwww.marktechpost.com\u002F2026\u002F04\u002F27\u002Fmeet-talkie-1930-a-13b-open-weight-llm-trained-on-pre-1931-english-text-for-historical-reasoning-and-generalization-research\u002F\">MarkTechPost 專案介紹\u003C\u002Fa> 與其連結的 \u003Ca href=\"\u002Ftag\u002Fgithub\">GitHub\u003C\u002Fa>、模型資源開始。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1777945255070-tzh6.png\" alt=\"5 步建出 1930 截止 LLM 測試台\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Ch2>Step 1: 組裝 1931 前語料清單\u003C\u002Fh2>\u003Cp>目的：建立一份日期明確、可稽核、且法律上可用的歷史語料清單，讓模型的知識截止日清楚可查。\u003C\u002Fp>\u003Cp>先收集公有領域英文文本，來源包含書籍、報紙、期刊、科學雜誌、專利與判例。每筆資料都要保留 metadata，尤其是出版日期、來源類型與掃描來源。再替每個項目建立穩定 ID，確保訓練 \u003Ca href=\"\u002Ftag\u002Ftoken\">token\u003C\u002Fa> 能回溯到原始實物。\u003C\u002Fp>\u003Cpre>\u003Ccode>python build_corpus.py \\\n  --sources books,newspapers,journals,patents,case_law \\\n  --cutoff-date 1930-12-31 \\\n  --output corpus\u002Fmanifests\u002Fpre1931.jsonl\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>你應該看到一份 manifest，裡面每個文件都被驗證在 1930-12-31 以前。抽查一筆記錄時，source、publication year 與 scan path 都應該存在。\u003C\u002Fp>\u003Ch2>Step 2: 排除時間污染文件\u003C\u002Fh2>\u003Cp>目的：移除不合時代的內容，避免誤標日期、後來重印版或編者註把 1930 之後的知識帶進模型。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1777945259007-i5nr.png\" alt=\"5 步建出 1930 截止 LLM 測試台\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>做一個文件層級的篩選器，把日期檢查和 n-gram 或分類器式的時代錯置偵測一起用。把提到 1930 年後事件、技術或人物的頁面標記出來，並排除 metadata 不確定的項目。這一步很關鍵，因為只靠日期欄位，仍可能漏掉污染樣本。\u003C\u002Fp>\u003Cp>實作上，建議保留一個 quarantine 集合，先把可疑文件丟進去，再人工複核後決定是否納入正式語料。若要重現 Talkie-1930 類型的實驗，這個步驟不能省，因為清單正確不代表內容一定乾淨。\u003C\u002Fp>\u003Cp>你應該看到語料規模下降，外加一份 leakage report。好的驗收訊號是，隨機抽樣內容不再出現明顯的 1930 後引用，例如第二次世界大戰、現代電腦或更晚的政治事件。\u003C\u002Fp>\u003Ch2>Step 3: 轉 OCR 並清理掃描頁\u003C\u002Fh2>\u003Cp>目的：把頁面影像轉成可訓練文字，同時把歷史掃描常見的雜訊降到最低。\u003C\u002Fp>\u003Cp>先對每一頁掃描檔做 OCR，再處理斷字、頁首頁尾、邊註與連字形變體。若條件允許，拿一小段人工轉錄資料當基準，對照普通 OCR 與清理後文本的差異。這類歷史資料的問題通常不是只有識別率，而是版面和字形造成的系統性錯誤。\u003C\u002Fp>\u003Cpre>\u003Ccode>python ocr_pipeline.py \\\n  --input scans\u002F \\\n  --engine tesseract \\\n  --cleanup rules\u002Fhistorical_regex.yml \\\n  --output text\u002Focr_cleaned\u002F\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>你應該看到頁級對齊的文字檔，以及一份品質報告，裡面包含 character error rate、token re\u003Ca href=\"\u002Fnews\u002Fwhy-latent-agents-proves-internalized-debate-zh\">tent\u003C\u002Fa>ion 與 cleanup gains。若清理後樣本仍有斷行、重複頁首或怪異空白，先修 preprocessing rules，再進入訓練。\u003C\u002Fp>\u003Ch2>Step 4: 用歷史 token 訓練 base model\u003C\u002Fh2>\u003Cp>目的：把基礎模型限制在 1930 截止世界的語言分布中，讓它只學歷史語料的模式。\u003C\u002Fp>\u003Cp>使用標準 causal language modeling 設定，但資料流必須保持純歷史。token 數量要精準追蹤，參考專案使用過約 2600 億 token。checkpoint 要定期存，並在保留的 1931 前文本上算 perplexity，確認模型是在學分布，而不是背掃描雜訊。\u003C\u002Fp>\u003Cp>為了可重現，請固定 tokenizer、sequence length、optimizer 與 mixed precision 設定。若你要做現代對照組，請用相同架構與超參數，在當代語料上訓練一個 twin model，這樣\u003Ca href=\"\u002Fnews\u002Fhow-to-compare-music-ai-companies-zh\">比較\u003C\u002Fa>才公平。\u003C\u002Fp>\u003Cp>你應該看到 training loss 穩定下降，且 held-out historical perplexity 持續改善。健康的訊號是，模型能以符合年代的語氣續寫文本，而且不會冒出現代用語。\u003C\u002Fp>\u003Ch2>Step 5: 用古典指令後訓練並評估\u003C\u002Fh2>\u003Cp>目的：讓模型學會跟隨指令，但不把現代聊天習慣或當代知識帶進來。\u003C\u002Fp>\u003Cp>把 pre-1931 來源整理成 instru\u003Ca href=\"\u002Fnews\u002Factian-vectorai-db-claims-22x-faster-search-zh\">cti\u003C\u002Fa>on-response 對，例如禮儀手冊、書信指南、食譜書、字典、百科全書、詩集與寓言集。接著做 supervised fine-tuning，再用 judge model 做 preference optimization。參考管線會再加一輪合成對話，提升指令跟隨能力，同時維持歷史約束。\u003C\u002Fp>\u003Cpre>\u003Ccode>python post_train.py \\\n  --base_model checkpoints\u002Ftalkie_base \\\n  --instruction_data data\u002Fvintage_instructions.jsonl \\\n  --dpo_judge claude-sonnet-4.6 \\\n  --output checkpoints\u002Ftalkie_it\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>你應該看到五分量表上的指令遵循分數上升，對話回應也更實用。評估時，請同時測 anachronistic 與已過濾的 benchmark，再和你的 modern twin 對照，才能看出差距是來自歷史截止、OCR 雜訊，還是主題不匹配。\u003C\u002Fp>\u003Ch2>常見錯誤\u003C\u002Fh2>\u003Cul>\u003Cli>只靠日期欄位過濾。修法：加上時代錯置分類器，並對可疑文件做人工複核。\u003C\u002Fli>\u003Cli>直接拿原始 OCR 文本訓練。修法：先套清理規則，再用人工轉錄子集驗證。\u003C\u002Fli>\u003Cli>後訓練混入現代指令資料。修法：只從 1931 年以前的手冊、百科與類似來源萃取 prompt 與答案。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>另一個常見問題是低估硬體需求。13B 模型要能跑得穩，通常需要仔細調整 batch size 與 \u003Ca href=\"\u002Ftag\u002Fcuda\">CUDA\u003C\u002Fa> 記憶體餘裕；若你要多節點擴充，還要固定資料順序與 checkpoint 命名，才能讓歷史實驗可重現。\u003C\u002Fp>\u003Ch2>接下來可以看什麼\u003C\u002Fh2>\u003Cp>如果這條管線已經跑通，下一步可以擴到更大的歷史語料、加入更適合舊版排版的 OCR 模型，並做預測、時間驚奇與程式泛化的控制實驗。再往下，你就能把 1930 截止模型和現代 LLM 並排比較，觀察哪些能力依賴網路時代知識，哪些其實來自語言建模本身。\u003C\u002Fp>","用 5 個步驟建立一個 1930 截止的 LLM 測試台，驗證歷史推理與無污染泛化。","www.marktechpost.com","https:\u002F\u002Fwww.marktechpost.com\u002F2026\u002F04\u002F27\u002Fmeet-talkie-1930-a-13b-open-weight-llm-trained-on-pre-1931-english-text-for-historical-reasoning-and-generalization-research\u002F",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1777945255070-tzh6.png","research","zh","05451495-1e4d-4e70-855f-f92e68a1a699",[17,18,19,20,21,22],"LLM","OCR","historical corpus","fine-tuning","DPO","benchmark contamination",[24,25,26],"先建立 1931 前語料清單，再用日期與時代錯置雙重過濾避免污染。","OCR 清理會直接影響訓練效率，不能把原始掃描文字直接丟進模型。","後訓練資料也要維持歷史邊界，才能公平評估 1930 截止模型。",2,"2026-05-05T01:40:31.318037+00:00","2026-05-05T01:40:31.154+00:00",{"tags":31,"relatedLang":41,"relatedPosts":45},[32,33,35,37,39],{"name":20,"slug":20},{"name":17,"slug":34},"llm",{"name":19,"slug":36},"historical-corpus",{"name":21,"slug":38},"dpo",{"name":18,"slug":40},"ocr",{"id":15,"slug":42,"title":43,"language":44},"how-to-build-vintage-llm-testbed-5-steps-en","How to Build a Vintage LLM Testbed in 5 Steps","en",[46,52,58,64,70,76],{"id":47,"slug":48,"title":49,"cover_image":50,"image_url":50,"created_at":51,"category":13},"a4cf24e5-b958-4f91-bdca-2f1a57e81aef","why-benchmark-leaderboards-are-wrong-about-model-logic-zh","為什麼基準排行榜看錯了模型邏輯","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780673571153-x7yi.png","2026-06-05T15:32:23.043639+00:00",{"id":53,"slug":54,"title":55,"cover_image":56,"image_url":56,"created_at":57,"category":13},"4a829d2a-24a3-42dd-8be4-49e5ab35435a","why-prompt-engineering-is-wrong-about-2026-zh","為什麼 2026 年 prompt engineering 錯了","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780661884287-ow45.png","2026-06-05T12:17:19.813402+00:00",{"id":59,"slug":60,"title":61,"cover_image":62,"image_url":62,"created_at":63,"category":13},"52a37532-880d-4261-8f62-2f254d6c592d","spire-evidence-grounded-ai-humanities-zh","SPIRE 讓人文 AI 更重證據","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780647483844-bcuj.png","2026-06-05T08:17:29.603104+00:00",{"id":65,"slug":66,"title":67,"cover_image":68,"image_url":68,"created_at":69,"category":13},"b38c56a6-e7f3-45fb-b100-d37e7b3ed417","reinforcement-aware-distillation-llm-reasoning-zh","強化感知蒸餾，想把推理一起學進去","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780646589500-0me6.png","2026-06-05T08:02:33.908932+00:00",{"id":71,"slug":72,"title":73,"cover_image":74,"image_url":74,"created_at":75,"category":13},"60f7d702-20a7-4cec-9a80-185f072c8dfe","next-token-models-plan-ahead-zh","次詞模型其實會先想一步","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780645684780-roea.png","2026-06-05T07:47:34.35089+00:00",{"id":77,"slug":78,"title":79,"cover_image":80,"image_url":80,"created_at":81,"category":13},"7ec803f7-2658-4c9e-baa6-2b8528407d7f","google-deepmind-co-scientist-researchers-zh","Google DeepMind 對外開放 Co-Scientist","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780636679231-q694.png","2026-06-05T05:17:30.68789+00:00",[83,88,93,98,103,108,113,118,123,128],{"id":84,"slug":85,"title":86,"created_at":87},"f18dbadb-8c59-4723-84a4-6ad22746c77a","deepmind-bets-on-continuous-learning-ai-2026-zh","DeepMind 押注 2026 連續學習 AI","2026-03-26T08:16:02.367355+00:00",{"id":89,"slug":90,"title":91,"created_at":92},"f4a106cb-02a6-4508-8f39-9720a0a93cee","ml-papers-of-the-week-github-research-desk-zh","每週 ML 論文清單，為何紅到 GitHub","2026-03-27T01:11:39.284175+00:00",{"id":94,"slug":95,"title":96,"created_at":97},"c4f807ca-4e5f-47f1-a48c-961cf3fc44dc","ai-ml-conferences-to-watch-in-2026-zh","2026 AI 研討會投稿時程整理","2026-03-27T01:51:53.874432+00:00",{"id":99,"slug":100,"title":101,"created_at":102},"cf046742-efb2-4753-aef9-caed5da5e32e","adaptive-block-scaled-data-types-zh","IF4：神經網路量化的聰明選擇","2026-03-31T06:00:36.990273+00:00",{"id":104,"slug":105,"title":106,"created_at":107},"53a0dc54-0371-4e40-8d5e-74e94a73840c","geometry-aware-similarity-metrics-for-neural-representations-zh","超越距離測量：用微分幾何重新理解神經網路","2026-03-31T06:01:01.241968+00:00",{"id":109,"slug":110,"title":111,"created_at":112},"fee7d472-a775-4b1d-bbc2-1e8bca1bbf8b","on-the-fly-repulsion-in-the-contextual-space-for-rich-divers-zh","讓AI繪圖更有創意：用排斥力提升生成多樣性","2026-03-31T06:01:25.439673+00:00",{"id":114,"slug":115,"title":116,"created_at":117},"a9901203-d69b-447b-8854-15d14eab32b4","vision-aided-beam-prediction-cnn-eca-zh","影像輔助波束預測升級 CNN","2026-04-01T10:00:25.8073+00:00",{"id":119,"slug":120,"title":121,"created_at":122},"b55e7dd4-0a24-4b3d-804d-b0309a03f498","triple-band-fss-mimo-antenna-sub-6-ghz-zh","三頻 FSS MIMO 天線瞄準 sub-6 GHz","2026-04-01T13:18:36.857305+00:00",{"id":124,"slug":125,"title":126,"created_at":127},"f68290bd-e7f3-4b30-ba22-dcd4e0130a66","openclaw-1299-repos-eight-weeks-analysis-zh","OpenClaw 1299 個 Repo 的資料解讀","2026-04-02T05:03:45.208411+00:00",{"id":129,"slug":130,"title":131,"created_at":132},"ed9f80eb-eb02-4d35-8ad4-0ddf428751dd","beam-coherence-aware-combining-mmwave-mimo-zh","毫米波 MIMO 的雙階合併法","2026-04-02T05:27:26.897188+00:00"]