Heim >Technologie-Peripheriegeräte >KI >Kleine Tricks mit großer Wirkung: „Lesen Sie die Eingabeaufforderung nur zweimal' ermöglicht es dem zyklischen Sprachmodell, Transformer++ zu übertreffen
Im aktuellen KI-Bereich ist Transformer die gängige Architektur, die von großen Sprachmodellen verwendet wird. Mit dem Aufkommen von Architekturen wie RWKV und Mamba gibt es jedoch einen offensichtlichen Trend: Zyklische große Sprachmodelle, die in Bezug auf die Sprachmodellierungsschwierigkeit mit Transformer konkurrieren, geraten schnell in die Aufmerksamkeit der Menschen.
Das Spannende ist, dass diese Architekturen während der Inferenz eine konstante Menge an Speicher verbrauchen. Aufgrund des begrenzten Speichers können sich rekurrente Sprachmodelle (LM) jedoch nicht alle Informationen in langen Kontexten merken und nutzen, was zu einer schlechten Qualität des Kontextlernens (In-Context-Lernen, ICL) führt. Daher besteht eine zentrale Herausforderung beim Erreichen effizienter großer Sprachmodelle darin, zu entscheiden, welche Informationen gespeichert oder verworfen werden sollen.
In der kürzlich erschienenen Arbeit „Just Read Two: Closing the Recall Gap for Recurrent Language Models“ entdeckten Forscher der Stanford University und der University at Buffalo durch einfache Beobachtung, dass Daten während der Inferenz in den Sortierpol rekurrenter Sprachmodelle fließen beeinflusst die Schwierigkeit, vorherzusagen, welche Informationen im begrenzten Speicher gespeichert werden sollen.
Wir gehen davon aus, dass wir auf der Grundlage von Dokument D (z. B. der ausführlichen Wikipedia von Galileo Galilei) fragen: Wann zog Galileo nach Florenz? Wenn die Eingabeaufforderungen zu diesem Zeitpunkt der Reihenfolge [Q, D] folgen, muss sich das Modell nur eine Tatsache in Dokument D merken. Wenn die Hinweise dagegen der Reihenfolge [D, Q] folgen, muss sich das Modell alle Fakten merken. Dies ist in Abbildung 1 (links) unten dargestellt.
Daher formalisiert dieser Artikel zunächst theoretisch, wie sich die Datensortierung auf den Speicherbedarf auswirkt, und schlägt dann zwei Methoden vor, um die Abhängigkeit von der Datensortierung zu verringern, nämlich die Just-Read-Twice (JRT)-Eingabeaufforderungsstrategie und die JRT-Schleife Architektur. Dieser Artikel ist hauptsächlich in die folgenden Teile unterteilt:
Die Rolle der Datensortierung verstehen. Die erste Erkenntnis, die die Forscher gewannen, war, dass die Härte des Gedächtnisproblems auf das gleiche Maß wie die Mengendisjunktheit (SD) reduziert werden sollte, das typischste Problem in der Kommunikationskomplexitätstheorie, das seit Jahrzehnten besteht. SD erfordert einen Streaming-Algorithmus (z. B. ein wiederkehrendes Modell), um zu entscheiden, ob der im Kontext bereitgestellte Eingabesatz abgezogen werden soll:
Theoretische Analyse und experimentelle Ergebnisse zeigen, dass der erste Satz |A| den zur Lösung erforderlichen Speicher dominiert SD. Ein Kausalmodell erfordert die Speicherung aller Elemente in A, um sie mit Elementen in B vergleichen zu können. Dies zeigt, dass die Verwendung der „richtigen Datenreihenfolge“ im Kontext (z. B. indem der kleinste Mindestsatz (|A|, |B|) an die erste Stelle gesetzt wird) speicherbeschränkten Modellen hilft. Darüber hinaus wird beobachtet, dass Modelle mit kontextueller akausaler Logik auf kleinstem Raum (|A|, |B|) nach SD auflösen können, ohne die Datenreihenfolge zu berücksichtigen.
Zweitens geht es darum, die „richtige“ Sortierung zu nutzen. In diesem Artikel wird eine sehr einfache JRT-Prompt-Strategie vorgeschlagen, bei der Informationen im Kontext mehrmals wiederholt werden, bevor das Modell eine Antwort generiert (siehe Abbildung 1 oben rechts). In der zweiten und den folgenden Runden ist das Sprachmodell bei der Entscheidung, welche Informationen gespeichert werden sollen, vom vollständigen Kontext abhängig, wodurch das Problem einer „Reformierung“ der Datensortierung effektiv vermieden wird.
Die Ergebnisse zeigen, dass JRT-Prompt eine durchschnittliche Verbesserung von 11,0 ± 1,3 Prozentpunkten bei 16 vorhandenen wiederkehrenden Sprachmodellen und 6 ICL-Aufgaben erreicht, während der Durchsatz 11,9 des FlashAttention-2-fachen (Länge 32 KB, Stapelgröße 16) beträgt. Obwohl JRT-Prompt die Kontextlänge erhöht, ist es immer noch asymptotisch rechen- und speichereffizienter als Aufmerksamkeit.
Jenseits des Kausalmodells. In diesem Artikel wird JRT-RNN vorgeschlagen, das vom einfachen Prefix-LM-Encoder-Decoder-Architekturdesign inspiriert ist. Die meisten kontextuellen Lerneingaben bestehen aus zwei Teilen, nämlich Eingabeaufforderungen (Kontext, Anweisungen) und modellgeneriertem Text als Ausgabe. In der Präfix-LM-Architektur verarbeitet der LM den Cue-Bereich nicht nach der Kausallogik, sondern dekodiert die Ausgabe kausal, wobei nur der standardmäßige nächste Token-Vorhersageverlust für den Kausalbereich und der Verlust für den Nicht-Kausalbereich verwendet wird.
Allerdings war die bisherige Trainingsmethode des Prefix-LM-Modells nur begrenzt erfolgreich und nutzte das ineffiziente Transformer-Backbone. Daher verbessert dieser Artikel die Qualität und Effizienz durch einige einfache Änderungen, einschließlich der Verbesserung des Trainingsverlusts und der Verwendung einer linearen Aufmerksamkeitsformel namens „Prefix Linear Attention, PLA“. Die Forscher fanden heraus, dass JRT-RNN mithilfe ihrer IO-bewussten Implementierung eine durchschnittliche Qualitätsverbesserung von 13,7 bzw. 6,9 Prozentpunkten bei Parametereinstellungen von 360 m bzw. 1,3 b bieten kann, mit einem Durchsatz, der 19,2-mal so hoch ist wie der von FA2.
Papieradresse: https://arxiv.org/pdf/2407.05483
Projekthomepage: https://github.com/HazyResearch/prefix-linear-attention
JRT- Prompt-Methodenübersicht
Contextual learning tasks take (C, Q, Y) as input, where C is some context source (such as a document or code repository), Q is some question or request to the model given the context, and Y is the answer. For standard context learning using autoregressive LM A, the researcher takes inputs C and Q and evaluates the resulting output Yˆ = A (C, Q) against the correct completion Y .
JRT-Prompt is an extremely simple method that repeats the information in the prompt (such as questions and documents) in context before prompting the model to output the answer, such as Yˆ = A (C, Q, C on the right in Figure 1 below) , Q). Therefore, the second time the context appears, the model decides what information to store based on the complete context.
Additionally, JRT-Prompt can be used with ready-made LLM. The researchers evaluated the following LM on a series of memory-intensive contextual tasks under zero-sample prompts:
Based pre-trained LM with a parameter size of 1.3B, trained on Pile’s 10 − 50B tokens;
Mamba pre-trained LM, parameter size is 130M, 370M, 1.4B and 2.8B, trained on Pile's 300B tokens;
Gated Linear Attention pre-trained LM, parameter size is 1.3B and 2.7B, trained on 100B tokens of the SlimPajama data set;
Mamba-2 pre-trained LM, with parameter sizes of 130M, 370M, 1.3B and 2.7B, trained on 300B tokens of Pile.
The results are shown in Table 1 below. By increasing the state size, the researcher found that the JRT-Prompt method brought an average performance improvement of 11.0 ± 1.3 percentage points on various models and tasks. The Based model using this method On average outperforms Transformer models utilizing standard hints.
They also found that JRT-Prompt can benefit the Transformer model, and the method is more effective than few-shot learning on some tasks (Appendix 2). It is worth noting that in the paper "Repetition improves language model embeddings", Springer et al. proposed to use the autoregressive Transformer model to repeat context to achieve the purpose of generating embeddings. The research results of this article are also similar. Researchers focus on sub-quadratic architecture and contextual learning tasks.
JRT-Prompt Although the context length is increased due to repetition, the sub-quadratic loop architecture it uses is still more efficient than using the quadratic Transformer model. The researchers found that using JRT-Prompt (sequence length 2N) provided 11.9 times the throughput of FlashAttention-2 (sequence length N) on the NVIDIA H100 at sequence length N = 32768 and batch size 16.
JRT-RNN: Encoder-Decoder Loop Architecture
JRT-RNN is inspired by Prefix-LMs, but focuses on extending the Pareto frontier of the quality-efficiency trade-off space. To improve quality, JRT-RNN uses separate k_e and v_e mappings on the encoder side and k_d and v_d mappings on the decoder side. Although the Prefix LM model uses shared mapping weights for the encoder and decoder regions, the researchers found that using two sets of mappings improves quality.
To improve efficiency, JRT-RNN uses non-causal linear attention for the encoder and standard causal linear attention for the decoder. The researchers call it Prefix Linear Attention (PLA) (right in Figure 1), and the formula is as follows:
JRT-RNN training objective. Prefix LMs typically do not compute losses in non-causal regions, while JRT-RNN combines next token prediction with a masked language modeling (MLM) objective. And for the added MLM target, the researchers replaced tokens with proportion P from the encoder region {u_1, ..., u_M} with a [MASK] token and measured the cross-entropy loss when predicting the original token.
The losses are as follows:
Experimental results
In the experiment, the researchers evaluated the quality and efficiency of JRT-RNN on the following three indicators:
Context learning quality
Overall Language modeling
generation
Context learning quality
As shown in Table 2 below, the researchers found that JRT-RNN is better than the decoder-only baseline (Based) when the parameters are 360M (30B tokens) The average is 13.7 percentage points higher, and the average is 6.9 percentage points higher when the parameter is 1.3B (50B tokens).
At the same time, the gap between JRT-RNN and Transformer++ is narrowed to within 0.5 percentage points and 1.9 percentage points when the parameters are 360M and 1.3B respectively.
In Table 3 below, the researchers compare the performance of JRT-RNN with similar inference strategies when the prefill length l is smaller than the encoder length M.
Overall natural language understanding
Based on previous research, researchers further divided the perplexity into two groups: Associative memory "AR slice" includes tokens called "AR hits", which require the model to follow Memory is performed sequentially to correctly predict the next token; and the "Other slice" contains the remaining tokens (such as memorized knowledge).
For memory frequency, JRT-RNN performs well in "AR slice". For bigrams that are uncommon during training (i.e., less likely to be remembered in the model parameters), JRT-RNN's perplexity improves relative to Based and Mamba, two strong causal loop baselines.
For memory distance, in the “AR slice”, the gap between JRT-RNN and the decoder-only baseline widens as the number of repeated bigrams in the context increases. This further proves that JRT-RNN can help complete longer contextual memory tasks.
Non-memory frequency. For non-memory “Other slices” of bigrams that are rarely seen during training, JRT-RNN has worse perplexity than the decoder-only LM. This is an expected result since JRT-RNN computes the loss for only 65% of the tokens of the decoder LM.
We expect this gap to shrink with scale and training time (increasing with bigram frequency) (Figure 3, top left).
Generation throughput
Generation can be decomposed into two steps: prompt "prefill processing" and decoding "next token prediction". Compared to the standard decoder-only loop model, JRT-RNN does not modify the decoding step, so the discussion focuses on the prefill stage.
Using the Based CUDAn kernel proposed in the paper "Simple linear attention language models balance the recall-throughput tradeof" by Simran Arora et al., the throughput of JRT-Prompt when processing prefill is 11.9 and 13.7 of the FlashAttention-2 and FLA Triton kernels respectively. times, as shown in Table 5 below.
When the researchers increased the batch size to 64, JRT-Prompt throughput was 6.1 times and 7.2 times higher than that of FlashAttention-2 and FLA Triton kernels respectively.
Next they extended the Based kernel to support JRT-RNN and demonstrated that when increasing the sequence length to 32768, the throughput was 19.2 times and 22.0 times that of FlashAttention-2 and FLA respectively. When increasing the batch size to 64, JRT-RNN provides another 9.7x and 11.5x throughput improvements, respectively. The time required by JRT-RNN is 1.24 times that of Based prefill, which is more efficient than JRT-Prompt.
Please refer to the original paper for more technical details and experimental results.
Das obige ist der detaillierte Inhalt vonKleine Tricks mit großer Wirkung: „Lesen Sie die Eingabeaufforderung nur zweimal' ermöglicht es dem zyklischen Sprachmodell, Transformer++ zu übertreffen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!