Você escolheu servir seu próprio modelo de inteligência artificial! Agora, você precisa escolher como deseja servir esse modelo.
A maneira mais comum de acessar um modelo é através de API. Até o presente momento, acessar os LLMs nativamente usando a JVM não é algo muito comum, embora existam projetos como o ONNXRuntime trabalhando nesse problema. De modo geral, a maneira mais fácil de ter acesso aos modelos é através de APIs (rodando localmente ou um servidor) ou através de serviços especializados.
Serviços especializados
Os serviços especializados são, talvez, a forma mais fácil de começar a criar aplicações inteligentes, já que eles fornecem tudo pronto sem a necessidade de configurar um serviço, buscar modelos, etc. Eles também são uma opção interessante caso você não tenha acesso a hardware relativamente recente capaz de servidor os modelos.
Muitas empresas fornecem, através de assinaturas ou pacotes pré-pagos, a possibilidade de acessar os modelos através de APIs próprias.
Local ou servidor
Caso você prefira servir os modelos você mesmo, seja localmente na sua máquina, seja remotamente na cloud, você tem muitas opções para servir um modelo (SLM/LLM). Desde soluções mais escaláveis até opções voltadas para uso local ou restrito.
Ollama: uma ferramenta de código aberto
Uma das opções interessantes é o Ollama, uma ferramenta que facilita o trabalho de servir, importar e customizar diferentes modelos. Trabalhando com código aberto, o Ollama torna acessível o uso de diferentes modelos para testes e experimentações. Além disso, a API do Ollama é compatível com a da OpenAI (usada no ChatGPT), o que facilita a integração.
Uma das funcionalidades legais do Ollama é a facilidade de importar modelos diferentes e aplicar parâmetros customizados para ajustar o comportamento dos modelos.
De todas as ferramentas que eu uso para servir modelos, o Ollama é a que eu uso com mais frequência, por fornecer suporte a aceleração via GPU no MacOS e pela possibilidade de ajustar parâmetros dos modelos.
InstructLab: um projeto inovador
Outra opção é o InstructLab, um projeto que permite contribuir conhecimentos e habilidades para LLMs (do inglês large language models – grandes modelos de linguagem). O InstructLab aplica uma técnica inovadora chamada LAB (Large-scale Alignment for chatBots) que facilita a alinhamento dos modelos durante a fase de ajuste de instrução. Além disso, o InstructLab permite servir os modelos usando uma API compatível com a da OpenAI.
O InstructLab é particularmente interessante se você deseja criar aplicações inteligentes que dependem de modelos especializados ou com conhecimento específico, já que o InstructLab facilita bastante o trabalho de adicionar conhecimento nos modelos.
Podman AI Lab
O AI Lab do Podman provê uma maneira de acessar as LLMs através de containers de uma maneira bastante simples e prática. É a forma mais prática e limpa de acessar os modelos sem poluir muito o seu sistema. Se você usa MacOS, talvez não seja a melhor opção, já que não parece fornecer aceleração via GPU, tornando a inferência consideravelmente mais lenta.
Outras opções
Além do Ollama e do InstructLab, existem outras ferramentas que podem ser usadas para servir um modelo localmente. Algumas delas incluem:
- LM Studio: uma ferramenta proprietária que oferece soluções customizadas. É particularmente legal por ser um aplicativo desktop, tornando muito fácil baixar e testar modelos. Também conta com uma API compatível com a da OpenAI.
- vLLM e Kserve: ferramentas para soluções customizadas em maior escala.
Conclusão
Essas são apenas algumas das opções interessantes para servir seu próprio modelo localmente (tem muito mais). No próximo post eu vou falar um pouco sobre como escolher um modelo e algumas das opções disponíveis.
[…] que você escolheu como servir seu modelo, é hora de escolher qual modelo servir. Isso pode parecer intimidante, mas não […]