很多人相信都填過 reCAPTCHA ,也就是所謂的「驗證碼」。為了證明自己是個真人,除了要輸入方框裡的文字,還得做從下面圖中挑出路牌、挑出門牌這種連連看似的高級任務。不過,你有沒有想過:你其實不是在填驗證碼,根本就是在幫別人標註資料,訓練 AI 啊?
不管是為圖片分類:
為路牌勾邊:
還是把路牌圈出來:
感覺都是在教無人駕駛的 AI 認路啊……
其實,「輸驗證碼就是在為 AI 打工」並不是你想得太多。事實上,我們在輸驗證碼時幫人打工的歷史,從古早的文字驗證碼時期就開始了。
每次輸入驗證碼,你都在幫人打工
今天應用最廣的驗證碼系統就是 reCAPTCHA (Completely Automated Public Turing Test To Tell Computers and Humans Apart,區分人機的全自動圖靈測試系統)了。
這家如今已被 Google 收購的公司,承擔了世界上大部分網路的人機驗證工作(上文的三個例子均來自 reCAPTCHA)。
2007 年,reCAPTCHA 的創始人之一,卡內基美隆大學教授路易斯‧馮‧安(Luis von Ahn)想到:「如果人類與機器各有擅長,能不能利用驗證碼系統,讓人類和機器共同解決問題呢?」
當時,一個亟待解決的問題就是,如何把浩如煙海的人類紙質典籍數位化。
想要數位化內容,有兩種方法:
第一種方法是手工錄入。這種方法費時費力,還容易出現錄入錯誤。
另一種方法是先掃瞄文件,再結合光學文字辨識技術錄入文字。聽起來很美,但有些年代久遠或本身品質就差的文件掃瞄出來後實在是太糊了……
以至於電腦辨識出來的內容漏洞百出,根本沒法看。
為瞭解決文件數位化的問題,2007 年,路易斯推出了新的驗證碼系統 reCAPTCHA。
在 reCAPTCHA 驗證碼系統裡,一個驗證碼會由兩部分構成。
第一部分和傳統驗證碼一樣,是自動產生並且經過變形處理的文字,用來檢驗你是不是真人。而第二部分,則是從無法辨識的文件中截取出來的詞。
如果使用者正確輸入前半部分,那麼 reCAPTCHA 就會假設使用者輸入的後半部分也是正確的,然後把錄入結果交回給 reCAPTCHA 的主機。
結果交回主機後,主機還會把這個結果再派發給多個使用者進行交叉驗證,以確保沒有不小心或故意輸錯單詞的情況。
也就是說,真正有效的人機測試在驗證碼的前半段已經完成,而後半段,就是你在為人類文明做貢獻了。
那麼,reCAPTCHA 到底做了多大貢獻呢?
2007 年推出之初,reCAPTCHA 每天都能幫助錄入 3000 萬個字符。2008年,這個數字飆升到了 6000 萬個。粗略統計,在今天,全世界每天都有 2 億個字符透過 reCAPTCHA 錄入,相當於人類 15 萬小時的工作量。
也就是說,一個人要不吃不喝不睡兩年半,才能完成 reCAPTCHA 一天的工作量。
到今天為止, reCAPTCHA 已經錄入了從 1851 年至今的所有《紐約時報》,共計 1300 萬篇文章。除《紐約時報》外,reCAPTCHA 還數位化了超過 2500 萬本書,而全球的圖書數量約為 1.3 億本。
路易斯在接受媒體 The Hustle 採訪時這樣評價 reCAPTCHA :「我創造了一個系統,以十秒為單位,數百萬小時為增量,來利用世界上最寶貴的資源:人的大腦。」
驗證碼是在剝削我們嗎?
如果 reCAPTCHA 的故事到這裡就結束了,每個人都會很開心。但事情沒那麼簡單。
2009 年,Google 以大約 2780 萬美元的價格收購了 reCAPTCHA,並開始利用 reCAPTCHA 幫助標註資料。
正如前文所說,reCAPTCHA 的前半段是在驗證你是不是真人,後半段就是真人為驗證碼打工了。
2012 年,Google 開始把 Google 街景中難以辨識的門牌和路牌加入驗證碼,請使用者幫忙標註。
除了標註門牌路牌,讓使用者幫忙為資料庫分類也是常見的形式之一。比如下圖這種請使用者「挑出所有路牌的圖片」的驗證碼。
如今,Google AI 已經能精確辨認路牌上的文字和數字,準確度和人眼不相上下。
當有一天我們終於使用了 Google 的自動駕駛技術,依靠 AI 來辨識路牌和路燈時,這背後不能不說沒有上千萬使用者無償標註的苦勞,其中當然也包括你的貢獻。
對於這一目的,Google 也並不避諱。在 reCAPTCHA 官網上,Google 公開說明了 reCAPTCHA 集眾人之力標註資料、訓練 AI 的「群眾統包」模式。
但是仍有使用者對這一點感到不滿。
一位覺得驗證碼不道德的 Reddit 使用者寫到:「這就好像讓幾百萬個人每人為你做 5 秒鐘的工作,然後一分錢都不給一樣,這合理嗎?」
驗證碼的前世今生
驗證碼誕生之初,是為瞭解決一個特別實在的問題。
網路世界這麼大,你怎麼知道另一端是不是一條狗(或者機器人)?
在餐廳、遊戲的評論上,機器人可以用大量垃圾評論和廣告淹沒真人使用者留下的有價值的訊息;在金融交易平台,腳本程式可以靠不停試驗來暴力破解密碼;在票務網站,我敢說你就算有十隻手也搶不過機器人黃牛……
如何確定網路請求是真人發送的,成了維護網路環境和保護使用者安全的大問題。
2002 年,正是路易斯‧馮‧安提出了一種切實可行的解決方案,能分清「是人是狗」。
雖然電腦的算數和分析能力比人類強得多,但是當時的電腦連「一隻小貓在奔跑」這種難不倒三歲小孩兒的圖都認不出來。基於這種原因,路易斯和其他同事合作開發了 reCAPTCHA 的祖宗 CAPTCHA,也就是我們俗稱的驗證碼。
初代驗證碼一般是一些經過扭曲變形的文字或數字。人類可以辨識這些文字(儘管偶爾也會出現連人類也認不出的情況),但機器難以理解字符的含義。
之後,驗證碼也經歷了算數題、選擇題,甚至植入廣告等類型的迭代,但都掩蓋不住一個最致命的問題:雖然 CAPTCHA 已經是相對比較好的解決方案,但也並非鐵板一塊。
透過猜測、人工智慧辨識圖像、甚至是把驗證碼圖片返回給人工再批次輸入等方法,駭客們總能找到可乘之機。
更別提有些驗證碼,連真人都搞不定!
正因為驗證碼浪費時間,辨識難度大,而且對於執行某些特定行為(比如爬資料或做學術研究)的人類使用者而言極不友好,驗證碼長期在「網路時代最煩人發明」榜上名列前茅。
於是, reCAPTCHA 推出了更科學的驗證系統。這種驗證系統會檢測使用者的客戶端環境,追蹤使用者的滑鼠和鍵盤操作軌跡,提高了機器人的模擬成本。使用者再也不需要苦哈哈地辨識歪歪扭扭的文字,只需要在對話框裡點擊「我不是機器人」,就能通過驗證。
既然已經有了更簡單、更安全的替代方式,那麼伴隨我們成長的驗證碼,是不是也該被淘汰了呢?這種能解決大問題的「眾包模式」,又是否合理呢?
- 本文授權轉載自:PingWest(品玩)
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!