ChatPaper.aiChatPaper

Lightning Attention-2: Una soluzione gratuita per gestire lunghezze di sequenza illimitate nei grandi modelli linguistici

Lightning Attention-2: A Free Lunch for Handling Unlimited Sequence Lengths in Large Language Models

January 9, 2024
Autori: Zhen Qin, Weigao Sun, Dong Li, Xuyang Shen, Weixuan Sun, Yiran Zhong
cs.AI

Abstract

L'attenzione lineare è un meccanismo di attenzione efficiente che è emerso recentemente come una valida alternativa all'attenzione softmax convenzionale. Grazie alla sua capacità di elaborare token con complessità computazionali lineari, l'attenzione lineare, in teoria, può gestire sequenze di lunghezza illimitata senza sacrificare la velocità, mantenendo cioè una velocità di addestramento costante per varie lunghezze di sequenza con un consumo di memoria fisso. Tuttavia, a causa del problema della somma cumulativa (cumsum), gli attuali algoritmi di attenzione lineare non riescono a dimostrare il loro vantaggio teorico in un contesto causale. In questo articolo, presentiamo Lightning Attention-2, la prima implementazione di attenzione lineare che consente all'attenzione lineare di realizzare i suoi benefici computazionali teorici. Per raggiungere questo obiettivo, sfruttiamo l'idea del tiling, gestendo separatamente i componenti intra-blocco e inter-blocco nel calcolo dell'attenzione lineare. Nello specifico, utilizziamo il meccanismo di calcolo dell'attenzione convenzionale per gli intra-blocchi e applichiamo i trucchi del kernel di attenzione lineare per gli inter-blocchi. Una tecnica di tiling viene adottata sia nelle procedure di forward che di backward per sfruttare al massimo l'hardware GPU. Implementiamo il nostro algoritmo in Triton per renderlo IO-aware e hardware-friendly. Sono stati condotti vari esperimenti su diverse dimensioni di modelli e lunghezze di sequenza. Lightning Attention-2 mantiene una velocità di addestramento e inferenza costante indipendentemente dalla lunghezza della sequenza di input ed è significativamente più veloce rispetto ad altri meccanismi di attenzione. Il codice sorgente è disponibile all'indirizzo https://github.com/OpenNLPLab/lightning-attention.
English
Linear attention is an efficient attention mechanism that has recently emerged as a promising alternative to conventional softmax attention. With its ability to process tokens in linear computational complexities, linear attention, in theory, can handle sequences of unlimited length without sacrificing speed, i.e., maintaining a constant training speed for various sequence lengths with a fixed memory consumption. However, due to the issue with cumulative summation (cumsum), current linear attention algorithms cannot demonstrate their theoretical advantage in a causal setting. In this paper, we present Lightning Attention-2, the first linear attention implementation that enables linear attention to realize its theoretical computational benefits. To achieve this, we leverage the thought of tiling, separately handling the intra-block and inter-block components in linear attention calculation. Specifically, we utilize the conventional attention computation mechanism for the intra-blocks and apply linear attention kernel tricks for the inter-blocks. A tiling technique is adopted through both forward and backward procedures to take full advantage of the GPU hardware. We implement our algorithm in Triton to make it IO-aware and hardware-friendly. Various experiments are conducted on different model sizes and sequence lengths. Lightning Attention-2 retains consistent training and inference speed regardless of input sequence length and is significantly faster than other attention mechanisms. The source code is available at https://github.com/OpenNLPLab/lightning-attention.
PDF273December 15, 2024