Classificação

A classificação de texto zero-shot é uma técnica revolucionária que permite rotular textos sem a necessidade de treinar um classificador em um conjunto de dados específico. Em vez de coletar exemplos para cada categoria desejada, você fornece o modelo com um trecho de texto e uma lista de rótulos possíveis. O modelo então decide qual rótulo se encaixa melhor com base em sua compreensão geral da linguagem. Isso torna a classificação zero-shot especialmente útil quando você deseja testar uma ideia rapidamente, trabalhar com conjuntos de rótulos em constante mudança ou criar um protótipo leve antes de investir em treinamento supervisionado. Em vez de aprender um mapeamento fixo de texto para IDs de rótulos, o modelo usa a linguagem em si para raciocinar sobre o que cada rótulo significa.

Neste guia, entenderemos a ideia principal por trás da classificação zero-shot e executaremos exemplos práticos usando o modelo facebook/bart-large-mnli. A ideia central por trás da classificação zero-shot é que o modelo não trata os rótulos como simples nomes de categorias. Em vez disso, ele transforma cada rótulo em uma declaração curta e natural e verifica se essa declaração é apoiada pelo texto de entrada. Isso torna a classificação zero-shot especialmente útil em situações práticas onde você deseja classificar textos rapidamente sem coletar e rotular dados de treinamento primeiro, como encaminhar tickets de suporte, marcar artigos, detectar intenções de usuário ou organizar documentos internos. Por exemplo, suponha que o texto de entrada seja: “Eu preciso de ajuda com meu pedido de compra”. E os rótulos candidatos sejam: “Suporte ao cliente”, “Problema de pagamento”, “Reembolso”. O modelo conceitualmente transforma esses rótulos em declarações como: “O texto é sobre suporte ao cliente”, “O texto é sobre problema de pagamento”, “O texto é sobre reembolso”. Em seguida, compara o texto original com cada uma dessas declarações e pontua quão bem elas se encaixam. O rótulo com a pontuação mais forte é classificado como o mais provável.

A mesma ideia pode ser aplicada a muitas tarefas reais. Em vez de rótulos de tópico amplo, uma empresa pode usar rótulos como “Problema de fatura”, “Suporte técnico” ou “Solicitação de reembolso” para mensagens de serviço ao cliente, ou “Spam”, “Assédio” e “Seguro” para sistemas de moderação. Portanto, a mudança importante é que a classificação zero-shot não é tratada como um problema de classificação tradicional. É tratada mais como um problema de raciocínio sobre se uma descrição de rótulo se encaixa no texto. É por isso que funciona bem para prototipagem rápida, tarefas de baixo recurso e domínios onde os dados rotulados ainda não existem. É por isso que a redação é importante. Um rótulo como “Problema de fatura” geralmente funciona melhor do que um rótulo vago como “Dinheiro”, porque o modelo tem mais significado semântico para trabalhar. Em casos reais, rótulos mais claros geralmente levam a melhor desempenho, seja classificando tópicos de notícias, intenções de cliente, categorias de moderação ou fluxos de trabalho de negócios.

Nesta seção, aprenderemos como carregar um classificador zero-shot, executar um exemplo básico, testar previsões de multi-rótulos e melhorar os resultados com um modelo de hipótese personalizado. Primeiro, instale as bibliotecas necessárias. Em seguida, carregue o pipeline. Aqui, o pipeline fornece uma maneira fácil de usar um modelo pré-treinado zero-shot sem escrever código de inferência de nível inferior. O modelo usado aqui, facebook/bart-large-mnli, é comumente usado para classificação zero-shot porque é treinado para determinar se um trecho de texto apoia outro. Vamos começar com um exemplo básico. O modelo seleciona o rótulo que melhor se encaixa no significado do texto. Como a sentença discute modelos de transformador e processamento de linguagem natural, tecnologia é o encaixe semântico mais forte entre os rótulos candidatos.

Às vezes, um texto pertence a mais de uma categoria. Nesse caso, você pode habilitar a opção multi-rótulo. Isso é útil quando vários rótulos podem ser aplicados ao mesmo texto de entrada. Neste exemplo, a sentença não é apenas sobre tecnologia, mas também sobre saúde e negócios, então o modelo atribui pontuações fortes a todos os três rótulos. Você também pode alterar o modelo de hipótese. O pipeline usa uma frase padrão internamente, mas um modelo mais claro ou natural às vezes pode melhorar os resultados. Isso é especialmente útil quando seus rótulos são mais específicos para uma tarefa real. Um bom modelo de hipótese fornece ao modelo uma declaração mais clara para avaliar, o que pode melhorar como o modelo se encaixa no texto ao rótulo pretendido.

A classificação de texto zero-shot é poderosa porque remove a necessidade de treinamento de classificador específico de tarefa em muitos fluxos de trabalho de estágio inicial. Em vez de coletar dados rotulados imediatamente, você pode muitas vezes obter resultados úteis simplesmente escolhendo rótulos claros e deixando o modelo raciocinar sobre eles. A ideia-chave é direta: o modelo não está prevendo rótulos no sentido usual de classificador. Está verificando se cada rótulo, escrito como uma declaração natural, é apoiado pelo texto de entrada. Isso torna a classificação zero-shot uma ferramenta valiosa para qualquer pessoa que precise classificar textos rapidamente sem a necessidade de um grande conjunto de dados rotulados. Além disso, a capacidade de trabalhar com rótulos claros e concisos torna a classificação zero-shot uma opção atraente para aplicações em que a velocidade e a flexibilidade são fundamentais.

Em resumo