I modelli linguistici più grandi offrono in genere prestazioni superiori, ma al prezzo di una velocità di inferenza ridotta. Ad esempio, Llama 2 70B supera significativamente Llama 2 7B nelle attività downstream, ma la sua velocità di inferenza è circa 10 volte più lenta.
Molte tecniche e aggiustamenti degli iperparametri di decodifica possono accelerare l'inferenza per LLM molto grandi. La decodifica speculativa, in particolare, può essere molto efficace in molti casi d’uso.
La decodifica speculativa utilizza un piccolo LLM per generare i token che vengono poi convalidati o corretti, se necessario, da un LLM molto migliore e più grande. Se il piccolo LLM è sufficientemente accurato, la decodifica speculativa può accelerare notevolmente l’inferenza.
In questo articolo spiegherò innanzitutto come funziona la decodifica speculativa. Quindi, mostro come eseguire la decodifica speculativa con diverse coppie di modelli che coinvolgono Gemma, Mixtral-8x7B, Llama 2 e Pythia, tutti quantizzati. Ho confrontato il throughput dell'inferenza e il consumo di memoria per evidenziare quali configurazioni funzionano meglio.
La decodifica speculativa è presentata da Google Research in questo articolo:
Inferenza rapida dai trasformatori tramite decodifica speculativa
È un metodo molto semplice ed intuitivo. Tuttavia, come vedremo in dettaglio nel prossimo paragrafo, è anche difficile farlo funzionare.
La decodifica speculativa esegue due modelli durante l'inferenza: il modello principale che vogliamo utilizzare e un modello di bozza. Questa bozza di modello suggerisce i token durante l'inferenza. Quindi, il modello principale controlla i token suggeriti e li corregge se necessario. Alla fine, il risultato della decodifica speculativa è lo stesso che avrebbe generato il solo modello principale.
Ecco un esempio di decodifica speculativa di Google Research:
Questo metodo può accelerare notevolmente l’inferenza se:
Fonte: towardsdatascience.com