Il team di Mistral AI è orgoglioso di rilasciare Mistral 7B, il modello linguistico più potente finora per la sua dimensione.
Mistral 7B in breve
Mistral 7B è un modello da 7,3B parametri che:
Supera Llama 2 13B su tutti i benchmark
Supera Llama 1 34B su molti benchmark
Si avvicina alle prestazioni di CodeLlama 7B sul codice, restando valido nei task in inglese
Usa la Grouped-query attention (GQA) per un'inferenza più rapida
Usa la Sliding Window Attention (SWA) per gestire sequenze più lunghe a costi inferiori
Rilasciamo Mistral 7B con licenza Apache 2.0: può essere utilizzato senza restrizioni.
Scaricalo e usalo ovunque (anche localmente) con la nostra implementazione di riferimento,
Distribuiscilo su qualsiasi cloud (AWS/GCP/Azure), usando inference server e skypilot di vLLM,
Usalo su HuggingFace.
Mistral 7B è facile da sottoporre a fine-tuning per qualsiasi task. A titolo dimostrativo, forniamo un modello sottoposto a fine-tuning per la chat, che supera Llama 2 13B chat.
Prestazioni nel dettaglio
Abbiamo confrontato Mistral 7B con la famiglia Llama 2 e rieseguito internamente tutte le valutazioni dei modelli per garantire un confronto equo.

I benchmark sono categorizzati per tema:
Commonsense Reasoning: media 0-shot di Hellaswag, Winogrande, PIQA, SIQA, OpenbookQA, ARC-Easy, ARC-Challenge e CommonsenseQA.
World Knowledge: media 5-shot di NaturalQuestions e TriviaQA.
Reading Comprehension: media 0-shot di BoolQ e QuAC.
Math: media di GSM8K 8-shot con maj@8 e MATH 4-shot con maj@4
Code: media di Humaneval 0-shot e MBPP 3-shot
Risultati aggregati più usati: MMLU 5-shot, BBH 3-shot e AGI Eval 3-5-shot (solo domande a scelta multipla in inglese)

Una metrica interessante per confrontare le prestazioni dei modelli sul piano costo/prestazioni consiste nel calcolare le “dimensioni equivalenti dei modelli”. Su ragionamento, comprensione e ragionamento STEM (MMLU), Mistral 7B offre prestazioni equivalenti a quelle di un Llama 2 che avrebbe una dimensione oltre 3 volte superiore. Questo si traduce in memoria risparmiata e throughput guadagnato.
Nota: differenze importanti tra la nostra valutazione e quella del paper LLaMA2:
Per MBPP, usiamo il sottoinsieme verificato manualmente
Per TriviaQA, non forniamo contesti da Wikipedia
Flash and Furious: deriva dell'attenzione
Mistral 7B utilizza un meccanismo di sliding window attention (SWA) (Child et al., Beltagy et al.), in cui ogni layer presta attenzione ai precedenti 4.096 stati nascosti. Il miglioramento principale, e il motivo per cui questo approccio è stato inizialmente studiato, è un costo computazionale lineare pari a O(sliding_window.seq_len). In pratica, le modifiche apportate a FlashAttention e xFormers portano a un miglioramento della velocità di 2x per una lunghezza di sequenza di 16k con una finestra di 4k. Un enorme ringraziamento a Tri Dao e Daniel Haziza per l'aiuto nell'includere queste modifiche in tempi stretti.
La sliding window attention sfrutta i layer impilati di un transformer per prestare attenzione al passato oltre la dimensione della finestra: un token i al layer k presta attenzione ai token [i-sliding_window, i] al layer k-1. Questi token hanno prestato attenzione ai token [i-2*sliding_window, i]. I layer superiori hanno accesso a informazioni più lontane nel passato rispetto a quanto sembrerebbero implicare i pattern di attention.

Infine, uno span di attention fisso significa che possiamo limitare la nostra cache a una dimensione di sliding_window token, usando buffer rotanti (maggiori informazioni nel nostro repo dell'implementazione di riferimento). Questo consente di risparmiare metà della memoria cache per l'inferenza su una lunghezza di sequenza pari a 8192, senza incidere sulla qualità del modello.
Fine-tuning di Mistral 7B per la chat
Per mostrare le capacità di generalizzazione di Mistral 7B, abbiamo eseguito il fine-tuning su dataset di istruzioni disponibili pubblicamente su HuggingFace. Nessun trucco, nessun dato proprietario. Il modello risultante, Mistral 7B Instruct, supera tutti i modelli 7B su MT-Bench ed è comparabile ai modelli chat 13B.

Il modello Mistral 7B Instruct è una dimostrazione rapida del fatto che il modello di base può essere facilmente sottoposto a fine-tuning per raggiungere prestazioni convincenti. Non dispone di alcun meccanismo di moderazione. Non vediamo l'ora di collaborare con la community su modi per fare in modo che il modello rispetti in modo puntuale i guardrail, consentendone la distribuzione in ambienti che richiedono output moderati.
Ringraziamenti
Siamo grati a CoreWeave per il supporto 24/7 nell'orchestrazione del nostro cluster. Ringraziamo il team CINECA/EuroHPC, e in particolare gli operatori di Leonardo, per le risorse e l'aiuto forniti. Ringraziamo i maintainer di FlashAttention, vLLM, xFormers, Skypilot per il prezioso supporto nell'implementazione di nuove funzionalità e nell'integrazione delle loro soluzioni nelle nostre. Ringraziamo i team di HuggingFace, AWS, GCP, Azure ML per l'intenso aiuto nel rendere il nostro modello compatibile ovunque.





