DEV Community

Angelo Belchior
Angelo Belchior

Posted on

Dica rápida: Rodando o DeepSeek (ou qualquer modelo) localmente

Imagem de uma baleia Azul usando computador

Hype é Hype.

Isso é fato.

Mas confesso que fazia tempo que algo não me deixava tão empolgado quanto o Memphis Depay no Corinthians DeepSeek.

Nesses últimos dias só se tem falado nele. E não é por menos: Esse modelo criado por uma startup chinesa com o mesmo nome consegue entregar o mesmo resultado do o1, modelo super avançado da OpenAI. Só que de graça! Caso queira saber mais sobre o modelo, acesse https://arxiv.org/pdf/2501.12948.
Enquanto é necessário assinar o ChatGPT Plus para ter acesso a esse modelo, o DeepSeek simplesmente o entrega de graça. É só acessar https://chat.deepseek.com/.

E caso você queira utilizar as suas APIs em seu software, é possível assinar um plano. E é aqui que a coisa é mais surpreendente ainda:

Model Input Cost (per million tokens) Output Cost (per million tokens)
DeepSeek Reasoner $0.55 $2.19
OpenAI O1 $15.00 $60.00

A diferença é escandalosa.

E deve ser por isso que o mundo tech listado na NASDAQ começou a desmoronar: Tech billionaires lost almost $100bn in stock market selloff sparked by DeepSeek.

Eu precisei fazer essa sutil introdução ao DeepSeek para que você meu caro leitor, minha cara leitora, perceba que a reviravolta que o mundo Tech deu nesses últimos dias.

Porém, a ideia aqui é mostrar para vocês como rodar esse modelo localmente. E não só esse modelo, praticamente qualquer um.

Afirmo "praticamente qualquer um" devido ao fato de alguns modelos serem tão pesados que se faz necessário uma máquina absurdamente parruda para rodá-los.

Basicamente, para começar, nós precisamos saber de duas coisas:

  • Onde eu baixo esse modelo;
  • E como eu executo o modelo baixado;

E para nossa sorte, é possível responder essas duas questões com apenas uma palavra: Ollama.

Ollama é uma ferramenta por linha de comando absurdamente simples de se instalar e configurar, e que nos ajuda a baixar e executar os modelos sem complicações nenhuma!

Ao entrar no site https://ollama.com/download, você escolhe qual é o seu sistema operacional, baixa o instalador, executa e pronto!

Porém, antes de executar, quero dar uma dica marota para você.

Os modelos são arquivos bem grandes, que podem variar entre 2GB até 400GB, dependendo da quantidade de parâmetros, precisão dos dados, arquitetura do modelo, etc.. Sendo assim, é necessário ter um espaço em disco bem grande. Eu tenho dois SSDs na minha máquina, e configurei o Ollama para que ele baixe os modelos num SSD específico.

Por padrão, o Ollama armazena os modelos no diretório ~/.ollama/models e caso você queira mudar esse local é necessário informar o caminho da pasta onde os modelos serão armazenados configurando uma variável de ambiente: OLLAMA_MODELS

No macOS e Linux é bem tranquilo.

Abra o terminal e adicione a seguinte linha ao seu arquivo de configuração do shell (~/.bashrc, ~/.zshrc, ou ~/.bash_profile, dependendo do shell que você usa):

export OLLAMA_MODELS="/Volumes/SSD/Pasta onde Ficarão os modelos"
Enter fullscreen mode Exit fullscreen mode

Após salvar o arquivo, é necessário aplicar as alterações:

source ~/.bashrc  # ou ~/.zshrc, ~/.bash_profile
Enter fullscreen mode Exit fullscreen mode

Já no Windows, usando o Powershell:

[Environment]::SetEnvironmentVariable("OLLAMA_MODELS", "C:\caminho\para\seu\diretorio", "User")
Enter fullscreen mode Exit fullscreen mode

Em seguida, sai do carro, entra no carro... abre e fecha o terminal!

Pronto!!!

Outra dica marota, que aprendi na prática, é sobre a alteração do caminho da pasta onde os modelos do Ollama são armazenados. Como o Ollama roda como um processo, qualquer mudança nesse diretório exige que ele seja encerrado antes da modificação e reiniciado em seguida. Abaixo, explico como iniciá-lo.

Feita a instalação, o Ollama está pronto para uso!

Caso você ainda não tenha executado o Ollama no fim da instalação, ou matado o processo para fazer algum tipo de alteração, abra seu terminal e execute o comando ollama serve para começar.

E se tudo der certo e nada der errado ao rodar o comando ollama help poderemos ver uma lista com todos os comandos:

Large language model runner

Usage:
  ollama [flags]
  ollama [command]

Available Commands:
  serve       Start ollama
  create      Create a model from a Modelfile
  show        Show information for a model
  run         Run a model
  stop        Stop a running model
  pull        Pull a model from a registry
  push        Push a model to a registry
  list        List models
  ps          List running models
  cp          Copy a model
  rm          Remove a model
  help        Help about any command

Flags:
  -h, --help      help for ollama
  -v, --version   Show version information
Enter fullscreen mode Exit fullscreen mode

Sim... é bem parecido com os comandos do Docker.

Próximo passo é escolher a nossa imagem... digo... o nosso modelo...

Para isso, acesse o site https://ollama.com/search. Aqui você vai encontrar centenas de modelos disponíveis para uso local.

A instalação de um modelo é absurdamente simples:

ollama run <<nome do modelo>>

No nosso caso, vamos usar o DeepSeek r1.

Ao entrar nesse link https://ollama.com/library/deepseek-r1 você se depara com várias opções de modelos.

DeepSeek-R1-Distill-Qwen-1.5B
ollama run deepseek-r1:1.5b

DeepSeek-R1-Distill-Qwen-7B
ollama run deepseek-r1:7b

DeepSeek-R1-Distill-Llama-8B
ollama run deepseek-r1:8b

DeepSeek-R1-Distill-Qwen-14B
ollama run deepseek-r1:14b

DeepSeek-R1-Distill-Qwen-32B
ollama run deepseek-r1:32b

DeepSeek-R1-Distill-Llama-70B
ollama run deepseek-r1:70b
Enter fullscreen mode Exit fullscreen mode

Basicamente, o que distingue um dos outros é o modelo base no qual ele foi criado e a quantidade de parâmetros.

Em geral, quanto mais parâmetros um modelo tem, mais abrangente ele tende a ser, ou seja, ele consegue lidar com uma variedade maior de tarefas, contextos e nuances.

Dito isto, eu escolhi instalar o modelo deepseek-r1:8b. É um modelo com 4.9GB e que roda liso na minha máquina.

Aliás, esse é um ponto importante. O poder computacional da sua máquina é decisivo na escolha de um modelo. Se você escolher um modelo maior, com mais parâmetros, mais abrangente, pode ser que a sua máquina abra o bico. Se a sua máquina roda o Chrome sem engasgar, pode ficar tranquilo, caso contrário, comece escolhendo um modelo menor, como o deepseek-r1:1.5b. 🤡

> ollama run deepseek-r1:8b
Enter fullscreen mode Exit fullscreen mode

Esse comando acima, além de baixar o modelo, vai nos dar a possibilidade de interação. Pode ser que demore alguns bons minutos para que ele seja baixado.

Após o download do modelo, um chat no terminal é iniciado:

>>> Send a message (/? for help)
Enter fullscreen mode Exit fullscreen mode

Agora é brincar!!!!

Deu pra perceber a velocidade na resposta? Sensacional, não é?

Para sair, digite /bye!

Você pode experimentar vários modelos, mas lembre-se de que eles são grandes e podem entupir seu SSD.

Para saber quais modelos vocêm tem instalado use o comando ollama list e para apagar um modelo use ollama rm <<nome do modelo>>>.


Nesse ponto entregamos o que foi proposto no título do post, correto?

Mas não vamos parar por aqui... como sempre... pegue um café e vem comigo. É agora que a brincadeira fica mais legal ainda.

O Ollama é um processo que fica rodando na sua máquina. Quando você usa o terminal, você acessa essa aplicação via linha de comando. Foi o que fizemos acima. Mas se eu te contar que o Ollama também sobe um servidor http na porta 11434 expondo APIs para que possamos interagir via uma aplicação nossa, por exemplo?

Olha que bacana!! Se você executar esse curl abaixo, vai receber a resposta via streaming. Isso é bem legal!!!

curl http://localhost:11434/api/generate -d '{
  "model": "deepseek-r1:8b",
  "prompt":"Quais são os gases nobres?"
}'
Enter fullscreen mode Exit fullscreen mode

Eu não consegui mudar essa porta, se você souber como faz, deixa aí nos comentários por favor!!!

Isso abre uma infinidade de possibilidades. Uma delas é de se criar uma aplicação web ou mobile que "simule" um chat. Igual ao próprio https://chat.deepseek.com/ ou https://chat.openai.com/.

Caso queira saber mais sobre as APIs, acesse https://github.com/ollama/ollama/blob/main/docs/api.md!

Olha aí uma boa oportunidade! Criar uma interface visual para o Ollama!!!

Porém, caso não queira fazer isso, não tem problema. Apresento-lhes Open WebUI.

O Open WebUI é uma plataforma de IA auto-hospedada, extensível, rica em recursos e fácil de usar, projetada para operar totalmente offline. Ela suporta vários executores LLM como Ollama e APIs compatíveis com OpenAI, com mecanismo de inferência integrado para RAG, tornando-a uma solução de implantação de IA poderosa. (Copiei do site deles ;p)

Divirtam-se!

Era isso!!!

Top comments (7)

Collapse
 
gsousaigor profile image
Igor Garcia De Sousa

Artigo maravilhoso, porém me surgiu uma dúvida.
Há algum custo e se houver, qual é?

Collapse
 
angelobelchior profile image
Angelo Belchior

Muito obrigado. Não tem nenhum custo!!! Tudo é executado na sua máquina de forma offline. (No caso você precista estar on-line para baixar o modelo, mas depois dele instalado, pode ficar offline)

Collapse
 
felipersb profile image
Felipe Sales

Artigo fantástico Angelão. Parabéns cara!!!

Collapse
 
angelobelchior profile image
Angelo Belchior

Valew :)

Collapse
 
jessilyneh profile image
Jessilyneh

Que artigo bacana, parabens!!! Vou salvar pra seguir como tutorial

Collapse
 
angelobelchior profile image
Angelo Belchior

Muito obrigado!

Collapse
 
aramis_7 profile image
Aramis

Tem suporte pra eu treinar uma LLM dessas com uma base de dados, por exemplo, artigos científicos? Assim tenho algo personalizado ou mais focado? Ou é mais eficiente usar as que já estão disponíveis mostradas no tutorial?