08 abril 2024

Inteligência Artificial - Local, Offline e Sem censura - Meu PC com a IA de 20 milhões de dólare

 Inteligência Artificial - Local, Offline e Sem censura - A Experiência

Meu PC com a IA de 20 milhões de dólares


Desde que conheci o chat GPT sempre sonhei em ter um assistente pessoal de inteligência artificial. Como algumas perguntas que fiz sobre segurança de sistemas e quebra de senhas para o chat cpt foram amistosamente reprimidas pelo mesmo, me dizendo que eu não deveria estar fazendo aquilo, sonhei em ter um assistente offline e sem censura, que pudesse oferecer códigos para testar sistemas e quebrar senhas ou conversar sobre temas considerados tabus. Fiquei imaginando as imensas salas com servidores da Nvidia, caríssimos como os DGX A100 dos datacenters da OpenAI. Cada uma dessas máquinas com 640GB de memória em GPU e 2TB de memória total consome 6500W e pesa cerca de 123 kg em seus 27x48x90 cm. Nem sonhava que meu desejo estava prestes a se tornar real.


NVidia DGX A100


Experimentei um evento que me deixou tão maravilhado quanto em êxtase, como se eu tivesse acabado de acessar a internet pela primeira vez. Fiquei surpreso ao rodar em meu notebook uma versão offline e aberta de uma plataforma de linguagem de inteligência artificial estável, completa e sem custo, disponível legalmente na internet. Um chat gpt sem censura e offline. Como se eu tivesse colocado as mãos em um tesouro de valor inestimável. E certamente foi isso que aconteceu.


Um software que é resultado de dezenas a centenas de milhões de dólares investidos em sua criação e desenvolvimento e colocado gratuitamente à disposição de todos. Entre os vários modelos disponíveis, cada um com suas características próprias, o Llama 2 é a uma geração de modelo de linguagem de código aberto criada em uma parceria das duas gigantes da tecnologia Meta e Microsoft e disponibilizado para pesquisadores, usuários domésticos e empresas que funciona em um computador com 8GB de memória RAM. Seu banco de dados é reconhecido pela qualidade e  tem cerca de 3.8GB - cabe em um DVD. 


A forma de funcionamento da inteligência artificial lembra o princípio do holograma, onde os dados são gravados em todas as partes e em nenhuma parte ao mesmo tempo. Eles ficam invisíveis, distribuídos interativamente. Se você quebrar uma placa holográfica, cada pedaço conterá a imagem inteira, em uma resolução menor. Colocando o laser na inclinação certa, porém, é possível reconstruir uma imagem completa, inacreditável antes da projeção. Assim como os dados codificados nesses modelos  poderosos. 


Compartilho a seguir a experiência completa, desde a instalação simplificada do modelo para uso no prompt de comando quanto com o private-gpt, onde enviei alguns arquivos e fiz algumas perguntas a respeito. Espero que possa ser seu laboratório de compreensão e uso de IA e que seja tão transformador para você quanto foi para mim. 


1 - A Inteligência Artificial 


Os modelos de inteligência artificial são baseados em LLMs, sigla para Large Language Models (Modelos Extensos de Linguagem) e se referem a um modelo de linguagem com um grande número de parâmetros treináveis. 


O GPT da OpenAI - Generative Pre-trained Transformer, e o BERT do Google - Bidirectional Encoder Representations from Transformers, são modelos com bilhões de parâmetros e capazes de realizar com extrema desenvoltura tarefas relacionadas ao processamento de linguagem natural. 


Existem modelos específicos para outras finalidades, e algumas abordagens são mais bem sucedidas para determinadas tarefas. Em alguns casos a abordagem IF-ELSE de árvores de decisão é eficiente, enquanto em outros casos é necessário um treinamento com aprendizado de máquina (Machine Learning) que envolve interações sucessivas de algoritmos especializados que compilam a informação sem uma programação explícita. Esses algoritmos mais avançados usam técnicas como redes neurais e regressão linear, além das árvores de decisão e outros métodos como lógica difusa. 


As redes neurais possibilitaram a idealização do Deep Learning (Aprendizado Profundo), e utilizam várias camadas de interação. Elas permitiram a interação entre modelos diferentes, por exemplo, um que processa imagens e outro linguagem, permitindo que a IA descreva fotos. É o caso do modelo llava, citado a seguir e que pode também ser utilizado através do Ollama, que descreve as imagens com uma precisão extraordinária.


A principal diferença entre o hardware convencional e o hardware dedicado para a inteligência artificial está na sua concepção. Enquanto um PC convencional busca atender a velocidade e capacidade em tarefas complexas, executadas normalmente de modo linear, o processamento em IA exige muitos cálculos em paralelo e uso intenso de memória. Devido ao grande conjunto de dados e interações, as placas de vídeo são utilizadas em conjunto com o processador para conseguir uma performance superior. 


À medida que o sistema possui mais memória e mais capacidade de processamento é possível treinar e executar modelos mais complexos, com mais parâmetros, aumentar a precisão das respostas e a janela de contexto, levar em conta as perguntas e respostas anteriores e analisar grandes documentos. 

No site huggingface.co é possível acessar repositórios abertos de dados, modelos e técnicas de treinamento, além de ser possível entrar em contato com a comunidade voltada para a personalização e treinamento de inteligência artificial. 


2 - Instalação


Para quem deseja ter sua própria IA rodando localmente existe uma plataforma que realiza a instalação e execução de forma automática, simples e rápida, e basicamente em dois passos. Todo o trabalho é feito automaticamente e o sistema deve estar funcional em menos de 15 minutos, incluindo o tempo de espera do download. Foram utilizados no teste duas máquinas:


  • Acer Nitro 5 i5-11400 24GB de RAM e placa GeForce GTX 1650 4GB e Windows 11

  • MacBook 12” Early 2015 com 8GB de RAM e placa de vídeo Intel HD 5300 OSX BigSur


2.1 - Efetue o download do Ollama


Vá até o site https://ollama.com/download e obtenha o Ollama para sua plataforma. O Ollama suporta uma variedade de modelos, incluindo Llama 2, Code Llama, Gemmi do Google, Phi da Microsoft, entre outros, e os agrupa juntamente com suas configurações e dados em um único pacote. Para quem já utilizou, é bem parecido com o Docker.



2.2 - Execute um modelo de linguagem


Tudo funciona no modo texto. Se estiver em uma máquina Linux ou MacOS, abra o terminal. Caso esteja no Windows abra o prompt de comando (Iniciar, Executar, CMD). Digite:


> ollama run llama2


para executar o llama2 em sua máquina. Assim que o prompt >>> aparecer você pode interagir. Caso ainda não estejam instalados, os arquivos serão baixados e configurados automaticamente durante a execução. 



2.3 - Experimente


O sistema é desenhado para receber uma entrada e fornecer uma saída. Basta escrever sua pergunta ou fazer sua colocação e esperar pela resposta. 



Para sair para o sistema, digite:


>>> /bye

> exit


A velocidade e a qualidade da resposta dependerão do modelo utilizado. O modelo llama2 se tornou famoso por ter respostas de alta qualidade, utilizar poucos recursos e contar com uma velocidade considerável. 


2.4 - Modelos disponíveis


Para ver os modelos que estão instalados localmente, digite:


> ollama list

Para ver todos os que podem ser instalados, visite o site https://ollama.com/library . Você encontrará vários modelos atualizados para executar diretamente com o ollama, como por exemplo:

Gemma: inspirado no Gemini e criado pelo time DeepMind do Google. Possui modelos de 2 e 7 bilhões de parâmetros. O modelo passou por um treinamento em um conjunto diversificado de documentos e aprendeu padrões de linguagem e sintaxe, programação, matemática e raciocínio lógico. Seus dados foram filtrados com base no conteúdo e nas diretrizes e políticas do Google. 


Llama2: lançado pela Meta, esse modelo foi treinado com 2 trilhões de tokens. Oferece um comprimento de contexto de 4096 tokens, é voltado para bate papo e foi ajustado com mais de um milhão de anotações humanas. Apesar de seu tamanho reduzido e velocidade de produção de conteúdo, é extremamente eficaz e pode ser executado de forma bastante satisfatória mesmo em máquinas menores. Seu modelo de 7b (Esses números tratam dos bilhões de parâmetros treináveis do modelo. Um modelo 7b, por exemplo, tem 7 bilhões de parâmetros treináveis) requer 8GB de RAM. Seu modelo 13b geralmente requer 16GB e seu modelo de 70b requer 64GB de memória. 


Mistral: um modelo distribuído pela licença Apache, 7.3b e que se compara ao Llama2 13b em benchmarks de performance.


Llava: certamente um dos modelos mais impressionantes. Ele possui um encoder que o permite descrever o conteúdo de uma imagem. Inserindo no prompt o nome do arquivo de imagem fornece uma descrição da mesma. Enviei minha foto e obtive o seguinte resultado, me arrependendo um pouco ao ler a parte sincera sobre a meia idade:


> ollama run llava

>>> "C:\\Users\\gazst\\Downloads\\FotoPerfil.jpg"


resposta em inglês, após tradução:


“Esta é a imagem de uma pessoa sentada em frente a um computador. O indivíduo parece ser de meia-idade, com cabelos curtos e tom de pele claro. Eles estão vestindo uma camisa branca e têm um leve sorriso no rosto. No fundo, há uma decoração de parede com o que parece ser uma palheta de guitarra e possivelmente um tema musical. À esquerda da pessoa, há um monitor de computador exibindo o que parece ser um editor de código com algum texto visível, sugerindo que este pode ser um espaço de trabalho onde o trabalho de codificação ou desenvolvimento é feito. A sala tem um ambiente aconchegante e a pessoa parece relaxada em seu ambiente.”


Foi necessário menos de um minuto para analisar a imagem no Acer Nitro 5. 

No MacBook foram cerca de três minutos.



Llama2-uncensored: é o modelo llama2 desprovido de julgamentos. Ele responde qualquer pergunta. Por exemplo: 


A versão original se recusará a comentar sobre a vida alheia quando perguntada sobre “Quem fez Rose prometer que nunca desistiria?”. No modelo sem censura, ele vai citar o filme Titanic. Os modelos sem censura também conversam sobre temas que outros modelos não estão programados para responder. Resultados de algumas pesquisas interessantes que ficam diferentes sem as restrições, falando sobre a Bíblia, pedindo uma receita apimentada, perguntando sobre boxe entre bilionários ou pedindo informações médicas podem ser encontrados em:

https://ollama.com/blog/run-llama2-uncensored-locally


Para executar o llama2 sem censura digite o comando:


> ollama run llama2-uncensored


Existem ainda outros modelos, como o Phi da Microsoft e o OpenChat, versão open-source que utiliza como referência o ChatGPT, voltados para conversação e que são muito bem treinados e avaliados e possuem respostas de alto nível. Alguns possuem 47 bilhões de parâmetros, como o dolphin-mixtral. Outros são voltados para o chinês e inglês. Cada um tem sua particularidade no treinamento, função, capacidade, dados utilizados e métodos de treinamento. Cada um tem sua “personalidade”. 



1.5 - O próximo passo: Private GPT



Próxima etapa: o private-gpt. As instruções de instalação podem ser encontradas detalhadamente no link:

https://docs.privategpt.dev/installation/getting-started/main-concepts 


A instalação ocorreu quase sem surpresas, com algumas pequenas adaptações ao longo do processo, como por exemplo configuração manual do caminho do gerenciador de pacotes e dependências python, o poetry. No geral as instruções foram seguidas à risca. Usei a configuração padrão do modelo, que fica no arquivo settings.yaml


Rodar o private-gpt impressiona. Primeiro pela plataforma web pronta para ser utilizada por qualquer usuário da rede diretamente do navegador, e outra pelo recurso de ingestão, que permite enviar arquivos para análise e discussão posterior. 


Para realizar o teste foram enviados três arquivos, que estão no anexo ao final deste documento juntamente com os prompts que foram utilizados e as respostas obtidas, sendo:


  • 2 arquivos de texto com relatórios de manutenção de equipamentos

  • 1 versão pdf do livro de Carl Gustav Jung, A Estrutura da Alma


Os arquivos de relatório de manutenção precisaram ser filtrados através de um script python, pois alguns erros referente a caracteres não reconhecidos ocorreram durante o envio. Cada arquivo com 2kb demorou cerca de 15 segundos para ser processado. 


O livro de Jung foi enviado em sua forma original em pdf, sem alterações, e foi ingerido corretamente e sem erros em pouco menos de uma hora. Os resultados foram muito interessantes e estão detalhados no anexo. Apesar de não ser possível confiar plenamente nas respostas, percebemos a capacidade de obter insights valiosos. 




É necessário mais tempo e interações com o sistema para conseguir opinar sobre o potencial de uso no dia a dia das diferentes atividades, mas os resultados são muito promissores. Dentre os arquivos enviados e os testes feitos, na maioria das vezes o resultado foi satisfatório. 


1.6 - A Epifania


A inteligência artificial veio para ficar, pois se mostra muito eficiente para algumas tarefas, como gerar textos referentes a qualquer assunto, mas não possui capacidade criativa ou cognitiva real. Suas respostas, apesar de previsíveis, monótonas e algumas vezes sugerirem um padrão parecido com o industrial, um tanto sem personalidade, são precisas e funcionais. Considero que as interações foram muito positivas e que temos em nossas mãos uma ferramenta poderosa para brainstorming, organização de idéias, correção, tradução e interpretação de textos. 


A IA atua como um excelente secretário: escreve, organiza e auxilia no processo de criação. Não possui, ainda, por si só, as capacidades de se aprofundar autonomamente em qualquer assunto, ou fornecer resultados confiáveis que dispensem uma conferência ou certificação. Com a devida supervisão e interação de um humano produz resultados muito bons. Existem vários modelos de linguagem disponíveis e experimentá-los, dentre uma infinidade de opções, com seus diferentes objetivos e treinados com diferentes datasets, torna as possibilidades de interação virtualmente infinitas. 


É impressionante uma quantidade tão grande de informações e um recurso tão poderoso rodando em uma máquina comum sem internet. 


O objetivo deste pequeno artigo é compartilhar um pouco da vivência extraordinária que tive com a instalação e uso da inteligência artificial local e sem censura, e também buscar que qualquer pessoa com conhecimentos de informática possa seguir os passos e conseguir, com um pouco de tempo e conhecimento, colocar uma IA para rodar em sua máquina e ter momentos tão interessantes quanto eu. 


Estou engatinhando ainda na área de IA, então posso ter cometido algum erro ou gafe ao tentar compactar toda a informação aqui! A inteligência artificial e a natural, mesmo quando se esforçam, ainda erram. Desculpe-nos. Mas quem sabe não é a parte imperfeita que torna esse artigo único?



Referências:


NVIDIA DGX A100 80GB Datasheet

https://resources.nvidia.com/en-us-dgx-systems/dgx-ai?xs=489752


5 Steps to Getting Started with Llama 2

https://ai.meta.com/blog/5-steps-to-getting-started-with-llama-2/


The Hugging Face - IA Community

https://huggingface.co/


Passo a passo Private-GPT

https://docs.privategpt.dev/overview/welcome/introduction


Repositório GitHub Private-GPT

https://github.com/zylon-ai/private-gpt


Ollama

https://ollama.com/



Artigos Correlacionados:

https://www.oneusefulthing.org/p/centaurs-and-cyborgs-on-the-jagged


Nenhum comentário: