Criação e extração de intenção usando modelos de linguagem grandes

Em um artigo anterior, argumentei que uma abordagem centrada em dados deve ser seguida para projetar dados de treinamento NLU. Neste artigo, considero a criação e o uso de intents no contexto de Large Language Models (LLMs)

Introdução
Em um artigo anterior , raciocinei que, como acontece com a IA em geral, os modelos NLU também exigem uma abordagem centrada em dados para o design NLU . Melhorar o desempenho NLU exige que o foco mude do modelo NLU para os dados de treinamento.
As melhores práticas de NLU Design precisam ser seguidas, onde os dados não estruturados de conversação existentes são convertidos em dados de treinamento NLU estruturados.
Idealmente, o NLU Design não deve fazer uso de dados sintéticos ou gerados, mas de conversas reais com clientes.
A imagem abaixo mostra o processo que pode ser seguido para uma abordagem centrada em dados para detecção, criação e uso de intenção. Olhando com Embeddings …

1️⃣ Incorporações
A primeira etapa é usar dados de conversação ou de fala do usuário para criar incorporações, essencialmente grupos de sentenças semanticamente semelhantes.
Cada um desses agrupamentos constitui uma intenção, cada grupo precisa receber um rótulo que é o “nome da intenção”.
Leia o artigo abaixo para obter uma descrição detalhada da primeira etapa. ⬇️
Implementando IA centrada em dados para modelos NLU⭐️ Por favor, siga-me no LinkedIn para atualizações sobre Conversational AI ⭐️
2️⃣ Crie classificações
Assim que tivermos os agrupamentos/clusters de dados de treinamento, podemos iniciar o processo de criação de classificações ou intenções. Os termos “classes” e “intenções” serão usados indistintamente.
Para os fins deste artigo, farei uso do Cohere LLM.
A classificação pode ser feita por meio do endpoint de postagem de classificação do Cohere:
https://api.cohere.ai/classify
O corpo do texto de treinamento é classificado em uma das várias classes/intenções. O ponto de extremidade precisa apenas de alguns exemplos para criar um classificador aproveitando um modelo generativo.
O snippet de notebook do Colab abaixo mostra como instalar o Cohere SDK e como criar um cliente. Você precisará de uma chave API que pode ser obtida gratuitamente criando um login no site Cohere .

Por razões de otimização e velocidade, é melhor usar um modelo pequeno.
Depois de instalar o SDK e criar seu cliente, execute este código ⬇️ para criar as intenções.
Cada um com exemplos de treinamento…
from cohere.classify import Example
examples = [
Example("Do you offer same day shipping?", "Shipping and handling policy"),
Example("Can you ship to Italy?", "Shipping and handling policy"),
Example("How long does shipping take?", "Shipping and handling policy"),
Example("Can I buy online and pick up in store?", "Shipping and handling policy"),
Example("What are your shipping options?", "Shipping and handling policy"),
Example("My order arrived damaged, can I get a refund?", "Start return or exchange"),
Example("You sent me the wrong item", "Start return or exchange"),
Example("I want to exchange my item for another colour", "Start return or exchange"),
Example("I ordered something and it wasn't what I expected. Can I return it?", "Start return or exchange"),
Example("What's your return policy?", "Start return or exchange"),
Example("Where's my package?", "Track order"),
Example("When will my order arrive?", "Track order"),
Example("What's my shipping number?", "Track order"),
Example("Which carrier is my package with?", "Track order"),
Example("Is my package delayed?", "Track order")
]
Shipping and handling policy
Start return or exchange
Track order
⭐️ Por favor, siga-me no LinkedIn para atualizações sobre Conversational AI ⭐️
3️⃣ Extrair Classificação
O texto abaixo mostra as consultas, análogas às elocuções do usuário submetidas ao agente conversacional…
inputs=[" Am I still able to return my order?",
"When can I expect my package?",
"Do you ship overseas?",
]
( 1 ) As declarações de entrada ou consulta podem ser submetidas
( 2 ) As classificações são extraídas
( 3 ) os resultados impressos
Um trecho do caderno Colab mostrando os passos 1, 2 e 3 ⬇️

Os resultados:
[
"Classification<prediction":"Start return or exchange",
"confidence":0.9900205>,
"Classification<prediction":"Track order",
"confidence":0.99867964>,
"Classification<prediction":"Shipping and handling policy",
"confidence":0.9982495>
]
As intenções são muitas vezes negligenciadas e vistas como um passo insignificante na criação de um agente conversacional. Frameworks como Amelia, Oracle Digital Assistant e Yellow AI oferecem frases de treinamento geradas sinteticamente. Essa abordagem pode correr o risco de banalizar o processo de criação de intenção.
Dados sintéticos de treinamento podem ser suficientes como uma medida inicial, mas não servirão bem para criar uma solução sustentável de longo prazo. As melhores práticas de design e dados de NLU devem ser seguidas desde o início.
Além disso, essas frases de treinamento sintéticas são baseadas em intents e nomes de intents frequentemente “pensados” que provavelmente não estão alinhados com os intents de usuário existentes. E definitivamente não abordando a cauda longa da distribuição de intenção .
É hora de começarmos a considerar intenções como classificações de conversas existentes com clientes; um processo de desenvolvimento dirigido por intenção é necessário para implantações bem-sucedidas de assistentes digitais.

⭐️ Por favor, siga-me no LinkedIn para atualizações sobre Conversational AI ⭐️

Atualmente sou o Evangelista Chefe @ HumanFirst . Eu exploro e escrevo sobre todas as coisas na interseção de IA e linguagem; variando de LLMs , Chatbots , Voicebots , estruturas de desenvolvimento, espaços latentes centrados em dados e muito mais.




