Esplorazione di modelli linguistici di grandi dimensioni prequantizzati

Nel corso dell’ultimo anno abbiamo assistito al selvaggio West dei Large Language Models (LLM). Il ritmo con cui sono state rilasciate nuove tecnologie e modelli è stato sorprendente! Di conseguenza, abbiamo molti standard e modi diversi di lavorare con i LLM.

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

Negli esempi utilizzeremo Zefiro 7Buna variante perfezionata del Mistral 7B con cui è stato addestrato Ottimizzazione diretta delle preferenze (DPO).

🔥 MANCIA: dopo ogni esempio di caricamento di un LLM, si consiglia di riavviare il notebook per evitare errori OutOfMemory. Il caricamento di più LLM richiede RAM/VRAM significativa. Puoi reimpostare la memoria eliminando i modelli e reimpostando la cache in questo modo:

# Delete any models previously created
del model, tokenizer, pipe

# Empty VRAM cache
import torch
torch.cuda.empty_cache()

Puoi anche seguire insieme al Taccuino di Google Colab per assicurarsi che tutto funzioni come previsto.

Il modo più semplice e semplice per caricare il tuo LLM è tramite 🤗 Trasformatori. HuggingFace ha creato un’ampia suite di pacchetti che ci consentono di fare cose straordinarie con i LLM!

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

# Latest HF transformers version for Mistral-like models
pip install git+https://github.com/huggingface/transformers.git
pip install accelerate bitsandbytes xformers

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

from torch import bfloat16
from transformers import pipeline

# Load in your LLM without any compression tricks
pipe = pipeline(
"text-generation",
model="HuggingFaceH4/zephyr-7b-beta",
torch_dtype=bfloat16,
device_map="auto"
)

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *