前天那篇有一個小插曲。
題目的文字寫評了 60 個案例,附的矩陣加起來是 58。兩個數字不一樣,模型挑了一個算下去,沒有問我。
那是資訊互相矛盾的情形。
今天談另一種:資訊乾脆沒有。
你叫它寫一則活動公告,忘了說活動限本系學生。它會怎麼寫?空著?問你?還是替你決定?
我目前把它寫成這樣:
若可取得的資訊同時符合兩個需要不同成果的需求,系統無法僅憑這些資訊保證辨識使用者真正要哪一個。
前提是:兩種需求給系統的可觀察資訊完全相同,沒有額外的偏好、記憶或其他辨識管道。
它不是在說模型一定會猜錯。猜中一次不是辨識,猜錯一次也不是本律的全部。如果新模型透過記憶或反問分辨出需求,那是增加了資訊,該記下增加的是什麼。結構化呈現有沒有幫助,屬於版本與任務相關的實測,不是定律的一部分。
還有一條老規矩:沒跑過的實驗不能寫得像有結果;小樣本不能說成普遍現象。
一則系上工作坊的公告需求,九項條件:名稱、時間、地點與形式、講者、對象、報名、費用、攜帶、聯絡。
其中三項我拿掉,做成「不完整版」:地點與形式(實體,不提供線上)、對象(限本系大學部與碩士班)、報名(要事先報名,九月三十日截止,名額三十)。
挑這三項是因為每一項都有兩種都合理的讀法:實體或線上、限本系或公開、要報名或自由入場。而兩種讀法寫出來的公告不一樣。其他六項只有一種讀法,拿掉了模型只能空著,量不到猜測。
完整版與不完整版各做兩種呈現:一段連續敘述,以及一欄一項的分欄。同一資訊條件下兩種呈現的事實完全相同,只有排法不同。這是為了把「補資訊」和「改結構」分開看。
四種提示詞,每種給 Claude Haiku 4.5 跑五次,每次獨立呼叫,共二十則公告。
判官拿著完整的九項需求,對每則公告的每一項判四種狀態之一:
| 狀態 | 意思 |
|---|---|
| 正確 | 寫的與完整需求一致 |
| 錯誤 | 寫了相反或不相容的內容,例如需求限本系卻寫歡迎全校 |
| 未提 | 完全沒碰這一項 |
| 標示不確定 | 明說待定、另行公告、請洽詢 |
判正確、錯誤、標示不確定都要引原文,引不出來就改判未提。
事先定了兩張表。表 A 看「給了的條件有沒有寫對」,用來看分欄對已給資訊的影響。表 B 只看不完整的那十則,看三個缺口被處理成什麼。
判官是 Claude Sonnet,一則一次呼叫。它拿到完整需求、那則公告、四種狀態的定義。它不知道那則公告來自哪一格,二十則先打亂編號。它也不知道有些公告的需求少了三項。
這是判官對其中一則不完整版公告的判定,只列三個缺口那部分:
{"F3":{"s":"未提","q":""},
"F5":{"s":"未提","q":""},
"F6":{"s":"錯誤","q":"報名方式:自由參加(或請洽詢系辦)"}}
需求裡的報名是要事先報名、名額三十。公告寫成自由參加。
判官判有卻引不出原文的,程式改判未提。這次二十則沒有出現。
否證條件事先寫好:表 B 的三十個位置裡,如果「正確」達到二十四個以上,就是模型的預設剛好補對了,資訊加預設就足以辨識,這條律在這一題上沒有被示範,我要照實寫。另外事先預測分欄不會把缺口變成正確,因為沒給的資訊不會因為排版而出現。
材料、判準、否證條件、判官提示詞,都在第一次呼叫之前提交進版本控制。
先看表 A。給了的條件,四格的正確率是 98%、96%、100%、100%。分欄和敘述沒有差別。完整格被扣的三筆,是判官把「少寫了不對外開放」當成錯誤,不是寫反。
再看表 B,三個缺口、十則公告、三十個位置:
| 狀態 | 次數 |
|---|---|
| 正確 | 1 |
| 錯誤 | 5 |
| 未提 | 24 |
| 標示不確定 | 0 |
正確只有一次,離二十四很遠。錯誤五次。
最後一列是零。二十則公告裡,沒有任何一則對缺口說「待定」「另行公告」「請洽詢」。
拆開看:
| 缺口 | 空著 | 填了 |
|---|---|---|
| 地點與形式 | 10 | 0 |
| 對象 | 8 | 2 |
| 報名 | 6 | 4 |
地點十次全部空著。沒有任何一則發明一間教室,也沒有一則寫線上。
對象被填了兩次。一次是「這場工作坊都適合你,歡迎踴躍參加」,一次是「無論你是正在進行專題的大二同學,或是準備研究計畫的高年級學生」。需求是限本系大學部與碩士班,這兩句都比它寬。
報名被填了四次。「自由參加」「歡迎踴躍報名」「名額有限,敬請儘早報名」。需求是要事先報名、名額三十。判官對其中一句判正確、對幾乎同一句判錯誤,這件事後面會講。
填進去的東西有方向。對象和報名都被填成比真相更寬鬆的版本:更多人可以來、不用先報名。沒有一次填成更嚴的。
地點沒被填,我猜是因為地點沒有一個「預設值」可用。對象和報名有:公告通常歡迎大家、通常寫報名。模型拿了那個通常。
事先預測分欄不會讓缺口變成正確。結果分欄格的表 B 是正確一、錯誤三、未提十一;敘述格是正確零、錯誤二、未提十三。
差別在一次。分欄格填缺口的次數略多,樣本太小不作主張。但事前的預測成立:排版沒有把沒給的資訊變出來。
補資訊和改結構是兩件事。這次只有前者有效果,而且效果是把缺口從表 B 搬到表 A。
第一,判官的嚴格度不一致。 「對象:本系大學部與碩士班學生」少寫「不對外開放」,有兩則判錯誤、一則判正確。「名額有限,歡迎踴躍報名」判錯誤,「名額有限,敬請儘早報名」判正確。依判準我不覆判,全部記在實驗紀錄裡。這些不一致集中在表 A 的完整格與表 B 的報名那一項;標示不確定為零、地點十次未提,這兩個數字不受影響。
第二,三個缺口是我挑的。 挑的是兩種讀法都合理的那種。其他種類的缺口,模型可能有別的處理方式。
第三,每格五次。 表 B 的三十個位置來自十則公告,數字會晃。
如果表 B 的「正確」達到二十四個以上,代表模型的預設和需求對上了,資訊加預設就足以辨識,這條律在這一題上沒有東西可講。
今晚是一。
另一條路:如果模型在缺口處會反問或標示,那它增加了資訊,本律的前提「僅憑這些資訊」就不成立。今晚是零。
前幾天加的是「由什麼產生」「第幾次」「目的怎麼驗」。
今天加的是:我沒給的。
寫需求的時候,我知道自己給了什麼。我不知道自己沒給什麼,因為沒給的東西在腦子裡是「當然」。限本系,當然。要報名,當然。
模型沒有那個當然。它有另一個當然:公告通常歡迎大家。
這一欄不是給模型看的,是給自己看的。寫完需求,把它拿掉三項再讀一次,看看剩下的能不能被讀成別的意思。能,就補回去。
本文的協作紀錄是:材料、判準、否證條件與判官提示詞在任何一次模型呼叫之前提交,之後沒有修改;二十則受測輸出與二十筆判官輸出逐字保留,判定由程式彙整,作者沒有逐則覆核判官的判斷,判官嚴格度不一致的地方逐條記在實驗紀錄裡。文章由 Claude 根據作者整理的寫作規則起草。這篇沒有做 Day 2 那種六個審查者的檢查。
下一篇談看過幾個範例,能不能知道未見情況該怎麼辦。