亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一定要「分詞」嗎?Andrej Karpathy:是時候拋棄這個歷史包袱了

深度學習自然語言處理 ? 來源:機器之心 ? 2023-05-17 14:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

是時候拋棄 tokenization 了?
ChatGPT 等對話 AI 的出現讓人們習慣了這樣一件事情:輸入一段文本、代碼或一張圖片,對話機器人就能給出你想要的答案。但在這種簡單的交互方式背后,AI 模型要進行非常復雜的數據處理和運算,tokenization 就是比較常見的一種。 在自然語言處理領域,tokenization 指的是將文本輸入分割成更小的單元,稱為「token」。這些 token 可以是詞、子詞或字符,取決于具體的分詞策略和任務需求。例如,如果對句子「我喜歡吃蘋果」執(zhí)行 tokenization 操作,我們將得到一串 token 序列:["我", "喜歡", "吃", "蘋果"]。有人將 tokenization 翻譯成「分詞」,但也有人認為這種翻譯會引起誤導,畢竟分割后的 token 未必是我們日常所理解的「詞」。

1c099208-f475-11ed-90ce-dac502259ad0.png

圖源:https://towardsdatascience.com/dynamic-word-tokenization-with-regex-tokenizer-801ae839d1cd Tokenization 的目的是將輸入數據轉換成計算機可以處理的形式,并為后續(xù)的模型訓練和分析提供一種結構化的表示方式。這種方式為深度學習研究帶來了便利,但同時也帶來了很多麻煩。前段時間剛加入 OpenAI 的 Andrej Karpathy 指出了其中幾種。 首先,Karpathy 認為,Tokenization 引入了復雜性:通過使用 tokenization,語言模型并不是完全的端到端模型。它需要一個獨立的階段進行 tokenization,該階段有自己的訓練和推理過程,并需要額外的庫。這增加了引入其他模態(tài)數據的復雜性。

1c118e68-f475-11ed-90ce-dac502259ad0.png

此外,tokenization 還會在某些場景下讓模型變得很容易出錯,比如在使用文本補全 API 時,如果你的 prompt 以空格結尾,你得到的結果可能大相徑庭。

1c1b15aa-f475-11ed-90ce-dac502259ad0.png

圖源:https://blog.scottlogic.com/2021/08/31/a-primer-on-the-openai-api-1.html 再比如,因為 tokenization 的存在,強大的 ChatGPT 竟然不會將單詞反過來寫(以下測試結果來自 GPT 3.5)。

1c2637f0-f475-11ed-90ce-dac502259ad0.png

這樣的例子可能還有很多。Karpathy 認為,要解決這些問題,我們首先要拋棄 tokenization。 Meta AI 發(fā)表的一篇新論文探討了這個問題。具體來說,他們提出了一種名為「 MEGABYTE」的多尺度解碼器架構,可以對超過一百萬字節(jié)的序列進行端到端可微建模。

1c2c9064-f475-11ed-90ce-dac502259ad0.png

論文鏈接:https://arxiv.org/pdf/2305.07185.pdf 重要的是,該論文展現出了拋棄 tokenization 的可行性,被 Karpathy 評價為「很有前途(Promising)」。 以下是論文的詳細信息。 論文概覽 機器學習的文章 中講過,機器學習之所以看上去可以解決很多復雜的問題,是因為它把這些問題都轉化為了數學問題。

1c118e68-f475-11ed-90ce-dac502259ad0.png

而 NLP 也是相同的思路,文本都是一些「非結構化數據」,我們需要先將這些數據轉化為「結構化數據」,結構化數據就可以轉化為數學問題了,而分詞就是轉化的第一步。 由于自注意力機制和大型前饋網絡的成本都比較高,大型 transformer 解碼器 (LLM) 通常只使用數千個上下文 token。這嚴重限制了可以應用 LLM 的任務集。 基于此,來自 Meta AI 的研究者提出了一種對長字節(jié)序列進行建模的新方法 ——MEGABYTE。該方法將字節(jié)序列分割成固定大小的 patch,和 token 類似。 MEGABYTE 模型由三部分組成:
  1. patch 嵌入器,它通過無損地連接每個字節(jié)的嵌入來簡單地編碼 patch;
  2. 全局模塊 —— 帶有輸入和輸出 patch 表征的大型自回歸 transformer;
  3. 局部模塊 —— 一個小型自回歸模型,可預測 patch 中的字節(jié)。
至關重要的是,該研究發(fā)現對許多任務來說,大多數字節(jié)都相對容易預測(例如,完成給定前幾個字符的單詞),這意味著沒有必要對每個字節(jié)都使用大型神經網絡,而是可以使用小得多的模型進行 intra-patch 建模。

1c37ffbc-f475-11ed-90ce-dac502259ad0.png

MEGABYTE 架構對長序列建模的 Transformer 進行了三項主要改進: 1. sub-quadratic 自注意力。大多數關于長序列模型的工作都集中在減少自注意力的二次成本上。通過將長序列分解為兩個較短的序列和最佳 patch 大小,MEGABYTE 將自注意力機制的成本降低到1c3f2a30-f475-11ed-90ce-dac502259ad0.png,即使是長序列也能易于處理。

2. per-patch 前饋層。在 GPT-3 等超大模型中,超過 98% 的 FLOPS 用于計算 position-wise 前饋層。MEGABYTE 通過給 per-patch(而不是 per-position)使用大型前饋層,在相同的成本下實現了更大、更具表現力的模型。在 patch 大小為 P 的情況下,基線 transformer 將使用具有 m 個參數的相同前饋層 P 次,而 MEGABYTE 僅需以相同的成本使用具有 mP 個參數的層一次。 3. 并行解碼。transformer 必須在生成期間串行執(zhí)行所有計算,因為每個時間步的輸入是前一個時間步的輸出。通過并行生成 patch 的表征,MEGABYTE 在生成過程中實現了更大的并行性。例如,具有 1.5B 參數的 MEGABYTE 模型生成序列的速度比標準的 350M 參數 transformer 快 40%,同時在使用相同的計算進行訓練時還改善了困惑度(perplexity)。 總的來說,MEGABYTE 讓我們能夠以相同的計算預算訓練更大、性能更好的模型,將能夠處理非常長的序列,并提高部署期間的生成速度。 MEGABYTE 還與現有的自回歸模型形成鮮明對比,后者通常使用某種形式的 tokenization,其中字節(jié)序列被映射成更大的離散 token(Sennrich et al., 2015; Ramesh et al., 2021; Hsu et al., 2021) 。tokenization 使預處理、多模態(tài)建模和遷移到新領域變得復雜,同時隱藏了模型中有用的結構。這意味著大多數 SOTA 模型并不是真正的端到端模型。最廣泛使用的 tokenization 方法需要使用特定于語言的啟發(fā)式方法(Radford et al., 2019)或丟失信息(Ramesh et al., 2021)。因此,用高效和高性能的字節(jié)模型代替 tokenization 將具有許多優(yōu)勢。 該研究對 MEGABYTE 和一些強大的基線模型進行了實驗。實驗結果表明,MEGABYTE 在長上下文語言建模上的性能可與子詞模型媲美,并在 ImageNet 上實現了 SOTA 的密度估計困惑度,并允許從原始音頻文件進行音頻建模。這些實驗結果證明了大規(guī)模無 tokenization 自回歸序列建模的可行性。 MEGABYTE 主要組成部分

1c45d290-f475-11ed-90ce-dac502259ad0.png

patch 嵌入器 大小為 P 的 patch 嵌入器能夠將字節(jié)序列1c4efcf8-f475-11ed-90ce-dac502259ad0.png映射成一個長度為1c5740de-f475-11ed-90ce-dac502259ad0.png、維度為1c5ca2fe-f475-11ed-90ce-dac502259ad0.png patch 嵌入序列。

首先,每個字節(jié)都嵌入了一個查找表1c60e878-f475-11ed-90ce-dac502259ad0.png,形成一個大小為 D_G 的嵌入,并添加了位置嵌入。

1c67f816-f475-11ed-90ce-dac502259ad0.png

然后,字節(jié)嵌入被重塑成維度為1c5ca2fe-f475-11ed-90ce-dac502259ad0.png的 K 個 patch 嵌入的序列。為了允許自回歸建模,該 patch 序列被填充以從可訓練的 patch 大小的填充嵌入(1c76ef1a-f475-11ed-90ce-dac502259ad0.png,然后從輸入中移除最后一個 patch。該序列是全局模型的輸入,表示為1c7d66ec-f475-11ed-90ce-dac502259ad0.png。

1c81f360-f475-11ed-90ce-dac502259ad0.png

全局模塊 全局模塊是一個 decoder-only 架構的 P?D_G 維 transformer 模型,它在 k 個 patch 序列上進行操作。全局模塊結合自注意力機制和因果掩碼來捕獲 patch 之間的依賴性。全局模塊輸入 k 個 patch 序列的表示1c866616-f475-11ed-90ce-dac502259ad0.png,并通過對先前 patch 執(zhí)行自注意力來輸出更新的表示1c8c93c4-f475-11ed-90ce-dac502259ad0.png

1c918546-f475-11ed-90ce-dac502259ad0.png

最終全局模塊的輸出1c96ffda-f475-11ed-90ce-dac502259ad0.png包含 P?D_G 維的 K 個 patch 表示。對于其中的每一個,研究者將它們重塑維長度為 P、維度為 D_G 的序列,其中位置 p 使用維度 p?D_G to (p + 1)?D_G。然后將每個位置映射到具有矩陣1c9f0432-f475-11ed-90ce-dac502259ad0.png的局部模塊維度,其中 D_L 為局部模塊維度。接著將這些與大小為 D_L 的字節(jié)嵌入相結合,用于下一個1ca62bf4-f475-11ed-90ce-dac502259ad0.png的 token。

局部字節(jié)嵌入通過可訓練的局部填充嵌入(E^local-pad ∈ R^DL)偏移 1,從而允許在 path 中進行自回歸建模。最終得到張量1cad4754-f475-11ed-90ce-dac502259ad0.png ?

1cb562e0-f475-11ed-90ce-dac502259ad0.png

局部模塊 局部模塊是一個較小的、decoder-only 架構的 D_L 維 transformer 模型,它在包含 P 個元素的單個 patch k 上運行,每個元素又是一個全局模塊輸出和序列中前一個字節(jié)的嵌入的總和。K 個局部模塊副本在每個 patch 上獨立運行,并在訓練時并行運行,從而計算表示1cbb0362-f475-11ed-90ce-dac502259ad0.png

1cc2a590-f475-11ed-90ce-dac502259ad0.png

最后,研究者可以計算每個位置的詞匯概率分布。第 k 個 patch 的第 p 個元素對應于完整序列的元素 t,其中 t = k?P + p。

1cca03e4-f475-11ed-90ce-dac502259ad0.png

效率分析 訓練效率 在縮放序列長度和模型大小時,研究者分析了不同架構的成本。如下圖 3 所示,MEGABYTE 架構在各種模型大小和序列長度上使用的 FLOPS 少于同等大小的 transformer 和線性 transformer,允許相同的計算成本下使用更大的模型。

1cd000e6-f475-11ed-90ce-dac502259ad0.png

生成效率 考慮這樣一個 MEGABYTE 模型,它在全局模型中有 L_global 層,在局部模塊中有 L_local 層,patch 大小為 P,并與具有 L_local + L_global 層的 transformer 架構進行比較。用 MEGABYTE 生成每個 patch 需要一個 O (L_global + P?L_local) 串行操作序列。當 L_global ≥ L_local(全局模塊的層多于局部模塊)時,MEGABYTE 可以將推理成本降低近 P 倍。 實驗結果 語言建模 研究者在強調長程依賴的 5 個不同數據集上分別評估了 MEGABYTE 的語言建模功能,它們是 Project Gutenberg (PG-19)、Books、Stories、arXiv 和 Code。結果如下表 7 所示,MEGABYTE 在所有數據集上的表現始終優(yōu)于基線 transformer 和 PerceiverAR 。

1cdb5982-f475-11ed-90ce-dac502259ad0.png

研究者還擴展了在 PG-19 上的訓練數據,結果如下表 8 所示,MEGABYTE 顯著優(yōu)于其他字節(jié)模型,并可與子詞(subword)上訓練的 SOTA 模型相媲美。

1ce6b980-f475-11ed-90ce-dac502259ad0.png

圖像建模 研究者在 ImageNet 64x64 數據集上訓練了一個大型 MEGABYTE 模型,其中全局和局部模塊的參數分別為 2.7B 和 350M,并有 1.4T token。他們估計,訓練該模型所用時間少于「Hawthorne et al., 2022」論文中復現最佳 PerceiverAR 模型所需 GPU 小時數的一半。如上表 8 所示,MEGABYTE 與 PerceiverAR 的 SOTA 性能相當的同時,僅用了后者一半的計算量。 研究者比較了三種 transformer 變體,即 vanilla、PerceiverAR 和 MEGABYTE,以測試在越來越大圖像分辨率上長序列的可擴展性。結果如下表 5 所示,在這一計算控制設置下,MEGABYTE 在所有分辨率上均優(yōu)于基線模型。

1cf1b63c-f475-11ed-90ce-dac502259ad0.png

下表 14 總結了每個基線模型使用的精確設置,包括上下文長度和 latent 數量。

1cf96008-f475-11ed-90ce-dac502259ad0.png

音頻建模 音頻兼具文本的序列結構和圖像的連續(xù)屬性,這對 MEGABYTE 而言是一個有趣的應用。本文模型獲得 3.477 的 bpb,明顯低于 perceiverAR(3.543)和 vanilla transformer 模型(3.567)。更多消融結果詳見下表 10。

1d01ab6e-f475-11ed-90ce-dac502259ad0.png

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • AI
    AI
    +關注

    關注

    89

    文章

    37531

    瀏覽量

    293224
  • 數據轉換
    +關注

    關注

    0

    文章

    94

    瀏覽量

    18424
  • 模型
    +關注

    關注

    1

    文章

    3627

    瀏覽量

    51611

原文標題:一定要「分詞」嗎?Andrej Karpathy:是時候拋棄這個歷史包袱了

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    好東西,一定要分享!

    片簡單的嵌入式文章,希望有用,,好東西一定要分享。。
    發(fā)表于 10-18 22:08

    為什么第盞燈一定要用0xfe,其他的燈也一定要用該數值才有效?

    為什么第盞燈一定要用0xfe,其他的燈也一定要用該數值才有效?因為接觸這個時間不多,請你們盡量教會我啊 ,謝謝雖然你們都會說這很簡單,但我還是不懂,請你們耐心指導
    發(fā)表于 10-18 22:46

    自然語言處理中的分詞問題總結

    分詞系統(tǒng),2-3 行代碼就可以實現分詞調用和詞性標注,速度還不錯。基于 HMM 模型實現,可以實現一定程度的未登錄詞識別。Jieba 有精確模式、全模式、搜索模式三種。全模式是找到
    發(fā)表于 10-26 13:48

    基于hanlp的es分詞插件

    摘要:elasticsearch是使用比較廣泛的分布式搜索引擎,es提供個的單字分詞工具,還有分詞插件ik使用比較廣泛,hanlp是
    發(fā)表于 07-01 11:34

    hanlp分詞工具應用案例:商品圖自動推薦功能的應用

    怎么實現。分析下解決方案步驟: 1、圖庫建設:至少要有圖片吧,圖片肯定要有關聯(lián)的商品名稱、商品類別、商品規(guī)格、關鍵字等信息。 2、商品分詞
    發(fā)表于 08-07 11:47

    DSP和SDRAM之間的數據總線一定要加電阻嗎

    俺也是個初學者,對信號完整性了解不多。只是看到參考電路上,DSP和SDRAM之間的數據總線,地址總線中間都加了小電阻。感覺是信號完整性用的 。但是現在布線的時候,感覺比較麻煩,不如不加這個呢。所以,我想問下。DSP(單片機)和
    發(fā)表于 07-20 14:23

    請問ch582使用串口下載程序的時候一定要將PB22接地嗎?

    請問ch582使用串口下載程序的時候一定要將PB22接地嗎?如果不接地直接重新上電可不可以下載的?
    發(fā)表于 08-05 06:52

    FIFO讀后一定要清嗎?

    FIFO讀后一定要清么
    發(fā)表于 09-22 06:31

    基于二元關系分詞模型解決歧義詞切分

    歧義詞的切分是中文分詞要面對的數個難題之,解決好了這個問題就能夠有力提升中文分詞的正確率。對此,本文簡要介紹漢語
    發(fā)表于 01-15 16:09 ?18次下載

    多次Hash自動分詞算法

    詞典是自動分詞基礎,分詞詞典機制的優(yōu)劣直接影響到中文分詞速度和效率。本文在對中文編碼體系和中文分詞的算法進行研究的基礎上,設計種新的
    發(fā)表于 01-22 12:16 ?14次下載

    北大開源個中文分詞工具包,名為——PKUSeg

    多領域分詞:不同于以往的通用中文分詞工具,此工具包同時致力于為不同領域的數據提供個性化的預訓練模型。根據待分詞文本的領域特點,用戶可以自由地選擇不同的模型。 我們目前支持新聞領域,網
    的頭像 發(fā)表于 01-16 10:29 ?7350次閱讀
    北大開源<b class='flag-5'>了</b><b class='flag-5'>一</b>個中文<b class='flag-5'>分詞</b>工具包,名為——PKUSeg

    手機充電一定要充滿嗎

    充電一定要在手機沒電之前充電,也不能充滿電,要充到一定電量就拔掉充電器,這樣才能更好的保護手機的電池,不要等手機電量全部用沒之后在充電,這個叫做深度放電,這樣對手機的損害是非常大的,所以說小編請大家千萬不要這么做。
    的頭像 發(fā)表于 03-01 14:00 ?4.3w次閱讀

    在購買洗衣機的時候 一定要結合自身的實際需求

    洗衣機的種類非常多,很多人在挑選的時候都會感到非常頭疼,不知道要買哪種洗衣機更好,所以,我們在挑選之前一定要有自己的想法,多點學習相關的知識,這樣才不會買到些不實用的洗衣機,而且也不會白白浪費錢。
    發(fā)表于 04-09 14:50 ?499次閱讀

    使用變頻器時一定要接制動電阻嗎

    在要求電機快速制動的情況下變頻器要使用制動電阻,所以制動電阻一定要接,如果沒有是不安全的。
    的頭像 發(fā)表于 11-13 09:49 ?1.9w次閱讀

    特斯拉前AI總監(jiān)Andrej Karpathy:大模型有內存限制,這個妙招挺好用!

    為了讓大家更好的理解 Karpathy 的內容。我們先介紹下「Speculative decoding」方法,對后續(xù)理解更加有益,其主要用于加速大模型的推理。據了解,GPT-4 泄密報告也提到了 OpenAI 線上模型推理使用了它(不確定是否 100%)。
    的頭像 發(fā)表于 09-04 15:43 ?1216次閱讀
    特斯拉前AI總監(jiān)<b class='flag-5'>Andrej</b> <b class='flag-5'>Karpathy</b>:大模型有內存限制,<b class='flag-5'>這個</b>妙招挺好用!