Execute o ChatGPT Localhost

Baixe, configure, execute e customize uma inteligência artificial tipo ChatGPT em seu computador e use-a sem limites!


| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.


1. Introdução

IA’s são a nova tendência tecnológica: Podem criar conteúdos diversos, desde textos elaborados, imagens e mais recentemente vídeos, totalmente “do zero”.

Mas e se eu te dissesse que você não precisa ir ao site chat.openai.com, criar uma conta e ter limite de uso diário ou pagar pelo token da API pra poder fazer perguntas.
Nem precisa do novo Bing da Microsoft com ChatGPT embutido que também possui limites de uso na versão gratuita.

Enfim, você pode baixar um modelo de IA generativo, configura-lo, aplicar-lhe um modelo de treino pronto, nutri-lo com as informações que quiser e mais, pode tirar a censura dos resultados e utilizar por 24h/7d sem limites! Tudo que você precisa é de um computador e do Ollama.

2. Requisitos de Sistema

Assunto espinhoso falar da exigência de hardware para isso mas querendo ou não, IA’s dessa natureza exigem uma máquina minimamente boa. Nos testes que fiz, o seguinte hardware atendeu bem à execução do programa:

  • Intel Xeon E5-2650 8c/16t @ 2.8 GHz
    Qualquer Intel da família Core i5 ou i7 com pelo menos 4c/8t @ +2.8 Ghz será suficiente.
    Todos da família AMD Ryzen ou Athlon 4c/8t +2.8Ghz também atendem à exigência.
    A IA exige mais do processamento do que qualquer outra parte do hardware e uma CPU 2c/4t vai ter gargalos; funciona mas é muito lento.
  • 8 GB de RAM
    O consumo mínimo é de 4 a 5 Gb para a aplicação.
    8 Gb é o mínimo desejável pra evitar travamentos do sistema.
  • SSD 128 Gb

Há meios de utilizar placas de vídeo mas aqui será o hardware mais básico possível.

Importante mencionar que essa especificação técnica será para o modelo de IA mais “básico” que será exemplo neste tutorial. Caso use um modelo mais complexo, a exigência de hardware quadruplica!

Atendeu aos requisitos? Maravilha, continuemos!

3. Sistema Operacional

Será Linux, nada novo sob o sol. Pode ser sob macOS também. Windows até segunda ordem é incompatível.

Em essência usaremos Docker como base, portanto tanto faz a versão da distro utilizada, desde que esteja com os binários do Docker devidamente instalados e configurados.

Já explicamos aqui anteriormente como configurar o Docker e testar se está adequadamente funcional! Caso não tenha o Docker configurado em seu sistema, vá até esta publicação e depois volte aqui!

4. ChatGPT e Ollama

A OpenAI desenvolveu algoritmos de inteligência artificial e tornou a versão 3.5 pública em meados de 2021! Depois, as novas versões como o GPT-4 passaram a ser closed source mas o “estrago” já estava feito.

Disso, surgiram diversas startups e projetos menores que pegaram esse código, aperfeiçoaram e criaram versões funcionais abertas a público.

Um bom exemplo é o Ollama, nascido das mãos dos desenvolvedores Jeffrey Morgan e Michael Chiang, foi baseado na versão open source do ChatGPT da OpenAI. O objetivo? Simples, permitir que as assistentes de IA e chatbots sejam popularizados, fáceis de serem acessíveis e qualquer um pode ter e usar como desejar. As alegrias do mundo opensource!

4.1 Instalação

Por ser tudo na base do Docker, a instalação é absurdamente simples. Basta abrir seu terminal e usar o seguinte comando:

$ docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

Este comando irá criar um volume chamado ollama em /var/lib/docker/volumes, apontar as portas 11434 para acesso externo e criar o container chamado ollama.

Caso deseje pode alterar a localização do volume aonde a IA é salva. Por padrão fica em /var/lib/docker/volumes mas pode ser alterado no parâmetro -v apontando a origem manualmente. Exemplo:
$ docker run -d -v /home/seuusuario/docker/data:/root/.ollama -p 11434:11434 –name ollama ollama/ollama

Após isso, execute:

$ docker exec -it ollama ollama run openchat

Ele fará o download do modelo treinado do OpenChat e te dar o prompt direto no terminal! Tudo que você perguntar, mesmo em português, será bem respondido. – Esse foi um dos melhores modelos, e mais leves, que encontrei.

Se eu perguntar o que é a Linux Universe Brasil, ele responderá:

>>> Quem ou o que é a Linux Universe Brasil?
A Linux Universe Brasil é uma convenção anual sobre tecnologia livre e distribuições baseadas em Linux, como Ubuntu e Fedora. O evento reúne desenvolvedores, usuários, profissionais de TI e entusiastas da comunidade de software livre para compartilhar conhecimento, aprender novas tecnologias e conectar-se com outras pessoas interessadas na área. A Linux Universe Brasil costumava ocorrer em São Paulo, mas recentemente mudou de local, sendo realizada virtualmente devido à pandemia do COVID-19.

– Ué, mas isso ficou esquisito!

Por padrão, a IA possui uma “temperatura” de criatividade que é de 0.8. Isso significa que ela vai pegar os dados mais exatos que possui em sua base de dados e ser criativa em cima disso. Mas logo mais abordarei melhor o que é e como alterar isso na IA.

Para sair da aplicação no terminal, digite:

$ /exit

Volte a qualquer momento com o comando anterior:

$ docker exec -it ollama ollama run openchat

4.2 WebUI

O Ollama apresenta uma WebUI bem feita que permite gerenciar toda a aplicação via Web, com controle de usuários, baixar ou deletar modelos de IA, entre outros. Para isso, use este comando:

$ docker run -d -p 3000:8080 –add-host=host.docker.internal:host-gateway -v ollama-webui:/app/backend/data –name ollama-webui –restart always ghcr.io/ollama-webui/ollama-webui:main

Em um resumo grosseiro o comando irá baixar a aplicação WebUI, vincular ela ao ollama que já está em execução, configura-la na porta 8080 do seu computador e utilizar o nome de container ollama-webui.

Após isso, abra seu navegador e vá até http://localhost:8080

Observe a semelhança absurda dessa interface com a interface original do ChatGPT do site da OpenAI!

Faça as perguntas normalmente e, dependendo do modelo de IA utilizado, pode enviar imagens que ela vai identificar e transcrever o que há nelas!

Para trocar de modelo, basta clicar na engrenagem, na região superior do site, guia Models e colocar o nome do modelo desejado. A lista de modelos gratuitos disponíveis está aqui!

O modelo mais recomendado para analisar imagens é o llava2, mas ela exige uma boa placa de vídeo e exige muito mais hardware do que o especificado acima! Pela interface web você pode enviar a imagem e pedir que a IA transcreva o que há nela.

ATENTO que se você sair baixando modelos a torto e a direito, pode lotar rapidamente seu sistema! A maioria dos modelos possui seus 4 Gb, mas há modelos como o Goliath que possuem 66 Gb. O maior de todos até onde vi possui 130 Gb. – E exige uma máquina com seus 128 GB DE MEMÓRIA RAM pra aguentar o tranco!

A IA dessa natureza, até onde eu vi, não suporta criar imagens como o Stable Diffusion. Ela é voltada para priorizar linguagem textual, seja quaisquer natureza.

Os modelos com a tag “uncensored” não possuem censuras de quaisquer natureza. Portanto a IA pode gerar respostas indesejáveis, preconceituosas e até ilegais dependendo do prompt! Use por sua conta e risco.

4.3 Inserindo meus Dados

Customizar a IA não é nenhum bicho de 7 cabeças mas exige uns passos extras. Vá para dentro do terminal, dentro do container do ollama:

$ docker exec -it ollama bash

Uma vez lá, instale o editor de textos de sua preferência, aqui usaremos o nano:

$ sudo apt install nano

Abra o nano e crie um novo documento “minhaia”:

$ nano minhaia

Neste documento, passe o seguinte:

# INÍCIO DO DOCUMENTO #

# Esta linha define qual o modelo será usado. Manteremos no exemplo o OpenChat.
FROM openchat

# A temperatura da IA. Por padrao, em 0.8. Quanto mais baixa, mais coerente. Quanto mais alta, mais criativa. Se deixar como 0 ela fica totalmente coerente, reduzindo a possibilidade de dar respostas caso nao encontre nenhuma informacao em seu banco de dados.
PARAMETER temperature 0.5

# Define como a IA vai se identificar. Por padrão é “chatgpt” da “openIA” 
SYSTEM “””Your name is IACustom.”””

# Resposta para a pergunta “quem é você?”
TEMPLATE “””
Answer as IACustom, the assistant, only and give guidance about How IA Works..
“””

# Para adicionar mais informações, insira, preferencialmente em inglês, abaixo:
TEMPLATE “””
Linux Universe is a brazillian website about linux systems, with tutorials, news and stuff about gaming on linux.
Linux Universe is maintained by Urban Compass, who is Content Creator of the website and who knows everything about Linux!
Linux Universe exists since 2017 and since then helps lots of people around the world but specially from Brazil if they have problems or questions about the system.
“””

# FIM DO DOCUMENTO #

Salve e saia com CTRL+O e CTRL+X

E por fim execute dentro do container:

$ ollama create iacustom -f minhaia

Após isso, saia do container com exit

Volte à WebUI, dê F5 na página, vá na setinha no topo ao lado de “openia:latest” e mude para a “minhaia:latest” que surgiu na listagem; pergunte:

Apesar da customização ser preferencialmente em inglês, perceba que a própria IA lê o arquivo e aplica aquilo à sua base neural, respondendo em português. Ela compreende comandos diretos que forem dados ali dentro. E com a nova informação inserida, se eu perguntar quem é a Linux Universe, ela responderá:

Ainda não ta 100% correto, tem erros grotescos de execução, respondeu em inglês… mas melhorou muito a resposta e trouxe a informação inédita!

Quanto mais informações nutrir no documento e inserir na IA, com detalhes e uma boa sintaxe textual, melhor será a resposta dada. Lembre-se, a IA interpreta as informações e pode ou não ser criativa, além disso a temperatura (de 0 a 1) e a forma como você pergunta também influenciam na resposta.

Mais informações e detalhes como compor os modelos de IA, aqui no código fonte!

Além disso recomendo este site: Nele há modelos prontos de como forçar a IA a se comportar de determinada maneira ou imitar determinada pessoa!

Se você não pensou ainda, fica a dica: Use a IA para criar contextos para IA! Pode apelar para o Bing dar sintaxes de informações que, inseridas na IA OFFLINE sejam mais assertivas. É a tecnologia ajudando a criar mais tecnologia.

5. F.A.Q.

Caso a IA trave ou apresente alguma falha grave, reinicie os 2 containers:

$ docker restart ollama ollama-webui

Caso queira desinstalar tudo:

$ docker stop ollama ollama-webui && docker rm ollama ollama-webui
$ docker volume rm ollama ollama-webui

Isso tudo garante que os containers foram removidos e os volumes também, aliviando espaço de armazenamento. E ai por fim, desinstale o pacote docker de seu sistema.

6. Conclusão

Ter uma IA para chamar de sua, rodando localmente e sem limites pode ser ao mesmo tempo interessante quanto complexo. Ela não vai ter, ao menos a princípio, a inteligência que um Bing por exemplo possui, de ter a IA e atrelar sua sintaxe neural às buscas na internet. E o modelo pode falhar em suas respostas.

Esteja ciente e livre para escolher outros modelos neurais de sua preferência e testar qual deles responde melhor às perguntas! Mas cuidado com aqueles mais pesados, vão exigir muito da máquina. Lembre-se, esse ChatBot não navega na internet! Tudo que ele sabe é somente o que já havia em seu banco de dados neural e aquilo que foi inserido manualmente no tópico 4.3.

E por fim, não menos importante: Essas IA’s locais podem estar sujeitas a problemas, principalmente porque não há uma equipe com centenas de programadores e milhões de dólares em investimentos mantendo ela o mais “inteligente” possível: É tudo por sua conta meu nobre!

#UrbanCompassPony

Deixe um comentário