paint-brush
Como executar seu próprio LLM local (atualizado para 2024)por@thomascherickal
5,950 leituras
5,950 leituras

Como executar seu próprio LLM local (atualizado para 2024)

por Thomas Cherickal8m2024/03/21
Read on Terminal Reader
Read this story w/o Javascript

Muito longo; Para ler

O artigo fornece guias detalhados sobre o uso de modelos de IA generativa, como Hugging Face Transformers, gpt4all, Ollama e localllm localmente. Aprenda como aproveitar o poder da IA para aplicações criativas e soluções inovadoras.

People Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Como executar seu próprio LLM local (atualizado para 2024)
Thomas Cherickal HackerNoon profile picture
0-item

De https://wallpapers.com/wallpapers/theoretical-physics-green-particles-ht1c16rgtu5ilkhc.html


Este é o ano de lançamento da IA Generativa


Bem; para dizer o mínimo, este ano não tive muitas opções de como executar um modelo LLM localmente.


Vamos começar:


1) Transformadores HuggingFace:

Todas as imagens criadas pelo Bing Image Creator

Para executar o Hugging Face Transformers offline sem acesso à Internet, siga estas etapas: Instale os Transformers com as dependências necessárias, garantindo não depender de atualizações automáticas durante a instalação. Você pode instalar via pip ou conda conforme descrito na documentação do Hugging Face


 pip install transformers==4.xy

Carregue modelos pré-treinados de sua máquina local depois de baixá-los do Hugging Face Hub com acesso à Internet. Salve o modelo usando save_pretrained() e carregue-o posteriormente no modo offline.

 from transformers import AutoModelForSequenceClassification, BertTokenizerFast

Primeira vez, baixe e salve o modelo

 model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased") model.save_pretrained("/my/local/directory/bert-base-uncased")

Mais tarde, carregue o modelo salvo offline

 model = AutoModelForSequenceClassification.from_pretrained("/my/local/directory/bert-base-uncased") tokenizer = BertTokenizerFast.from_pretrained("/my/local/directory/bert-base-uncased")


Configure as variáveis de ambiente TRANSFORMERS_OFFLINE e HF_DATASETS_OFFLINE para ativar o uso offline.

 export TRANSFORMERS_OFFLINE=1 export HF_DATASETS_OFFLINE=1

Clone o repositório do modelo diretamente se preferir não fazer download de arquivos individuais.


 git clone https://huggingface.co/<username>/<repository> /my/local/directory


Certifique-se de que todos os arquivos necessários estejam presentes no diretório onde você planeja executar seus scripts. Lembre-se de que definir TRANSFORMERS_OFFLINE apenas como 1 não funcionará se o modelo ainda não estiver disponível localmente. Você deve baixar o modelo com acesso à Internet e salvá-lo localmente ou clonar o repositório do modelo.




2) gpt4all


gpt4all é um projeto de código aberto que permite a qualquer pessoa acessar e usar modelos de IA poderosos como o GPT-3. Aqui estão instruções passo a passo para instalar e usar o gpt4all:

  1. Instalação:
  • gpt4all requer Python 3.7 ou superior e algumas dependências de pacote Python. A maneira mais fácil de instalar o gpt4all é via pip:
 pip install gpt4all
  1. Obtenha uma chave de API:
  • Você precisa de uma chave API para acessar os modelos por meio do gpt4all. Você pode obter uma chave de API gratuita inscrevendo-se em https://platform.openai.com .
  1. Configurar autenticação:
  • Depois de ter sua chave de API, defina uma variável de ambiente chamada OPENAI_API_KEY com sua chave de API como valor.
 export OPENAI_API_KEY="YOUR_API_KEY_HERE"
  1. Use gpt4all:
  • Agora você está pronto para usar o gpt4all em Python para acessar o GPT-3 e outros modelos. Aqui está um exemplo que leva Davinci (uma versão do GPT-3) a resumir uma passagem de texto:
 from gpt4all import completions summary = completions.generate(engine="text-davinci-003", prompt="Summarize this text: [insert long text here]", max_tokens=50) print(summary.text)
  • Consulte a documentação do gpt4all para mais exemplos de como usar diferentes modelos


3) ollamma


Ollamma é uma biblioteca de código aberto que fornece acesso fácil a grandes modelos de linguagem como GPT-3. Aqui estão os detalhes sobre os requisitos do sistema, instalação e uso:

Requisitos de sistema:

  • Python 3.7 ou superior
  • Biblioteca de solicitações
  • Chave de API OpenAI válida

Instalação:

 pip install ollamma

Uso:

  1. Definir chave de API
 import os os.environ["OPENAI_API_KEY"] = "<YOUR_API_KEY>"
  1. Importe e crie o cliente
 from ollamma import Client client = Client()
  1. Gerar texto
 response = client.generate( engine="text-davinci-003", prompt="Hello world", max_tokens=100 ) print(response.generations[0].text)

O método generate permite que você especifique o mecanismo, o prompt e parâmetros como o máximo de tokens para configurar sua solicitação.

Você também pode ajustar mecanismos, moderar conteúdo e muito mais. Consulte a documentação do Ollamma para obter detalhes adicionais sobre todos os métodos disponíveis.

Resumindo: Ollamma torna muito fácil aproveitar o GPT-3 e outros modelos em apenas algumas linhas de código Python, uma vez instalado e configurado!


4) Estúdio LM


LM Studio é uma ferramenta de código aberto que agiliza o processo de treinamento, avaliação e uso local de modelos de linguagem de última geração. Aqui estão as etapas para executar o LM Studio localmente:


  1. Instalação:
    LM Studio requer Docker e Docker Compose. Para instalar:

a. Instale Docker Engine e Docker Compose em sua máquina
b. Clone o repositório GitHub do LM Studio:
git clone https://github.com/lm-studio/lm-studio.git


  1. Configuração:
    O LM Studio depende de arquivos de configuração na pasta config/ . Arquivos comuns incluem:

a. model.yaml : especifica arquiteturas de modelo
b. training.yaml : definir parâmetros de treinamento
c. evaluation.yaml : ajusta as configurações de avaliação


  1. Executando o LM Studio:
    A interface principal é via Docker Compose. Alguns comandos comuns:

a. Construir imagens: docker-compose build
b. Inicie todos os serviços: docker-compose up -d
c. Ver registros: docker-compose logs -f
d. Parar serviços: docker-compose down


Os serviços expõem várias portas que você pode usar para interagir com a UI, APIs, notebooks e muito mais.

Resumindo, o LM Studio agiliza a experimentação de modelos de linguagem local. Os usuários só precisam clonar o repositório, definir arquivos de configurações e usar comandos simples do Docker para começar a treinar, avaliar e usar modelos.


5) local


Acho que esta é a maneira mais conveniente e simples de todas. A explicação completa está no link abaixo:

https://cloud.google.com/blog/products/application-development/new-localllm-lets-you-develop-gen-ai-apps-locally-without-gpus

Resumido:

localllm combinado com Cloud Workstations revoluciona o desenvolvimento de aplicativos orientado por IA, permitindo que você use LLMs localmente na CPU e na memória no ambiente do Google Cloud. Ao eliminar a necessidade de GPUs, você pode superar os desafios impostos pela escassez de GPUs e desbloquear todo o potencial dos LLMs. Com produtividade aprimorada, eficiência de custos e segurança de dados aprimorada, o localllm permite criar aplicativos inovadores com facilidade


6) chama.cpp

Para instalar e usar o Llama.cpp para treinamento e inferência local, siga estas etapas:

Instale dependências:

 Python 3 CMake Optional (for GPU acceleration) NVIDIA drivers, CUDA, and cuDNN For Windows, use Visual Studio Community with Desktop C++ Environment and Python 3 Clone the repository:

git clone --recursive https://github.com/abetlen/llama-cpp-python.git Se você quiser usar aceleração de GPU, defina a variável de ambiente conforme descrito no repositório (por exemplo, no Linux):

 export CMAKE_ARGS="-DLLAMA_CUBLAS=ON" Install Llamma.cpp:

Para compilação local e compilação do sistema:

 cd llama-cpp-python pip install -e . For Windows, or if you want prebuilt binaries, consider the following: No GPU support: pip install llama-cpp-python[server]

Opcionalmente, para usar uma interface de alto nível, usando o comando:

 python -m llama_cpp.server --model models/7B/llama-model.gguf With GPU support: set FORCE_CMAKE=1 set CMAKE_ARGS=-DLLAMA_CUBLAS=ON pip install --upgrade --force-reinstall llama-cpp-python --no-cache-dir

Opcional, para Windows, para usar uma interface de alto nível:

 python -m llama_cpp.server --model "path/to/your/model" Download and place Llama models in the models/ subdirectory within the Llama.cpp repository if they are not included (models like llama-model.gguf or ggml-* files are available on Hugging Face or GGML).


Teste a instalação:


 The llama_cpp/llama_cpp.py script provides a simple high-level interface in Python. Replace llama-model.gguf with your downloaded Llama model to test inference. If you want to train your own Llama model, you'll need to train it according to the official documentation and manually convert the GGML files into GGUF files (for GPU deployment).



7) Oobagooba

Esta é uma implementação gradio de código aberto de um webui para gerar texto usando langchain.


Alguns trechos do arquivo README.md:

extensões de geração de texto-webui

Este é um diretório de extensões para https://github.com/oobabooga/text-generação-webui

Se você criar sua própria extensão, poderá enviá-la para esta lista em um PR.

memória de longo prazo

Uma extensão sofisticada que cria uma memória de longo prazo para bots no modo chat.

https://github.com/wawawario2/long_term_memory

AllTalk TTS

AllTalk é baseado no mecanismo Coqui TTS, semelhante à extensão Coqui_tts para webUI de geração de texto, porém suporta uma variedade de recursos avançados.

  • Configurações de inicialização personalizadas: ajuste suas configurações de inicialização padrão. Captura de tela
  • Narrador: Use vozes diferentes para o personagem principal e a narração. Narração de exemplo
  • Modo VRAM baixo: Ótimo para pessoas com pouca memória GPU ou se sua VRAM for preenchida por seu LLM. Captura de tela
  • DeepSpeed: Um aumento de desempenho de 3-4x gerando TTS. Instruções DeepSpeed Windows/Linux Captura de tela
  • Modelos locais/personalizados: use qualquer um dos modelos XTTSv2 (API Local e XTTSv2 Local).
  • Manutenção opcional de arquivos wav: exclusão configurável de arquivos wav de saída antigos. Captura de tela
  • Ajuste fino Treine o modelo especificamente na voz de sua escolha para obter melhor reprodução.
  • Documentação: Totalmente documentada com uma página da web integrada. Captura de tela
  • Saída do console Limpe a saída da linha de comando para quaisquer avisos ou problemas.
  • API Suite e suporte de terceiros por meio de chamadas JSON Pode ser usado com aplicativos de terceiros por meio de chamadas JSON.
  • Pode ser executado como um aplicativo independente. Não apenas dentro do webui de geração de texto.

https://github.com/erew123/alltalk_tts

EdgeGPT

Extensão para Webui de geração de texto baseada em EdgeGPT da acheong08, para acesso rápido à Internet para seu bot.

https://github.com/GiusTex/EdgeGPT

XTTSv2

Uma variante da extensão coqui_tts no repositório principal. Ambos usam o modelo XTTSv2, mas este possui um recurso de "narrador" para texto escrito *entre asteriscos*.

https://github.com/kanttouchthis/text_generação_webui_xtts

Playground para escritores

Esta extensão fornece um notebook avançado independente que estará sempre presente na guia superior. Possui muitos recursos não encontrados no notebook:

  • Dois Notebooks A e B independentes que estão sempre presentes, independente do modo
  • Instruir inline (capacidade de fazer perguntas ou dar tarefas dentro do próprio texto)
  • Selecionar e inserir - gera texto no meio do seu texto
  • Memória Perma, Resumo, Paráfrase
  • LoRA-Rama - mostra os pontos de verificação LoRA e a capacidade de alternar entre eles
  • Escala LoRA (experimental) - ajuste o impacto LoRA usando um sclider

https://github.com/FartyPants/Playground

E há muito mais para explorar: Confira:

https://github.com/oobabooga/text-generação-webui-extensions



Conclusão?


E tem mais! Muito mais! LangChain, llm, ollamma, a lista fica cada vez maior!

Este é um ano glorioso de bela criatividade. Saúde!