在大模型領(lǐng)域,如何將文本數(shù)據(jù)分解成合適的單元一直是重點(diǎn)研究對(duì)象。傳統(tǒng)的分詞方法,如Byte Pair Encoding等,會(huì)預(yù)先將文本分割成固定粒度的單元,然后構(gòu)建一個(gè)靜態(tài)的詞匯表供模型使用。但這種方法存在諸多局限性,一旦分詞完成,模型在后續(xù)處理中就只能局限于這些預(yù)設(shè)的單元,無法靈活地調(diào)整對(duì)數(shù)據(jù)的處理方式和預(yù)測(cè)范圍;
另一方面,對(duì)于一些低資源語言或者具有特殊字符結(jié)構(gòu)的文本,這種固定分詞方式往往難以有效處理,限制了模型的泛化能力和應(yīng)用范圍。
為了解決這些難題,Meta的研究人員開源了創(chuàng)新架構(gòu)AU-Net,過引入一種自回歸的 U-Net 架構(gòu),徹底改變了傳統(tǒng)語言模型的分詞和處理模式。AU-Net 能夠直接從原始字節(jié)開始學(xué)習(xí),動(dòng)態(tài)地將字節(jié)組合成單詞、詞對(duì),甚至多達(dá)四個(gè)單詞的組合,形成一種多尺度的序列表示。

開源地址:https://github.com/facebookresearch/lingua/tree/main/apps/aunet
AU-Net的架構(gòu)靈感來源于醫(yī)學(xué)圖像分割領(lǐng)域的 U-Net 架構(gòu),它是一種自回歸的層次化模型,具有獨(dú)特的收縮路徑和擴(kuò)張路徑。收縮路徑的主要作用是對(duì)輸入的字節(jié)序列進(jìn)行壓縮處理,通過逐步合并字節(jié)來形成更高層次的語義單元,從而提取出文本的宏觀語義信息。
而擴(kuò)張路徑則負(fù)責(zé)將這些壓縮后的高層次信息逐步還原,恢復(fù)到原始的序列長度,并且在這個(gè)過程中將高層次的語義信息融入到更細(xì)致的局部細(xì)節(jié)中,使得模型在不同層次上都能夠捕捉到文本的重要特征。

收縮路徑分為多個(gè)階段,每個(gè)階段都有其特定的功能和結(jié)構(gòu)。在第一階段,模型直接處理原始字節(jié)。這個(gè)階段的維度設(shè)置為 512,包含 3 層。由于字節(jié)級(jí)別的序列是最長的,為了保證計(jì)算的可行性,模型在這個(gè)階段會(huì)限制注意力機(jī)制的作用范圍,使其僅在一定的窗口內(nèi)進(jìn)行操作。這樣的設(shè)計(jì)既能夠充分利用自注意力機(jī)制的優(yōu)勢(shì),又能夠避免因?yàn)樾蛄羞^長而導(dǎo)致的計(jì)算負(fù)擔(dān)過重的問題。
接下來是第二階段,在這個(gè)階段,模型會(huì)在單詞邊界處進(jìn)行池化操作。池化操作是通過選擇特定位置的向量來實(shí)現(xiàn)的,這些位置是由預(yù)先定義的分割函數(shù)確定的。分割函數(shù)會(huì)根據(jù)單詞的起始位置來選取對(duì)應(yīng)的向量,這些向量能夠捕捉到單詞之前的上下文信息。
然后模型將這些向量投影到下一個(gè)階段的維度,即 2048 維度,并且這個(gè)階段也包含 3 層。通過這種方式,模型能夠?qū)⒆止?jié)級(jí)別的信息抽象成單詞級(jí)別的語義信息,為后續(xù)的高層次處理提供基礎(chǔ)。

第三階段的池化操作則是在每兩個(gè)單詞處進(jìn)行。這個(gè)階段的維度進(jìn)一步增加到 3072,包含 18 層。在這個(gè)階段,模型開始處理更大范圍的語義信息,它不僅僅關(guān)注單個(gè)單詞,而是將兩個(gè)單詞作為一個(gè)整體來進(jìn)行處理。這種設(shè)計(jì)使得模型能夠捕捉到單詞之間的搭配關(guān)系和更復(fù)雜的語義結(jié)構(gòu),從而更好地理解文本的含義。
擴(kuò)張路徑的作用是將收縮路徑中壓縮后的高層次信息逐步還原,并且在這個(gè)過程中將高層次的語義信息與局部細(xì)節(jié)信息進(jìn)行融合。在擴(kuò)張路徑中,模型會(huì)采用一種稱為多線性上采樣的策略來進(jìn)行上采樣操作。
模型會(huì)將每個(gè)粗向量復(fù)制多次,以匹配下一個(gè)階段的長度,并且為這些復(fù)制的向量應(yīng)用不同的位置特定線性變換。這種策略使得每個(gè)位置的向量都能夠根據(jù)其在序列中的相對(duì)位置進(jìn)行調(diào)整,從而更好地融合高層次的信息和局部細(xì)節(jié)。
例如,當(dāng)從每兩個(gè)單詞的表示恢復(fù)到單詞級(jí)別的表示時(shí),模型會(huì)為每個(gè)單詞位置生成一個(gè)獨(dú)特的向量。這些向量不僅包含了來自高層次的語義信息,還能夠根據(jù)單詞的具體位置進(jìn)行適當(dāng)?shù)恼{(diào)整,以更好地捕捉單詞級(jí)別的細(xì)節(jié)特征。通過這種方式,模型能夠逐步恢復(fù)序列的長度,并且在這個(gè)過程中將高層次的語義信息有效地融入到局部細(xì)節(jié)中,從而生成更加準(zhǔn)確和自然的文本。
在擴(kuò)張路徑中,模型還會(huì)利用跳躍連接來傳遞信息。跳躍連接的作用是將收縮路徑中提取到的細(xì)節(jié)信息直接傳遞到擴(kuò)張路徑中的相應(yīng)階段,從而保證在還原過程中不會(huì)丟失重要的局部細(xì)節(jié)。這些跳躍連接的存在使得模型在不同層次上都能夠同時(shí)獲取到高層次的語義信息和局部細(xì)節(jié)信息,進(jìn)一步提高了模型的生成能力和預(yù)測(cè)準(zhǔn)確性。

在推理階段,AU-Net 采用自回歸的生成機(jī)制。字節(jié)級(jí)別的階段會(huì)在每一步都保持活躍,而更深層次的階段則根據(jù)池化模式以較低的頻率激活。這種自回歸的生成方式不僅保證了生成文本的連貫性和準(zhǔn)確性,還提高了推理效率。
自回歸生成機(jī)制的優(yōu)勢(shì)在于它能夠確保模型在每一步生成過程中都能夠充分考慮到前面已經(jīng)生成的內(nèi)容以及深層次的語義信息。通過這種方式,模型能夠生成更加自然和準(zhǔn)確的文本,避免了可能出現(xiàn)的語義不連貫或者語法錯(cuò)誤等問題。同時(shí),由于更深層次的階段不是在每一步都激活,這大大減少了計(jì)算量,提高了推理的速度,使得 AU-Net 在實(shí)際應(yīng)用中更加高效和實(shí)用。