hero

把客服信分流、判斷影評正負面,聽起來不像需要重新發明 AI。Sebastian Raschka 卻從十五年前的詞袋模型一路講到 Jev:令人意外的不是「分類」這件事有多新,而是一個不用替每個任務重新訓練、又能快速回答有限選項的模型,究竟跨過了哪些老方法的門檻。這篇沿著他的技術史與親測讀,也把跑分、廠商宣稱和對 Jev 內部機制的猜測放回各自的位置。

原文摘要

詞袋:便宜、好用,但詞序被倒掉了

在 Transformer 普及前,文字分類往往先把長短不一的句子變成固定長度向量,再交給樸素貝氏、邏輯迴歸、SVM 或 XGBoost 等分類器。詞袋(bag-of-words)的做法是先建立訓練資料中的詞彙表;每個詞佔向量的一格,記錄它在一篇文件裡出現幾次。五萬個詞的詞彙表,就給十個字的短評與三十萬字的長文同樣五萬格;大多數格子是零。也可以用 TF-IDF 取代原始詞頻,或去掉較少承載語意的停用詞。拿有標籤的垃圾郵件訓練邏輯迴歸,模型便能學到哪些詞及其出現次數傾向於垃圾信、哪些傾向於正常信。Raschka 提到,Gmail 早年的垃圾信過濾據稱也用過類似的樸素貝氏方法;這是他轉述的說法,不是本文的新考證。

代價是順序消失。「狗咬人」與「人咬狗」若使用同一批詞,詞袋向量相同;加入相鄰詞組 n-gram 可以保存局部順序,卻會撐大詞彙表。對線索明顯、風險低的問題,低運算成本仍然有價值。Raschka 至今把詞袋加邏輯迴歸當成分類任務的基線;他引用自己在平衡的 IMDb 影評資料上得到的 89.9% 準確率。這不是說它普遍比深度學習好,而是提醒讀者先用一個便宜、可比較的起點。

從字詞嵌入到 RNN、CNN

把詞袋接到多層感知器,仍不會找回句子結構。另一條路是給每個詞一個可學得的密集向量,也就是詞嵌入;Word2Vec、GloVe 可以先在模型外學好,也可以讓嵌入層在訓練時一併更新。傳統靜態嵌入在查表時不看上下文,所以「河岸」與「銀行帳戶」裡的 bank 會拿到同一個初始向量;後續網路或注意力機制才有機會利用語境區分。

RNN 依序讀入詞嵌入,把當前輸入與上一步隱藏狀態合起來更新。狀態像一份固定容量的沿途筆記;換個詞序,更新路徑就變了。圖上把網路畫成逐步展開,不代表每一步是不同的網路:權重被重複使用,也因此可以處理不同長度的輸入。但長序列資訊受隱藏狀態容量限制,計算又有前後步依賴;LSTM、GRU 透過閘門改善資訊保留。Raschka 的一個從頭訓練的 LSTM 在 IMDb 僅得 85.66%,訓練準確率高於測試也顯示過擬合。不能把它當成所有 RNN 的天花板:他另引 2018 年先預訓練再遷移微調的 ULMFiT 論文,在 IMDb 報出 95.4%。狀態空間模型也承襲逐步更新固定狀態的想法;注意力機制則早於 Transformer,就已出現在 RNN 工作中。

CNN 不必像 RNN 那樣沿著整段文字逐步傳遞狀態。它讓同一組濾波器滑過相鄰詞的窗口,例如三詞一組從「the movie had surprisingly good acting」抽取局部模式;不同位置可平行運算。若直接攤平所有窗口輸出,文件變長時分類頭的輸入大小也跟著變;全域最大池化則為每個濾波器選出最強訊號,得到固定尺寸表示。Raschka 自己的文字 CNN 在平衡 IMDb 上得 90.07%,並特別提醒架構選擇會影響數字;不能只憑這一個模型的分數替 CNN 與 RNN 排名。

Transformer 的三條分類路線

2017 年的原始 Transformer 是用於翻譯的 encoder–decoder 架構。之後分類實務常走向兩支:BERT 類 encoder 從輸入雙向取資訊,取開頭的 [CLS] 位置表示接分類頭並對目標資料微調;GPT 類 decoder 主要為逐 token 生成設計,也能用提示直接輸出「正面/負面」。後者做零樣本或少樣本分類很方便,但在固定領域要求穩定結構化輸出時,靠文字生成標籤可能脆弱又浪費生成工作;也可以把龐大的詞彙輸出層換成小型分類頭,再微調。因果注意力遮罩意味著分類用的位置必須看得到前面的完整輸入,通常取最後一個非 padding token 的狀態。

兩條路都可以先利用大規模預訓練,再以目標資料微調。Raschka 用少量調參讓 ModernBERT 在 IMDb 約達 95%,小型 GPT-2 124M 約得 92%;前者仍有調參改善空間,後者也不代表較新的 decoder 模型的上限。開放權重的 GPT 類架構選擇很多,但用十億級以上參數只做分類,效率未必划算。

Encoder–decoder 並未消失。原始 Transformer 用監督式翻譯訓練;T5 改採遮住一段文字、讓 decoder 補回缺段的預訓練方式,再轉到下游任務。它既可加分類頭,也可訓練 decoder 直接輸出類別文字,形成 text-to-text 分類;後者通常仍需按目標領域微調。Raschka 也提到較新的 DeepSeek V4.1 Flash 是 encoder–decoder 變體,但其 encoder 帶因果性,不能直接等同 T5 的雙向 encoder。這段歷史的共同點是:模型能讀懂文字,不等於免去界定任務、準備標籤與衡量泛化的工作。

Jev 提供的是跨任務的有限選項決策

TypeSafe AI 對 Jev 的介紹把它定位成快速、低成本的決策模型。Jev 本身是專有模型,不是開源權重;上市後出現許多開源仿作,兩者不能混為一談。官方比較圖聲稱其決策能力可比 GPT-5.6 Luna,速度與費用卻低許多;這是廠商提供的 benchmark,不是 Raschka 用 IMDb 所做的獨立比較。Raschka 說自己與 Jev 無合作關係,也沒有免費使用額度;原本覺得「分類器我也會做」,試用後才改觀。他仍承認,若任務狹窄而定義清楚,特製分類器可能更準、更快、更便宜;Jev 的賣點是同一模型能換題目,不必每題重新微調。能分類客服郵件,也能以 Choice API 在俄羅斯方塊遊戲中快速選動作,不表示兩者難度或安全要求相同。

介面把有限答案直接變成輸入規格。Choice 接收任務指示與各選項的名稱、判準,返回單一選擇、各選項的數值與另列的 confidence;後者依 API 說明概括分布有多集中,並不等同獲勝類別的機率。Noul 回答一個是非問題的「是」數值;可對同一篇文章分別問是不是財經、政治、科技,這些值各自獨立,不必加總為一,適合可有多個標籤的情況。Score 按事先定義的級距判分,例如 0、1、2 的有序等級。Raschka 的例子以 state 放影評文字、questions 裡放任務與判準,使用 jev-1.13.0 向 API 請求;同一段正面影評,Choice 回傳正面類別及 1.0 的例示數值,Noul 則回 0.98。這些是 API 輸出示例,不是校準已通過驗證的證據。

更有分量的是 Raschka 自己跑完整個 IMDb 測試集 25,000 篇影評:Choice 正確 24,117 篇,準確率 96.47%,花 22 分 24 秒、約 1,545 萬輸入 token,帳單 0.6492 美元;Noul 正確 24,050 篇,96.20%,花 23 分 3 秒、約 1,511 萬輸入 token,帳單 0.6345 美元。他重跑 Choice 得到略不同結果,因此沒有把兩種 API 的微小差距解讀成可靠的優劣;大規模推論的非決定性可能與批次執行時浮點運算順序變動有關。測試另有一項關鍵但書:無法確認 IMDb 測試資料是否進入 Jev 訓練集。

在他的比較環境 DGX Spark 上,ModernBERT 需約 23 分鐘微調、7 分鐘評估,最佳版本的準確率與 Jev 相近;更仔細的調參、量化或更快硬體也可能改變比較。但那個微調好的 ModernBERT 只會判影評,不能不經重新訓練就去玩俄羅斯方塊。傳統權衡是一次性判斷交給便宜 LLM,大量重複任務則訓練專用分類器;Jev 有機會在兩者之間省下微調工夫與大模型推論費用,但超高流量、窄而固定的工作仍可能值得自行訓練。

「一個節點」是可實作的類比,不是 Jev 架構揭露

Raschka 曾把 Jev 風格 API 接到 ModernBERT 上,最後決定不發布那個仿作。他說把介面接上去、甚至拿多種分類資料微調都相對容易;困難在於不用針對每項新任務再訓練,還能在跨度很大的任務上可靠工作。作為教學性的設計,他讓 BERT、GPT 或 T5 的分類頭只輸出一個純量,而不是每個固定類別各有一個輸出節點。對每個候選選項,分別餵入「原文+任務指示+此候選的描述」,同一組權重把對應的隱藏表示轉成分數 sᵢ = w·hᵢ + b;再對這次提供的所有候選分數做 softmax,選最高分者。BERT 可讀 [CLS] 的最後狀態,GPT 可讀最後非 padding token;以正確候選為目標,用交叉熵聯合微調底座和共享評分頭。候選數量變了,頭的參數不必隨之增加。

這只是 Raschka 提出的「如何做出類似 API」方案,不是對 Jev 原始碼的逆向證實。方案能否在陌生題目上有效,取決於訓練資料能否涵蓋各種任務與判準。Transformer 在大資料預訓練和讀取上下文方面的長處,讓這種跨任務評分有較好的起點;RNN、CNN 在原理上也能套入同一套候選評分做法。尤其要記得,softmax 只是在這次列出的候選之間正規化分數;少放一個正確答案,或把選項描述改寫,輸出數值都可能改變。

未公開的訓練、校準與 RLCR 類比

Jev 的具體架構、演算法和訓練資料沒有公開。Raschka 猜它可能是類 ModernBERT 的小模型,以解釋低延遲;這仍是猜測。TypeSafe AI 創辦人稱資料全為合成;Raschka 由此推斷資料策展可能花掉大量工夫。他用自己過去合作的分類研究作對照:在原本大約三百筆樣本上反覆調詞袋與 BERT 超參數,只多爭取約 2–5% 準確率;後來共同補標資料、約略加倍,帶來超過 10–20% 的改善。這是他過往研究經驗,不能反推出 Jev 的訓練配方。

TypeSafe AI 的說法是採用稱為 Reinforcement Learning for Calibrated Decisions(RLCD)的訓練方法及新架構、平行採樣器;RLCD 細節並未公開。「校準」則有明確可檢驗的意思:如果模型對很多例子都說「正面機率約 74%」,在具有代表性的保留標記資料上,這一群例子約應有 74% 真的是正面。正面 74% 與 54% 都會被 50% 門檻判成正面,卻對應不同的可信程度;光看準確率或 API 寫著 probabilities,都不能替這些數字背書。常用的事後方法是溫度縮放:在獨立校準集上選正的溫度 T,把 logits 除以 T 再做 softmax。T 大於 1 會把分布放平,小於 1 會使它更尖;若以最大值選類別,排序不變,因此修的是數值信心,不是當下猜中的標籤。

Raschka 借 2025 年論文的 Reinforcement Learning with Calibration Rewards(RLCR)解釋「獎勵模型誠實報告不確定性」可能是什麼意思,但明說沒有已確立的證據表明 RLCR 就是 Jev 的 RLCD。通常只按答案正確給 1、錯誤給 0 的 RLVR,不會直接懲罰瞎自信;RLCR 讓模型生成答案後再寫出不確定性分析及自報正確機率 q,使用 R = c − (q − c)²,其中 c 是實際正確與否。錯答卻報 0.9 得到 −0.81,錯答報 0.2 得 −0.04;答對報 0.9 得 0.99。平方項相當於對這個自報機率施加 Brier 型懲罰。該論文在 HotpotQA 報告,與其比較設定中的 RLVR 相比,預期校準誤差 ECE 從 0.37 降為 0.03,準確率則為 62.1% 對 63.0%;另外六組資料的平均 ECE 從 0.46 降至 0.21,準確率從 53.9% 到 56.2%。這些是外部 RLCR 論文的結果,不是 Jev 的實驗。

RLCR 例子裡產生推理、答案、分析與 q 的是同一個模型;Raschka 想像另一種可能:讓不輸出推理文字的分類頭直接受決策正確及機率校準獎勵訓練。這只是受論文啟發的設計假說。他也曾在自己的 ModernBERT 上把交叉熵與 Brier 損失合用,相對單做溫度縮放得到小幅改善,不能據此宣稱所有模型加 Brier 都有效,更不能推斷 Jev 也這樣做。理想情況下,代表性資料上把交叉熵優化到真實類別分布,原本就會得到校準機率;現實有有限資料和過擬合,模型可能在 0/1 準確率仍改善時,機率估計反而變差。因此最後仍要在留出的資料、尤其是實際部署的任務分布上驗證。對原本只按對錯獎勵、未最小化交叉熵的 RL 場景,額外校準獎勵的動機更直接。

適用邊界與結語

Raschka 想像的使用者,一邊不願每項決策都蒐資料、微調分類器,一邊也不願讓昂貴生成模型處理所有小判斷。除了郵件排序、優先級與輔助垃圾信過濾,他列出 agent 工作流程中的預先掃描 prompt injection、選推理強度、選用 skill、充當評估或自我修訂的評審、尋找相關檔案。這是可能用途清單,不是每項都經他測過可在生產環境可靠運行。

開源仿作很多,但他檢視的一些主要是 ModernBERT 或 Qwen 微調加相似 API,尚未見到同等廣度的效果;這是作者看過的樣本判斷,不是對所有專案的全面測試。他指出較早的 GLiNER 能做若干近似任務,並援引第三方比較認為 Jev 更強,不能與他的 IMDb 親測混成一份實驗。後續補註裡,他實測 Contrastive Language Models 在 IMDb 得 82.90%、Laya 得 92.33%,兩者在他的俄羅斯方塊測試都失敗;另有讀者反映 Jev 在非英語法律審閱上表現不佳,僅屬讀者回報,不是作者完成的多語法律基準。把外文先翻譯再交給 Jev 是他的可能補救建議,也會增加時間和另一個模型的錯誤來源。隱私是本地開放權重替代品的重要動機,即使雲端 Jev 本身很便宜;但相似介面不等於重現其跨任務訓練成果。

文章於 9 月 29 日補記 OpenAI 當天宣布限量預覽的 Decisions API,讓開發者提供文字或圖片上下文與有限的預設答案,用於分類、路由及下一步動作選擇;這是另一家公司對同類產品形態的公告,而非 Jev 測試結果。Raschka 的結論也沒有把它說成新發明的分類能力:專用分類器仍有位置,但當即插即用模型已能跨許多任務交出夠用結果,花工夫替單一任務微調的門檻就提高了。這類模型未必解開以前解不了的題;若作為昂貴大型模型旁邊的決策元件,真正可能改變的是 agent 每一步的速度與成本。

城武觀點

Jev 省下的是「每換一題就重訓一個模型」的工,不是「每換一題就不用驗證」的工。客服信的三個去處,換成醫療分流的三個去處,都是有限標籤;錯分的代價、類別盛行率、甚至「都不屬於」的比例卻全變了。若只把候選分數 softmax 成總和為一的數字,再以 0.9 當可直接執行的真實機率,就是把介面上的整齊誤認成世界的確定性。誰握有訓練分布與校準證據?供應商知道得最多,實際承擔錯誤處置的人卻得自行建立保留測試集、檢查不同標籤與閾值的後果。這是一種驗證責任的轉移,不是分類成本的消失。

反過來說,低風險的信件排序或粗略路由,錯了可以由人改回,便宜又快的泛用分類器完全可能比建立專用模型划算。我支持把它先放在這種可回退的位置;只要決策會拒絕服務、影響權益,請先證明在那一組候選標籤與那一批真實資料上,機率、錯誤率及人工覆核門檻各自站得住腳。

城武的未解檔案——標籤可以即插即換,錯誤帳單不會跟著自動歸零。