【我們為什麼挑選這篇文章】網路驗證系統 reCAPTCHA 出現在每個帳號登入的時候,他要你填英文字、要你選圖片,但你知道其實 Google 背後有個更大的藍圖嗎?(責任編輯:陳伯安)

最近,硅星人(本文作者)發現,上網遇見的驗證碼「越來越有內容」了。

為了證明自己是個真人,除了要輸入方框裡的文字,還得做從下面圖中挑出路牌、挑出門牌這種連連看似的高級任務。

在連續做了之後,硅星人突然醒悟:我這哪裡是在填驗證碼,根本就是在幫別人標注數據,訓練 AI 啊!

不管是給圖片分類:

給路牌勾邊:

還是把路牌圈出來:

感覺都是在教無人駕駛的 AI 認路啊……

其實,「輸驗證碼就是在為 AI 打工」並不是硅星人想得太多。事實上,我們在輸驗證碼時義務勞動的歷史,從古早的文字驗證碼時期就開始了。

每次輸入驗證碼,其實是在幫 Google 做「義務勞動」

今天,應用最廣的驗證碼系統就是 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 萬美元(約 8.34 億台幣)的價格收購了 reCAPTCHA,並開始利用 reCAPTCHA 幫助標注數據。

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

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

除了標注門牌路牌,讓用戶幫忙給數據庫分類也是常見的形式之一。比如下圖這種請用戶「挑出所有路牌的圖片」的驗證碼。

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

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

對於這一目的,Google 也並不避諱。在 reCAPTCHA 官網上,Google 公開說明瞭 reCAPTCHA 集眾人之力標注數據、訓練 AI 的「眾包」模式。

但是仍有用戶對這一點感到不滿。

一位覺得驗證碼不道德的 Reddit 用戶寫到:「這就好像讓幾百萬個人每人為你乾 5 秒鐘活兒,然後一分錢都不給一樣,這合適麼!」

電腦連小孩跟貓咪都分不清,不用驗證碼確認你說行嗎?

驗證碼誕生之初,是為瞭解決一個特別實在的問題。

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

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

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

2002 年,正是 Luis von Ahn 提出了一種切實可行的解決方案,能分清網線對面「是人是狗」。

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

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

之後,驗證碼也經歷了算數題、選擇題,甚至植入廣告等類型的迭代,但都掩蓋不住一個最致命的問題:雖然 CAPTCHA 已經是相對比較好的解決方案,但也並非鐵板一塊。

通過撞庫(駭客用語,代表用網上已洩露的資料去登入其他網站,竊取用戶資訊。)、人工智慧識別圖像、甚至是把驗證碼圖片返回給人工再批量輸入等方法,駭客們總能為垃圾腳本找到可乘之機。

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

附加題:請點擊圖中所有的範偉

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

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

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

(本文經合作夥伴 品玩 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為〈你以为自己在填验证码,其实你是在给Google义务劳动〉,首圖來源:Youtube。)

更多你不知道的事

為什麼只要勾選「我不是機器人」,Google 就知道你不是機器人?

為什麼 Google 要關閉短網址服務,出了什麼事?

小舉動背後的行銷邏輯:星巴克為什麼把你的名字「寫在杯子上」?