Faça seu próprio GPT offline e privado

De Área31 Hackerspace
Revisão de 21h22min de 5 de dezembro de 2023 por Coffnix (discussão | contribs)
Membro do hackerspace feliz por ter seu próprio GPT rodando em casa, com sua GPU fuderosa, tirando mó onda.
Autor: 
* Coffnix

Motivo

Utilizar o modelo de linguagem h2ogpt na própria GPU é uma decisão estratégica que coloca a segurança cibernética como pilar central. Ao manter o processamento de dados confinado ao seu hardware, você elimina a vulnerabilidade associada à transmissão de dados pela internet, um ponto crítico onde ocorrem frequentemente interceptações e vazamentos. Essa abordagem assegura uma camada robusta de privacidade e segurança, tornando-se essencial em um cenário onde ameaças digitais estão constantemente evoluindo.

Além de reforçar a segurança, essa escolha traz benefícios significativos em termos de desempenho e independência. As GPUs proporcionam uma interação rápida e eficiente com o modelo h2ogpt, garantindo respostas ágeis. Operar offline também significa autonomia da internet, permitindo a continuidade do trabalho mesmo em situações de falhas de conexão ou em locais remotos. Em resumo, a adoção do h2ogpt em modo offline não é apenas uma medida de proteção cibernética, mas também uma estratégia para melhorar a performance e manter o controle total sobre a infraestrutura de inteligência artificial. Por fim, ao rodar o h2ogpt de maneira isolada, você se torna o verdadeiro guardião de sua própria segurança digital. Assim como aprendeu a criar e gerenciar storages criptografados em seu roteador residencial, agora você está no controle total da operação e da integridade de um dos mais avançados sistemas de processamento de linguagem natural. Em resumo, ao optar por esse caminho, você não só assegura a privacidade e segurança dos seus dados, mas também desfruta de uma performance notável, independência da internet e o controle total da sua infraestrutura de IA. Portanto, se você valoriza a segurança e a privacidade, rodar o h2ogpt na sua própria GPU é uma escolha inteligente e poderosa. Divirta-se explorando esta nova fronteira de autonomia e proteção digital!


Requisitos

Aqui utilizamos OpenSUSE com GPU nvidia modelo AORUS GeForce RTX™ 3070 MASTER 8G, mas você tem liberdade de utilizar em qualquer distro, adapte somente os comandos e arquivos caso utilize outra distro ou placa de video nvidia. E sim, o display LCD dessa placa de video tem uma cobrinha dando tiros:



Procedimento

Instale o anaconda

Obtenha a versão mais recente no site oficial: https://docs.conda.io/projects/miniconda/en/latest/

user $  wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-x86_64.sh
user $  bash Miniconda3-py310_23.1.0-1-Linux-x86_64.sh

Saia da sessão e faça login novamente para carregar as variáveis de ambiente e crie o novo ambiente h2ogpt:

user $  conda create --name=h2ogpt python=3.10
user $  conda activate h2ogpt

Instale o h2oGPT

Clone o repo oficial do h2ogpt:

user $  git clone https://github.com/h2oai/h2ogpt.git
user $  cd h2ogpt ; conda install cudatoolkit=12.3 -c conda-forge -y
user $  export CUDA_HOME=$CONDA_PREFIX

Instale as dependências:

user $  pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu123
user $  GPLOK=1 bash docs/linux_install.sh
user $  pip install --upgrade urllib3 botocore

Execute o h2oGPT

Baixe um modelo para testes iniciais:

user $  python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot


Após efetuar o download, execute o comando abaixo caso sua GPU tenha mais de 4GB de vram:

user $  python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_4bit=True


Caso sua GPU tenha mais que 8GB de vram:

user $  python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True

Caso sua GPU tenha somente 8GB de vram pode ocorrer o seguinte erro:

torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 564.00 MiB. GPU 0 has a total capacty of 7.78 GiB of which 263.56 MiB is free. Including non-PyTorch memory, this process has 7.49 GiB memory in use. Of the allocated memory 6.73 GiB is allocated by PyTorch, and 595.69 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

Caso ocorra o erro acima, e vc queira tenta utilizar o modelo de 8bit, tente parar o X (init 3) e executar da seguinte forma:

user $  export 'PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:64'
user $  python generate.py --base_model=h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3 --score_model=None --prompt_type=human_bot --load_8bit=True

Verifique o uso da GPU:

user $  nvidia-smi

user $  nvtop

Acesse via web:

Mais infos:

https://github.com/h2oai/h2ogpt/blob/main/docs/README_LangChain.md

https://pt.scribd.com/document/653382376/H2OGPT-The-Open-Source-GPT-that-Gives-You-Privacy-and-No-Data-Leaks

https://arxiv.org/abs/2306.05443

https://github.com/h2oai/h2ogpt

https://h2o.ai/blog/building-the-worlds-best-open-source-large-language-model-h2o-ais-journey

Cookies nos ajudam a entregar nossos serviços. Ao usar nossos serviços, você concorda com o uso de cookies.