你以為是填 reCAPTCHA 驗證碼,其實在幫 Google 訓練 AI

88

最近,上網遇見的驗證碼「越來越有內容」了。為了證明自己是真人,除了輸入方框裡的文字,還得從下面圖中挑出路牌、交通號誌這種事。

連續遇到好幾次後,突然醒悟:這哪是在填驗證碼,根本就是在幫別人標記資料,訓練 AI 啊!

不管是幫圖片分類:

你以為是填 reCAPTCHA 驗證碼,其實在幫 Google 訓練 AI

幫路標描邊:

你以為是填 reCAPTCHA 驗證碼,其實在幫 Google 訓練 AI

還是選出路標:

你以為是填 reCAPTCHA 驗證碼,其實在幫 Google 訓練 AI

感覺都是在教自動駕駛的 AI 認路啊。

其實,「輸驗證碼就是幫 AI 工作」並不是筆者想太多。我們在輸驗證碼時義務勞動的歷史,從古早文字驗證碼時期就開始了。

每次輸入驗證碼,你都在當義工

今天,應用最廣的驗證碼系統就是 reCAPTCHA Completely Automated Public Turing Test To Tell Computers and Humans Apart,區分人機的全自動圖靈測試系統)了。

這家被 Google 收購的公司,承擔了世界大部分網路人機驗證工作(上述 3 個例子均來自 reCAPTCHA)。

2007 年,reCAPTCHA 創始人之一,卡內基美隆大學教授路易斯‧馮‧安(Luis von Ahn)想到:「如果人類與機器各有擅長,能否利用驗證碼系統,讓人類和機器共同解決問題?」

你以為是填 reCAPTCHA 驗證碼,其實在幫 Google 訓練 AI

當時亟待解決的問題就是,如何把浩如煙海的人類紙質典籍數位化。

想要數位化文字,一種方法是人工輸入。這種方法費時費力,還容易出現錯誤。另一種方法是先掃描文件,再結合光學文字辨識技術轉成文字檔。聽起來很美,但有些年代久遠或本身品質就差的文件掃描後實在太糊了……

你以為是填 reCAPTCHA 驗證碼,其實在幫 Google 訓練 AI

以至於電腦辨識漏洞百出,根本沒法看。

你以為是填 reCAPTCHA 驗證碼,其實在幫 Google 訓練 AI

為了解決文件數位化的問題,2007 年,路易斯推出新的驗證碼系統 reCAPTCHA

reCAPTCHA 驗證碼系統裡,一個驗證碼由兩部分構成。

第一部分和傳統驗證碼一樣,是自動生成並經過變形處理的文字,用來檢驗你是不是真人。第二部分,則是從無法辨識的文字檔截取出來的詞。

你以為是填 reCAPTCHA 驗證碼,其實在幫 Google 訓練 AI

如果用戶正確輸入前半部,那 reCAPTCHA 就會假設用戶輸入的後半部也是正確的,然後把錄入結果傳回 reCAPTCHA 的主機。

傳回主機後,主機還會把結果再派發給多個用戶交叉驗證,確保沒有不小心或故意輸錯單詞。

也就是說,真正有效的人機測試在驗證碼前半段已完成,後半段就是用戶義務為人類文明貢獻了。

那麼,reCAPTCHA 到底貢獻多大?

2007 年推出之初,reCAPTCHA 每天都幫助錄入 3 千萬個字元。2008 年,數字飆升到 6 千萬個。粗略統計,全世界每天都有 2 億個字元透過 reCAPTCHA 錄入,相當於人類 15 萬小時工作量。

也就是說,一個人要不吃不喝不睡兩年半,才能完成 reCAPTCHA 一天的工作量。

到今天為止,reCAPTCHA 已錄入從 1851 年至今所有《紐約時報》,共計 1,300 萬篇文章。除《紐約時報》外,reCAPTCHA 還數位化超過 2,500 萬本書,而全球圖書數量約 1.3 億本。

你以為是填 reCAPTCHA 驗證碼,其實在幫 Google 訓練 AI

路易斯接受媒體 The Hustle 採訪時這樣評價 reCAPTCHA :「我創造了一個系統,以十秒為單位,數百萬小時為增量,來利用世界最寶貴的資源:人的大腦。」

驗證碼在剝削我們?

如果 reCAPTCHA 的故事到這裡就結束了,每個人都會很開心。但事情沒那麼簡單。

2009 年,Google 以約 2,780 萬美元收購 reCAPTCHA,並開始利用 reCAPTCHA 幫助標記資料。

正如前文所說,reCAPTCHA 前半段是在驗證你是不是真人,後半段就是真人為驗證碼工作了。

2012 年,Google 開始把 Google 街景難以辨識的門牌和路標加入驗證碼,請用戶幫忙標記。

你以為是填 reCAPTCHA 驗證碼,其實在幫 Google 訓練 AI

除了標門牌路標,使用戶幫忙分類資料庫也是常見形式。比如下圖這種請用戶「挑出所有包含路標的圖片」驗證碼。

你以為是填 reCAPTCHA 驗證碼,其實在幫 Google 訓練 AI

如今,Google AI 已能精確辨認路標文字和數字,準確度和人不相上下。

當有一天我們終於能使用 Google 的自動駕駛技術,依靠 AI 辨識路標和路燈等等時,這背後無法說沒有上千萬用戶無償標記的功勞。

你以為是填 reCAPTCHA 驗證碼,其實在幫 Google 訓練 AI

對這目的,Google 也不否認。在 reCAPTCHA 官網,Google 公開說明 reCAPTCHA 集眾人之力標記資料、訓練 AI 的「眾包」模式。

你以為是填 reCAPTCHA 驗證碼,其實在幫 Google 訓練 AI

但仍有用戶表示不滿。

一位覺得驗證碼不道德的 Reddit 用戶寫:「這就好像讓幾百萬個人每人為你做 5 秒工作,然後一毛錢都不給,這對嗎?」

你以為是填 reCAPTCHA 驗證碼,其實在幫 Google 訓練 AI

驗證碼的前世今生

驗證碼誕生之初,是為了解決一個切實的問題。

網路世界這麼大,你怎麼知道另一端是不是一隻狗(或機器人)?

在公開版面,刷評機器人可用大量垃圾評論和廣告淹沒真人用戶的有價資訊;在金融交易平台,程式可靠不停試驗來暴力破解密碼;在票務網站,我敢說你就算有十隻手也搶不過自動刷票的黃牛。

如何確定網路要求是真人傳送,成了維護網路環境和保護用戶安全的大問題。

2002 年,正是路易斯‧馮‧安提出了切實可行的解決方案,能分清對面「是人是狗」。

雖然電腦運算和分析能力比人類強,但當時的電腦連「一隻小貓在跑」這種難不倒 3 歲小孩的圖都認不出來。基於這種思想,路易斯和其他同事合作開發了 reCAPTCHA 的祖先 CAPTCHA,也就是俗稱的驗證碼。

初代驗證碼一般是一些經過扭曲變形的文字或數字。人類可辨識這些文字(儘管偶爾也會出現連人類也認不出的情況),但機器難以理解字元的含義。

你以為是填 reCAPTCHA 驗證碼,其實在幫 Google 訓練 AI

之後驗證碼也經歷了算數題、選擇題,甚至植入廣告等更新,但都掩不住最致命的問題:雖然 CAPTCHA 已是相對較好的解決方案,但並非完美。

透過撞程式庫、人工智慧辨識影像、甚至把驗證碼圖片傳回給人工再批量輸入等方法,駭客總能為垃圾程式檔找到可乘之機。

更別提有些驗證碼,連真人都搞不定!

你以為是填 reCAPTCHA 驗證碼,其實在幫 Google 訓練 AI

你以為是填 reCAPTCHA 驗證碼,其實在幫 Google 訓練 AI

▲ 加分題:請點擊圖中所有郭采潔和夏雨喬(圖片來源:鄉民網友自製的惡搞圖)。

正因為驗證碼浪費時間,辨識難度大,且對執行某些特定行為(比如爬資料或做學術研究)的人類用戶而言極不友善,驗證碼長期在「網路時代最煩人發明」榜上名列前茅。

於是, reCAPTCHA 推出更科學的驗證系統。這種驗證系統會偵測用戶的用戶端環境,追蹤用戶的滑鼠和鍵盤作業軌跡,提高機器人的模擬成本。用戶再也不需要苦哈哈辨識歪歪扭扭的文字,只要點擊「我不是機器人」對話方塊,就能通過驗證。

你以為是填 reCAPTCHA 驗證碼,其實在幫 Google 訓練 AI

既然已有更簡單、更安全的方式,那麼伴隨我們成長的驗證碼,是不是也該淘汰了呢?這種能解決大問題的「眾包模式」,又是否合理呢?

(本文由 PingWest 授權轉載;首圖來源:pixabay