Usando Scikit-LLM com LLMs de código aberto


Neste artigo, você aprenderá como usar modelos de linguagem hospedados localmente por meio do Ollama para realizar tarefas de classificação de texto, tudo isso sem gastar um centavo em chamadas de API.

Os tópicos que cobriremos incluem:

  • Como instalar o Ollama e extrair modelos de código aberto como Llama 3, Mistral e Gemma para rodar localmente em sua máquina.
  • Como configurar a biblioteca Scikit-LLM para rotear solicitações para um endpoint native do Ollama em vez de uma API de nuvem paga.
  • Como construir um classificador de texto zero-shot usando um modelo de linguagem native grande e scikit-LLM em um fluxo de trabalho acquainted no estilo scikit-learn.
Usando Scikit-LLM com LLMs de código aberto

Usando Scikit-LLM com LLMs de código aberto

Introdução

Este artigo irá ensiná-lo a realizar uma tarefa de linguagem, como classificação de texto, integrando grandes modelos de linguagem (LLMs) de tamanho gerenciável hospedados localmente, como Mistral, Gemma e Llama 3: tudo de graça, graças a Ollama — um repositório gratuito para LLMs locais — e o Scikit-LLM Biblioteca Python.

Pré-requisito: Instalando o Ollama

Recomenda-se usar um IDE para executar este tutorial, pois precisaremos interagir com sua versão do Ollama instalada localmente a partir daí. Novo em Ollama? Então eu recomendo que você verifique este artigo sair primeiro. No entanto, aqui está um resumo do que fazer no terminal de linha de comando native para baixar um LLM native após a instalação Ollama no seu computador.

Depois de ver a janela de interação do modelo no terminal, você pode digitar “/bye” para mantê-lo funcionando em segundo plano, aguardando chamadas de API. Enquanto isso, em um projeto recém-criado em seu IDE Python, você precisará ter as seguintes bibliotecas instaladas:

Se você encontrar um erro “Módulo não encontrado” ao executar o código Python, tente instalar as dependências acima uma por uma.

OK! É hora de preencher nosso arquivo de código Python (nomeie-o como desejar!), passo a passo. Primeiro, claro, vêm as importações. Uma delas é a aula ZeroShotGPTClassifier. Semelhante ao scikit-learn clássico, esta é uma aula dedicada ao treinamento e ao uso de um modelo para classificação zero-shot: concretamente, um LLM da Ollama.

A seguir, precisamos aplicar algumas configurações específicas para podermos nos comunicar com o Ollama.

Depois disso, criamos um pequeno conjunto de dados e o preparamos para classificação. Como não avaliaremos o desempenho de classificação do modelo neste tutorial — nosso objetivo principal é aprender como usar o Scikit-LLM localmente com modelos de código aberto como aqueles disponíveis através do Ollama — não precisamos de um grande número de exemplos de dados.

O conjunto de dados contém avaliações de usuários e suas categorias correspondentes, por exemplo, tipos de consultas ou comentários de clientes. Também fizemos uma divisão de treinamento/teste como de costume com modelagem de aprendizado de máquina.

Na próxima parte do código, adicionamos as instruções necessárias para inicializar e executar nosso classificador, que será em sua essência uma instância de execução adaptada à tarefa de um de nossos modelos Ollama instalados, como o Llama 3:

Para finalizar, imprimimos algumas saídas que consistem em alguns resultados de inferência de modelo (previsões de classificação) nos dois exemplos contidos no conjunto de teste. Este é um conjunto de dados muito pequeno, mas o objetivo aqui é mostrar como conseguimos vincular o Scikit-LLM a um modelo Ollama native e gratuito para usar um LLM com elegância para uma tarefa específica sem nenhum custo!

O resultado (pode variar dependendo dos exemplos de teste):

Alternativamente, você pode executar seu script Python em seu terminal. Por exemplo, se você nomeou local_classification.pyexecute este comando:

De qualquer forma, se você seguiu todas as etapas, deverá fazê-lo funcionar. Bom trabalho!

Concluindo

Este artigo ilustrou como trocar modelos gratuitos executados localmente servidos por meio do Ollama, como Llama, Mistral ou Gemma — tudo de graça e em algumas etapas fáceis — graças à biblioteca Scikit-LLM do Python, que permite o uso de LLMs de ponta em um fluxo de trabalho clássico acquainted de aprendizado de máquina.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *