AI 批次寫出來的內容,最常見的失敗有兩種。一種是風格斷層:同一批頁面,段落標題、圖片位置、圖說長短各寫各的,讀者一眼就看得出不是同一個人寫的。另一種是亂編:資料裡沒有的材質、工期、保固,模型會順手補上,補得像真的一樣。
亂編的風險有公開文件可循。NIST 的生成式 AI 風險管理配套文件,把資訊完整性列為風險之一,指出生成內容可能讓人難以分辨事實與意見(NIST,2024)。放在企業網站上,模型補出的一句規格,讀者會當成企業說的話。
只換一段更好的提示詞,兩種問題都無法根除。可行的做法是在流程中設關卡:每一關有明確的通過條件,程式能判斷的交給程式,程式判斷不了的才交給模型或人審。磨人開發團隊在AI 批次內容與資料處理服務中使用這套做法,以下依關卡逐一說明。

先統計既有內容,再訂規則
淇豪廣告的案例文章,正式站已有 90 篇,之後每個新案例都由 AI 建案。要讓新文章讀起來和舊文章出自同一人,第一步不是寫風格指南,而是統計這 90 篇實際的樣子。規則取自統計結果,不取自設計偏好。
| 統計項目 | 既有 90 篇的結果 | 寫成的規則 |
|---|---|---|
| 圖片張數 | 2 張 9 篇、3 張 66 篇、4 張 12 篇、5 張 2 篇、6 張 1 篇 | 圖數的範圍依這個分布訂,不憑印象 |
| 段落標題 | 88 篇(共 90 篇)只用固定三段 | 段落標題只准用固定三段 |
| 區塊數量 | 中位數 10 個區塊 | 新文章的區塊數以此為參考 |
| 常見問答 | 461 題,歸納成 6 型 | 新問答依這 6 型撰寫 |
| 圖說長度 | 由上而下遞減,約 110、70、40 字 | 圖說長度依位置遞減,不是每張一樣長 |
上表為 2026 年夏季的統計。NIST 的 AI 風險管理框架(AI RMF 1.0)有 GOVERN、MAP、MEASURE、MANAGE 四項功能,其中 MEASURE 以量化、質化或混合的方法分析、評估、比較與監控 AI 風險(NIST,2023)。先統計再訂規則,順序與此一致。
規則要能被程式檢查
一條規則要寫到程式能回答通過或不通過,才算規則。段落標題只准用固定三段,程式比對字串即可。圖片穿插有固定的槽位,程式檢查每個槽位有沒有圖。圖說長度有範圍,程式數字數。「語氣自然」這類程式答不了的條件,不放進必過的規則,留給抽審。
統計也會抓出既有資料的缺陷,缺陷要直接寫進規則。既有的圖片區塊中,約九成的 alt 與 title 完全相同,平均只有 5 個字,對看不到圖的讀者等於沒有資訊。新規則要求實際看圖之後,寫 20 到 40 字的畫面描述,而且不得等於 title。
規則的數值要用實際審查結果校準。描述的上限原訂 40 字,後來校準到 50 字:審查發現 41 到 49 字的描述品質良好,硬性卡在 40 字,會逼審查者對同樣品質的內容給出不同的判定。規則要擋的是壞內容,不是好內容。

全部自動檢查通過,內容仍可能是錯的。批次完成後仍要逐篇核對圖文,因為圖文可能錯配,例如文字寫的建物與圖片不同。案例首屏也要用手機與桌機截圖驗收,標題可能壓在招牌字上,手機版的招牌可能被裁切。API 與結構檢查對這兩種錯都沒有反應,所以圖文核對與截圖驗收留給人。
依淇豪案例文章與大量文件標註兩類做法整理。
規則寫完之後還要維護。Sculley 等人指出,機器學習系統的快速進展看似免費,長期維護成本卻會累積,摘要列出資料相依性是風險來源之一(Sculley 等,2015)。規則依賴既有資料,資料改變,規則就要重新校準,上面 alt 上限的調整就是一例。Breck 等人提出的檢核表,列出機器學習系統上線前與上線後都該有的測試與監控項目(Breck 等,2017)。關卡也該這樣設計:上線前擋得住,上線後看得見。
找不到來源就留空,要求補件
brief 的欄位只能取自文件中實際存在的資訊。找不到,就留空,不用空話填。網站上杜撰的材質、工期、保固,一經發布就是不實陳述。
施工難點這類欄位最有價值,空白時生成品質明顯下降。遇到空白,做法是回報缺什麼、請同事補件,不是硬寫。已知的事實則不能留空:淇豪自己的資訊,例如專案規劃及執行單位,brief 沒寫也要填。個案的材質、工期、保固屬於專案客戶,沒有來源就留空。
若批次內容的來源是檢索取回的文件,可先讀RAG 的運作方式與適用情境。批次流程上線前如何離線評測,見AI 上線前的評測做法。
翻譯時,程式會比對的字串不能被翻掉
淇豪的案例網站在 2026 年上線四語系,規模是 90 個案例、27 個分類、83 個品牌與 7 篇技術文章。翻譯時,內容的區塊結構(數量、順序,以及 type、order、image、url 欄位)不可改動,只翻文字欄位。
- 有些中文字串同時是程式識別值,例如狀態、材質比對,以及送到後端的值,翻掉就壞。下拉選單的 option 沒有 value 時,顯示的文字就是送出的值,要先補上 value,再翻 label。
- 合作單位的判斷若寫成「partner.title 等於中文的客戶」,多語後這個條件永遠不成立,手機版的年份就會消失。
- next-intl 的訊息 key 不可含點,否則整個訊息提供者拋錯,全站訊息失效。四個語系的 key 集合必須一致,翻完用腳本比對。
- 工法詞彙,例如發光字,四個語系要用同一種譯法。
共同原因是翻譯模型不知道哪些字串被程式引用,所以翻完要用腳本比對各語系的欄位與 key。
花最多的是審查,不是標註
一批上千份的 PDF 文件,需要重排段落並加上標籤。試跑兩輪、約 60 篇,五個評分項目的平均分由約 3.7 升到約 3.9,絕大多數比舊版好。花費幾乎都在審查:兩輪的審查費用約為標註的 20 倍。
- 1 倍最貴的模型逐篇審查試跑約 20 倍
不具名專案,費用依牌價換算,非帳單;以標註費用為 1 倍。
結論是全量處理不讓最貴的模型逐篇讀。改法有四項。
- 程式先產出精簡的審查對照檔,審查者不翻資料庫與原檔。
- 中階模型依風險抽審 10 到 15%,長篇、掃描檔、版面有疑慮、來自新來源的文件優先。
- 升級條件寫成規則:邊界或覆蓋的評分在 3 分以下,且原因出在標籤端,才升級給最強的模型。驗證器過不了的文件也升級。
- 標註端一篇一個子任務,長篇先切段再合併。驗證器的結束碼為 0 才收件,不靠人眼判斷。
- 程式產出審查對照檔審查者不翻資料庫與原檔
- 中階模型依風險抽審約一成,長篇、掃描檔、版面有疑慮的優先
- 邊界或覆蓋的評分在 3 分以下,且原因在標籤端升級給最強的模型難例
- 驗證器過不了升級給最強的模型結束碼不為 0
- 其餘留在抽審,不升級驗證器通過,評分達標
全量結果:約 1,500 篇文件、約 2.9 萬則,超過 90% 有情境小標;抽審約 160 篇(約一成),平均分約 4,達到目標。子任務約 1,600 個交給最小的模型,約 50 個交給中階模型,最強的模型不到 10 個。整批的成本落在數百美元等級,平均每篇不到一美元,金額依牌價換算,非帳單。
- 全量標註約 1,500 篇一篇一個子任務,驗證器結束碼為 0 才收
- 未抽中約 1,350 篇不進模型審查,由驗證器把關
- 依風險抽審約 160 篇約一成,長篇、掃描檔、版面有疑慮、新來源優先
不具名專案的全量結果,數字為約略值;未抽中的文件仍須通過驗證器。
抽審建立在標註品質可量測的前提上。Snow 等人以眾包平台收集非專家標註,五項任務的非專家標註與專家金標準都高度一致,並提出偏誤校正來改善品質(Snow 等,2008)。該研究的對象是人不是模型,可借用的是做法:保留對照答案,抽樣量出實際品質,再決定是否加強審查。另一方面,模型當評審有已知的偏好,包括偏好特定位置的答案、較長的回答與自己產生的答案(Zheng 等,2023)。因此程式能驗證的項目,例如逐字比對與結束碼,不交給模型評審。
數字類內容附原文片段,由第二位獨立複核
官方資料頁上的申請條件,例如年級、成績、語言檢定的門檻,是模型最容易順手改寫的內容。處理方式是讓每個結構化的值都附上原文片段(quote),由程式驗證片段確實是原文的子字串、數字確實出現在片段裡。原文寫「或」就是「或」,寫「且」就是「且」,原文沒寫的條件不加。
抽取分兩段。第一位抽取者逐組抽出條件;第二位獨立複核,提示詞要求假設前一位有錯,逐列重讀年級、成績、每項考試有無漏列、新舊制、分項、學士與研究生、或與且。兩關都必須通過檢查程式,仍需要人看的列記在 flags 欄位,整理成一張表交給客戶確認。
資料更新時只重做有改動的部分。重新抓取官方資料後,用 diff 工具列出新增、消失與有改動的項目。消失的列只視為候選下架,先問客戶,不自動下架。只有申請條件有改的項目才交給 AI 重新結構化,其餘如名額、年曆,由程式套用。只差英文括號的項目也算有改動,因為 quote 必須逐字出現在原文。首次處理約 290 個單位、約 330 組條件,後續兩次分別約 100 個與約 60 個單位。
估費用要用輪數乘上下文,不是代理數
用 AI 代理做大量工作,費用最容易被低估。費用取決於每個代理跑幾輪、每輪重讀多少內容,只算代理數,會漏掉最大的一塊;動態分派代理時,代理數還會隨發現數成倍放大。
估法是輪數 × 平均上下文 × 快取讀取單價。動態分派代理之前,先算出「發現數 × 驗證者數」的上限,講不出這個數字,就不要那樣設計。其餘做法是拆小任務、限制輪數、中途量用量。預估超過門檻時,先報給客戶,同意後才跑。
額度也要依用途分帳。常見的情況是:原本只服務終端使用者查詢的金鑰被拿去跑批次標註,批次一旦提示詞寫錯,整批丟棄的呼叫就是純浪費,前台的正當查詢卻可能因額度耗盡而失敗;測試站的額度通常很小,批次測試就足以把使用者要用的額度用完,問答功能因此全部失敗。對策是劃線:批次、清理、測試一律不動服務使用者的金鑰;用這把金鑰的批次試跑先報預估花費,同意才跑;整批資料處理改由團隊自己的方案執行。
這樣分帳還有一個理由。大量並行呼叫失控、用量暴增時,第一個反應往往是懷疑金鑰外洩,因為用量圖分不出正常工作與金鑰被盜。內部批次走獨立的金鑰或本機,圖上出現的異常,就是異常。金鑰只花在後台提交的需求上,壞掉時整輪中止,不重複呼叫十幾次。
快取是另一個省錢的地方,也有靜默失效的門檻。乖獸(Cooking Monsters)的正式站在系統提示詞上加了 cache_control,提示詞約 4,920 token,只比所用較小模型的最低可快取門檻 4,096 高約 800。官方文件說明,提示快取有依模型而定的最低可快取 token 數,低於門檻的提示即使標記 cache_control 也不會被快取(Anthropic 官方文件)。提示詞日後若精簡到門檻以下,快取讀取量會變成零,API 卻不報錯。對策是在日誌表記錄輸入、輸出、快取寫入、快取讀取四種 token,做成用量與費用儀表板,讓失效看得見。
同樣的原則也用在圖像與報價,見大型活動的角色系統與婚宴外燴的線上提案。
不適合的情況
- 批次量很少。人工逐篇處理更快,統計、訂規則與寫驗證器的前置工作收不回來。
- 內容本身要有獨特觀點,例如評論。規則保證得了一致與不亂編,保證不了觀點。
- 來源資料不足,又不接受留空。模型被要求填滿每個欄位,缺的資訊就只能杜撰。
動手前要準備什麼
需要準備三項:現有內容的樣本與數量、要處理的語言、誰負責最後審稿。樣本用來統計並訂出規則,數量決定抽審的比例與預算,語言決定要不要額外檢查識別值,最後審稿的人決定難例交給誰。準備好之後,請聯絡磨人開發團隊,說明現有內容的狀況。




