本篇來自合作媒體 PingWest,INSIDE 經授權轉載。
最近,筆者發現,上網遇見的驗證碼「越來越有內容」了。
為了證明自己是個真人,除了要輸入方框裡的文字,還得做從下面圖中挑出路牌、挑出門牌這種連連看似的高級任務。
在好幾年之後,筆者突然醒悟:我這哪裡是在填驗證碼,根本就是在幫別人標註數據,訓練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 推出了更科學的驗證系統。這種驗證系統會檢測用戶的客戶端環境,追蹤用戶的鼠標和鍵盤操作軌跡,提高了機器人的模擬成本。用戶再也不需要苦哈哈地辨識歪歪扭扭的文字,只需要在對話框裡點擊「我不是機器人」,就能通過驗證。
既然已經有了更簡單、更安全的替代方式,那麼伴隨我們成長的驗證碼,是不是也該被淘汰了呢?這種能解決大問題的「群眾外包模式」,又是否合理呢?
延伸閱讀:
最新發展: