<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何通俗易懂地讓女朋友明白什么是語言模型?

          共 4955字,需瀏覽 10分鐘

           ·

          2023-05-07 02:25

          839d3fe40d1a6a076dc9f27bcb27650d.webp

          ??背景

          上周末和女朋友去風云再起夾娃娃,原本不會玩的我們在好哥們的指點下竟然夾到了一堆。其中一只娃娃是語言模型BERT的好兄弟,來自芝麻街的“甜餅怪”。于是飯后回到家,我們有了下面的對話。

          ??什么是語言模型?

          我:親愛的,今天你夾到了一只甜餅怪耶,還記得我之前和你說過的BERT嗎?他們是好兄弟哦,而且甜餅怪也是語言模型Grover的代表。

          女友:有點印象,是不是那個小黃人!你們NLPer說的BERT到底是啥呀?

          我:BERT是Google發(fā)布的一款預訓練語言模型,中文全稱叫“基于變換器的雙向編碼器....”

          女友:可不可以“說人話” - -!

          08d788d271282f45e14fb9671b4f2a86.webp

          我:哦,對不起!BERT屬于預訓練語言模型的一種,那我先從語言模型開始介紹吧,保證用通俗易懂的語言。

          女友:這還差不多。

          我:先舉一個最簡單的例子!

          假如我剛和你交往沒多久,突然有一天我想對你說三個字,又不好意思直說,于是我把中間的那個字先蓋住,你看到的變成了:“我[mask]你”。

          雖然你心中大概率覺得就是那三個字,但也許會猜測有沒有別的可能?

          這時BERT出現了,他和你說:“讓我來幫你看看這小子心里在想啥”。

          通過統(tǒng)計我和你之前的一些聊天資料,BERT科學分析得出如下結論:中間的字97%的概率是“愛”,2.5%的概率是“想”,0.01%的概率是“恨”。

          女友的嘴角微微上揚,“果不出我所料”。

          我:當然啦,這只是最簡單的demo。再來一個例子,假如夏天我們去爬山避暑,在半山腰發(fā)現對面山上有一大片竹林。

          才華橫溢的女票隨口而出一句五言詩:“一望山多竹”,并含情脈脈地看向了我。

          鄙人雖然才疏學淺,好在我的專業(yè)是自然語言處理,又有BERT這一法寶。我悄悄地把這5個字告訴了他,部署在遠程GPU上的BERT瞬間發(fā)回5個字:

          “能生夏日寒”。

          女友:哎呀,對的不錯呀。BERT咋這么聰明?

          27abca581c27f5d7b76b4dea09580eee.webp

          我:不僅如此,BERT還可以根據你指定的主題作出完整的古詩或對聯呢!甚至還能編排小說和電影劇情。

          當然了,主旨概括、文字翻譯、新聞歸類這些工作對他而言更不在話下。和文字相關的活,BERT幾乎都能干。

          女友:天吶,這么厲害。

          我:現在我來完整解釋一下。

          所謂語言模型,就是通過觀察人類的表達習慣,計算機模型自動統(tǒng)計歸納出一些客觀的文字規(guī)律。經過總結這些規(guī)律,模型一定程度上可以理解人類的語言。

          一個優(yōu)秀的語言模型,無法讓你分辨出它到底是人還是機器。

          女友:還是沒有很懂,是怎樣的規(guī)律呢?

          我:假如我們現在從網絡上收集到了100W個句子,其中有一個句子是:“今晚我想吃香芋西米露”。

          語言模型的學習任務就是統(tǒng)計語言序列 “今 / 晚 / 我 / 想 / 吃 / 香 / 芋 / 西 / 米 / 露”的概率,即:

          今晚我想吃香芋西米露

          簡單的說,語言模型的目的是判斷一個句子是否正常,是不是是人話。例如:

          P(今 / 晚 / 我 / 想 / 吃 / 香 / 芋 / 西 / 米 / 露) > P(香 / 芋 / 西 / 米 / 露 / 今 / 晚 / 想 / 吃 / 我)

          語言模型認為,后面一句話不是正常的人話,幾乎不會在我們的生活中出現。依此類推,模型會對100W個句子分別計算出現的概率。

          女友:哦,好像有點明白了~

          5a21d3a923caff8de0f7740f2b827e0e.webp

          我:嗯嗯,這就是最早期的基于統(tǒng)計的語言模型。當然啦,上面的序列計算量有些大,實際中我們往往會對句子先分詞,把“今晚我想吃香芋西米露”切分成“今晚 / 我 / 想 / 吃 / 香芋 / 西米露”。

          女友:這不就是我們小學學習的組詞嘛。

          我:對!分詞是NLP最基礎的概念之一,看來你已經能初步理解啦。

          分詞的好處是我們可以以詞為粒度,統(tǒng)計每個詞彼此先后的順序、分布的規(guī)律,顯著減少計算量。例如“香芋”后跟“西米露”的概率要遠大于“金露”。

          女友:明白分詞的含義啦。

          我:要計算一個句子中所有詞出現的概率仍然比較困難,所以實際中我們會繼續(xù)優(yōu)化,使用基于n-gram的統(tǒng)計方法,以及隨后出現的神經網絡語言模型。

          這些內容涉及了一些專業(yè)知識,下一次我們再來討論。要是感興趣,我可以先給你一些資料哦[1]。

          女友:好。

          ??預訓練語言模型和語言模型又有什么區(qū)別?

          女友:為什么你一開始時說BERT是預訓練語言模型呢,他和上面的語言模型難道還不一樣?

          我:本質是一樣的,但是實現方法有一些不同。

          女友:怎么說?

          我:BERT是2018年底開發(fā)出來的語言模型,用到了當時NLP最前沿的技術。BERT模型有3個核心特點:

          (1)基于self-Attention的Transformer架構;(2)采用的MLM預訓練任務符合語言模型本質;(3)訓練語料龐大,多達33億文本,見多識廣。

          女友:不行,又開始懵了。

          我:不急哈,我來一個個說明。

          關于注意力機制,你只要先了解這是一種非常高效的神經網絡。假如現在有一個很長的句子,從頭讀到尾,很可能句子一開始說的內容我們已經忘了。

          但是Attention沒有這個煩惱,在它看來句子中任意兩個位置的詞都是相鄰關系。所以我們說Attention有很強的“記憶能力”!

          45202c4b2a199fc268ffd24346567b7f.webp

          女友:哦,原來是記性好。那MLM呢?

          我:MLM(Mask Language Model)其實很好理解。正常的一句話,針對其中的每個字以15%的概率掩蓋,再讓BERT預測被蓋住的字原本是什么。

          以蘇東坡的詩“欲把西湖比西子,淡妝濃抹總相宜”為例。

          經過隨機掩蓋,原詩可能變成了“欲把西[mask]比西子,淡[mask]濃抹總相宜”。

          BERT的主要訓練任務就是將文本經過層層Transformer編碼后,根據沒有被掩蓋的上下文還原[mask]位置的字。

          女友:那不會出現有很多種可能的表達嗎?

          我:中文版BERT的詞表一共有20,000多個字符,常見的中文字符只有2000-3000個。假如讓模型隨機猜,猜中的概率最多只有1/2000。

          女友:這也太低了吧~

          我:模型不會瞎猜啦!他會根據上下文縮小范圍。

          通過對海量文本的學習,BERT知道和“西”組成的詞只有“西瓜、西湖、西紅柿、西溪、西北...”等十幾種,再結合上下文語境,能快速鎖定第一個[mask]對應的字符是“湖”。

          即便有多種可能組合,BERT也只會選擇概率最大的字符(“湖”在這個語境中的概率可能大于90%)。

          女友:所以BERT最終會輸出“欲把西[湖]比西子,淡[妝]濃抹總相宜”?

          我:就是這樣。假如剛開始訓練時BERT預測錯了,MLM對應的損失函數(CrossEntropy)就會產生一個比較大的值,對模型進行懲罰;下一次預測對了,損失值就變成0。

          BERT會往損失值最小的方向學習,也就越學越聰明啦!

          女友:好聰明呀。為什么會選擇MLM這樣一個訓練任務呢?

          我:MLM任務的靈感來自于人類做完形填空。挖去文章中的某些片段,需要理解上下文來猜測這些被掩蓋位置的內容。這樣的任務符合咱們前面介紹過的語言模型的本質。

          女友:猴。

          我:第3點訓練語料龐大更好理解。相比前面提及的100W文本,明顯33億語料包含的信息更豐富,BERT幾乎能學到每一個詞在各種上下文語境中的用法。

          正所謂是大力出奇跡。

          女友:一個人讀了33億文本規(guī)模的書,估計也是半個國學大師了吧dc9d2d4c1d48efd05b4ff06bc8b16d0f.webp

          我:哈哈很有可能。

          d2a84c5579347e65a23bea9894a68238.webp

          ??語言模型有什么用?

          女友:你說了這么多,BERT在實際中有什么用?

          我:只要和自然語言相關的場景(其實還包括圖片、音頻等),幾乎都有BERT的用武之地。從最常見的新聞分類、相似句判斷到機器閱讀理解、問答系統(tǒng)等等。

          女友:你剛說問答系統(tǒng),那是不是可以訓練一個BERT和我聊天?

          我:可以,閑聊屬于問答系統(tǒng)的一個重要分支,有很廣泛的應用場景。

          女友:我問什么BERT都能回答嗎?

          我:這需要關注2個問題:訓練語料和訓練任務。

          BERT本質是一個龐大的語言模型,所以給一段文本讓他分類,或者判斷是真/假新聞,很符合他的預訓練目標。但如果想和他聊天,我們需要提供新的目標讓BERT學習。

          女友:啥目標?

          我:比如我們提供上句S1,讓BERT預測下句S2;通過這樣的訓練方式,他就具備了一定的問答能力。

          如果你提供給他的是百度百科語料以及相應的“問題-答案“句子對,他就是一個百科問答型BERT,能幫助你解決一些常見的FAQ。

          如果提供的是聊天相關的文本,他就是一個閑聊類型的BERT,能幫你解悶甚至講笑話逗你開心。

          女友:這么神奇!

          什么地方可以安裝BERT???

          我:BERT模型可以部署到公眾號、小程序、手機應用app、網頁甚至嵌入到已有的硬件產品中哦,不限載體。

          也許未來BERT會在問答機器人、智能家居中大顯身手。

          ??可以自己訓練一個BERT嗎?

          女友:BERT好好玩,我可以自己訓練一個嗎?

          86e6d79bd8bf759ceea44e8a5279127a.webp

          我:可以的,不過需要先學習一些工具哦,比如Python、基礎的NLP知識,看一看BERT的論文...

          女友:啊,這么麻煩= =!有沒有辦法快速上手dc9d2d4c1d48efd05b4ff06bc8b16d0f.webp

          我:有。我可以用tf/torch幫你搭好訓練框架,告訴我你想和他聊天的主題,任務型 or 閑聊 or FAQ問答?

          再幫你爬取一些語料,部署成一鍵訓練!點擊“開始訓練”,過幾小時就會有一個專屬你的BERT誕生啦!

          女友:好,今晚幫我訓練一個!

          我:這么積極呀,遵命...

          5fa75e2c6151c451451ec85df073de53.webp

          女友:下一次我還要去夾娃娃,爭取夾回一個“BERT”9970339a51ed59f04440c01163711d9c.webp

          ??后記

          經過這次交流,女朋友對語言模型有了一定的認知,也開始了解我的專業(yè),并喜歡上了BERT。我決定以后要多以這種輕松的方式和她分享我的知識,并讓她產生興趣。她也經常會有一些很新奇的idea,幫助我拓寬思路。

          以上內容并沒有深入講解專業(yè)知識,感興趣的讀者可以搜索相關資料,或參考下文引用。

          參 ?考 ?資 ?料

          [1] 深入理解語言模型:https://zhuanlan.zhihu.com/p/52061158

          [2] BERT論文:《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》

          [3] UNILM,BERT做生成式任務:《Unified Language Model Pre-training for Natural Language Understanding and Generation》

          創(chuàng)作不易,有收獲的話請幫忙點擊分享、點贊、在看??

          瀏覽 76
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品嫩草影院 | 日本一级婬片A片免费看 | 亚洲AAA黄片 | 青青草视频在线免费 | 激情国产精品 |