問聊天機器人搭一趟渡輪要多少錢,它會告訴你。再問它這個數字從哪裡來,多數情況下它說不出來——不是因為答案被藏起來了,而是因為根本就沒有答案可藏。那個數字是生成出來的,不是檢索出來的。
對消費型產品來說,這只是一件惱人的小事。對一個機構來說,這就是問題的全部。港口不能公布一項說不出出處的費率。稅務部門不能宣布一個沒有人核准過的稅率。誰說的?這個問題不是吹毛求疵——它是一項服務與一項法律風險之間的差別。
所以,營隊的第一條規則跟 Python 無關。規則是這樣的:事實必須先有來源,機器人才能說出口。
先分類,再回答
第八天,這條規則有了名字:classify_authority()——一個函式,它唯一的工作,就是針對任何一項陳述發問:誰有資格做出這項陳述?
結果這不是一個問題,而是三個問題;Team Code X 為這個架構取了一個縮寫,營隊從此沿用:ART。
Authority(權威)——誰有資格說這句話?營運單位的官方網站是權威。旅遊部落格不是。模型自己的記憶也不是,不管它聽起來多麼流暢。
Register(紀錄)——哪一份紀錄存有這項資訊?又該用哪一種語體說出來?這個字刻意身兼兩職。一是紀錄的意思:費率存在一張表,碼頭與營運單位在另一張表,貨物通關在第三張表,而從錯的那張表回答問題,得到的會是一個自信滿滿卻文不對題的答案。二是語言學家會認得的意思——register 作為「語域」,也就是你說話的方式。同一項確切事實,說給港口營運單位聽,和說給一位第一次出遠門、心裡緊張的旅客聽,就是同一個事實、兩種語域。機器人的角色設定不是疊在答案上面的裝飾;它是分類這個答案的後半部。
Territory(地域)——這是誰的答案?這一項最容易讓人栽跟頭,而在一個橫跨八個地區的計畫裡,每個人都栽過。巴士地(Basseterre)的渡輪碼頭屬於 St Christopher Air & Sea Ports Authority(SCASPA)。同樣的問題換成問尼維斯,答案就完全換了主人——同樣的問題、同樣的 Register,不同的島嶼,不同的事實。
三項都答對,你才可以開口。錯了任何一項,你就是在猜——只是猜得聽起來像是知道。
黃金紀錄
到了第十天,ART 已經變成一張表,而這張表有個名字:黃金紀錄(Golden Record)——一張有五個欄位的單一真相表(Single Truth Table)。
主題。問題。確切事實。來源網址。最後查核日期。
前四欄是任何知識庫都該有的。第五欄才真正顯示出成熟度,因為它承認了多數系統不肯承認的事:事實會過期。7 月還正確的費率,到了 11 月可能就錯了。碼頭會換營運單位。稅率會修訂。
一個會告訴你它上次是什麼時候查核的系統,比一個只是聽起來很有自信的系統更誠實——而且只有這一種,是機構站得住腳、能為之辯護的。
把 Register 的第二層意思發揮到極致的,是 Team ASPIRE。Skye 回答六歲的孩子,Kaleb 回答十歲的孩子,Zion 回答青少年——三種語域,談的是一個紋風不動的事實。那 EC$1,000 是什麼、其中一半放在哪裡、股份究竟代表什麼:三張嘴說出來的內容完全一致,全都以同一批部會通函為依據。改變的只有語域。
在嚮導之上,還有第二個旋鈕。Zion 可以用 The Professor(教授)或 The Llama(羊駝)的身分回答——the guide sets the learning level; the personality sets the tone.(「嚮導決定學習程度;個性決定語氣。」)兩條彼此獨立的軸線,都屬於語域,也都建立在一個早在兩者套用之前就已經釘牢的事實上。
這正是它站得住的原因。只有在你確定自己要說的是什麼之後,改變說法才是安全的;順序反過來,你就不是在調整,而是用三種聲音即興發揮。先釘牢事實,再選擇語域。順序就是這樣。
防護機制從哪裡介入
黃金紀錄告訴機器人它可以說什麼。防護機制則決定它不該說的時候會發生什麼事。
兩者是同一套機制的兩半。以來源為依據,提供的是許可;防護機制,執行的是拒絕。少了後者,前者就只是一項建議——而第二週早已示範過,語言模型會怎麼對待一項建議。
所以這些規則是寫成程式碼的,而不是寫進提示詞裡、寄望它被遵守。沒有來源,就不回答。來源太舊,就說明,或轉交。問題涉及安全、海關或某個人的私人紀錄,就拒絕,並升級處理、轉交真人。第九天的越獄(jailbreak)實驗課,正是為了測試這一點:營隊學員花了一整節課,試著用話術讓自己的機器人繞過自己訂的規則,秉持的原則是:think like a hacker, but build your chatbots like a defender.(「用駭客的思維思考,但要用防守者的態度打造你們的聊天機器人。」)
防護機制不是髒話過濾器。它是一條規則,規定系統在什麼時候有資格開口。
親自試試看
下面是一個真實的問題,由一個真實的機器人在成果展上回答。用 ART 為它定位,看著黃金紀錄的那一列逐步組成——然後移動最後查核日期,看看防護機制會允許什麼、不允許什麼。
先分類,再回答
一位旅客問:「尼維斯的渡輪碼頭由誰營運?」
機器人回答之前,必須先為這項說法定位。三項都要設定。
第五個欄位
事實沒有改變,改變的只是最後查核的日期。調整它,看看防護機制允許機器人說什麼。
直接回答
尼維斯的 Charlestown Ferry Terminal 由 NASPA 營運,而非 SCASPA。資料於 12 天前查核。
這就是防護機制。它不是髒話過濾器——而是一條規則,規定系統在什麼時候有資格開口,並寫成程式碼強制執行,而不是寫進提示詞裡、寄望它被遵守。
本圖解為本出版品特別撰寫的教學示範。問題與事實皆為 PILOT 在台上實際回答過的內容;分類介面則是編寫而成,並非螢幕截圖。
換來了什麼
這就是本書每一件作品底下的運作機制。
W.E.S 在沒有有效權杖時拒絕回傳餘額。PILOT 顯示資料來源時註明每一項最後查核的日期,畫面上還有一行字說明:日期代表的是某項事實被查核的時間,而不是保證它現在仍然正確。A.I.D.A. 為稅額估算附上強制性的免責聲明。ASPIRE AI 嚴格以部會通函為依據,而不是開放的網際網路。
這些都不是一個十五歲孩子會想到要加上的功能。這是當真實客戶的名字要掛在成果上時,你會打造出來的東西——而這一切,都始於一張五欄的表格,以及一個關於「誰說的」的問題。
