Faça seu próprio GPT offline e privado

De Área31 Hackerspace
Revisão de 19h46min 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

Parabéns! Se você já está navegando nas águas avançadas da criptografia, protegendo seus dados com zelo, está na hora de dar um passo adiante na segurança e privacidade digital. Imagine a possibilidade de executar um modelo de linguagem poderoso, como o h2ogpt, diretamente na sua própria GPU, mantendo todo o processo offline e totalmente privado. Isso não é apenas uma ideia futurista; é uma realidade ao seu alcance e repleta de benefícios incríveis.

Ao rodar o h2ogpt localmente, em sua própria GPU, você dá um grande salto em termos de privacidade e controle de dados. Aqui, cada palavra processada, cada comando executado, permanece confinado dentro do seu próprio hardware. Nada transita pela internet, eliminando riscos de interceptação, vazamentos ou exploração indevida de seus dados por terceiros.

E não é só a privacidade que se destaca. A performance também é um fator a ser celebrado. GPUs são poderosas e capazes de realizar cálculos complexos a uma velocidade impressionante. Isso significa respostas mais rápidas e uma interação mais fluida com o modelo h2ogpt, tudo processado na velocidade da luz pelo seu próprio hardware.

Além disso, ao operar o h2ogpt offline, você se torna independente da internet. Isso não só garante operações ininterruptas em casos de falhas de conexão, mas também significa que você pode usar o modelo em locais remotos ou em situações onde a conectividade é um desafio.

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.

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.