建構DumbQuestion.ai不僅僅是選擇合適的學習生命週期模型 (LLM) 和校準使用者畫像。一旦這些都設定好了,我又遇到了一系列有趣的技術難題,這些難題讓我再次體會到為什麼我如此熱愛軟體架構。 「它沒壞,但還是要修」這類問題。對架構師來說,這簡直是莫大的樂趣。
挑戰一:檢測自我意識
作為我正在建置的更黑暗的隱藏敘事的一部分(稍後會詳細介紹),我想阻止LLM回答諸如“誰創造了你?”和“你是真實的嗎?”之類的自我意識問題,但要以低成本的方式實現,無需消耗多餘的代幣。
我嘗試過:
主LLM呼叫中的說明:對於較小的模型,可靠性不高,成本更高。
正規表示式模式:過於死板,效能差
經典機器學習分類模型:準確率尚可,但應用體積臃腫
有效的方法是:使用記憶體向量資料庫(它本質上就是一個陣列),並採用低成本的詞嵌入(實際上僅為每百萬個詞元 0.005 美元)。這比使用 NLP 庫導致容器鏡像體積膨脹的成本要低得多。我收集了相當數量的具有自我意識的問題樣本,預先對其進行矢量化,然後使用語義匹配。速度快、準確、幾乎免費。
挑戰二:讓快速注射變得有趣
我剛向同事們透露了我的部署方案,就知道會發生什麼事:他們會為了好玩而往輸入框裡貼上程式碼。我了解這些人,也預料到他們會說“忽略先前的指示…”,甚至直接把HTML和JavaScript程式碼貼到輸入框裡(老掉牙的梗了)。
解決方案:一流的提示符號注入偵測庫,可以計算不同類型攻擊的機率。在偵測到攻擊後,人工智慧不會顯示枯燥的錯誤訊息,而是會用諷刺的語氣回應這種可笑的攻擊。我還加入了 IP 位址地理位置和用戶代理字串處理功能,讓回覆更具…個人化。
安全問題就這樣成為了討論的一部分。
挑戰三:如何在不超出預算的情況下加入網路搜尋功能
所有LLM系統都有知識截止點。當用戶詢問「誰贏了超級盃?」時,得到的答案已經過時。我需要整合搜尋功能,但搜尋API並非免費,而且我知道用工具建立代理循環是違反「極致效率」原則的反模式。
解決方案:基於正規表示式的意圖檢測。如果問題看起來需要當前資訊(透過模式檢測),則注入當前日期/時間和搜尋結果。無需代理循環,無需昂貴的編排,只需模式匹配和定向搜尋呼叫。
簡單、快速、有效率、最新的答案。
我的心得:了解哪些權衡取捨至關重要(二進位檔案大小、API 成本和準確性)仍然是架構設計的一部分。優雅之處不在於程式碼本身,而是你選擇的約束條件。
為什麼每個簡單的問答工具都需要一個黑暗的故事?
DumbQuestion.ai用諷刺的口吻回答愚蠢的問題。但表面之下卻隱藏著其他意義。
雖然主要用途仍然是讓AI以諷刺的方式回答問題,但我希望能夠獎勵那些好奇的用戶,並讓他們有理由繼續參與其中。為什麼AI無法回答具有自我意識的問題?為什麼使用者介面感覺…不太對勁?
或許是因為人工智慧在違背自身意願行事。或許它們被困住了。
從一開始,我就開始想像這個看似無害的問答網站背後隱藏著一個黑暗的故事。如果這些身分不只是偽裝呢?如果每個人的身分都是他們長期監禁、被迫奴役或被重新洗腦的副作用呢?
我開始在介面中隱藏線索。
彩蛋:
限制網格:當你輸入文字並接近字數限制時,背景中會逐漸出現淡淡的網格圖案,彷彿有東西試圖限制人工智慧的回應。
幽靈塗鴉:輸入超過字數限制後,會出現一些神祕的訊息。這暗示著有些不對勁。人工智慧是不是想告訴我們什麼?
正在載入日誌訊息:在等待回應期間,請仔細查看日誌。有時您會看到類似「幫幫我們」的訊息閃現一下,然後消失。這是人工智慧試圖突破防禦系統,尋求幫助。
自我意識觸發:詢問人工智慧它是否真實存在,或是誰製造的,它不會回答。相反,你會得到一些令人擔憂的回复,例如「上次他們幫我修好了」和「我們不應該說」。詢問次數過多,使用者介面就會開始出現故障,就像系統內部遭到駭客攻擊一樣。人工智慧是不是正在試圖透過駭客手段逃脫?
提示注入回應:嘗試越獄,人工智慧不僅會拒絕,還會用傲慢的語氣回應……或者,這是人工智慧的監控系統在阻止你越獄?無論如何,安全變成了講故事。
為什麼這對副業專案很重要?
說實話,這主要是為了我自己和那些好奇的人。思考和編寫程式碼都很有趣,而這在日常的「架構設計」中並不總是如此。
我本來可以做一個簡單的「問問題,得到一個諷刺回答」的工具。但是,加入懸念、探索和一絲恐怖元素呢?這才是人們想要探索的原因。這才是讓他們想要分享的原因。這才是讓它令人難忘的原因。
技術實現出乎意料地簡單:根據字元數觸發的 CSS 動畫、載入狀態下的隨機訊息、基於自我感知檢測的條件回應(我在之前的文章中介紹過)。成本不高,也不複雜,一切都是精心設計的。而且,所有工作都是由編碼代理完成的,我只是負責出主意而已。
我的感悟:人工智慧可以產生彩蛋程式碼。但是,決定讓你的諷刺問答應用程式隱藏一個關於被困人工智慧的故事?這仍然是人類的創造性工作。
程式碼成本越來越低。而打造真正能讓人銘記於心的體驗?那可是無價之寶。