Guida: Come avviare Phi-2 su un computer con 32GB di RAM
Introduzione
Phi-2 è un potente modello linguistico che richiede hardware adeguatamente potente per essere avviato. In questa guida mostreremo come installare e avviare Phi-2 su un computer con 32GB di RAM. Cercheremo di coprire tutti i passaggi chiave, dalla preparazione dell'ambiente all'avvio del modello.
Prerequisiti
Prima di iniziare l'installazione, assicurati che il tuo sistema soddisfi i seguenti requisiti:
- Sistema operativo: Linux (consigliato Ubuntu 20.04/22.04) o Windows 10/11
- Processore: Intel i7 o successivo, AMD Ryzen 7 o successivo
- Memoria RAM: 32GB (consigliati 64GB per una migliore prestazione)
- Scheda grafica: NVIDIA RTX 3060 o successiva (consigliata RTX 4090 per una migliore prestazione)
- Spazio su disco: almeno 50GB di spazio libero
Installazione dell'ambiente
1. Installazione di Python
Phi-2 richiede Python 3.8 o versione successiva. Puoi installarlo utilizzando il gestore di pacchetti:
sudo apt update
sudo apt install python3.8 python3.8-venv
2. Creazione di un ambiente virtuale
Creare un ambiente virtuale aiuterà ad evitare conflitti con altri pacchetti:
python3.8 -m venv phi2_env
source phi2_env/bin/activate
3. Installazione delle dipendenze
Installa i pacchetti necessari:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install transformers accelerate bitsandbytes
Scaricamento del modello Phi-2
Puoi scaricare il modello Phi-2 utilizzando la libreria Hugging Face Transformers:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "microsoft/phi-2"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto", load_in_8bit=True)
Configurazione della memoria
Per un computer con 32GB di RAM si consiglia di utilizzare ottimizzazioni della memoria come la quantizzazione a 8 bit:
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map="auto",
load_in_8bit=True,
offload_folder="offload",
offload_state_dict=True,
)
Avvio del modello
Ora puoi avviare il modello e testarlo:
prompt = "Qual è il senso della vita?"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=100)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
Ottimizzazioni
1. Utilizzo di DeepSpeed
DeepSpeed è uno strumento per ottimizzare la memoria e le prestazioni:
pip install deepspeed
2. Configurazione di DeepSpeed
Crea un file ds_config.json:
{
"train_batch_size": "auto",
"gradient_accumulation_steps": "auto",
"optimizer": {
"type": "AdamW",
"params": {
"lr": "auto",
"betas": "auto",
"eps": 1e-8,
"weight_decay": 0.01
}
},
"fp16": {
"enabled": "auto"
},
"zero_optimization": {
"stage": 3,
"offload_optimizer": {
"device": "cpu",
"pin_memory": true
},
"offload_param": {
"device": "cpu",
"pin_memory": true
}
}
}
3. Avvio con DeepSpeed
from transformers import AutoModelForCausalLM, AutoTokenizer
import deepspeed
model_name = "microsoft/phi-2"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, export=False)
ds_config = {
"train_batch_size": "auto",
"gradient_accumulation_steps": "auto",
"optimizer": {
"type": "AdamW",
"params": {
"lr": "auto",
"betas": "auto",
"eps": 1e-8,
"weight_decay": 0.01
}
},
"fp16": {
"enabled": "auto"
},
"zero_optimization": {
"stage": 3,
"offload_optimizer": {
"device": "cpu",
"pin_memory": true
},
"offload_param": {
"device": "cpu",
"pin_memory": true
}
}
}
model_engine, optimizer, _, _ = deepspeed.initialize(
model=model,
config=ds_config
)
Riassunto
Avviare Phi-2 su un computer con 32GB di RAM richiede una corretta preparazione dell'ambiente e l'applicazione di ottimizzazioni della memoria. In questa guida abbiamo discusso i passaggi chiave come l'installazione di Python, la creazione di un ambiente virtuale, il download del modello e la configurazione della memoria. Grazie a questi passaggi dovresti essere in grado di avviare Phi-2 e godere delle sue potenti capacità.