Llama.cpp é uma biblioteca desenvolvida em C++ para a implementação eficiente de grandes modelos de linguagem, como o LLaMA da Meta. Otimizada para rodar em diversas plataformas, incluindo dispositivos com recursos limitados, oferece performance, velocidade de inferência e uso eficiente da memória, essenciais para a execução de modelos de grande porte. Além disso, sua portabilidade permite que desenvolvedores e pesquisadores a utilizem em diferentes sistemas operacionais e hardwares, sendo ideal para quem deseja implementar e experimentar modelos de linguagem em suas próprias infraestruturas, sem depender de serviços em nuvem. Isso possibilita maior controle sobre dados e modelos. Llama.cpp pode ser utilizada por várias outras linguagens, como Python, Java, Rust, Go e outras, permitindo experimentações e ajustes em um ambiente controlado, com maior segurança e personalização nas soluções baseadas em IA.
git clone https://github.com/Renatoelho/llama-cpp-local.git llama-cpp-local
- Instalando as dependências do sistema operacional
sudo apt install wget python3-pip python3-dev python3-venv gcc g++ make jq -y
- Acessando o diretório clonado
cd llama-cpp-local/
- Criando o ambiente virtual
python3 -m venv .venv
- Ativando o ambiente virtual
source .venv/bin/activate
- Instalando as dependências da aplicação
pip install -U pip setuptools wheel && pip install -r requirements.txt --no-cache-dir --verbose --force-reinstall
sh scripts/download_model.sh
Obs.: talvez seja necessário adicionar as permissões de execução aos scripts com o comando:
chmod +x scripts/download_model.sh
e/ouchmod +x scripts/up_model.sh
.
- Acessando como root
sudo su
Obs.: talvez seja necessário reativar o ambiente virtual para usuário
root
, use o comando:source .venv/bin/activate
.
sh scripts/up_model.sh
Obs.: pode ocorrer um erro de limitação de memória, para resolver isso utilize de forma temporária o comando:
ulimit -l unlimited
no terminal.
Obs 2.: esse script vai bloquear o terminal, então utilize outro para fazer as requests ao endpoint do modelo.
Utilize o endpoint http://localhost:8000/docs para entender os recursos disponíveis pelo modelo.
- Perguntando ao modelo (abra outro terminal)
cd ../../llama-cpp-local/
source .venv/bin/activate
python3 ./question_model.py
Georgi Gerganov, Github. Disponível em: https://github.com/ggerganov/llama.cpp. Acesso em: 17 mai. 2024.
Andrei abetlen, Github. Disponível em: https://github.com/abetlen/llama-cpp-python. Acesso em: 17 mai. 2024.
llama-cpp-python 0.2.75, pypi.org. Disponível em: https://pypi.org/project/llama-cpp-python/. Acesso em: 17 mai. 2024.
Tom Jobbins, huggingface.co. Disponível em: https://huggingface.co/TheBloke. Acesso em: 19 mai. 2024.