Instalação e Uso de LLMs Offline no Linux

Outros posts sobre o tema em:

Como Criar um Pipeline em Python para Testar Modelos no Hugging Face

Dicas de Engenharia de Prompt

Parte 2 - Instalando o Ollama no Windows

Parte 3 - Instalando LLMs Off-line no Android- pt.1

Parte 4 - Instalando LLMs Off-line no Android - pt.2

Parte 5 - Quatro Maneiras de Usar LLMs Offline no Seu Computador

Parte 6 - RAG Offline: Usando LM Studio e Ollama para Processar Documentos

O recém artigo da Nature trouxe uma discussão sobre o uso de LLMs locais em vez daquelas que utilizamos de forma online como, por exemplo, o Chat-GPT, Gemini e o CoPilot. A preocupação com aspectos como privacidade e o uso de nossos dados quando utilizando os LLMs de terceiros, sem contar que estas ferramentas necessitam de acesso à internet. Sites como o Hugging Face permitem testar alguns usos destas ferramentas utilizando uma biblioteca com a linguagem Python, como eu já descrevi em uma postagem anterior.

Eu queria algo mais completo como um assistente virtual local e como sou usuário Linux (uso o Pop!_OS 20.04), encontrei este post muito bem explicado de como rodar uma LLM de maneira off-line no Linux e então resolvi replicar, e conto esta experiência abaixo.

O Ollama é uma ferramenta que facilita o processo de baixar e rodar os modelos LLMs de código aberto. Ele pode ser instalado no Windows, MacOS e o Linux. Apenas seguir o procedimento de instalação presente no site deles.

O vídeo abaixo mostra o desempenho destes modelos em meu computador para duas tarefas de geração de códigos em duas linguagens de programação.

No meu caso utilizei o comando abaixo, mas recomendo que você siga o procedimento descrito pelo site pois o mesmo pode alterar conforme novas atualizações.

Repetindo: siga o procedimento de instalação conforme descrito no site deles, não este daqui.

curl -fsSL https://ollama.com/install.sh | sh 

O código acima irá baixar o Ollama em sua máquina e rodar o script de instalação. Você pode auditar o script de instalação aqui

A minha máquina é um notebook Acer Nitro que adquiri no final de 2020. Ele possui um Core i5 9300H, 16 GB de RAM e uma GPU Nvidia GeForce GTX 1650. O que fica interessante, pois o Ollama reconheceu a GPU.

infohw

Na postagem que usei como referência para instalar, o autor descreve que o Notebook dele não possui uma GPU discreta, o que influenciou no desempenho. E o modelo escolhido vai também influenciar.

Hora de testar se o Ollama está rodando, num browser digite:

Testando o Ollama no Browser

Aqui mostrou que está funcionando.

Agora é hora de baixar o modelo LLM. No site existe vários modelos. Já testei o llama3.1. Este modelo desenvolvido pela Meta e que possui três níveis de parâmetros 8, 70 e 405 bilhões de parâmetros. Acabei escolhendo o modelo de 8B. São aproximadamente 4.7 GB utilizado de armazenamento. Mas ai fica o critério de cada um. Para este post vou apresentar o processo de instalação do modelo phi3.5 da Microsoft.

Para dar um “pull” em um modelo LLM desejado, utiliza-se o comando:

ollama pull <Nome_da_LLM>

Então para baixar e instalar o modelo Phi3.5 da Microsoft.

ollama pull phi3.5

phi instalado

Agora vamos listar as imagens que estão presentes no seu computador.

ollama list

LLM instaladas

Para rodar uma das LLMs com o código:

ollama run <Nome_da_LLM>

No caso da Phi3

ollama run phi3.5

Mas antes de tudo, para fins de demostração, garantirei que não está ocorrendo comunicação com a internet:

Desligando o WiFi

Aqui vou pedir para que ele me gere um código Python para conectar a uma base do MySQL:

Exemplo de Prompt

Não vou me estender na utilização dele ou de outro modelo, mas é possível utilizar o próprio terminal para conversar com a LLM, e existem formas de conversar via interface gráfica, o que fica para um próximo post.

Agora para avaliar o uso computacional da minha máquina, vou utilizando o utilitário Nvidia-smi em que é possível ver o quanto ele está utilizando os recursos da GPU

Uso GPU

E em relação ao uso computacional da CPU e do consumo de memória RAM ele não ficou utilizavel, lembrando que o Phi3.5 é um modelo particularmente pequeno. O print abaixo apresenta o consumo computacional durante uma inferência:

Durante Inferência

Agora para sair do Ollama, basta digitar no prompt:

/bye

bye

E para gerenciar e deletar os modelos LLMs, é possível listar e solicitar a remoção da imagem. PS: peço desculpas na imagem abaixo por que digitei um comando errado, por isto ocultei o mesmo, para evitar confusão.

ollama rm <nome_da_LLM>

Deletando um LLM

Este tutorial aborda apenas alguns aspectos do uso do Ollama, o tutorial que serviu como base para este experimento possui mais informações, como utilizar a interface gráfica com Docker e também como desinstalar o Ollama. Assim você tem um assistente local para lhe ajudar em tarefas simples. Ontem testei o uso do Llamma 3.1 para criar um banco de dados no MySQL e para implementar um código Python para interagir com este banco de dados e o código proposto funcionou. Mas é preciso testar mais.

Sucesso a todos!

Leonardo Grando
Leonardo Grando
Technology Ph.D. Candidate

My research interests include Agent-Based Simulation, Artificial Intelligence, Machine Learning.