Inference Unlimited

Guia: Como executar o Phi-2 em um computador com 32GB de RAM

Introdução

Phi-2 é um modelo de linguagem poderoso que requer hardware adequado para ser executado. Neste guia, mostraremos como instalar e executar o Phi-2 em um computador com 32GB de RAM. Tentaremos cobrir todos os passos-chave, desde a preparação do ambiente até a execução do modelo.

Pré-requisitos

Antes de começar a instalação, certifique-se de que seu sistema atende aos seguintes requisitos:

Instalação do ambiente

1. Instalação do Python

Phi-2 requer Python 3.8 ou versão mais recente. Você pode instalá-lo usando o gerenciador de pacotes:

sudo apt update
sudo apt install python3.8 python3.8-venv

2. Criação de um ambiente virtual

Criar um ambiente virtual ajudará a evitar conflitos com outros pacotes:

python3.8 -m venv phi2_env
source phi2_env/bin/activate

3. Instalação de dependências

Instale os pacotes necessários:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install transformers accelerate bitsandbytes

Download do modelo Phi-2

Você pode baixar o modelo Phi-2 usando a biblioteca 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)

Configuração de memória

Para um computador com 32GB de RAM, recomenda-se o uso de otimizações de memória, como quantização de 8 bits:

model = AutoModelForCausalLM.from_pretrained(
    model_name,
    device_map="auto",
    load_in_8bit=True,
    offload_folder="offload",
    offload_state_dict=True,
)

Execução do modelo

Agora você pode executar o modelo e testá-lo:

prompt = "Qual é o sentido da vida?"
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))

Otimizações

1. Uso do DeepSpeed

DeepSpeed é uma ferramenta para otimizar memória e desempenho:

pip install deepspeed

2. Configuração do DeepSpeed

Crie um arquivo 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. Execução com 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
)

Resumo

Executar o Phi-2 em um computador com 32GB de RAM requer a preparação adequada do ambiente e a aplicação de otimizações de memória. Neste guia, discutimos os passos-chave, como a instalação do Python, a criação de um ambiente virtual, o download do modelo e a configuração de memória. Com esses passos, você deve ser capaz de executar o Phi-2 e aproveitar suas poderosas capacidades.

Język: PT | Wyświetlenia: 5

← Powrót do listy artykułów