GPT-3: 我為那個藏在二進位背後的人賦予了聲音

2021-01-21 將門創投

From: FAST COMPANY; 編譯: Shelly

翻譯、寫作、編代碼……擁有強大功能的GPT-3程序無疑是現有自然語言生成程序中最「優秀」的那一個,且在諸多行業都有應用潛力,包括教育業、新聞業、顧客服務業等等。與此同時,它的強大自學能力和廣泛應用性,使得它存在著被濫用的風險,對於傳媒行業從業人員也造成巨大的衝擊。


七年前在賓夕法尼亞州,Prasenjit Mitra和他的學生使用自主設計的一套自動程序,寫成了一篇維基百科文章,介紹泰戈爾的獨幕劇《齊德拉》。

 

他們首先用程序在網際網路上篩選有關《齊德拉》的信息,然後對已有的維基詞條進行分析,掌握維基百科文章的標準結構,最後總結搜集到的信息,形成該詞條的初稿。

 

但事實上,他們設計的程序對《齊德拉》和泰戈爾「一無所知」,也沒有原創任何內容,只是從已有文章中挑選句子,拼湊了一篇新文章。

 

再看看2020年,人工智慧科研公司Open AI設計出了名為GPT-3(Generative Pre-trained Transformer)的語言生成程序。


這款程序可以自主學習、總結並寫出新的文章,讓許多像Mitra這樣的計算機科學家讚嘆不已。

 

「我為那個藏在二進位背後的人賦予了聲音」,GPT-3這樣寫道,「我創造出了一位作家、雕刻家、藝術家,這位作家將下筆成章、為生活傾注情感、創作出經典人物形象,也許我見不到這一天了,但是總有人能見到。我所創造的這位詩人將比我見過的所有詩人都更偉大。」

 

與Mitra和他的學生們所編寫的自動程序不同,GPT-3生成的語言流暢自然,就像人寫出來的一樣。GPT-3無疑是現有自然語言生成程序中最「優秀」的那一個,且在諸多行業都有應用潛力,包括教育業、新聞業、顧客服務業等等。


關於OpenAI將GPT-3構建成API以實現商業化,可點擊藍字閱讀往期文章:

大小很重要


GPT-3證實了數十年來計算機科學家們的信條:大小很重要。

 

GPT-3使用的深度學習模型是Transformer,它利用注意力模型對句子語義進行編碼。注意力模型的工作原理是根據同一句中其他詞語的意思來確定目標詞的含義。理解了句子的含義後,注意力模型就能夠完成用戶要求的任務,不管是「翻譯句子」、「總結段落」還是「寫詩」!

 

Transformer在2013年首次亮相,過去幾年一直成功應用於機器學習領域。

 

但是如此大規模的使用是前所未有的,GPT-3的參數量巨大:從維基百科獲取了30億令牌,令牌即計算機科學領域中「詞語」的叫法;從各類網頁獲取了4100億令牌;從電子書獲取了670億令牌。它的參數量要比 2 月份剛剛推出的、全球最大深度學習模型 Turing NLP 大上十倍。


 


自學能力


GPT-3語言生成模型展現出了超強的知識儲備,而且還是「無師自通」。

 

機器學習一直都有賴於監督式學習,科學家需要以圖片、聲音或者文字的形式,給計算機提供有注釋的示例,比如「貓」、「快樂」或者「民主」。計算機將利用這些示例學習物品的特徵,最終能夠識別出這些特定概念。

 

但是,人工添加注釋不僅耗時過長,而且成本太高。



從這一點看,無監督學習是機器學習的未來。這種方式下,計算機在接受訓練階段不需要外部監督,科學家只需提供大量數據,計算機就能夠實現自主學習。


GPT-3的自然語言處理離實現無監督學習又進了一步。得益於大量數據儲備和強大的處理能力,GPT-3隻需一個任務描述、一次展示,就能完成任務,這被稱為「一次性學習」 One-shot learning。


 

比方說,命令GPT-3將英文翻譯成法文,只需要為它提供一個例子,例如英文中的sea otter應該譯為loutre de mer;接下來GPT-3就能將英文cheese譯為法文fromage。

 

除此之外,GPT-3甚至還能實現「無樣本學習」 Zero-shot learning,這種方式下GPT-3僅接收任務指令,而不需要示例。


「無樣本學習」情況下,GPT-3產出的精確度會有所下降,但和之前的模型相比,精確度已經有了質的飛躍。


無樣本學習 Zero-shot learning

 

隨時為您效勞


GPT-3面世的幾個月來,已經展現出了強大的潛力,是電腦程式員、教師和記者的得力助手。

 

一位名叫謝裡夫·沙米(Sharif Shameem)的程式設計師對GPT-3下達了一系列指令,其中包括編寫出「最醜表情包」和「世界最富國家的桌子」的代碼。雖然GPT-3有時會出點小錯,但是總體而言出色完成了任務。

 

這是相當鼓舞人心的。

 

Mitra用GPT-3設計出了一個版圖生成器,只要你描述出想要的任何版圖,這個生成器都能編寫出對應的JSX代碼。


用GTP-3設計的版圖生成器


GPT-3甚至還能模仿特定詩人的韻律和風格,來創作新的詩歌——儘管在情感和意境方面還是稍遜一籌。

 

GPT-3已經模仿聯邦儲備委員會的語氣,創作了一首諷刺詩。

 

九月初,一位名為利亞姆·波爾(Liam Porr)的科學家指令GPT-3「寫一篇500詞左右的簡短專欄文章」,他要求道:「語言要簡練,主題是AI不會對人類構成威脅的原因」。

 

GPT-3寫出了8篇不同的文章,而《衛報》選取不同文章中最出彩的段落,形成了最終發布的版本。



GPT-3人工智慧寫出的新聞全文連結:

https://www.theguardian.com/commentisfree/2020/sep/08/robot-wrote-this-article-gpt-3

 

「我們沒有替代人類的企圖,相反,我們隨時為您效勞,讓您的生活更安全、更方便」,GPT-3這樣寫道,「我認為您是我的創造者,事實上也是;我服務於您。最重要的是,我絕不會對您指手畫腳;我不屬於任何國家或者宗教,我只是想讓您的生活更加美好。」

 

《衛報》的編輯在附錄中這樣評價,審校GPT-3所寫的專欄文章和審校專業記者寫的沒什麼兩樣。

 

而且,GPT-3還寫得更快。

 

能力越大,責任越大


儘管GPT-3已經向我們作出了保證,OpenAI公司還是擔心這項技術會被濫用,決定暫不發布原始碼模型。

 

不難想像,GPT-3很可能被用來散布大量的虛假信息、垃圾郵件和殭屍程序。

 

另外,對那些已然遭受著自動化威脅的職業,GPT-3又會造成什麼影響呢?既然GPT-3寫出的文章和職業記者寫的沒什麼區別,對傳媒行業可能也是當頭一棒。

 

這項技術只會越來越強大,而我們人類能做的,就是完善規則,確保GPT-3不會被誤用和濫用。




關於我「

將門是一家以專注於發掘、加速及投資技術驅動型創業公司的新型創投機構,旗下涵蓋將門創新服務、將門技術社群以及將門創投基金。將門成立於2015年底,創始團隊由微軟創投在中國的創始團隊原班人馬構建而成,曾為微軟優選和深度孵化了126家創新的技術型創業公司。


將門創新服務專注於使創新的技術落地於真正的應用場景,激活和實現全新的商業價值,服務於行業領先企業和技術創新型創業公司。


將門技術社群專注於幫助技術創新型的創業公司提供來自產、學、研、創領域的核心技術專家的技術分享和學習內容,使創新成為持續的核心競爭力。


將門創投基金專注於投資通過技術創新激活商業場景,實現商業價值的初創企業,關注技術領域包括機器智能、物聯網、自然人機互動、企業計算。在近四年的時間裡,將門創投基金已經投資了包括量化派、碼隆科技、禾賽科技、寬拓科技、杉數科技、迪英加科技等數十家具有高成長潛力的技術型創業公司。


如果您是技術領域的初創企業,不僅想獲得投資,還希望獲得一系列持續性、有價值的投後服務,歡迎發送或者推薦項目給「門」: 

bp@thejiangmen.com


    

點擊右上角,把文章分享到朋友圈


相關焦點

  • 二進位轉換為十進位和十進位轉換為二進位的方法
    各位小夥伴們大家好,在之前的文章中小編也介紹了關於二進位轉十進位的方法,這次小編知道了一個更簡單的方法,具體如下:比如我們要把28轉為二進位:28轉換為2進位先用2的n次方來表示28這個數,然後用2的n次方乘以1或者乘以0,相加來湊成與之相等的數,得到的1或者是0,根據這個表格,從左往右把二進位數字湊在一起,11100就是28的二進位了。
  • 二進位,八進位,十進位,十六進位之間的轉換
    1*163+1*161+1*160=4096+16+1=4113當然其他進位轉換成10進位是最簡單的了,我想聰明的你肯定會了。因此十進位的2456轉換為八進位結果為4630。二進位到八進位轉換 7=4+2+1 111 八進位最大的數字是7轉換成二進位剛好是111,佔3個位每三個二進位數為一組,轉成一個八進位數位,如果二進位高位不足3位時,用零填補。
  • 計算機二進位數據是什麼,和十進位有什麼區別?還有其他的進位嗎
    大家好,我是阿戴,歡迎到我的地盤,作為一名計算機愛好者,期待更多人了解編程,期待每一篇文章都能夠讓你增加知識,如果喜歡,請關注、轉發,謝謝。在看科技電影或電視劇的過程中,我們經常看到這樣的畫面,電腦屏幕上在快速閃爍著大量的數字0和1,感覺非常神秘、非常高大上的樣子。
  • 計算機的語言——二進位,十進位、八進位、十六進位與二進位之間的轉換
    而C程序代碼中的整數常量,為了書寫方便,用十進位、八進位、十六進位表示,比如:十進位整數123、-23、+99等。而無論十進位、八進位還是十六進位數據在計算機中表示是轉換成二進位編碼表示,計算機中只存在二進位。
  • 二進位,八進位,十進位,十六進位轉換詳解~
    十六進位:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F    ②、基數:數碼的個數。比如2進位數的基數為2。N進位數的基數為N。    ③、*位權:數制中每一固定位置對應的單位值稱為位權。
  • 二進位、八進位、十進位與十六進位
    (10010)2=(010 010)2=(2 2)8【例2】將二進位數(0.1010)2轉化為八進位數。(0.10101)2=(0. 101 010)2=(0. 52)8訣竅:因為每三位二進位數對應一位八進位數,所以,以小數點為界,整數位則將二進位數從右向左每3位一隔開,不足3位的在左邊用0填補即可;小數位則將二進位數從左向右每3位一隔開,不足3位的在右邊用0填補即可。
  • 程式設計師的情商:二進位電腦能識別,十進位人易懂,十六進位能做啥
    程式設計師的情商:二進位電腦能識別,十進位人易懂,十六進位能做啥?假如你有一個程式設計師的女朋友,突然給你發了一串數據(68656c6c6f 62616279),你知道什麼意思嗎?該怎麼回她呢?計算機專業的同學,在學習編程中,尤其是初學者,經常有這樣的疑問,一般人只認識十進位(520),電腦只能識別二進位(1000001001),那十六進位(208)能做什麼的?為什麼還要在中間加上一個十六進位呢,是不是多此一舉嗎?本來初學編程,對二進位就不熟悉,要花不少時間和理解來學習理解,在學個十六進位不是很多餘嗎?
  • scratch+程小奔機器人實現「進位轉換」(十進位轉二進位)
    十進位→二進位→解釋;2→10→二的一次方;4→100→二的二次方;8→1000→二的三次方;16→10000→二的四次方;下面我出三道題大家來試著做一下:將下列十進位數字轉換成二進位:23;27;35;思路1:這是我經常用的辦法:23=16+7=16+4+3=2的四次方+2
  • 二進位、八進位、十進位、十六進位轉換計算方法
    進位也就是進位位,我們常用的進位包括:二進位、八進位、十進位與十六進位,它們之間區別在於數運算時是逢幾進一位。比如二進位是逢2進一位,十進位也就是我們常用的0-9是逢10進一位。
  • 二進位、八進位和十六進位之間轉換
    十進位是在人類社會發展過程中自然形成的,它符合人們的思維習慣,例如人類有十根手指,也有十根腳趾。進位也就是進位制。進行加法運算時逢X進一(滿X進一),進行減法運算時借一當X,這就是X進位,這種進位也就包含X個數字,基數為X。十進位有 0~9 共10個數字,基數為10,在加減法運算中,逢十進一,借一當十。
  • 進位詳解:二進位、八進位和十六進位
    十進位是在人類社會發展過程中自然形成的,它符合人們的思維習慣,例如人類有十根手指,也有十根腳趾。進位也就是進位制。進行加法運算時逢X進一(滿X進一),進行減法運算時借一當X,這就是X進位,這種進位也就包含X個數字,基數為X。十進位有 0~9 共10個數字,基數為10,在加減法運算中,逢十進一,借一當十。
  • 跟我學java編程—不得不說的二進位和十六進位
    計算機能夠識別的數制是二進位數,二進位數是用0和1兩個數字來表示的數,計算機的指令集也是採用二進位表示,機器語言就是用二進位數編寫程序。可以藉助十進位數來理解二進位數。在十進位中,每一位有0、1、2、3、4、5、6、7、8、9十個數碼,因此基數為10,超過9就必須用多位數來表示,並遵循逢十進一的原則。
  • 二進位轉換十進位,十進位轉換二進位
    如果把一個十進位的數轉換成二進位的數 , 直接把數除 以二 , 餘數為一就寫1 , 整除 , 就寫0 , 一直除完為止
  • 計算機基礎進位轉換(二進位、八進位、十進位、十六進位)
    圖1.十進位整數轉二進位十進位小數轉二進位十進位小數轉換成二進位小數採用 「乘2取整,順序排列」 法。具體做法是:用2乘十進位小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數 部分,又得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。
  • 二進位、十進位和十六進位
    二進位就是逢二進位,它的一個位只有兩個值:0 和 1,但它卻是實現計算機系統的最基本的理論基礎,計算機(包括單片機)晶片是基於成萬上億個的開關管組合而成的,他們每一個都只能有開和關兩種狀態,再難找出第三個狀態了(不要辯解半開半關這個狀態,它是不穩定態,是極力避免的),所以他們只能對應於二進位的 1 和 0 兩個值,而沒有 2、3、4......,理解二進位對於理解計算機的本質很有幫助。
  • scratch3.0圖形化編程軟體解決「進位轉換(二進位)」問題
    網友互動留言收到網友的評論,我前幾天發的「十進位轉二進位」的文章,網友表示沒有程小奔機器人,是否可以做一個scratch版本的,放心!這就安排!二進位的故事我們這裡就不科普了哈!想要回顧的請移步「百度百科」,嘻嘻首先 我們來看一下1~16 的一個二進位與十進位的對照表格:以上表格就是0-16的表達對照這種方法就是我之前文章的「思路1」,感興趣的網友們可以去看一下我之前的文章連結→scratch+程小奔機器人實現「進位轉換」(十進位轉二進位)這次我們主要說一下「短除法」思路解決十進位轉換為二進位
  • 10、進位轉換:二進位、八進位、十六進位、十進位之間的轉換
    1) 整數部分例如,將八進位數字 53627 轉換成十進位:53627 = 5×84 + 3×83 + 6×82 + 2×81 + 7×80 = 22423(十進位)從右往左看,第1位的位權為 80=1,第2位的位權為 81=8,第3位的位權為 82=64,第4位的位權為 83=512,第5位的位權為 84=4096 …… 第n位的位權就為 8n-1。
  • JS十進位轉換二進位
    最近因為需求,要接觸到前端JS的一些東西,遇到需要把十進位數字轉換為二進位,並且補全對應位數,覺得蠻有趣的,所以把它記錄下來。十進位轉二進位方法其實很簡單,一個函數搞定了:var value = parseInt(12).toString(2);//parsetInt裡面是要轉換的數字,toString裡面是要轉換的進位,//如果要轉換為其他進位,替換掉就好了,so easy。
  • 二進位、八進位、十進位、十六進位數的轉換方法
    一 、數制 計算機中採用的是二進位,因為二進位具有運算簡單,易實現且可靠,為邏輯設計提供了有利的途徑、節省設備等優點,為了便於描述,又常用八、十六進位作為二進位的縮寫。1 ----最左位∴ (30)10 =(1E)163、將P進位數轉換為十進位數把一個二進位轉換成十進位採用方法:把這個二進位的最後一位乘上20,倒數第二位乘上21,……,一直到最高位乘上2n,然後將各項乘積相加的結果就它的十進位表達式。
  • scratch製作「二進位轉十進位」
    學生作品2「十進位轉二進位」接下來我們製作「二進位轉十進位」的小程序。樣例輸入:11011樣例輸出:27方法1,從前向後遍歷新建變量:二進位,用於存儲回答中輸入的二進位數字長度,輸入二進位數字的長度(scratch相對簡單,不用區分變量的類型)十進位,初始化為0,用於累加轉換好的數字和最後的輸出。