Configuração Inicial do Ambiente
Antes de começar, é essencial preparar o ambiente corretamente. Siga os passos abaixo para configurar as dependências necessárias.
- Copie o repositório do projeto: ```
git clone https://gitcode.com/gh_mirrors/ll/Llama-X
cd Llama-X
- Crie e ative um ambiente conda usando o arquivo fornecido: ```
conda env create -f src/ambiente_Llama-X.yml
conda activate Llama-X
- Instale as bibliotecas adicionais: ```
pip install -r requisitos.txt
Técnicas Essenciais de Otimização
Carregamento com Quantização de 8 Bits
Utilizar quantização de 8 bits é crucial para reduzir o consumo de memória da GPU em aproximadamente 50%, permitindo rodar modelos de 7B em hardware de consumo. No script de geração, a implementação pode ser ajustada da seguinte forma:
modelo = LlamaForCausalLM.from_pretrained(
modelo_base,
load_in_8bit=ativo_8bit, # Ativa quantização de 8 bits
torch_dtype=torch.float16,
device_map="auto",
)
Execute o script com o parâmetro ativado:
python src/gerar.py --load_8bit True --base_model /caminho/para/llama-7B-hf
Mapeamento Automático de Dispositivos
O uso de device_map="auto" no Hugging Face Transformers aloca automaticamente as camadas do modelo na GPU disponível, maximizando o uso da memória. Isso é implementado durante o carregamento do modelo para garantir compatibilidade com GPUs de capacidade limitada.
Compilação do Modelo para Aceleração
Para PyTorch 2.0 ou sueprior, ative a compilação do modelo para melhorar a velocidade de inferência. Adicione o seguinte código após o carregamento:
if torch.__version__ >= "2" and sys.platform != "win32":
modelo = torch.compile(modelo)
Ajustes de Parâmetros para Desempenho
Modifique os parâmetros de geração para equilibrar velocidade e qualidade:
- max_new_tokens: Reduza este valor (padrão é 128) se a memória da GPU for limitada, evitando estouros de memória.
- temperature: Valores baixos (ex.: 0.1 a 0.6) diminuem a aleatoriedade, acelerando a geração mantendo coerência.
- top_k e top_p: Ajuste para faixas como top_k=20-40 e top_p=0.7-0.9 para reduzir complexidade computacional.
Processo Completo de Implementação
- Siga a configuração do ambiente descrita anteriormente.
- Baixe o modelo base Llama-7B e converta-o para o formato Hugging Face, se necessário.
- Execute o script otimizado com os parâmetros adequados.
- Acesse a interface Gradio via navegador (ex.: http://localhost:7860) para interagir com o modelo.
Resolução de Problemas Comuns
Memória da GPU Insuficiente
- Ative a quantização de 8 bits usando
--load_8bit True. - Reduza o valor de
max_new_tokens. - Feche outros aplicativos que consomem memória da GPU.
Velocidade de Inferência Baixa
- Certifique-se de usar PyTorch 2.0+ e ativar a compilação do modelo.
- Ajuste os parâmetros de geração, diminuindo temperature, top_k e top_p.
- Verifique se o modelo está corretamente alocado na GPU, inspecionando a saída de
device_map.