Integrar Modelos Locais Implantados pelo LocalAI
O LocalAI é uma API REST substituta compatível com as especificações da API OpenAI para inferência local. Ele permite que você execute LLMs (e não apenas) localmente ou on-premises com hardware de consumo, suportando várias famílias de modelos compatíveis com o formato ggml. Não requer GPU.
O Paragraph permite a integração com o LocalAI para implantação local de capacidades de inferência de grandes modelos de linguagem e de embeddings.
Implantando o LocalAI
Iniciando o LocalAI
Você pode se referir ao guia oficial de Introdução para a implantação, ou integrar rapidamente seguindo os passos abaixo:
(Estes passos são derivados do exemplo de consulta de dados do LocalAI)
Primeiro, clone o repositório de código do LocalAI e navegue até o diretório especificado.
$ git clone https://github.com/go-skynet/LocalAI
$ cd LocalAI/examples/langchain-chromaBaixe os modelos de exemplo de LLM e de Embeddings.
$ wget https://huggingface.co/skeskinen/ggml/resolve/main/all-MiniLM-L6-v2/ggml-model-q4_0.bin -O models/bert
$ wget https://gpt4all.io/models/ggml-gpt4all-j.bin -O models/ggml-gpt4all-jAqui, escolhemos dois modelos menores que são compatíveis em todas as plataformas. O ggml-gpt4all-j serve como o modelo LLM padrão, e o all-MiniLM-L6-v2 serve como o modelo de Embeddings padrão, para implantação rápida local.
Configure o arquivo .env.
$ mv .env.example .envNOTA: Certifique-se de que o valor da variável THREADS no arquivo .env não exceda o número de núcleos de CPU da sua máquina.
Inicie o LocalAI.
# inicie com docker-compose
$ docker-compose up -d --build
# veja os logs & espere até a construção ser concluída
$ docker logs -f langchain-chroma-api-1
7:16AM INF Iniciando LocalAI usando 4 threads, com o caminho dos modelos: /models
7:16AM INF Versão do LocalAI: v1.24.1 (9cc8d9086580bd2a96f5c96a6b873242879c70bc)O endpoint da API de requisição do LocalAI estará disponível em http://127.0.0.1:8080.
E ele fornece dois modelos, a saber:
- Modelo LLM: ggml-gpt4all-j
- Nome de acesso externo: gpt-3.5-turbo (Este nome é personalizável e pode ser configurado em models/gpt-3.5-turbo.yaml).
- Modelo de Embedding: all-MiniLM-L6-v2
- Nome de acesso externo: text-embedding-ada-002 (Este nome é personalizável e pode ser configurado em models/embeddings.yaml).
Se você usar o método de implantação do Paragraph via Docker, precisa prestar atenção à configuração da rede para garantir que o contêiner do Paragraph possa acessar o endpoint do LocalAI. O contêiner do Paragraph não pode acessar o localhost internamente, sendo necessário usar o endereço IP do host.
Integre os modelos no Paragraph.
Vá para Configurações > Provedores de Modelos > LocalAI e preencha:
- Modelo 1: ggml-gpt4all-j
- Tipo de Modelo: Geração de Texto
- Nome do Modelo: gpt-3.5-turbo
- URL do Servidor: http://127.0.0.1:8080
Se o Paragraph estiver implantado via Docker, preencha o domínio do host: http://<seu-domínio-endpoint-do-LocalAI>:8080, que pode ser um endereço IP da LAN, como: http://192.168.1.100:8080.
Clique em "Salvar" para usar o modelo no aplicativo.
- Modelo 2: all-MiniLM-L6-v2
- Tipo de Modelo: Embeddings
- Nome do Modelo: text-embedding-ada-002
- URL do Servidor: http://127.0.0.1:8080
Se o Paragraph estiver implantado via Docker, preencha o domínio do host: http://<seu-domínio-endpoint-do-LocalAI>:8080, que pode ser um endereço IP da LAN, como: http://192.168.1.100:8080.
Clique em "Salvar" para usar o modelo no aplicativo.