Inference Unlimited

Посібник: Як запустити Phi-2 на комп'ютері з 32ГБ ОЗП

Вступ

Phi-2 — це потужна мовна модель, яка вимагає відповідно потужного обладнання для запуску. У цьому посібнику ми покажемо, як встановити та запустити Phi-2 на комп'ютері з 32ГБ ОЗП. Ми спробуємо охопити всі ключові кроки, від підготовки середовища до запуску моделі.

Попередні вимоги

Перед початком встановлення переконайтеся, що ваша система відповідає наступним вимогам:

Встановлення середовища

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 і користуватися його потужними можливостями.

Język: UK | Wyświetlenia: 6

← Powrót do listy artykułów