Руководство: Как запустить Phi-2 на компьютере с 32ГБ ОЗУ
Введение
Phi-2 — это мощная языковая модель, требующая соответствующего оборудования для запуска. В этом руководстве мы покажем, как установить и запустить Phi-2 на компьютере с 32ГБ ОЗУ. Мы постараемся охватить все ключевые шаги, от подготовки среды до запуска модели.
Предварительные требования
Перед началом установки убедитесь, что ваша система соответствует следующим требованиям:
- Операционная система: Linux (рекомендуется Ubuntu 20.04/22.04) или Windows 10/11
- Процессор: Intel i7 или новее, AMD Ryzen 7 или новее
- Оперативная память: 32ГБ (рекомендуется 64ГБ для лучшей производительности)
- Видеокарта: NVIDIA RTX 3060 или новее (рекомендуется RTX 4090 для лучшей производительности)
- Место на диске: не менее 50ГБ свободного места
Установка среды
1. Установка Python
Phi-2 требует Python 3.8 или более новой версии. Вы можете установить его с помощью менеджера пакетов:
sudo apt update
sudo apt install python3.8 python3.8-venv
2. Создание виртуальной среды
Создание виртуальной среды поможет избежать конфликтов с другими пакетами:
python3.8 -m venv phi2_env
source phi2_env/bin/activate
3. Установка зависимостей
Установите необходимые пакеты:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install transformers accelerate bitsandbytes
Загрузка модели Phi-2
Вы можете загрузить модель Phi-2 с помощью библиотеки 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)
Настройка памяти
Для компьютера с 32ГБ ОЗУ рекомендуется использовать оптимизации памяти, такие как 8-битная квантование:
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map="auto",
load_in_8bit=True,
offload_folder="offload",
offload_state_dict=True,
)
Запуск модели
Теперь вы можете запустить модель и протестировать её:
prompt = "Какой смысл жизни?"
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))
Оптимизации
1. Использование DeepSpeed
DeepSpeed — это инструмент для оптимизации памяти и производительности:
pip install deepspeed
2. Настройка DeepSpeed
Создайте файл 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. Запуск с 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
)
Итог
Запуск Phi-2 на компьютере с 32ГБ ОЗУ требует соответствующей подготовки среды и применения оптимизаций памяти. В этом руководстве мы обсудили ключевые шаги, такие как установка Python, создание виртуальной среды, загрузка модели и настройка памяти. Благодаря этим шагам вы должны быть в состоянии запустить Phi-2 и насладиться его мощными возможностями.