Qual è il metodo di quantizzazione giusto per te? (GPTQ vs GGUF vs AWQ)

Qual è il metodo di quantizzazione giusto per te? Scegli tra GPTQ, GGUF e AWQ

Esplorazione dei Modelli di Linguaggio Pre-Quantizzati

Nell’ultimo anno abbiamo assistito alla corsa all’oro dei Modelli di Linguaggio (LLM) di grandi dimensioni. La velocità con cui sono stati rilasciati nuove tecnologie e modelli è stata stupefacente! Di conseguenza, ci sono molti standard e modi diversi di lavorare con gli LLM.

In questo articolo esploreremo uno di questi argomenti, ovvero il caricamento del tuo LLM locale attraverso diversi standard di quantizzazione. Con la distribuzione, la quantizzazione e diverse strategie di salvataggio e compressione, non è facile sapere quale metodo sia adatto a te.

Negli esempi utilizzeremo Zephyr 7B, una variante sintonizzata di Mistral 7B che è stata addestrata con Direct Preference Optimization (DPO).

🔥 SUGGERIMENTO: Dopo ogni esempio di caricamento di un LLM, è consigliabile riavviare il tuo notebook per evitare errori di OutOfMemory. Il caricamento di più LLM richiede una quantità significativa di RAM/VRAM. Puoi ripulire la memoria eliminando i modelli e ripristinando la cache in questo modo:

# Elimina eventuali modelli creati precedentementedel model, tokenizer, pipe# Svuota la cache VRAMimport torchtorch.cuda.empty_cache()

Puoi anche seguire insieme al Notebook di Google Colab per assicurarti che tutto funzioni come previsto.

1. HuggingFace

Il modo più semplice e basilare per caricare il tuo LLM è attraverso 🤗 Transformers. HuggingFace ha creato una vasta gamma di pacchetti che ci permettono di fare cose straordinarie con gli LLM!

Inizieremo installando HuggingFace, tra gli altri, dal suo ramo principale per supportare i modelli più recenti:

# Ultima versione di HF transformers per modelli simili a Mistralpip install git+https://github.com/huggingface/transformers.gitpip install accelerate bitsandbytes xformers

Dopo l’installazione, possiamo utilizzare il seguente pipeline per caricare facilmente il nostro LLM:

from torch import bfloat16from transformers import pipeline# Carica il tuo LLM senza alcun trucco di compressionepipe = pipeline(    "text-generation",     model="HuggingFaceH4/zephyr-7b-beta",     torch_dtype=bfloat16,     device_map="auto")