在目前 AI 領域,大語言模型採用的主流架構是 Transformer。不過,隨著 RWKV、Mamba 等架構的陸續問世,出現了一個很明顯的趨勢:在語言建模困惑度方面與 Transformer 較量的循環大語言模型正在快速進入人們的視線。
令人興奮的是,這些架構在推理期間使用了恆定量的記憶體。不過,受制於有限的內存,循環語言模型(LM)無法記憶並使用長上下文中的所有信息,這導致了上下文學習(in-context learning,ICL)質量的不佳。因此,獲得高效大語言模型的關鍵挑戰在於選擇儲存或丟棄哪些資訊。
在最近的論文《Just read twice: closing the recall gap for recurrent language models》中,來自史丹佛大學、布法羅大學的研究者透過簡單觀察發現,數據在推理期間湧入循環語言模型的排序極大地影響了在有限記憶體中預測儲存哪些資訊的難度。
我們假設根據文件 D(例如伽利略・伽利萊的詳細維基百科)來提問:伽利略是什麼時候搬到的佛羅倫薩?這時,如果提示遵循了 [Q, D] 的排序,則模型只需要記住文檔 D 中的一個事實。相反,如果提示遵循了 [D, Q] 的排序,則模型需要記住所有事實。如下圖 1(左)所示。
因此,本文首先從理論上形式化了資料排序如何影響記憶體需求,然後提出兩種方法來減輕對資料排序的依賴,分別是Just-read-twice(JRT)提示策略和JRT 循環架構。本文主要分為以下幾個部分展開:
理解資料排序的作用。研究者得出的第一個洞見是:記憶問題的 hardness 要降低到與設定剝離(set disjointness,SD)相同,這是通訊複雜度理論中持續數十年的最典型問題。 SD 要求一種流演算法(例如循環模型)來決定上下文中提供的輸入集是否剝離:
理論分析和實驗結果表明,第一個集 | A | 掌控了求解 SD 所需的記憶體。因果模型需要儲存 A 中的所有元素以與 B 中的元素進行比較。這表明了,使用上下文中的「正確資料排序」(如將最小 min (|A|, |B|) 的集合放在首位)將有助於記憶體受限的模型。更進一步,觀察到上下文非因果邏輯的模型可在空間最小的 (|A|, |B|) 中求解 SD,而無需考慮資料排序。
其次是利用「正確的」排序。本文提出了一個非常簡單的 JRT-Prompt 策略,在模型產生答案之前在上下文中重複資訊多次(如上圖 1 右所示)。在第二以及更多輪次中,語言模型在決定儲存哪些資訊時要以完整的上下文為條件,從而有效避免了將資料排序「歸正」的問題。
結果表明,JRT-Prompt 在16 個已有循環語言模型和6 項ICL 任務上,實現了平均11.0 ± 1.3 百分點的提升,而吞吐量是FlashAttention-2(長度32k、批大小16)的11.9倍。 JRT-Prompt 雖然增加了上下文長度,但漸進來看仍然比注意力更加地計算和內存高效。
超越因果模型。本文提出了 JRT-RNN,它的靈感來自於簡單的 Prefix-LM 編碼器解碼器架構設計。大多數的上下文學習輸入包含兩部分內容,分別是輸入的提示(上下文、指令)和作為輸出的模型生成文字。在 Prefix-LM 架構中,LM 並沒有遵循因果邏輯地處理提示區域,而對輸出進行了因果解碼,其中在因果區域僅使用了標準的下一個 token 預測損失,以及非因果區域上的損失。
不過遺憾的是,先前 Prefix-LM 模型的訓練方法取得的成功有限,並使用了低效的 Transformer 主幹。因此本文透過一些簡單的改變來提高品質和效率,包括改善訓練損失並使用稱為「Prefix Linear Attention,PLA」 的線性注意力公式。研究者發現,使用他們的 IO 感知實現,JRT-RNN 在 360m 和 1.3b 參數設定下,分別可以提供 13.7 和 6.9 個百分點的平均品質改進,吞吐量是 FA2 的 19.2 倍。
論文地址:https://arxiv.org/pdf/2407.05483
專案首🜎 Prompt 方法概覽
Tugas pembelajaran kontekstual mengambil (C, Q, Y) sebagai input, dengan C ialah beberapa sumber konteks (seperti dokumen atau repositori kod), Q ialah beberapa soalan atau permintaan kepada model yang diberi konteks, dan Y ialah jawapannya. Untuk pembelajaran konteks standard menggunakan LM A autoregresif, penyelidik mengambil input C dan Q dan menilai output yang terhasil Yˆ = A (C, Q) terhadap penyiapan Y yang betul.
JRT-Prompt ialah kaedah yang sangat mudah yang mengulangi maklumat dalam gesaan (seperti soalan dan dokumen) dalam konteks sebelum menggesa model untuk mengeluarkan jawapan, seperti Yˆ = A (C, Q, C di sebelah kanan dalam Rajah 1 di bawah), Q). Oleh itu, pada kali kedua konteks muncul, model memutuskan maklumat yang hendak disimpan berdasarkan konteks lengkap.
Selain itu, JRT-Prompt boleh digunakan dengan LLM siap sedia. Para penyelidik menilai LM berikut pada satu siri tugas kontekstual intensif memori di bawah gesaan sampel sifar:
Berasaskan LM pra-latihan dengan saiz parameter 1.3B, dilatih pada token 10 − 50B Pile.
Mereka juga mendapati bahawa JRT-Prompt boleh memanfaatkan model Transformer, dan kaedah ini lebih berkesan daripada pembelajaran beberapa pukulan pada beberapa tugas (Lampiran 2). Perlu diingat bahawa dalam kertas "Pengulangan menambah baik pembenaman model bahasa", Springer et al mencadangkan untuk menggunakan model Transformer autoregresif untuk mengulangi konteks untuk mencapai tujuan menjana benam. Penyelidik menumpukan pada seni bina sub-kuadrat dan tugas pembelajaran kontekstual.
JRT-RNN: Seni Bina Gelung Pengekod-Penyahkod
JRT-RNN diilhamkan oleh Awalan-LM, tetapi memfokuskan pada meluaskan sempadan Pareto bagi ruang pertukaran kecekapan kualiti. Untuk meningkatkan kualiti, JRT-RNN menggunakan pemetaan k_e dan v_e yang berasingan pada bahagian pengekod dan pemetaan k_d dan v_d pada bahagian penyahkod. Walaupun model Prefix LM menggunakan pemberat pemetaan yang dikongsi untuk kawasan pengekod dan penyahkod, penyelidik mendapati bahawa menggunakan dua set pemetaan meningkatkan kualiti.
Untuk meningkatkan kecekapan, JRT-RNN menggunakan perhatian linear bukan sebab untuk pengekod dan perhatian linear kausa standard untuk penyahkod. Para penyelidik memanggilnya Prefix Linear Attention (PLA) (kanan dalam Rajah 1), dan formulanya adalah seperti berikut:
JRT-RNN objektif latihan. LM awalan biasanya tidak mengira kerugian di kawasan bukan sebab, manakala JRT-RNN menggabungkan ramalan token seterusnya dengan objektif pemodelan bahasa bertopeng (MLM). Dan untuk sasaran MLM tambahan, penyelidik menggantikan token dengan perkadaran P dari rantau pengekod {u_1, ..., u_M} dengan token [MASK] dan mengukur kehilangan entropi silangapabila meramalkan token asal.
Kerugian adalah seperti berikut:
Hasil eksperimen
Dalam eksperimen, penyelidik menilai kualiti dan kecekapan JRT-RNN pada tiga petunjuk berikut:
kualiti pembelajaran konteks
Pemodelan Bahasa Keseluruhan
penjanaan
Seperti ditunjukkan dalam Jadual 2 di bawah, penyelidik mendapati JRT-RNN lebih baik daripada penyahkod (Ba6M) secara asas (baseline) (30B token) Purata adalah 13.7 mata peratusan lebih tinggi, dan purata ialah 6.9 mata peratusan lebih tinggi apabila parameternya ialah 1.3B (50B token).
Pada masa yang sama, jurang antara JRT-RNN dan Transformer++ dikecilkan kepada 0.5 mata peratusan dan 1.9 mata peratusan apabila parameter masing-masing adalah 360M dan 1.3B.
Dalam Jadual 3 di bawah, penyelidik membandingkan prestasi JRT-RNN dengan strategi inferens yang serupa apabila panjang praisi l lebih kecil daripada panjang pengekod M. . secara berurutan untuk meramalkan token seterusnya dengan betul; dan "Kepingan lain" mengandungi token yang tinggal (seperti pengetahuan yang dihafal).
Untuk kekerapan ingatan, JRT-RNN berprestasi baik dalam "hirisan AR". Untuk bigram yang tidak biasa semasa latihan (iaitu, kurang berkemungkinan diingati dalam parameter model), kebingungan JRT-RNN bertambah baik berbanding Berdasarkan dan Mamba, dua garis dasar gelung kausal yang kuat.
Untuk jarak ingatan, dalam "hirisan AR", jurang antara JRT-RNN dan garis dasar penyahkod sahaja semakin melebar apabila bilangan bigram berulang dalam konteks meningkat. Ini seterusnya membuktikan bahawa JRT-RNN boleh membantu menyelesaikan tugas memori kontekstual yang lebih panjang.Kekerapan bukan ingatan. Untuk "Kepingan lain" bigram bukan ingatan yang jarang dilihat semasa latihan, JRT-RNN mempunyai kebingungan yang lebih teruk daripada LM penyahkod sahaja. Ini adalah hasil yang dijangkakan kerana JRT-RNN mengira kerugian hanya 65% daripada token LM penyahkod.
Kami menjangkakan jurang ini akan mengecil dengan skala dan masa latihan (meningkat dengan kekerapan bigram) (Rajah 3, kiri atas). Hasil penjanaanPenjanaan boleh diuraikan kepada dua langkah: "pemprosesan praisi" segera dan penyahkodan "ramalan token seterusnya". Berbanding dengan model gelung penyahkod sahaja standard, JRT-RNN tidak mengubah suai langkah penyahkodan, jadi perbincangan tertumpu pada peringkat praisi.
Menggunakan kernel CUDan Berasaskan yang dicadangkan dalam makalah "Model bahasa perhatian linear mudah mengimbangi perdagangan balik-proses" oleh Simran Arora et al., daya pemprosesan JRT-Prompt semasa memproses praisi ialah 11.9 dan 13.7 FlashAttention-2 dan Biji FLA Triton masing-masing, seperti yang ditunjukkan dalam Jadual 5 di bawah.
Apabila penyelidik meningkatkan saiz kelompok kepada 64, daya pemprosesan JRT-Prompt masing-masing adalah 6.1 kali dan 7.2 kali lebih tinggi daripada biji FlashAttention-2 dan FLA Triton.Seterusnya mereka memanjangkan kernel Berasaskan untuk menyokong JRT-RNN dan menunjukkan bahawa apabila meningkatkan panjang jujukan kepada 32768, daya pemprosesan masing-masing adalah 19.2 kali dan 22.0 kali ganda daripada FlashAttention-2 dan FLA. Apabila meningkatkan saiz kelompok kepada 64, JRT-RNN menyediakan satu lagi peningkatan daya pemprosesan 9.7x dan 11.5x, masing-masing. Masa yang diperlukan oleh JRT-RNN ialah 1.24 kali ganda daripada praisi Berdasarkan, yang lebih cekap daripada JRT-Prompt.
Sila rujuk kertas asal untuk butiran lanjut teknikal dan keputusan percubaan.
以上是小技巧大功效,「只閱讀兩次提示」讓循環語言模型超越Transformer++的詳細內容。更多資訊請關注PHP中文網其他相關文章!