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:
- Sistema operacional: Linux (recomendado Ubuntu 20.04/22.04) ou Windows 10/11
- Processador: Intel i7 ou mais recente, AMD Ryzen 7 ou mais recente
- Memória RAM: 32GB (recomendado 64GB para melhor desempenho)
- Placa de vídeo: NVIDIA RTX 3060 ou mais recente (recomendado RTX 4090 para melhor desempenho)
- Espaço em disco: pelo menos 50GB de espaço livre
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.