Llama.cpp no Mac: O Guia do Usuário Avançado

laptop_mac macOS Sonoma Intermediate schedule 8 min read
Author by Alex Rivera • May 14, 2024

Se você quer desempenho máximo, controle absoluto e zero de software desnecessário, compilar o llama.cpp diretamente do código-fonte é o único caminho a seguir. Veja exatamente como fazer isso no Apple Silicon.

Step 1 Introdução

llama.cpp é o motor C++ subjacente que alimenta quase todas as ferramentas de IA locais (incluindo Ollama e LM Studio). Ao executá-lo nativamente pelo terminal, você elimina a sobrecarga da interface gráfica e obtém controle total sobre os parâmetros de desempenho.

Step 2 Pré-requisitos

Você precisa ter as Ferramentas de Linha de Comando do Xcode da Apple e o Homebrew instalados para compilar o código C++.

Terminal
xcode-select --install
brew install cmake python3

Step 3 Compilação

Vamos clonar o repositório e compilá-lo usando a flag LLAMA_METAL=1 para garantir que ele utilize a GPU da Apple.

Terminal
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make -j LLAMA_METAL=1

Step 4 Baixando os Pesos

Precisamos baixar um modelo no formato .gguf. Usaremos o huggingface-cli para baixar o Llama 3 8B.

Terminal
pip3 install huggingface-hub
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

Agora, vamos conversar com o modelo. A flag -ngl 99 instrui o motor a descarregar todas as camadas para a GPU do seu Mac.

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:"

Step 6 Servidor Local

Se você quiser hospedar um endpoint de API compatível com OpenAI diretamente pelo terminal, use o binário llama-server:

Terminal
./llama-server -m ./models/Meta-Llama-3-8B-Instruct-Q4_K_M.gguf -ngl 99 --port 8080

Seu backend de alto desempenho agora está aguardando conexões em http://127.0.0.1:8080.