Want to Become a Sponsor? Contact Us Now!🎉

LLM
Como Executar o Llama.cpp em Seu Computador Doméstico sem Esforço

Llama.cpp: Porte C/C++ para o Modelo LLaMA do Facebook

Published on

Bem-vindo ao fascinante mundo do Llama CPP! Se você está ansioso para mergulhar no mundo dos modelos de linguagem, veio ao lugar certo. Llama CPP é uma ferramenta que está causando impacto no campo da engenharia de prompts, e com razão.

Neste guia abrangente, exploraremos tudo o que você precisa saber sobre o Llama CPP. Desde a configuração até a execução do seu primeiro modelo, estamos aqui para ajudar. Então, vamos lá e desbloqueie todo o potencial dessa poderosa ferramenta.

Quer ficar por dentro das últimas notícias sobre LLM? Confira o ranking mais recente do LLM!

O que é o Llama CPP?

Llama CPP é um projeto que permite trabalhar com modelos de linguagem de forma simples e prática. É uma ferramenta que preenche a lacuna entre algoritmos complexos e implementação prática. Mas o que exatamente é um modelo de linguagem? Vamos explicar:

  • Modelo de Linguagem: Um modelo computacional que prevê a probabilidade de uma sequência de palavras. É a base de diversas aplicações como chatbots, serviços de tradução e até mesmo o recurso de correção automática do seu smartphone.

Llama CPP não é apenas mais uma ferramenta comum; é uma estrutura robusta que permite que você:

  • Execute modelos pré-treinados de plataformas como Hugging Face;
  • Construa o projeto usando CPU ou GPU;
  • Integre-o com Python para funcionalidades estendidas.

Configurando o Llama CPP: Um Guia Passo a Passo

Começar a usar o Llama CPP é fácil como um piscar de olhos. Tudo o que você precisa é de um computador e uma conexão com a internet. Veja como configurá-lo:

  1. Clone o Repositório: Abra seu terminal e execute o seguinte comando para clonar o repositório do Llama CPP do GitHub.

    git clone https://github.com/ggerganov/llama.cpp
    cd llama.cpp

    Isso irá baixar o repositório e navegá-lo até o diretório recém-clonado.

  2. Baixe Modelos de Linguagem: Você precisará de modelos de linguagem para trabalhar com o Llama CPP. Você pode baixá-los tanto da Hugging Face quanto do projeto original do LLaMa. Coloque-os em um diretório dentro do repositório clonado.

  3. Escolha a Compilação: Decida se deseja compilar o projeto usando CPU ou GPU. Para compilações baseadas em GPU, você precisará instalar o NVIDIA CUDA toolkit.

  4. Compile o Código: Use o comando make para compilar o código. Se estiver usando GPU, você precisará executar um comando diferente, o qual discutiremos na próxima seção.

Ao seguir essas etapas, você configurou com sucesso o Llama CPP em seu sistema. Agora você está pronto para se aprofundar nos aspectos mais técnicos, como escolher entre compilações de CPU e GPU, que abordaremos a seguir.

Executando o Llama-cpp-python em Python

Se você deseja executar modelos Llama CPP dentro de um script Python, pode usar a biblioteca llama_cpp_python. Aqui está um exemplo mais detalhado:

from llama_cpp_python import LlamaModel
 
# Inicialize o modelo
model = LlamaModel("/caminho/para/seu/modelo")
 
# Defina o prompt e gere texto
prompt = "Olá, como você está?"
texto = model.generate(prompt)
 
# Imprima o texto gerado
print(f"Texto gerado para o prompt '{prompt}' é: {texto}")

Este script Python importa a classe LlamaModel da biblioteca llama_cpp_python, inicializa o modelo com o caminho para o modelo de linguagem baixado e, em seguida, gera texto com base em um prompt fornecido.

Executando o Llama.cpp no Docker

Se você está familiarizado com o Docker, pode containerizar seu projeto Llama CPP para facilitar a implantação e escalabilidade. Veja como criar e executar um contêiner Docker para o seu projeto Llama CPP:

# Navegue até o diretório do Llama CPP
cd /caminho/para/o/diretório/llama_cpp
 
# Construa a imagem Docker
docker build -t llama_cpp_image .
 
# Execute o contêiner Docker
docker run -it --name llama_cpp_container llama_cpp_image

Neste exemplo, llama_cpp_image é o nome da imagem Docker e llama_cpp_container é o nome do contêiner em execução. Esses nomes podem ser personalizados.

Escolhendo entre CPU e GPU: Otimize Sua Compilação Llama CPP

No que diz respeito à compilação do seu projeto Llama CPP, você tem duas opções principais: CPU e GPU. Cada uma tem suas próprias vantagens e desvantagens, mas a escolha depende, em última análise, de suas necessidades e recursos específicos.

CPU versus GPU: Comparação Rápida:

  • Velocidade: As compilações GPU geralmente são mais rápidas devido às capacidades de processamento paralelo.
  • Uso de Recursos: As compilações CPU consomem menos recursos, mas podem ser mais lentas.
  • Flexibilidade: As compilações GPU requerem hardware específico e configuração adicional, mas oferecem melhor desempenho.

Agora vamos analisar os detalhes:

Se você está apenas começando ou não possui uma GPU poderosa, uma compilação CPU é a melhor opção. É direto e não requer instalações adicionais. Veja como compilar seu projeto Llama CPP usando apenas a CPU:

  1. Navegue até o Diretório: Abra o terminal e navegue até o diretório Llama CPP clonado.
  2. Compile o Código: Execute o seguinte comando:
    make
  3. Execute o Modelo: Após a compilação bem-sucedida, você pode executar o modelo usando o executável construído.

Para aqueles que desejam aproveitar todo o poder de sua infraestrutura, uma compilação GPU é o caminho a seguir. Especificamente, se você possui uma GPU NVIDIA, pode acelerar significativamente os cálculos. Veja como fazer:

  1. Instale o NVIDIA CUDA Toolkit: Antes de compilar o código para a GPU, você precisará instalar o NVIDIA CUDA Toolkit. Você pode baixá-lo no site oficial da NVIDIA.
  2. Compilação com Suporte CUDA: Navegue até o diretório Llama CPP e execute o seguinte comando:
    make clean && LLAMA_CUBLAS=1 make -j
  3. Executar com Suporte a GPU: Use a flag --n-gpu-layers ao executar o modelo para enviar as computações para a GPU.

Observação: Utilizar a versão com suporte a GPU permite enviar camadas específicas do modelo para a GPU, tornando o processo mais rápido e eficiente.

Executando o Primeiro Modelo Llama CPP

Execução Básica do Modelo

Para executar o modelo construído, você utilizará o executável gerado durante o processo de construção. A flag --model-path especifica onde o modelo de linguagem baixado está localizado. Veja como fazer:

# Navegue até o diretório onde seu executável Llama CPP está localizado
cd /caminho/para/diretorio/llama_cpp
 
# Execute o modelo
./llama_cpp_executavel --model-path /caminho/para/seu/modelo

Observação: Substitua /caminho/para/seu/modelo pelo diretório real onde seu modelo de linguagem baixado está armazenado. O llama_cpp_executavel é o nome do arquivo executável gerado após a construção do Llama CPP.

Recursos Avançados: GPU Offloading e Mais

Se você construiu o Llama CPP com suporte a GPU, é possível enviar as computações para a GPU para acelerar a execução do modelo. A flag --n-gpu-layers especifica quantas camadas da rede neural devem ser processadas pela GPU.

# Execute o modelo com GPU offloading
./llama_cpp_executavel --model-path /caminho/para/seu/modelo --n-gpu-layers 2

Neste exemplo, 2 indica que duas camadas da rede neural serão processadas pela GPU. Você pode ajustar esse número com base nas capacidades específicas da sua GPU e no tamanho do modelo que você está executando.

Otimização de Desempenho: Conversão do Modelo

O Llama CPP oferece um script Python chamado convert.py para converter seu modelo em diferentes formatos, visando um melhor desempenho. Por exemplo, você pode converter o modelo para fp16 (ponto flutuante de 16 bits) para torná-lo menor e mais rápido.

# Navegue até o diretório que contém o script convert.py
cd /caminho/para/diretorio/llama_cpp/scripts
 
# Execute o script de conversão
python convert.py --input /caminho/para/modelo/original --output /caminho/para/modelo/convertido --type fp16

Conclusão

Fizemos um ótimo progresso neste guia, desde a configuração do Llama CPP até a execução do seu primeiro modelo e a exploração de seus recursos adicionais. Com a sua flexibilidade, opções de otimização de desempenho e recursos adicionais como integração com Python e suporte ao Docker, o Llama CPP é uma ferramenta robusta para qualquer pessoa interessada em trabalhar com modelos de linguagem.

Perguntas Frequentes

  • O que é Llama CPP?

    • O Llama CPP é uma ferramenta poderosa para trabalhar com modelos de linguagem. Ele permite versões com CPU e GPU, integração com Python e muito mais.
  • Como posso executar o Llama CPP em Python?

    • Você pode integrar o Llama CPP ao Python usando o código e a documentação fornecidos no repositório do GitHub llama-cpp-python.
  • Quão rápido é o Llama CPP?

    • A velocidade do Llama CPP depende se você está usando uma versão com CPU ou GPU. Geralmente, as versões com GPU são mais rápidas devido às capacidades de processamento paralelo.
  • O Llama CPP utiliza a GPU?

    • Sim, o Llama CPP permite a realização de cálculos na GPU, o que pode acelerar significativamente a execução do modelo.

Quer saber as últimas notícias da LLM? Confira o mais recente ranking LLM!

Anakin AI - The Ultimate No-Code AI App Builder