Poradnik: Jak uruchomić Phi-2 na komputerze z 32GB RAM
Wstęp
Phi-2 to potężny model językowy, który wymaga odpowiednio mocnego sprzętu do uruchomienia. W tym poradniku pokażemy, jak zainstalować i uruchomić Phi-2 na komputerze z 32GB RAM. Postaramy się pokryć wszystkie kluczowe kroki, od przygotowania środowiska po uruchomienie modelu.
Wymagania wstępne
Przed rozpoczęciem instalacji upewnij się, że Twój system spełnia następujące wymagania:
- System operacyjny: Linux (zalecane Ubuntu 20.04/22.04) lub Windows 10/11
- Procesor: Intel i7 lub nowszy, AMD Ryzen 7 lub nowszy
- Pamięć RAM: 32GB (zalecane 64GB dla lepszej wydajności)
- Karta graficzna: NVIDIA RTX 3060 lub nowsza (zalecane RTX 4090 dla lepszej wydajności)
- Miejsce na dysku: co najmniej 50GB wolnego miejsca
Instalacja środowiska
1. Instalacja Python
Phi-2 wymaga Python 3.8 lub nowszej wersji. Możesz zainstalować go za pomocą menedżera pakietów:
sudo apt update
sudo apt install python3.8 python3.8-venv
2. Utworzenie wirtualnego środowiska
Stworzenie wirtualnego środowiska pomoże uniknąć konfliktów z innymi pakietami:
python3.8 -m venv phi2_env
source phi2_env/bin/activate
3. Instalacja zależności
Zainstaluj niezbędne pakiety:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install transformers accelerate bitsandbytes
Pobranie modelu Phi-2
Możesz pobrać model Phi-2 za pomocą biblioteki 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)
Konfiguracja pamięci
Dla komputera z 32GB RAM zaleca się użycie optymalizacji pamięci, takich jak 8-bitowa kwantyzacja:
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map="auto",
load_in_8bit=True,
offload_folder="offload",
offload_state_dict=True,
)
Uruchomienie modelu
Teraz możesz uruchomić model i przetestować go:
prompt = "Jaki jest sens życia?"
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))
Optymalizacje
1. Użycie DeepSpeed
DeepSpeed to narzędzie do optymalizacji pamięci i wydajności:
pip install deepspeed
2. Konfiguracja DeepSpeed
Stwórz plik 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. Uruchomienie z 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
)
Podsumowanie
Uruchomienie Phi-2 na komputerze z 32GB RAM wymaga odpowiedniego przygotowania środowiska i zastosowania optymalizacji pamięci. W tym poradniku omówiliśmy kluczowe kroki, takie jak instalacja Python, tworzenie wirtualnego środowiska, pobieranie modelu i konfiguracja pamięci. Dzięki tym krokom powinieneś być w stanie uruchomić Phi-2 i cieszyć się jego potężnymi możliwościami.