laptop_mac macOS Sonoma
Intermediate
schedule 8 min read
by Alex Rivera • May 14, 2024
Executar o Llama 3 no Linux oferece controle e desempenho máximos. Usaremos o llama.cpp — um motor de inferência C++ altamente otimizado que suporta nativamente NVIDIA CUDA, AMD ROCm e inferência apenas via CPU.
Step 1 Introdução
Embora wrappers como Ollama e LM Studio sejam ótimos para começar rapidamente, eles abstraem o motor subjacente. Se você deseja extrair até a última gota de desempenho do seu hardware Linux, compilar o llama.cpp diretamente do código-fonte é o padrão ouro.
Este guia irá orientá-lo na compilação do motor com suporte a NVIDIA CUDA, no download do modelo Llama 3 8B e na execução diretamente pelo seu terminal.
Step 2 Pré-requisitos
Primeiro, precisamos instalar as ferramentas de build essenciais e o kit de ferramentas NVIDIA CUDA. Abra seu terminal e execute:
Terminal
sudo apt update
sudo apt install build-essential git python3-pip
sudo apt install nvidia-cuda-toolkit
Verifique se seus drivers NVIDIA e o CUDA estão funcionando corretamente:
Step 3 Compilação
Vamos clonar o repositório do llama.cpp do GitHub e compilá-lo. Passamos a flag LLAMA_CUDA=1 ao comando make para garantir que o compilador construa o binário com aceleração de GPU NVIDIA.
Terminal
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make -j$(nproc) LLAMA_CUDA=1
Assim que a compilação terminar, você terá vários arquivos executáveis no diretório raiz, incluindo llama-cli e llama-server.
Step 4 Baixando os Pesos do Llama 3
O llama.cpp utiliza o formato de arquivo .gguf. Podemos usar o CLI do HuggingFace para baixar com segurança o modelo Llama 3 8B da Meta diretamente para o nosso servidor.
Primeiro, instale o CLI:
Terminal
pip3 install -U "huggingface_hub[cli]"
Agora, baixe a versão quantizada Q4_K_M do modelo. Esta quantização de 4 bits equilibra perfeitamente velocidade e inteligência, cabendo confortavelmente em 8 GB de VRAM.
Terminal
huggingface-cli download bartowski/Meta-Llama-3-8B-Instruct-GGUF Meta-Llama-3-8B-Instruct-Q4_K_M.gguf --local-dir ./models
Step 5 Executando a Inferência
É hora de conversar com o Llama 3. Usaremos a ferramenta llama-cli.
A flag -ngl 99 é a parte mais importante deste comando: ela instrui o llama.cpp a descarregar 99 camadas (essencialmente todas elas para um modelo 8B) para a VRAM da sua GPU NVIDIA.
Terminal
./llama-cli -m ./models/Meta-Llama-3-8B-Instruct-Q4_K_M.gguf \
-n 512 \
-ngl 99 \
--color \
-i -r "User:" \
-p "You are a helpful AI assistant.\n\nUser: Hello!\nAI:"
Você deverá ver o motor inicializar, carregar o modelo na VRAM e apresentar um prompt interativo.
Step 6 O Servidor de API Local
Se você estiver hospedando isso em um servidor Ubuntu headless e quiser acessar o modelo remotamente (ou por meio de uma interface como o Open WebUI), pode executar o servidor HTTP integrado.
Terminal
./llama-server -m ./models/Meta-Llama-3-8B-Instruct-Q4_K_M.gguf -ngl 99 --host 0.0.0.0 --port 8080
Seu backend de alto desempenho, acelerado por CUDA, agora está ouvindo em http://YOUR_SERVER_IP:8080 e funciona como um substituto direto para a API da OpenAI!