programa
Executar LLMs localmente: 7 métodos simples
O uso de modelos de linguagem grandes (LLMs) em sistemas locais está se tornando cada vez mais popular graças à maior privacidade, controle e confiabilidade. Às vezes, esses modelos podem ser ainda mais precisos e rápidos do que o ChatGPT.
Mostraremos sete maneiras de executar LLMs localmente com aceleração de GPU no Windows 11, mas os métodos abordados também funcionam no macOS e no Linux.
Estruturas de LLM que nos ajudam a executar LLMs localmente. Imagem de Abid Ali Awan.
Se você quiser aprender sobre LLMs do zero, um bom lugar para começar é este curso sobre Modelos de Aprendizagem de Grande Porte (LLMs).
Vamos começar explorando nossa primeira estrutura LLM.
1. GPT4All
O nomic-ai/gpt4all é uma estrutura LLM e um aplicativo de chatbot para todos os sistemas operacionais. Podemos executar os LLMs localmente e, em seguida, usar a API para integrá-los a qualquer aplicativo, como um assistente de codificação de IA no VSCode. Esse é o método mais simples e amigável para iniciantes de baixar e executar LLMs em seus computadores locais.
A. Fazer download do cliente
Baixe o instalador do repositório nomic-ai/gpt4all do GitHub. A escolha depende do sistema operacional que você tem - para este tutorial, escolhemos o Windows.
B. Baixando o modelo
Instale o pacote GPT4All selecionando as opções padrão. Quando iniciarmos o aplicativo GPT4All, você será solicitado a fazer o download do modelo de idioma antes de usá-lo. Faça o download de um modelo de sua escolha.
C. Selecionando o modelo
Quando o download estiver concluído, feche a página do modelo para acessar a interface de usuário do bate-papo.
Selecione o modelo que você baixou - escolhemos o Nous Hermes 2 Mistral DPO.
D. Geração de resposta
Se você tiver uma instalação CUDA, ela começará automaticamente a usar uma GPU para acelerar a geração de respostas. Caso contrário, e se você tiver uma GPU Nvidia, talvez queira instalar o CUDA Toolkit 12.4 primeiro.
Você pode usar o aplicativo da mesma forma que usa o ChatGPT on-line. Observe que ela é muito mais rápida do que a resposta típica do GPT-4.
E. Configurações do modelo
Você pode personalizar a resposta do modelo acessando as configurações e brincando com os parâmetros do modelo.
Também podemos conectar uma pasta local com os arquivos para obter uma resposta sensível ao contexto.
Além disso, podemos ativar o servidor de API para que qualquer aplicativo possa usar nosso modelo usando uma chave de API.
F. Acesso aos modelos da OpenAI
Você pode acessar os modelos GPT-3.5 e GPT-4 fornecendo a chave da API da OpenAI.
Precisamos acessar a página do modelo, rolar para baixo, fornecer a chave de API para o modelo GPT-4 e pressionar o botão de instalação.
Em seguida, selecionamos o modelo ChatGPT-4 na interface de usuário do chat.
Agora, podemos começar a usá-lo como se estivéssemos usando-o em nosso navegador.
Vamos passar para nosso próximo LLM. Este tutorial sobre a classificação do LLM ajudará você a escolher o melhor LLM para a sua candidatura.
2. LM Studio
O LM Studio oferece opções semelhantes às do GPT4All, mas não permite que você conecte uma pasta local para gerar respostas com reconhecimento de contexto.
A. Instalação
Você pode fazer o download do instalador na página inicial do LM Studio.
Quando o download estiver concluído, instalaremos o aplicativo com as opções padrão.
Por fim, lançamos o LM Studio!
B. Baixando o modelo
Você pode fazer download de qualquer modelo do Hugging Face usando a função de pesquisa.
No nosso caso, faremos o download do menor modelo, o Gemma 2B Instruct do Google.
C. Gerando a resposta
Podemos selecionar o modelo baixado no menu suspenso na parte superior e conversar com ele como de costume. O LM Studio oferece mais opções de personalização do que o GPT4All.
D. Servidor de inferência local
Como o GPT4All, podemos personalizar o modelo e iniciar o servidor de API com um clique. Para acessar o modelo, podemos usar o pacote Python da API da OpenAI, CURL, ou integrá-lo diretamente a qualquer aplicativo.
E. Uso de vários modelos
O principal recurso do LM Studio é que ele oferece a opção de executar e servir vários modelos ao mesmo tempo. Isso permite que os usuários comparem diferentes resultados de modelos e os utilizem em várias aplicações. Para executar várias sessões de modelo, precisamos de uma VRAM de GPU alta.
O ajuste fino é outra maneira de gerar respostas personalizadas e sensíveis ao contexto. Você pode aprender a fazer o ajuste fino do modelo do Google Gemma seguindo o tutorial Fine Tuning Google Gemma: Aprimorando os LLMs com instruções personalizadas. Você aprenderá a executar a inferência em GPUs/TPUs e a ajustar o modelo Gemma 7b-it mais recente em um conjunto de dados de role-play.
3. Jan
Um dos aplicativos locais de LLM mais populares e de melhor aparência é o Jan. É mais rápido do que qualquer aplicativo LLM local - gera uma resposta a 53,26 tokens/segundo. Para fins de comparação, a taxa do GPT4All é de 31 tokens/seg.
A. Instalação
Você pode fazer o download do instalador em Jan.ai.
Depois de instalarmos o aplicativo Jan com as configurações padrão, estamos prontos para iniciar o aplicativo.
B. Importando o modelo
Quando abordamos o GPT4All e o LM Studio, já fizemos o download de dois modelos. Em vez de fazer o download de outro, importaremos os que já temos, acessando a página do modelo e clicando no botão Importar modelo.
Em seguida, vamos para o diretório de aplicativos, selecionamos os modelos GPT4All e LM Studio e importamos cada um deles.
- GPT4All: "C:/Users/<user_name>/AppData/Local/nomic.ai/GPT4All/"
- Estúdio LM: "C:/Users/<user_name>/.cache/lm-studio/models"
C. Acessando os modelos locais
Para acessar os modelos locais, vamos para a interface de usuário do chat e abrimos a seção de modelos no painel direito.
Vemos que nossos modelos importados já estão lá. Você pode selecionar o que quiser e começar a usá-lo imediatamente!
D. Gerando a resposta
A geração de respostas é muito rápida. A interface do usuário parece natural, semelhante ao ChatGPT, e não deixa seu laptop ou PC lento.
O recurso exclusivo do Jan é que ele nos permite instalar extensões e usar modelos proprietários da OpenAI, MistralAI, Groq, TensorRT e Triton RT.
E. Servidor de API local
Assim como o LM Studio e o GPT4All, também podemos usar o Jan como um servidor de API local. Ele oferece mais recursos de registro e controle sobre a resposta do LLM.
4. llama.cpp
Outra estrutura LLM de código aberto popular é a llama.cpp. Ele é escrito exclusivamente em C/C++, o que o torna rápido e eficiente.
Muitos aplicativos de IA locais e baseados na Web são baseados no llama.cpp. Portanto, aprender a usá-lo localmente dará a você uma vantagem na compreensão de como outros aplicativos LLM funcionam nos bastidores.
A. Baixando o llama.cpp
Primeiro, precisamos ir para o diretório do nosso projeto usando o comando cd
no shell - você pode saber mais sobre o terminal neste curso de Introdução ao Shell.
Em seguida, clonamos todos os arquivos do servidor GitHub usando o comando abaixo:
$ git clone --depth 1 https://github.com/ggerganov/llama.cpp.git
B. Usando o MakeFile no Windows
A ferramenta de linha de comando make
está disponível por padrão no Linux e no MacOS. No entanto, para o Windows, precisamos executar as seguintes etapas:
- Faça o download da versão mais recente do w64devkit Fortran do w64devkit para Windows.
- Extraia o w64devkit em nosso diretório local.
- Na pasta principal, você precisa localizar o arquivo w64devkit.exe e executá-lo.
- Use o comando
$ cd C:/Repository/GitHub/llama.cpp
para acessar a pasta llama.cpp. - Digite
$ make
e pressione Enter para instalar o llama.cpp.
B. Iniciando o servidor WebUI do llama.cpp
Depois de concluir a instalação, executamos o servidor da interface do usuário da Web llama.cpp digitando o comando abaixo. (Observação: Copiamos o arquivo de modelo da pasta GPT4All para a pasta llama.cpp para que você possa acessar facilmente o modelo).
$ ./server -m Nous-Hermes-2-Mistral-7B-DPO.Q4_0.gguf -ngl 27 -c 2048 --port 6589
O servidor da Web está sendo executado em http://127.0.0.1:6589/. Você pode copiar esse URL e colá-lo no navegador para acessar a interface da Web llama.cpp.
Antes de interagir com o chatbot, devemos modificar as configurações e os parâmetros do modelo.
Confira este tutorial do llama.cpp se você quiser saber mais!
D. Gerando a resposta
A geração de resposta é lenta porque a executamos na CPU, não na GPU. Precisamos instalar uma versão diferente do llama.cpp para executá-lo na GPU.
$ make LLAMA_CUDA=1
5. llamafile
Se você achar o llama.cpp um pouco complexo demais, tente o llamafile. Essa estrutura simplifica os LLMs para desenvolvedores e usuários finais, combinando o llama.cpp com a Cosmopolitan Libc em um único arquivo executável. Ele elimina todas as complexidades associadas aos LLMs, tornando-os mais acessíveis.
A. Baixando o arquivo de modelo
Você pode fazer o download do arquivo de modelo que deseja no repositório GitHub do llamafile.
Faremos o download do LLaVA 1.5 porque ele também pode entender imagens.
B. Fazendo alterações no Windows
Os usuários do Windows devem adicionar .exe aos nomes dos arquivos no terminal. Para fazer isso, clique com o botão direito do mouse no arquivo baixado e selecione Renomear.
C. Executando o LlamaFile
Primeiro, vamos para o diretório llamafile usando o comando cd
no terminal. Em seguida, executamos o comando abaixo para iniciar o servidor da Web llama.cpp.
$ ./llava-v1.5-7b-q4.llamafile -ngl 9999
O servidor da Web usa a GPU sem exigir que você instale ou configure nada.
Ele também iniciará automaticamente o navegador da Web padrão com o aplicativo da Web llama.cpp em execução. Se não for o caso, podemos usar o URL http://127.0.0.1:8080/ para acessá-lo diretamente.
D. Gerando a resposta
Depois de definirmos a configuração do modelo, podemos começar a usar o aplicativo Web.
Executar o llama.cpp usando o llamafile é mais fácil e mais eficiente. Geramos a resposta com 53,18 tokens/seg (sem o llamafile, a taxa foi de 10,99 tokens/seg).
6. Ollama
O Ollama é uma ferramenta que nos permite acessar facilmente os LLMs terminais, como o Llama 3, o Mistral e o Gemma.
Além disso, vários aplicativos aceitam uma integração com o Ollama, o que o torna uma excelente ferramenta para acesso mais rápido e fácil aos modelos de linguagem em nossa máquina local.
A. Instalação do Ollama
Você pode fazer o download do Ollama na página de download.
Depois de instalá-lo (use as configurações padrão), o logotipo do Ollama aparecerá na bandeja do sistema.
B. Corrida de Ollama
Você pode fazer o download do modelo Llama 3 digitando o seguinte comando no terminal:
$ ollama run llama3
O Llama 3 já está pronto para ser usado! Abaixo, você verá uma lista de comandos que precisará usar se quiser usar outros LLMs:
C. Execução de modelos personalizados
Para acessar os modelos que já foram baixados e estão disponíveis na pasta llama.cpp, precisamos:
- Vá para a pasta llama.cpp usando o comando
cd
.
$ cd C:/Repository/GitHub/llama.cpp
- Crie um nome de arquivo chamado
Modelfile
e adicione a linha"FROM ./Nous-Hermes-2-Mistral-7B-DPO.Q4_0.gguf"
.
$ echo "FROM ./Nous-Hermes-2-Mistral-7B-DPO.Q4_0.gguf" > Modelfile
- Crie o modelo fornecendo o nome do modelo.
$ ollama create NHM-7b -f Modelfile
- Execute o modelo NHM-7b.
$ ollama run NHM-7b
- Use-o como qualquer outro aplicativo de bate-papo.
Com esse método, você pode fazer download de qualquer LLM do Hugging Face com a extensão .gguf e usá-lo no terminal. Se você quiser saber mais, confira este curso sobre como trabalhar com Hugging Face.
7. NextChat
O NextChat, anteriormente conhecido como ChatGPT-Next-Web, é um aplicativo de chat que nos permite usar o GPT-3, o GPT-4 e o Gemini Pro por meio de uma chave de API.
Ele também está disponível na interface do usuário da Web e podemos até mesmo implantar nossa própria instancia da Web com um clique no Vercel.
Você pode saber mais sobre o NextChat seguindo esta introdução detalhada ao ChatGPT Next Web (NextChat).
A. Instalação
Você pode fazer o download do instalador no repositório do GitHub. No Windows, selecione o arquivo .exe.
Como antes, instalaremos o pacote usando as configurações padrão.
B. Configurando a chave da API
O aplicativo NextChat não será executado até que você adicione uma chave de API do Google AI ou OpenAI.
Para obter a chave de API do Google AI, você precisa acessar a API do Gemini e clicar no botão azul Get API key no Google AI Studio.
Depois disso, precisamos clicar no botão Get API key e, em seguida, criar e copiar a chave da API. É gratuito, sem limitação de tokens.
Quando tivermos a chave de API, navegaremos até as configurações do NextChat e rolaremos para baixo até a seção Model Provider (Provedor de modelo ). Selecionamos o Google como o provedor de modelos e colamos a chave da API no campo designado.
C. Gerando a resposta
Na página principal da interface do usuário do bate-papo, clique no botão do robô (🤖) acima da entrada do bate-papo e selecione o modelo gemini-pro.
Usamos o Google Gemini localmente e temos controle total sobre a personalização. Os dados do usuário também são salvos localmente.
Da mesma forma, podemos usar a chave da API da OpenAI para acessar os modelos GPT-4, usá-los localmente e economizar na taxa de assinatura mensal.
Conclusão
Instalar e usar LLMs localmente pode ser uma experiência divertida e empolgante. Podemos experimentar os modelos de código aberto mais recentes por conta própria, desfrutar de privacidade, controle e uma experiência de bate-papo aprimorada.
O uso de LLMs localmente também tem aplicações práticas, como a integração com outros aplicativos usando servidores de API e a conexão de pastas locais para fornecer respostas com reconhecimento de contexto. Em alguns casos, é essencial usar LLMs localmente, especialmente quando a privacidade e a segurança são fatores críticos.
Você pode saber mais sobre LLMs e criação de aplicativos de IA seguindo estes recursos:
Construa sua carreira em IA com a DataCamp!
curso
Large Language Models for Business
curso
AI Ethics
blog
Os prós e contras de usar LLMs na nuvem versus executar LLMs localmente
blog
12 projetos de LLM para todos os níveis
blog
8 principais LLMs de código aberto para 2024 e seus usos
tutorial
Guia de Introdução ao Ajuste Fino de LLMs
Josep Ferrer
12 min
tutorial