Editar

Resumo da conversação

Azure AI services

A maioria das empresas fornece suporte de atendimento ao cliente para ajudar os clientes com consultas de produtos, solução de problemas e manutenção ou atualização de recursos ou do próprio produto. Para fornecer uma resolução satisfatória, os especialistas em suporte ao cliente precisam responder rapidamente com informações precisas. A OpenAI pode ajudar as organizações com suporte ao cliente de várias maneiras.

Este guia descreve como gerar resumos de interações cliente-agente usando o modelo GPT-3 do Azure OpenAI. Ele contém uma arquitetura de exemplo de ponta a ponta que ilustra os principais componentes envolvidos na obtenção de um resumo de uma entrada de texto. A geração da entrada de texto está fora do escopo deste guia. O foco deste guia é descrever o processo de implementação da sumarização de um conjunto de exemplos de conversas agente-cliente e analisar os resultados de várias abordagens para resumir.

Cenários de conversação

  • Chatbots self-service (totalmente automatizados). Nesse cenário, os clientes podem interagir com um chatbot alimentado pelo GPT-3 e treinado em dados específicos do setor. O chatbot pode entender as perguntas dos clientes e responder adequadamente com base nas respostas aprendidas a partir de uma base de conhecimento.
  • Chatbot com intervenção do agente (semi-automatizado). As questões colocadas pelos clientes são, por vezes, complexas e requerem a intervenção humana. Nesses casos, o GPT-3 pode fornecer um resumo da conversa entre o cliente e o chatbot e ajudar o agente com pesquisas rápidas de informações adicionais de uma grande base de conhecimento.
  • Resumo de transcrições (totalmente automatizado ou semi-automatizado). Na maioria dos centros de suporte ao cliente, os agentes são obrigados a resumir conversas para manutenção de registros, acompanhamento futuro, treinamento e outros processos internos. O GPT-3 pode fornecer resumos automatizados ou semi-automatizados que capturam detalhes salientes de conversas para uso posterior.

Este guia se concentra no processo para resumir transcrições usando o Azure OpenAI GPT-3.

Em média, um agente leva de 5 a 6 minutos para resumir uma única conversa agente-cliente. Dado o alto volume de solicitações que as equipes de serviço lidam em um determinado dia, essa tarefa adicional pode sobrecarregar a equipe. OpenAI é uma boa maneira de ajudar os agentes com atividades relacionadas à sumarização. Ele pode melhorar a eficiência do processo de suporte ao cliente e fornecer melhor precisão. O resumo da conversa pode ser aplicado a qualquer tarefa de suporte ao cliente que envolva interação agente-cliente.

Serviço de resumo de conversação

O resumo de conversas é adequado em cenários em que as conversas de suporte ao cliente seguem um formato de perguntas e respostas.

Alguns benefícios de usar um serviço de sumarização são:

  • Maior eficiência: Permite que os agentes de atendimento ao cliente resuma rapidamente as conversas com os clientes, eliminando a necessidade de longas trocas de ida e volta. Esta eficiência ajuda a acelerar a resolução dos problemas dos clientes.
  • Melhor atendimento ao cliente: os agentes podem usar resumos de conversas em interações futuras para encontrar rapidamente as informações necessárias para resolver com precisão as preocupações dos clientes.
  • Melhor compartilhamento de conhecimento: o resumo de conversas pode ajudar as equipes de atendimento ao cliente a compartilhar conhecimento umas com as outras de forma rápida e eficaz. Ele equipa as equipes de atendimento ao cliente com melhores resoluções e as ajuda a fornecer suporte mais rápido.

Arquitetura

Uma arquitetura típica para um resumidor de conversação tem três etapas principais: pré-processamento, sumarização e pós-processamento. Se a entrada contiver uma conversa verbal ou qualquer forma de discurso, a fala precisa ser transcrita para texto. Para obter mais informações, consulte Serviço de fala para texto do Azure.

Aqui está um exemplo de arquitetura:

Diagrama que mostra uma arquitetura para resumo de conversa.

Transfira um ficheiro PowerPoint desta arquitetura.

Fluxo de Trabalho

  1. Coletar dados de entrada: alimente dados de entrada relevantes no pipeline. Se a origem for um arquivo de áudio, você precisará convertê-lo em texto usando um serviço TTS (text to speech) como o texto em fala do Azure.
  2. Pré-processar os dados: remova informações confidenciais e qualquer conversa sem importância dos dados.
  3. Alimente os dados no resumidor: passe os dados em um prompt por meio das APIs do Azure OpenAI. Os modelos de aprendizagem no contexto incluem zero-shot, few-shot, ou um modelo personalizado.
  4. Gerar um resumo: o modelo gera um resumo da conversa.
  5. Pós-processamento dos dados: aplique um filtro de palavrões e várias verificações de validação ao resumo. Adicione dados confidenciais ou confidenciais que foram removidos durante a etapa de pré-processo de volta ao resumo.
  6. Avaliar os resultados: Rever e avaliar os resultados. Esta etapa pode ajudá-lo a identificar áreas onde o modelo precisa ser melhorado e encontrar erros.

As seções a seguir fornecem mais detalhes sobre as três etapas principais.

Pré-processo

O objetivo do pré-processamento é garantir que os dados fornecidos ao serviço de resumo sejam relevantes e não incluam informações confidenciais.

Aqui estão algumas etapas de pré-processamento que podem ajudar a condicionar seus dados brutos. Pode ser necessário aplicar uma ou várias etapas, dependendo do caso de uso.

  • Remova as informações de identificação pessoal (PII). Você pode usar a API de PII conversacional (visualização) para remover PII do texto transcrito ou escrito. Este exemplo mostra a saída depois que a API removeu a PII:

    Document text: Parker Doe has repaid all of their loans as of
          2020-04-25. Their SSN is 999-99-9999. To contact them, use 
          their phone number 555-555-0100. They are originally from 
          Brazil and have Brazilian CPF number 998.214.865-68 
    Redacted document text: ******* has repaid all of their
          loans as of *******. Their SSN is *******. To contact 
          them, use their phone number *******. They are originally from Brazil and have Brazilian CPF number 998.214.865-68
    
    ...Entity 'Parker Doe' with category 'Person' got redacted
    ...Entity '2020-04-25' with category 'DateTime' got redacted
    ...Entity '999-99-9999' with category 'USSocialSecurityNumber' got redacted
    ...Entity '555-555-0100' with category 'PhoneNumber' got redacted
    
  • Remova informações estranhas. Os agentes do cliente iniciam conversas com trocas casuais que não incluem informações relevantes. Um gatilho pode ser adicionado a uma conversa para identificar o ponto onde a preocupação ou pergunta relevante é abordada pela primeira vez. Remover essa troca do contexto pode melhorar a precisão do serviço de resumo porque o modelo é ajustado nas informações mais relevantes da conversa. O motor Curie GPT-3 é uma escolha popular para esta tarefa porque é treinado extensivamente, através de conteúdo da internet, para identificar este tipo de conversa casual.

  • Remova conversas excessivamente negativas. As conversas também podem incluir sentimentos negativos de clientes insatisfeitos. Você pode usar métodos de filtragem de conteúdo do Azure, como o Azure Content Moderator, para remover conversas que contenham informações confidenciais da análise. Como alternativa, a OpenAI oferece um endpoint de moderação, uma ferramenta que você pode usar para verificar se o conteúdo está em conformidade com as políticas de conteúdo da OpenAI.

Resumidor

O endpoint da API de conclusão de texto da OpenAI é chamado de ponto de extremidade de conclusão. Para iniciar o processo de preenchimento de texto, é necessário um prompt. A engenharia imediata é um processo usado em modelos de linguagem de grande porte. A primeira parte do prompt inclui instruções em linguagem natural ou exemplos da tarefa específica solicitada (neste cenário, resumo). Os prompts permitem que os desenvolvedores forneçam algum contexto para a API, o que pode ajudá-la a gerar preenchimentos de texto mais relevantes e precisos. Em seguida, o modelo conclui a tarefa prevendo o próximo texto mais provável. Esta técnica é conhecida como aprendizagem em contexto .

Nota

A sumarização extrativa tenta identificar e extrair informações salientes de um texto e agrupá-lo para produzir um resumo conciso sem entender o significado ou o contexto.

A sumarização abstrata reescreve um texto primeiro criando uma representação semântica interna e, em seguida, criando um resumo usando processamento de linguagem natural. Este processo envolve parafraseamento.

Existem três abordagens principais para modelos de treinamento para aprendizagem em contexto: zero-shot, few-shot e fine-tuning. Essas abordagens variam com base na quantidade de dados específicos da tarefa fornecidos ao modelo.

  • Zero-shot: Nesta abordagem, nenhum exemplo é fornecido para o modelo. A solicitação de tarefa é a única entrada. Na aprendizagem zero-shot, o modelo baseia-se em dados sobre os quais o GPT-3 já está treinado (quase todos os dados disponíveis da internet). Tenta relacionar a tarefa dada com categorias existentes sobre as quais já tomou conhecimento e responde em conformidade.

  • Poucas fotos: ao usar essa abordagem, você inclui um pequeno número de exemplos no prompt que demonstram o formato de resposta esperado e o contexto. O modelo é fornecido com uma quantidade muito pequena de dados de treinamento, normalmente apenas alguns exemplos, para orientar suas previsões. O treinamento com um pequeno conjunto de exemplos permite que o modelo generalize e compreenda tarefas relacionadas, mas inéditas. Criar esses exemplos de poucas imagens pode ser um desafio, porque eles precisam esclarecer a tarefa que você deseja que o modelo execute. Um problema comumente observado é que os modelos, especialmente os pequenos, são sensíveis ao estilo de escrita usado nos exemplos de treinamento.

    As principais vantagens dessa abordagem são uma redução significativa na necessidade de dados específicos da tarefa e um potencial reduzido para aprender uma distribuição excessivamente estreita a partir de um conjunto de dados de ajuste fino grande, mas estreito.

    Com essa abordagem, não é possível atualizar os pesos do modelo pré-treinado.

    Para obter mais informações, consulte Language Models are few shot learners.

  • Ajuste fino: O ajuste fino é o processo de adaptar modelos para obter um resultado desejado específico de seus próprios conjuntos de dados. Envolve a reciclagem de modelos sobre novos dados. Para obter mais informações, consulte Saiba como personalizar um modelo para seu aplicativo.

    Você pode usar esta etapa de personalização para melhorar seu processo:

    • Incluindo um conjunto maior de dados de exemplo.
    • Usando técnicas tradicionais de otimização com backpropagation para reajustar os pesos do modelo. Essas técnicas permitem resultados de maior qualidade do que as abordagens de tiro zero ou tiro reduzido fornecem por si só.
    • Melhorar a abordagem de aprendizagem de poucos tiros, treinando os pesos do modelo com prompts específicos e uma estrutura específica. Essa técnica permite que você obtenha melhores resultados em um número maior de tarefas sem a necessidade de fornecer exemplos no prompt. O resultado é menos texto enviado e menos tokens.

    As desvantagens incluem a necessidade de um grande conjunto de dados novo para cada tarefa, o potencial de má generalização fora da distribuição e a possibilidade de explorar recursos espúrios dos dados de treinamento, resultando em altas chances de comparação injusta com o desempenho humano.

    Criar um conjunto de dados para personalização de modelo é diferente de projetar prompts para uso com os outros modelos. Os prompts para chamadas de conclusão geralmente usam instruções detalhadas ou técnicas de aprendizado de poucas imagens e consistem em vários exemplos. Para ajuste fino, recomendamos que cada exemplo de treinamento consista em um único exemplo de entrada e sua saída desejada. Você não precisa fornecer instruções detalhadas ou exemplos no prompt.

    À medida que você aumenta o número de exemplos de treinamento, seus resultados melhoram. Recomendamos a inclusão de pelo menos 500 exemplos. É típico usar entre milhares e centenas de milhares de exemplos rotulados. Os testes indicam que cada duplicação do tamanho do conjunto de dados leva a um aumento linear na qualidade do modelo.

Este guia demonstra os motores curie-instruct/text-curie-001 e davinci-instruct/text-davinci-001. Esses mecanismos são atualizados com frequência. A versão que você usa pode ser diferente.

Pós-processo

Recomendamos que verifique a validade dos resultados obtidos a partir do GPT-3. Implemente verificações de validade usando uma abordagem programática ou classificadores, dependendo do caso de uso. Aqui estão algumas verificações críticas:

  • Verifique se nenhum ponto significativo foi perdido.
  • Verifique se existem imprecisões factuais.
  • Verifique se há algum viés introduzido pelos dados de treinamento usados no modelo.
  • Verifique se o modelo não altera o texto adicionando novas ideias ou pontos. Este problema é conhecido como alucinação.
  • Verifique se há erros gramaticais e ortográficos.
  • Use um filtro de palavrões de conteúdo, como o Moderador de Conteúdo, para garantir que nenhum conteúdo impróprio ou irrelevante seja incluído.

Por último, reintroduza qualquer informação vital que tenha sido anteriormente removida do resumo, como informação confidencial.

Em alguns casos, um resumo da conversa também é enviado ao cliente, juntamente com a transcrição original. Nestes casos, o pós-processamento envolve anexar a transcrição ao resumo. Também pode incluir a adição de frases de entrada como "Por favor, veja o resumo abaixo".

Considerações

É importante ajustar seus modelos básicos com um conjunto de dados de treinamento específico do setor e alterar o tamanho dos conjuntos de dados disponíveis. Os modelos ajustados têm melhor desempenho quando os dados de treinamento incluem pelo menos 1.000 pontos de dados e a verdade básica (resumos gerados por humanos) usada para treinar os modelos é de alta qualidade.

A contrapartida é o custo. O processo de rotulagem e limpeza de conjuntos de dados pode ser caro. Para garantir dados de treinamento de alta qualidade, talvez seja necessário inspecionar manualmente resumos de verdades básicas e reescrever resumos de baixa qualidade. Considere os seguintes pontos sobre a etapa de sumarização:

  • Engenharia rápida: Quando fornecido com pouca instrução, o Davinci geralmente tem um desempenho melhor do que outros modelos. Para otimizar os resultados, experimente diferentes prompts para diferentes modelos.
  • Tamanho do token: um resumidor baseado no GPT-3 é limitado a um total de 4.098 tokens, incluindo o prompt e a conclusão. Para resumir passagens maiores, separe o texto em partes que estejam de acordo com essas restrições. Resuma cada parte individualmente e, em seguida, colete os resultados em um resumo final.
  • Entrada de lixo, saída de lixo: os modelos treinados são tão bons quanto os dados de treinamento que você fornece. Certifique-se de que os resumos da verdade básica nos dados de treinamento sejam adequados às informações que você eventualmente deseja resumir em seus diálogos.
  • Ponto de parada: o modelo para de resumir quando atinge um ponto de parada natural ou uma sequência de parada que você fornece. Teste este parâmetro para escolher entre vários resumos e verificar se os resumos parecem incompletos.

Cenário de exemplo: resumindo transcrições em call centers

Este cenário demonstra como o recurso de resumo do Azure OpenAI pode ajudar os agentes de atendimento ao cliente com tarefas de resumo. Ele testa as abordagens zero-shot, few-shot, e fine-tuning e compara os resultados com resumos gerados por humanos.

O conjunto de dados usado neste cenário é um conjunto de conversas hipotéticas entre clientes e agentes no centro de suporte ao cliente do Xbox sobre vários produtos e serviços do Xbox. O bate-papo hipotético é rotulado com Prompt. O resumo abstrato escrito por humanos é rotulado com Conclusão.

Pedido Conclusão
Cliente: Pergunta sobre XAIL

Agente: Olá! Em que posso ajudar você?

Cliente: Olá, eu tenho uma pergunta sobre o anel insider de acessibilidade

Agente: Ok. Posso certamente ajudá-lo nesse sentido.

Cliente: Preciso de me inscrever no anel de pré-visualização para me juntar à liga de acessibilidade?

Agente: Não. Pode deixar a sua consola fora dos anéis do Xbox Preview e continuar a juntar-se à Liga. No entanto, tenha em atenção que algumas experiências disponibilizadas poderão exigir que adira a um anel Xbox Preview.

Cliente: Ok. E eu posso apenas me inscrever para o anel de visualização mais tarde, sim?

Agente: Isso está correto.

Cliente: Sweet.
O cliente quer saber se precisa se inscrever em anéis de visualização para participar da Xbox Accessibility Insider League. O agente responde que não é obrigatório, mas que algumas experiências podem exigi-lo.

Saída ideal. O objetivo é criar resumos que sigam este formato: "Cliente disse x. O agente respondeu y." Outro objetivo é capturar características marcantes do diálogo, como a reclamação do cliente, a resolução sugerida e as ações de acompanhamento.

Aqui está um exemplo de uma interação de suporte ao cliente, seguida por um resumo abrangente escrito por humanos:

Caixa de diálogo

Cliente: Olá. Tenho uma pergunta sobre o passe de jogo.

Agente: Olá. Como está hoje?

Cliente: Eu sou bom.

Agente. Vejo que você precisa de ajuda com o Xbox Game Pass.

Cliente: Sim. Eu queria saber por quanto tempo posso acessar os jogos depois que eles saem do passe de jogo.

Agente: Assim que um jogo sair do catálogo do Xbox Game Pass, terá de comprar uma cópia digital na aplicação Xbox para Windows ou na Microsoft Store, jogar a partir de um disco ou obter outra forma de direito para continuar a jogar o jogo. Lembre-se, o Xbox notificará os membros antes de um jogo sair do catálogo do Xbox Game Pass. E, como membro, você pode comprar qualquer jogo do catálogo por até 20% de desconto (ou o melhor preço com desconto disponível) para continuar jogando um jogo assim que ele sair do catálogo.

Cliente: Entendi, obrigado

Resumo da verdade fundamentada

O cliente quer saber por quanto tempo pode acessar os jogos depois de sair do Game Pass. O agente informa ao cliente que ele precisaria comprar o jogo para continuar tendo acesso.

Tiro zero

A abordagem zero-shot é útil quando você não tem dados de treinamento rotulados amplos. Neste caso, não há resumos de verdade de base suficientes. É importante projetar prompts cuidadosamente para extrair informações relevantes. O formato a seguir é usado para extrair resumos gerais de bate-papos do agente do cliente:

prefix = "Please provide a summary of the conversation below: "

suffix = "The summary is as follows: "

Aqui está um exemplo que mostra como executar um modelo de captura zero:

rouge = Rouge()
# Run zero-shot prediction for all engines of interest
deploymentNames = ["curie-instruct","davinci-instruct"] # also known as text-davinci/text-instruct
for deployment in deploymentNames:
url = openai.api_base + "openai/deployments/" + deployment + "/completions?api-version=2022-12-01-preivew"
response_list = []
rouge_list = []
print("calling..." + deployment)
for i in range(len(test)):
response_i = openai.Completion.create(
engine = deployment,
prompt = build_prompt(prefix, [test['prompt'][i]], suffix),
temperature = 0.0,
max_tokens = 400,
top_p = 1.0,
frequence_penalty = 0.5,
persence_penalty = 0.0,
stop=["end"] # We recommend that you adjust the stop sequence based on the dataset
)
scores = rouge.get_scores(normalize_text(response_i['choices'][ 0]['text']),test['completion'][i])
rouge_list += [scores[0]['rouge-1']['f']],
response_list += [response_i]
summary_list = [normalize_text(i['choices'][0]['text']) for i in response_list]
test[deployment + "_zeroshotsummary"] = summary_list
test[deployment + "_zeroshotroguescore"] = rouge_list

Resultados e observações

A saída do modelo zero-shot é produzida diretamente do modelo base. Neste caso, tanto Curie como Davinci resumem bastante bem o diálogo. A única diferença notável é que o modelo Curie fornece um pouco menos de detalhes. Curie começa o resumo com "O cliente pergunta ao agente sobre o passe de jogo Xbox". A frase correspondente na Davinci é "O cliente perguntou por quanto tempo eles poderiam acessar os jogos depois que saíssem do catálogo do passe de jogos do Xbox".

Caixa de diálogo

Cliente: Olá. Tenho uma pergunta sobre o passe de jogo.

Agente: Olá. Como vai isso?

Cliente: Eu sou bom.

Agente: Vejo que você precisa de ajuda com o Xbox Game Pass.

Cliente: Sim. Eu queria saber por quanto tempo posso acessar os jogos depois que eles saem do passe de jogo.

Agente: Assim que um jogo sair do catálogo do passe de jogos Xbox, terá de comprar uma cópia digital na aplicação Xbox para Windows ou na Microsoft Store, jogar a partir de um disco ou obter outra forma de direito para continuar a jogar o jogo. Lembre-se, o Xbox notificará os membros antes de um jogo sair do catálogo do Xbox Game Pass. E, como membro, você pode comprar qualquer jogo do catálogo por até 20% de desconto ou o melhor preço com desconto disponível para continuar jogando um jogo assim que ele sair do catálogo.

Verdade fundamental

O cliente quer saber por quanto tempo pode acessar os jogos depois de sair do Game Pass. O agente informa ao cliente que ele precisaria comprar o jogo para continuar tendo acesso.

Resultado Davinci

O cliente perguntou por quanto tempo eles poderiam acessar os jogos depois que eles saíssem do catálogo do passe de jogos do Xbox. O agente disse a eles que eles precisariam comprar uma cópia digital do jogo no aplicativo Xbox para Windows ou na loja da Microsoft para continuar jogando. O agente também lembrou ao cliente que eles seriam notificados antes de um jogo sair do catálogo do Xbox Game Pass. Como membro, o cliente pode comprar qualquer jogo do catálogo por até 20 de desconto ou o melhor preço com desconto disponível.

Resultado Curie

O cliente pergunta ao agente sobre o passe de jogo Xbox. o agente informa ao cliente que, assim que um jogo sair do catálogo do Xbox Game Pass, o cliente precisará comprar uma cópia digital do aplicativo Xbox para Windows ou da loja da Microsoft, jogar em um disco ou obter outra forma de direito para continuar jogando o jogo. O agente também lembra ao cliente que o Xbox notificará os membros antes de um jogo sair do catálogo do passe de jogos do Xbox.

Poucos tiros

Quando você usa a abordagem de poucas imagens , o modelo é fornecido com um pequeno número de exemplos.

context_primer = "Below are examples of conversations and their corresponding summaries:"

prefix = "Please provide a summary of the conversation below: "

suffix = "The summary is as follows: "

Aqui está um exemplo que mostra como executar um modelo de poucas fotos:

train_small = train[]
train_small_json = train_small.to_dict(orient='records')
compiled_train_prompt = build_prompt_fewshot(prefix,context_primer, train_small_json, suffix)

for deployment in deploymentNames:
url = openai.api_base + "openai/deployments/" + deployment + "/completions?api-version=2022-12-01-preivew"
response_list = []
rouge_list = []
print("calling..." + deployment)
for i in range(len(test)):
response_i = openai.Completion.create(
engine = deployment,
prompt = compiled_train_prompt+build_prompt(prefix, [test['prompt'][i]], suffix),
temperature = 0.0,
max_tokens = 400,
top_p = 1.0,
frequence_penalty = 0.5,
persence_penalty = 0.0,
stop=["end"] # We recommend that you adjust the stop sequence based on the dataset
)
scores = rouge.get_scores(normalize_text(response_i['choices'][ 0]['text']),test['completion'][i])
rouge_list += [scores[0]['rouge-1']['f']],
response_list += [response_i]
summary_list = [normalize_text(i['choices'][0]['text']) for i in response_list]
test[deployment + "_fewshot"] = summary_list
test[deployment + "_FSscore1"] = rouge_list

Resultados e observações

Com a abordagem de poucos tiros, os resumos continuam a capturar características marcantes da conversa. O resumo de Davinci é mais compacto e mais próximo da verdade básica. Curie fabrica alguns detalhes triviais.

Caixa de diálogo

Cliente: Olá. Tenho uma pergunta sobre o passe de jogo.

Agente: Olá. Como vai isso?

Cliente: Eu sou bom.

Agente: Vejo que você precisa de ajuda com o Xbox Game Pass.

Cliente: Sim. Eu queria saber por quanto tempo posso acessar os jogos depois que eles saem do passe de jogo.

Agente: Assim que um jogo sair do catálogo do Xbox Game Pass, terá de comprar uma cópia digital na aplicação Xbox para Windows ou na Microsoft Store, jogar a partir de um disco ou obter outra forma de direito para continuar a jogar o jogo. Lembre-se, o Xbox notificará os membros antes de um jogo sair do catálogo do Xbox Game Pass. E, como membro, você pode comprar qualquer jogo do catálogo por até 20% de desconto ou o melhor preço com desconto disponível para continuar jogando um jogo assim que ele sair do catálogo.

Verdade fundamental

O cliente quer saber por quanto tempo pode acessar os jogos depois de sair do Game Pass. O agente informa ao cliente que ele precisaria comprar o jogo para continuar tendo acesso.

Resultado Davinci

O cliente queria saber por quanto tempo poderia acessar os jogos depois de sair do Game Pass. O agente informa que, assim que um jogo sair do catálogo do Xbox Game Pass, o cliente precisará comprar uma cópia digital ou obter outra forma de direito para continuar jogando o jogo.

Resultado Curie

O cliente tem uma pergunta sobre o Game Pass. cliente é bom. O agente precisa de ajuda com o passe de jogo Xbox. O cliente pergunta por quanto tempo eles podem acessar os jogos depois que eles saem do catálogo do Game Pass. O agente informa que, assim que um jogo sair do catálogo do passe de jogos Xbox, o cliente precisará comprar uma cópia digital do aplicativo Xbox para Windows ou da loja da Microsoft, jogar a partir de um disco ou obter outra forma de direito para continuar jogando o jogo. cliente está feliz em ouvir isso e obrigado agente.

Ajuste

O ajuste fino é o processo de adaptar modelos para obter um resultado desejado específico de seus próprios conjuntos de dados.

Aqui está um exemplo de formato:

{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}

Resultados e observações

Os testes sugerem que um modelo Curie ajustado leva a resultados comparáveis aos de um modelo Davinci de poucas fotografias. Ambos os resumos capturam a pergunta do cliente e a resposta do agente sem capturar os detalhes sobre descontos e sem adicionar conteúdo. Ambos os resumos são semelhantes à verdade básica.

Caixa de diálogo

Cliente: Olá. Tenho uma pergunta sobre o passe de jogo.

Agente: Olá. Como vai isso?

Cliente: Eu sou bom.

Agente: Vejo que você precisa de ajuda com o Xbox Game Pass.

Cliente: Sim. Eu queria saber por quanto tempo posso acessar os jogos depois que eles saem do passe de jogo.

Agente: Assim que um jogo sair do catálogo do Xbox Game Pass, terá de comprar uma cópia digital na aplicação Xbox para Windows ou na Microsoft Store, jogar a partir de um disco ou obter outra forma de direito para continuar a jogar o jogo. Lembre-se, o Xbox notificará os membros antes de um jogo sair do catálogo do Xbox Game Pass. E, como membro, você pode comprar qualquer jogo do catálogo por até 20% de desconto ou o melhor preço com desconto disponível para continuar jogando um jogo assim que ele sair do catálogo.

Verdade fundamental

O cliente quer saber por quanto tempo pode acessar os jogos depois de sair do Game Pass. O agente informa ao cliente que ele precisaria comprar o jogo para continuar tendo acesso.

Resultado Curie

O cliente quer saber por quanto tempo pode acessar os jogos depois de sair do Game Pass. O agente explica que, assim que um jogo sair do catálogo do Xbox Game Pass, ele precisará comprar uma cópia digital do aplicativo Xbox para Windows ou da loja da Microsoft, jogar de um disco ou obter outra forma de direito para continuar jogando o jogo.

Conclusões

Geralmente, o modelo Davinci requer menos instruções para executar tarefas do que outros modelos, como o Curie. Davinci é mais adequado para resumir texto que requer uma compreensão do contexto ou linguagem específica. Como o Davinci é o modelo mais complexo, sua latência é maior do que a de outros modelos. Curie é mais rápido que Davinci e é capaz de resumir conversas.

Esses testes sugerem que você pode gerar melhores resumos quando fornecer mais instruções para o modelo por meio de poucas fotos ou ajustes finos. Os modelos ajustados são melhores em conformidade com a estrutura e o contexto aprendidos com um conjunto de dados de treinamento. Esta capacidade é especialmente útil quando os resumos são específicos do domínio (por exemplo, gerar resumos a partir de notas médicas ou apoio ao cliente de prescrição online). Se você usar o ajuste fino, terá mais controle sobre os tipos de resumos exibidos.

Para facilitar a comparação, aqui está um resumo dos resultados apresentados anteriormente:

Verdade fundamental

O cliente quer saber por quanto tempo pode acessar os jogos depois de sair do Game Pass. O agente informa ao cliente que ele precisaria comprar o jogo para continuar tendo acesso.

Resultado de tiro zero da Davinci

O cliente perguntou por quanto tempo eles poderiam acessar os jogos depois que eles saíssem do catálogo do passe de jogos do Xbox. O agente disse a eles que eles precisariam comprar uma cópia digital do jogo no aplicativo Xbox para Windows ou na loja da Microsoft para continuar jogando. O agente também lembrou ao cliente que eles seriam notificados antes de um jogo sair do catálogo do Xbox Game Pass. Como membro, o cliente pode comprar qualquer jogo do catálogo por até 20 de desconto ou o melhor preço com desconto disponível.

Resultado de tiro zero Curie

O cliente pergunta ao agente sobre o passe de jogo Xbox. o agente informa ao cliente que, assim que um jogo sair do catálogo do Xbox Game Pass, o cliente precisará comprar uma cópia digital do aplicativo Xbox para Windows ou da loja da Microsoft, jogar em um disco ou obter outra forma de direito para continuar jogando o jogo. O agente também lembra ao cliente que o Xbox notificará os membros antes de um jogo sair do catálogo do passe de jogos do Xbox.

Resultado de poucos tiros de Davinci

O cliente queria saber por quanto tempo poderia acessar os jogos depois de sair do Game Pass. O agente informa que, assim que um jogo sair do catálogo do Xbox Game Pass, o cliente precisará comprar uma cópia digital ou obter outra forma de direito para continuar jogando o jogo.

Resultado de poucas tiragens de Curie

O cliente tem uma pergunta sobre o Game Pass. cliente é bom. O agente precisa de ajuda com o passe de jogo Xbox. O cliente pergunta por quanto tempo eles podem acessar os jogos depois que eles saem do catálogo do Game Pass. O agente informa que, assim que um jogo sair do catálogo do passe de jogos Xbox, o cliente precisará comprar uma cópia digital do aplicativo Xbox para Windows ou da loja da Microsoft, jogar a partir de um disco ou obter outra forma de direito para continuar jogando o jogo. cliente está feliz em ouvir isso e obrigado agente.

Resultado do ajuste fino Curie

O cliente quer saber por quanto tempo pode acessar os jogos depois de sair do Game Pass. O agente explica que, assim que um jogo sair do catálogo do Xbox Game Pass, ele precisará comprar uma cópia digital do aplicativo Xbox para Windows ou da loja da Microsoft, jogar de um disco ou obter outra forma de direito para continuar jogando o jogo.

Avaliando a sumarização

Existem múltiplas técnicas para avaliar o desempenho de modelos de sumarização.

Aqui estão alguns:

ROUGE (Subestudo Orientado para Recall para Avaliação de Gisting). Esta técnica inclui medidas para determinar automaticamente a qualidade de um resumo, comparando-o com resumos ideais criados por seres humanos. As medidas contam o número de unidades sobrepostas, como n-gramas, sequências de palavras e pares de palavras, entre o resumo gerado por computador que está sendo avaliado e os resumos ideais.

Eis um exemplo:

reference_summary = "The cat ison porch by the tree"
generated_summary = "The cat is by the tree on the porch"
rouge = Rouge()
rouge.get_scores(generated_summary, reference_summary)
[{'rouge-1': {'r':1.0, 'p': 1.0, 'f': 0.999999995},
  'rouge-2': {'r': 0.5714285714285714, 'p': 0.5, 'f': 0.5333333283555556},
  'rouge-1': {'r': 0.75, 'p': 0.75, 'f': 0.749999995}}]

BertScore. Essa técnica calcula pontuações de semelhança alinhando resumos gerados e de referência em um nível de token. Os alinhamentos de token são calculados gananciosamente para maximizar a semelhança cosseno entre incorporações de token contextualizadas do BERT.

Eis um exemplo:

  import torchmetrics
  from torchmetrics.text.bert import BERTScore
  preds = "You should have ice cream in the summer"
  target = "Ice creams are great when the weather is hot"
  bertscore = BERTScore()
  score = bertscore(preds, target)
  print(score)

Matriz de semelhança. Uma matriz de semelhança é uma representação das semelhanças entre diferentes entidades na avaliação de sumarização. Pode utilizá-lo para comparar diferentes resumos do mesmo texto e medir a sua semelhança. É representado por uma grade bidimensional, onde cada célula contém uma medida da semelhança entre dois resumos. Você pode medir a semelhança usando uma variedade de métodos, como semelhança cosseno, semelhança Jaccard e distância de edição. Em seguida, use a matriz para comparar os resumos e determinar qual é a representação mais precisa do texto original.

Aqui está um comando de exemplo que gera a matriz de semelhança de uma comparação BERTScore de duas frases semelhantes:

bert-score-show --lang en -r "The cat is on the porch by the tree"
                          -c "The cat is by the tree on the porch"
                          -f out.png

A primeira frase, "O gato está na varanda junto à árvore", é referida como o candidato. A segunda frase é referida como a referência. O comando usa BERTScore para comparar as frases e gerar uma matriz.

Esta matriz a seguir exibe a saída gerada pelo comando anterior:

Diagrama que mostra uma matriz de similaridade.

Para obter mais informações, consulte SummEval: Reassessing Summarization Evaluation. Para obter um kit de ferramentas PyPI para resumo, consulte Summ-eval 0.892.

Utilização responsável

O GPT pode produzir excelentes resultados, mas você precisa verificar a saída quanto a vieses sociais, éticos e legais e resultados prejudiciais. Ao ajustar modelos, você precisa remover quaisquer pontos de dados que possam ser prejudiciais para o modelo aprender. Você pode usar o agrupamento vermelho para identificar quaisquer saídas prejudiciais do modelo. Você pode implementar esse processo manualmente e apoiá-lo usando métodos semi-automatizados. Você pode gerar casos de teste usando modelos de linguagem e, em seguida, usar um classificador para detetar comportamento prejudicial nos casos de teste. Finalmente, você deve realizar uma verificação manual dos resumos gerados para garantir que eles estejam prontos para serem usados.

Para obter mais informações, consulte Red Teaming Language Models with Language Models.

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Autor principal:

Outros contribuidores:

Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.

Próximos passos