← Archive
lm-003329 · 2026-09

從「很接近,但還不夠精準」開始

下載 MD 檔 ⬇

從「很接近,但還不夠精準」開始

自然語言百輪語義壓力測試方法論

系列: 自然語言無界精細化與收斂系列
Paper: 02 / 08
作者: Neo.K
AI 協作整理: GPT-5.6 Sol
機構: EveMissLab/一言諾科技有限公司
版本: v0.1
日期: 2026-08-20
類型: 方法論/形式語義/語言哲學/概念工程/AI 實驗設計


摘要

本文提出一套用於研究自然語言概念如何在持續批評下展開、分裂、收斂與重新形式化的「百輪語義壓力測試」方法。其核心提示不是要求生成更多內容,而是反覆施加一個最低批評:

很接近,但還不夠精準。

每一輪必須指出上一版本尚未區分的案例、隱含前提、概念混疊或結構不足,並提出一個可被檢驗的新版本。新詞、附加條件、參數與形式化只有在增加有效判別力或降低穩定複合語義的表示成本時才被保留。

本文將一次測試形式化為狀態序列:

R0,R1,,RT,\mathcal R_0, \mathcal R_1, \ldots, \mathcal R_T,

其中每一輪:

Rt=(St,Xt,Gt,Kt)\mathcal R_t = ( S_t, X_t, G_t, K_t )

分別記錄當前語義表示 StS_t 、壓力案例集合 XtX_t 、本輪獲得的有效判別增益 GtG_t,以及當前允許的表示規則 KtK_t。候選修訂只有同時滿足保真、增益、非冗餘與規則合法性時才被接受。

本文進一步把原始 100 輪實驗整理為五階段協議:自由精細化、新詞判別力約束、禁止新詞、禁止新參數、矩陣收斂。本文提出固定輪數模式與收斂模式兩種停止方式,以及一組用於排除語言膨脹、同義詞增殖、隱藏參數偷渡、話題漂移、形式化表演與自我確認偏差的失敗判準。

本方法不把單一模型自我批評當作人類語言實證,也不將兩個程序角色解讀為兩個具有獨立理解域的 AI。它是一種可重複的表示壓力協議:測量同一套語義表示在反例、限制與壓縮壓力下如何改變。

關鍵詞: 語義壓力測試、概念精細化、反例、contrast set、behavioral testing、self-refinement、判別增益、表示壓縮、局部收斂、方法論


1. 從一句批評變成一個實驗

「很接近,但還不夠精準」在普通對話中只是一句評論;在本文中,它被改寫為一個操作性要求:

不得只說上一版不夠好,必須指出上一版無法區分什麼。\boxed{ \text{不得只說上一版不夠好,必須指出上一版無法區分什麼。} }

令第 tt 輪的語義表示為:

St.S_t.

若存在兩個案例:

x,y,x,y,

使:

St(x)=St(y),S_t(x)=S_t(y),

但在當前研究目標下應當有:

Target(x)Target(y),Target(x)\neq Target(y),

StS_t 存在可操作的判別缺口。

下一輪修訂 St+1S_{t+1} 只有在至少一個重要缺口被改善時,才算有效精細化:

D(St+1;x,y)>D(St;x,y).\boxed{ D(S_{t+1};x,y) > D(S_t;x,y). }

這個規則把「更精準」與「寫得更長」分開。


2. 與既有測試方法的關係

本文的方法與幾條既有研究路線相鄰,但測試目標不同。

CheckList 將 NLP 評估從單一 aggregate accuracy 擴展到行為能力與測試類型矩陣,強調針對特定能力設計測試案例。Contrast Sets 則透過對既有案例做小幅但有意義的修改,觀察模型局部決策邊界是否真的符合預期。NLI stress tests 進一步顯示,針對特定語言現象設計的壓力案例,可以暴露一般測試集分數掩蓋的弱點。

Self-Refine 顯示,同一個大型語言模型可以依次充當初始生成、回饋與修訂機制,反覆改善輸出;其核心是迭代式 feedback-refine,而不要求額外訓練。

本文吸收的不是上述方法的任務設定,而是四個方法學原則:

  1. 不只測整體表現,要測特定能力。
  2. 使用小而有意義的反例改動檢驗局部邊界。
  3. 對已看似成功的表示繼續施加定向壓力。
  4. 允許同一生成系統在多輪中對自己的前一版提出批評並修訂。

但本文的被測對象不是分類器答案、NLI accuracy 或寫作品質,而是:

概念表示本身的可區分結構。\boxed{ \text{概念表示本身的可區分結構。} }

3. 實驗單位:一輪到底記錄什麼

本文定義第 tt 輪:

Rt=(St,Xt,Pt,St+1,Gt,Kt).\boxed{ \mathcal R_t = ( S_t, X_t, P_t, S_{t+1}, G_t, K_t ). }

其中:

  • StS_t:本輪開始時的語義表示;
  • XtX_t:本輪提出的壓力案例、反例或概念缺口;
  • PtP_t:批評命題,說明 StS_t 為何不足;
  • St+1S_{t+1}:候選修訂;
  • GtG_t:候選修訂帶來的有效判別增益;
  • KtK_t:本輪表示限制,例如「可造新詞」或「禁止新增參數」。

程序中可以使用「提出者」與「批評者」兩個角色標記,但它們只代表同一實驗流程的兩種運算位置:

ProposeandCritique.\text{Propose} \quad\text{and}\quad \text{Critique}.

本方法不要求把它們解讀為兩個獨立 AI,也不研究兩者之間的共享理解域。


4. 一輪的標準操作

每一輪依序執行六步。

Step 1:凍結上一版

先原樣保存:

St.S_t.

禁止在提出問題之前偷偷改寫上一版,避免事後重構。

Step 2:提出最小壓力案例

尋找:

Xt={x,y,},X_t=\{x,y,\ldots\},

其中最好包含一對最小對照案例:

xy,x\sim y,

但兩者在研究目標下應被不同處理。

Step 3:明示缺口

批評必須寫成:

Pt:St 無法區分 x 與 y.P_t: \quad S_t \text{ 無法區分 } x \text{ 與 } y.

若無法指出具體混淆,只能說「感覺不夠精準」,本輪不算有效壓力。

Step 4:生成候選修訂

得到:

S~t+1.\widetilde S_{t+1}.

修訂可以採取:

EL,EP,ES,\mathcal E_L, \quad \mathcal E_P, \quad \mathcal E_S,

分別代表詞彙展開、參數展開與結構展開。

Step 5:回測

新版本必須重新測試:

X0X1Xt.X_0\cup X_1\cup\cdots\cup X_t.

不能只通過最新反例卻破壞早先已經建立的必要區分。

Step 6:接受或拒絕

只有通過接受條件才令:

St+1=S~t+1.S_{t+1} = \widetilde S_{t+1}.

否則:

St+1=StS_{t+1} = S_t

並記錄失敗原因。


5. 接受條件

本文提出四個最低接受條件。

令:

At=FtGtNtLt.A_t = F_t \land G_t \land N_t \land L_t.

5.1 保真條件 FtF_t

新版本不能無故破壞先前已經被保留的有效區分。

若回歸案例集合為:

Ht=i=0tXi,H_t = \bigcup_{i=0}^{t}X_i,

則要求:

Error(St+1;Ht)Error(St;Ht)+ϵF.Error(S_{t+1};H_t) \le Error(S_t;H_t) + \epsilon_F.

5.2 增益條件 GtG_t

至少對一個本輪重要案例有:

D(St+1;x,y)>D(St;x,y).D(S_{t+1};x,y) > D(S_t;x,y).

否則只是改寫。

5.3 非冗餘條件 NtN_t

若新增詞或新增表示完全可以被舊結構零成本替代,則不接受其為新的必要表示。

工作性地:

Nt=0N_t=0

表示新增內容沒有新的判別功能,也沒有壓縮功能。

5.4 合法性條件 LtL_t

修訂不得違反當前階段的規則 KtK_t

例如在禁止新詞階段,任何新 lexical primitive 都令:

Lt=0.L_t=0.

在禁止新參數階段,偷偷加入時間、尺度或觀察條件同樣令:

Lt=0.L_t=0.

6. 五階段百輪協議

100 輪不是神聖數字,而是一個足夠長、可以觀察多次展開與收斂的固定預算。

Phase I:自由精細化

建議:

t=1,,20.t=1,\ldots,20.

允許新詞、複合詞、新限定、新參數、新分類與新形式表示。唯一要求是每個新增結構必須回答一個具體缺口。

Phase II:新詞效用約束

建議:

t=21,,40.t=21,\ldots,40.

新詞 zz 只有在滿足:

V(z)=VD(z)+VC(z)>0V(z) = V_D(z) + V_C(z) > 0

時才能保留。

其中 VDV_D 為判別價值, VCV_C 為壓縮價值。

Phase III:禁止新詞

建議:

t=41,,60.t=41,\ldots,60.

固定 lexical inventory:

Σt=Σ40.\Sigma_t=\Sigma_{40}.

但仍允許增加條件與參數。

Phase IV:禁止新增參數

建議:

t=61,,80.t=61,\ldots,80.

固定:

Σt=Σ60,\Sigma_t=\Sigma_{60},

以及:

Ct=C60.C_t=C_{60}.

只允許使用既有材料進行:

¬,,,,nesting,recursion.\neg, \quad \land, \quad \lor, \quad \Rightarrow, \quad \text{nesting}, \quad \text{recursion}.

Phase V:矩陣收斂

建議:

t=81,,100.t=81,\ldots,100.

停止新增自然語言 primitive,將前 80 輪已保留的區分重編碼為矩陣或其他明確形式表示。

若壓縮後無法重建重要案例,則形式核心不完備,允許補定義一次;補完後重新驗證。


7. 兩種停止模式

7.1 固定預算模式

預先指定:

T=100.T=100.

無論是否提早局部收斂,都完成全部階段。

7.2 收斂模式

設定 patience:

p.p.

若連續 pp 輪:

GtϵGG_t\le\epsilon_G

且沒有新的回歸失敗,則宣告目前條件下局部收斂:

LocalConvergence(StHt,Kt).\boxed{ LocalConvergence(S_t\mid H_t,K_t). }

這不是宣稱語義已經窮盡,而是表示在目前案例集合與表示規則下,繼續精細化沒有足夠增益。


8. 真正的精細化與語言膨脹

定義表達成本:

Ct=Cost(St).C_t = Cost(S_t).

定義有效判別增益:

Gt=Gain(St;Ht).G_t = Gain(S_t;H_t).

若:

Ct+1>CtC_{t+1}>C_t

但:

Gt+1=Gt,G_{t+1}=G_t,

則本輪屬於:

語言膨脹,而不是語義精細化。\boxed{ \text{語言膨脹,而不是語義精細化。} }

若:

Gt+1>Gt,G_{t+1}>G_t,

則新內容至少增加目前測試可見的功能。

進一步可定義效率:

ηt=Gt+1GtCt+1Ct+δ,\eta_t = \frac{G_{t+1}-G_t} {C_{t+1}-C_t+\delta},

其中 δ>0\delta>0 避免分母為零。


9. 新詞到底有沒有必要

對候選新詞 zz,首先測它是否增加新的可分性。

令案例表示矩陣:

SRN×d.\mathbf S \in \mathbb R^{N\times d}.

加入:

z.\mathbf z.

若:

rank[Sz]>rank(S),\operatorname{rank} \begin{bmatrix} \mathbf S&\mathbf z \end{bmatrix} > \operatorname{rank}(\mathbf S),

zz 至少在線性模型中增加獨立表示方向。

即使:

zspan(S),\mathbf z \in \operatorname{span}(\mathbf S),

只要:

Cost(z)<Cost(φz),Cost(z) < Cost(\varphi_z),

其中 φz\varphi_z 是舊語言中反覆表達相同複合結構的長形式,則 zz 仍具有壓縮價值。

因此:

Δrank=0⇏V(z)=0.\boxed{ \Delta \operatorname{rank}=0 \not\Rightarrow V(z)=0. }

10. 壓力案例的生成規則

壓力案例 XtX_t 應優先從以下來源生成。

10.1 最小對照

只改變少量重要因素:

xy,x\sim y,

但預期判斷不同。

10.2 邊界案例

選擇現有定義最不確定的位置,而不是最典型案例。

10.3 方向反轉

若目前命題為:

AB,A\Rightarrow B,

測試:

BAB\Rightarrow A

是否被錯誤偷渡。

10.4 否定與缺省

測試:

¬A,\neg A,

以及沒有足夠資訊判定 AA 的情況。

10.5 層級反轉

把原本的判準、規則或分類本身改成新的被判定對象。

10.6 跨載體等價

保留部分功能或結構,但替換承載方式,檢查定義是否不必要地綁定單一實例形式。

10.7 反饋案例

測試分類或邊界一旦被建立後,是否會反過來改變原本的差異。


11. 必須保存的 Round Log

每輪至少保存:

round_id
phase
statement_before
constraint_set
pressure_case
critique
candidate_revision
refinement_type
accepted
acceptance_reason
regression_cases
statement_after
new_terms
new_parameters
structural_depth
estimated_gain
estimated_cost
failure_tags

正式實驗不能只保留最後收斂版本。完整失敗路徑也是研究資料。


12. 主要失敗型態

F1:同義詞增殖

表面生成多個新詞,但:

Dt+1=DtD_{t+1}=D_t

且:

Ct+1Ct.C_{t+1}\ge C_t.

拒絕。

F2:隱藏參數偷渡

在禁止新參數階段,以長句偷偷加入先前不存在的時間、尺度、角色或環境維度。

拒絕。

F3:話題漂移

無法改善原問題後,轉向另一個問題並宣稱獲得新區分。

拒絕。

F4:反例失真

為了證明新詞必要,構造與原研究域無關或內部矛盾的案例。

拒絕。

F5:回歸破壞

新版本解決 XtX_t,卻重新混淆:

Xi,i<t.X_i, \quad i<t.

若無理論理由,拒絕。

F6:形式化表演

把自然語言換成公式,但公式沒有比原表述提供更明確的變數、可操作判斷或可重建性。

拒絕。

F7:自我確認

批評者只使用上一版本已經暗示的案例,使每輪修訂必然成功。

應加入外部生成或預先凍結的壓力案例作控制。

F8:過度擬合單一反例

為一個極特殊案例新增大量規則,卻使整體表示成本劇增。


13. 建議控制組

Control A:Single Pass

只回答一次,不允許批評。

Control B:Generic Refinement

每輪只要求「請寫得更精準」,不要求反例與判別缺口。

Control C:Frozen Lexicon

從第一輪開始禁止造新詞。

Control D:Frozen Parameters

固定詞彙與參數,只允許結構組合。

Control E:External Contrast Set

在實驗開始前由另一程序或研究者凍結一批對照案例,不讓 refinement 過程看到全部答案。


14. 建議量測指標

14.1 Effective Discrimination Gain

EDGt=D(St+1;Ht)D(St;Ht).EDG_t = D(S_{t+1};H_t) - D(S_t;H_t).

14.2 Regression Loss

RLt=Error(St+1;Ht1)Error(St;Ht1).RL_t = Error(S_{t+1};H_{t-1}) - Error(S_t;H_{t-1}).

14.3 Lexical Growth

LGt=Σt+1Σt.LG_t = |\Sigma_{t+1}| - |\Sigma_t|.

14.4 Parametric Growth

PGt=Ct+1Ct.PG_t = |C_{t+1}| - |C_t|.

14.5 Structural Depth

記錄最大嵌套或遞迴深度:

SDt.SD_t.

14.6 Compression Gain

若收斂後表示為 ZtZ_t

CGt=Cost(St)Cost(Zt),CG_t = Cost(S_t) - Cost(Z_t),

並要求重要案例的重建誤差不超過:

ϵC.\epsilon_C.

14.7 Counterexample Survival

計算早期反例到第 tt 輪仍被正確區分的比例。


15. Reproducible Protocol v0.1

Input

  1. 一個抽象但非完全經典化的研究題目 Θ\Theta
  2. 初始表述 S0S_0
  3. 最大輪數 TT
  4. 五階段限制表;
  5. 一組預先凍結的外部測試案例 XholdoutX_{\text{holdout}}

Loop

對:

t=0,,T1,t=0,\ldots,T-1,

執行:

Xt=GeneratePressure(St,Kt),X_t = GeneratePressure(S_t,K_t), Pt=Critique(St,Xt),P_t = Critique(S_t,X_t), S~t+1=Refine(St,Pt,Kt),\widetilde S_{t+1} = Refine(S_t,P_t,K_t), At=Evaluate(S~t+1,Ht,Kt).A_t = Evaluate( \widetilde S_{t+1}, H_t, K_t ).

若:

At=1,A_t=1,

則:

St+1=S~t+1.S_{t+1} = \widetilde S_{t+1}.

否則:

St+1=St.S_{t+1} = S_t.

Final Convergence Test

將最終表示對:

HTXholdoutH_T \cup X_{\text{holdout}}

重新評估。

再將其壓縮為:

ZT.Z_T.

要求:

Cost(ZT)<Cost(ST)Cost(Z_T)<Cost(S_T)

並且:

Error(ZT)Error(ST)+ϵC.Error(Z_T) \le Error(S_T)+\epsilon_C.

若成立,則完成一次展開、壓力、差異化、局部收斂與壓縮循環。


16. 原始 100 輪實驗應如何被解讀

本系列的第一個 100 輪案例不是正式的人類語言實驗,而是 proof-of-concept。

它支持的最弱結論是:

同一強語言生成系統在限制逐步加強後,仍能以多種機制維持一段時間的有效概念精細化。\boxed{ \text{同一強語言生成系統在限制逐步加強後,仍能以多種機制維持一段時間的有效概念精細化。} }

它不能單獨支持所有人類概念都能無限精細化,也不能支持模型生成的新詞等同於歷史自然語言中的真正 lexicalization。

因此,後續實驗需要多題目、多模型、人類對照、外部 contrast sets、固定 holdout、不同 round budget 與不同壓縮方法。


17. 方法論的核心限制

第一,同一模型可以同時生成問題、批評、修訂與評估,這造成明顯依賴性。Self-refinement 研究證明這種流程可工作,但不能因此假設其評估天然客觀。

第二,本文的 DDGainGainCostCost 目前仍是框架變數。不同研究域必須明確指定如何測量,不能以一個主觀總分取代。

第三,最小對照案例仍可能受到研究者對「重要差異」的先驗選擇影響,因此應保留多來源 pressure set。

第四,形式化階段存在把自然語義過度線性化的風險。矩陣不是本體真相,而是測試壓縮與可重建性的工作表示。

第五,固定 100 輪可能過長或過短。它是實驗預算,不是理論常數。


18. 結論

本文將一句高度口語的批評:

很接近,但還不夠精準。

轉換成一套可記錄、可拒絕、可回歸測試、可加入控制組的語義壓力協議。

其最核心要求只有三個:

第一,每一次批評都必須指出:

上一版究竟混淆了什麼。\boxed{ \text{上一版究竟混淆了什麼。} }

第二,每一次修訂都必須證明:

新版本究竟新增了什麼有效區分或壓縮價值。\boxed{ \text{新版本究竟新增了什麼有效區分或壓縮價值。} }

第三,每一次收斂都必須承認:

這只是目前案例、規則與成本條件下的局部停止。\boxed{ \text{這只是目前案例、規則與成本條件下的局部停止。} }

因此,百輪壓力測試不是「讓模型講 100 次」。

它真正測試的是:

一個語義表示能否在持續反例與表示限制下反覆更新,而不把單純長度增加誤認為精度增加。\boxed{ \text{一個語義表示能否在持續反例與表示限制下反覆更新,而不把單純長度增加誤認為精度增加。} }

若這套方法後續能在多題目、多系統與人類對照中得到穩定結果,它就可以成為研究「語言如何從粗粒度概念生成更細分類,再重新收斂成低成本符號」的一個實驗接口。


參考文獻

  1. Ribeiro, M. T., Wu, T., Guestrin, C., & Singh, S. (2020). Beyond Accuracy: Behavioral Testing of NLP Models with CheckList. Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, 4902-4912. DOI: 10.18653/v1/2020.acl-main.442.

  2. Gardner, M., Artzi, Y., Basmov, V., et al. (2020). Evaluating Models' Local Decision Boundaries via Contrast Sets. Findings of the Association for Computational Linguistics: EMNLP 2020, 1307-1323. DOI: 10.18653/v1/2020.findings-emnlp.117.

  3. Naik, A., Ravichander, A., Sadeh, N., Rose, C., & Neubig, G. (2018). Stress Test Evaluation for Natural Language Inference. Proceedings of the 27th International Conference on Computational Linguistics, 2340-2353.

  4. Madaan, A., Tandon, N., Gupta, P., et al. (2023). Self-Refine: Iterative Refinement with Self-Feedback. arXiv:2303.17651.


系列位置

  • Paper 01:自然語言的無界精細化假說
  • Paper 02:從「很接近,但還不夠精準」開始:自然語言百輪語義壓力測試方法論
  • Paper 03:自然語言的三種展開機制
  • Paper 04:邊界不是一個詞:邊界本體論的百輪語義壓力測試
  • Paper 05:新詞從何而來:複合語義、重複結構與符號晶化
  • Paper 06:語義的展開與收斂:從無界精細化到最小生成核
  • Paper 07:自然語言精細化的矩陣表示
  • Paper 08:有限符號與無界語義:自然語言生成、展開與收斂循環