Resumen de conversación

Servicios de Azure AI

La mayoría de las empresas proporcionan soporte de servicio al cliente para ayudar a los clientes con las consultas de productos, la solución de problemas y el mantenimiento o actualización de características o del propio producto. Para proporcionar una resolución satisfactoria, los especialistas de atención al cliente deben responder rápidamente y con información precisa. OpenAI puede ayudar a las organizaciones con soporte técnico al cliente de varias maneras.

En esta guía se describe cómo generar los resúmenes de las interacciones entre el agente y el cliente mediante el modelo GPT-3 de Azure OpenAI. Contiene una arquitectura de ejemplo de un extremo a otro que ilustra los componentes clave implicados en la obtención de un resumen de una entrada de texto. La generación de la entrada de texto está fuera del ámbito de esta guía. El objetivo de esta guía es describir el proceso de implementación del resumen de un conjunto de conversaciones de ejemplo entre el agente y el cliente y analizar los resultados de varios enfoques para la creación del resumen.

Escenarios de conversación

  • Bots de chat de autoservicio (totalmente automatizados). En este escenario, los clientes pueden interactuar con un bot de chat con tecnología de GPT-3 y entrenado con datos específicos del sector. El bot de chat puede comprender las preguntas de los clientes y responder adecuadamente en función de las respuestas aprendidas de una knowledge base.
  • Bot de chat con intervención del agente (semiautomatizado). Las preguntas planteadas por los clientes a veces son complejas y requieren de intervención humana. En tales casos, GPT-3 puede proporcionar un resumen de la conversación entre el bot de chat y el cliente, y ayudar al agente con búsquedas rápidas de información adicional de una gran knowledge base.
  • Resumen de transcripciones (totalmente automatizadas o semiautomatizadas). En la mayoría de los centros de atención al cliente, los agentes son necesarios para resumir las conversaciones y mantener el registro, hacer seguimientos futuros, llevar a cabo entrenamiento y realizar otros procesos internos. GPT-3 puede proporcionar resúmenes automatizados o semiautomatizados que capturan los detalles destacados de las conversaciones para su uso posterior.

Esta guía se centra en el proceso de resumen de transcripciones mediante Azure OpenAI GPT-3.

En promedio, un agente tarda entre 5 y 6 minutos en resumir una sola conversación entre el agente y el cliente. Dados los grandes volúmenes de solicitudes que manejan los equipos de servicio normalmente, realizar esta tarea adicional puede sobrecargar al equipo. OpenAI es una buena manera de ayudar a los agentes con las actividades relacionadas con el resumen. Puede mejorar la eficacia del proceso de soporte al cliente y proporcionar una mayor precisión. El resumen de conversaciones se puede aplicar a cualquier tarea de soporte técnico al cliente que implique la interacción entre agente y cliente.

Servicio de resumen de conversaciones

El resumen de conversaciones es adecuado en escenarios en los que las conversaciones de soporte técnico al cliente siguen un formato de pregunta y respuesta.

Algunas ventajas de usar un servicio de resumen son:

  • Mayor eficiencia: permite a los agentes de servicio al cliente resumir rápidamente las conversaciones de los clientes, lo que elimina la necesidad de intercambios largos. Esta eficiencia ayuda a acelerar la resolución de problemas de los clientes.
  • Servicio al cliente mejorado: los agentes pueden usar resúmenes de conversaciones en interacciones futuras para encontrar rápidamente la información necesaria para resolver con precisión los problemas de los clientes.
  • Uso compartido de conocimientos mejorado: el resumen de conversaciones puede ayudar a los equipos de servicio al cliente a compartir conocimientos entre sí de forma rápida y eficaz. Equipa a los equipos de atención al cliente con mejores resoluciones y les ayuda a proporcionar un soporte más rápido.

Architecture

Una arquitectura típica para un generador de resumen de conversación tiene tres fases principales: preprocesamiento, resumen y posprocesamiento. Si la entrada contiene una conversación verbal o cualquier forma de voz, la voz debe transcribirse a texto. Para obtener más información, consulte Servicio de conversión de voz en texto de Azure.

Esta es una arquitectura de ejemplo:

Diagrama que muestra una arquitectura de resumen de conversaciones.

Descargue un archivo de PowerPoint de esta arquitectura.

Flujo de trabajo

  1. Recopile los datos de entrada: introduzca los datos de entrada pertinentes en la canalización. Si el origen es un archivo de audio, debe convertirlo en texto mediante un servicio de texto a voz (TTS) como Texto a voz de Azure.
  2. Preprocese los datos: quite la información confidencial y cualquier conversación que no sea importante de los datos.
  3. Incorpore los datos al generador de resúmenes: pase los datos en una solicitud a través de las API de Azure OpenAI. Los modelos de aprendizaje en contexto incluyen zero-shot, few-shot o el modelo personalizado.
  4. Genere el resumen: el modelo generará un resumen de la conversación.
  5. Procesamiento posterior a los datos: aplique un filtro de palabras soeces y varias comprobaciones de validación al resumen. Agregue los datos confidenciales que se quitaron durante el paso previo al proceso en el resumen.
  6. Evalúe los resultados: revise y evalúe los resultados. Este paso puede ayudarle a identificar las áreas en las que el modelo debe mejorarse y a encontrar errores.

En las secciones siguientes se proporcionan más detalles sobre las tres fases principales.

Procesamiento previo

El objetivo del preprocesamiento es asegurarse de que los datos proporcionados al servicio de generación de resumen sean relevantes y no incluyan información confidencial.

Estos son algunos pasos de preprocesamiento que pueden ayudar a condicionar los datos sin procesar. Es posible que tenga que aplicar uno o varios pasos, según el caso de uso.

  • Quite la información de identificación personal (DCP). Puede usar la API de DCP conversacional (versión preliminar) para quitar la DCP del texto transcrito o escrito. En este ejemplo se muestra la salida después de que la API ha quitado la DCP:

    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
    
  • Quite la información irrelevante. Los agentes del cliente inician conversaciones con intercambios casuales que no incluyen información relevante. Se puede agregar un desencadenador a una conversación para identificar el punto en el que se aborda la cuestión o la pregunta pertinente por primera vez. Quitar ese intercambio del contexto puede mejorar la precisión del servicio generador de resúmenes, ya que el modelo se ajustará a la información más relevante de la conversación. El motor Curie GPT-3 es una opción popular para esta tarea porque se entrena ampliamente, mediante el contenido de Internet, para identificar este tipo de conversación casual.

  • Quite conversaciones excesivamente negativas. Las conversaciones también pueden incluir opiniones negativas de clientes infelices. Puede usar métodos de filtrado de contenido de Azure como Azure Content Moderator para quitar del análisis conversaciones que contengan información confidencial. Como alternativa, OpenAI ofrece un punto de conexión de moderación, una herramienta que puede usar para comprobar si el contenido cumple las directivas de contenido de OpenAI.

Generador de resúmenes

El punto de conexión de la API de finalización de texto de OpenAI se denomina punto de conexión de finalizaciones. Para iniciar el proceso de finalización de texto, se requiere una solicitud. La ingeniería de solicitud es un proceso que se usa en modelos de lenguaje grandes. La primera parte de la solicitud incluye instrucciones de lenguaje natural o ejemplos de la tarea específica solicitada (en este escenario, resumen). Las solicitudes permiten a los desarrolladores proporcionar contexto a la API, lo que puede ayudar a generar finalizaciones de texto más relevantes y precisas. El modelo termina la tarea prediciendo el texto siguiente más probable. Esta técnica se conoce como aprendizaje en contexto.

Nota:

El resumen mediante extracción intenta identificar y extraer información destacada de un texto y agruparla para generar un resumen conciso sin comprender el significado ni el contexto.

El resumen abstracto reescribe un texto creando primero una representación semántica interna y a continuación, creando un resumen mediante el procesamiento del lenguaje natural. Este proceso implica paráfrasis.

Hay tres enfoques principales para entrenar a los modelos para el aprendizaje en contexto: zero-shot, few-shot y ajuste preciso. Estos enfoques varían en función de la cantidad de datos específicos de la tarea que se proporcionan al modelo.

  • Zero-shot: En este enfoque, no se proporciona ningún ejemplo al modelo. La solicitud de tarea es la única entrada. En el aprendizaje zero-shot, el modelo se basa en los datos en los que GPT-3 ya está entrenado (casi todos los datos disponibles de Internet). El modelo intenta relacionar la tarea dada con las categorías existentes que ya ha aprendido y responde en consecuencia.

  • Few-shot: Al usar este enfoque, se incluye un pequeño número de ejemplos en la solicitud que muestran el formato de respuesta esperado y el contexto. El modelo se proporciona con una cantidad muy pequeña de datos de entrenamiento, normalmente solo algunos ejemplos, para guiar sus predicciones. El entrenamiento con un pequeño conjunto de ejemplos permite que el modelo generalice y comprenda las tareas relacionadas pero no vistas previamente. La creación de estos ejemplos de few-shot puede ser difícil porque necesitan aclarar la tarea que desea que realice el modelo. Un problema observado habitualmente es que los modelos son sensibles al estilo de escritura que se usa en los ejemplos de entrenamiento, especialmente los modelos pequeños.

    Las principales ventajas de este enfoque son una reducción significativa de la necesidad de datos específicos de la tarea y un potencial reducido para aprender una distribución excesivamente estrecha de un conjunto de datos de ajuste preciso estrecho pero grande.

    Con este enfoque, no se pueden actualizar los pesos del modelo entrenado previamente.

    Para obtener más información, consulte Los modelos de lenguaje son aprendices de few-shot.

  • Ajuste preciso: El ajuste preciso es el proceso de adaptar modelos para obtener un resultado deseado específico a partir de sus propios conjuntos de datos. Implica volver a entrenara los modelos con los datos nuevos. Para más información, vea Aprenda a personalizar un modelo para la aplicación.

    Puede usar este paso de personalización para mejorar el proceso al:

    • Incluir un conjunto mayor de datos de ejemplo.
    • Usar técnicas de optimización tradicionales con la propiedad de retropropagación para reajustar los pesos del modelo. Estas técnicas permiten obtener resultados de mayor calidad que los que los enfoques zero-shot o few-shot proporcionan por sí mismos.
    • Mejorar el enfoque de few-shot mediante el entrenamiento de los pesos del modelo con solicitudes específicas y una estructura concreta. Esta técnica permite obtener mejores resultados en un mayor número de tareas sin necesidad de proporcionar ejemplos en la solicitud. El resultado es menos texto enviado y menos tokens.

    Las desventajas incluyen la necesidad de un gran conjunto de datos nuevo para cada tarea, la posibilidad de una generalización deficiente fuera de la distribución y la posibilidad de aprovechar características falsas de los datos de entrenamiento, lo que da lugar a altas posibilidades de comparación injusta con el rendimiento humano.

    La creación de un conjunto de datos para la personalización del modelo es diferente del diseño de solicitudes para usar con otros modelos. Las solicitudes de finalización suelen usar instrucciones detalladas o técnicas de aprendizaje de few-shot y consisten en múltiples ejemplos. Para el ajuste preciso, recomendamos que cada ejemplo de entrenamiento consista en un solo ejemplo de entrada y su salida deseada. No es necesario dar instrucciones detalladas o ejemplos en la solicitud.

    A medida que aumenta el número de ejemplos de entrenamiento, los resultados mejoran. Se recomienda incluir al menos 500 ejemplos. Es habitual usar entre miles y cientos de miles de ejemplos etiquetados. En general, comprobamos que cada vez que se duplique el tamaño del conjunto de datos se produzca un aumento lineal de la calidad del modelo.

En esta guía se muestran los motores curie-instruct/text-curie-001 y davinci-instruct/text-davinci-001. Estos motores se actualizan con frecuencia. La versión que use puede ser diferente.

Posprocesamiento

Se recomienda comprobar la validez de los resultados obtenidos de GPT-3. Implemente comprobaciones de validez mediante un enfoque mediante programación o clasificadores, según el caso de uso. Estas son algunas comprobaciones críticas:

  • Compruebe que no se han perdido puntos significativos.
  • Compruebe si hay imprecisiones fácticas.
  • Compruebe si hay sesgos introducidos por los datos de entrenamiento usados en el modelo.
  • Compruebe que el modelo no cambie el texto agregando nuevas ideas o puntos. Este problema se conoce como alucinación.
  • Compruebe si hay errores gramaticales y ortográficos.
  • Use un filtro de contenido de palabras soeces como Content Moderator para asegurarse de que no se incluya contenido inapropiado o irrelevante.

Por último, vuelva a introducir cualquier información vital que se haya quitado previamente del resumen, como la información confidencial.

En algunos casos, también se envía un resumen de la conversación al cliente, junto con la transcripción original. En estos casos, el procesamiento posterior implica anexar la transcripción al resumen. También puede incluir la adición de oraciones introductorias como "Consulte el resumen siguiente".

Consideraciones

Es importante ajustar los modelos base con un conjunto de datos de entrenamiento específico del sector y cambiar el tamaño de los conjuntos de datos disponibles. Los modelos con ajuste preciso funcionan mejor cuando los datos de entrenamiento incluyen al menos 1000 puntos de datos y los datos ciertos (resúmenes generados por el usuario) que se usan para entrenar los modelos son de alta calidad.

El inconveniente es el costo. El proceso de etiquetado y limpieza de conjuntos de datos puede ser costoso. Para garantizar datos de entrenamiento de alta calidad, es posible que tenga que inspeccionar manualmente los resúmenes ciertos y reescribir los resúmenes de baja calidad. Tenga en cuenta los siguientes puntos sobre la fase de resumen:

  • Ingeniería de solicitud: cuando se proporcionan pocas instrucciones, Davinci a menudo funciona mejor que otros modelos. Para optimizar los resultados, experimente con diferentes solicitudes de modelos diferentes.
  • Tamaño del token: un generador de resumen basado en GPT-3 se limita a un total de 4 098 tokens, incluidas la solicitud y la finalización. Para resumir pasajes más grandes, separe el texto en partes que cumplan estas restricciones. Resuma cada parte individualmente y, a continuación, recopile los resultados en un resumen final.
  • Descarte la información no utilizada: los modelos entrenados son tan buenos como los datos de entrenamiento que proporcione. Asegúrese de que los resúmenes ciertos en los datos de entrenamiento sean adecuados para la información que finalmente desea resumir en los diálogos.
  • Punto de detención: el modelo deja de resumir cuando alcanza un punto de detención natural o una secuencia de detención que usted proporcione. Pruebe este parámetro para elegir entre varios resúmenes y comprobar si los resúmenes tienen un aspecto incompleto.

Escenario de ejemplo: Resumen de las transcripciones de centros de llamadas

En este escenario se muestra cómo la característica de resumen de Azure OpenAI puede ayudar a los agentes de servicio al cliente con las tareas de resumen. Prueba los enfoques de zero-shot, few-shot y ajuste preciso, y compara los resultados contra los resúmenes generados por el usuario.

El conjunto de datos que se usa en este escenario es un conjunto de conversaciones hipotéticas entre clientes y agentes en el centro de atención al cliente de Xbox sobre diversos productos y servicios de Xbox. El chat hipotético se etiqueta con Solicitud. El resumen abstracto escrito por personas se etiqueta con Finalización.

Prompt Completion
Cliente: Pregunta sobre XAIL

Agente: ¡Hola! ¿Cómo puedo ayudarte hoy?

Cliente: Hola, tengo una pregunta sobre el anillo de Accessibility Insider

Agente: Muy bien. Sin duda, puedo ayudarte con eso.

Cliente: ¿Necesito suscribirme al anillo de la versión preliminar para unirme a la Accessibility League?

Agente: No. Puedes dejar la consola fuera de los anillos de Xbox Preview y aun así unirte a la liga. Sin embargo, tenga en cuenta que algunas experiencias que se ponen a su disposición pueden requerir que se una a un anillo de Xbox Preview.

Cliente: Está bien. ¿Y puedo suscribirme al anillo de versión preliminar más adelante?

Agente: Correcto.

Cliente: Perfecto.
El cliente quiere saber si necesita registrarse para obtener anillos de vista previa para unirse a Xbox Accessibility Insider League. El agente responde que no es obligatorio, pero que algunas experiencias pueden requerirlo.

Salida ideal. El objetivo es crear resúmenes que sigan este formato: "El cliente dijo x. El agente respondió y". Otro objetivo es capturar características destacadas del cuadro de diálogo, como la queja del cliente, la resolución sugerida y las acciones de seguimiento.

Este es un ejemplo de una interacción de asistencia al cliente, seguida de un resumen completo escrito por el usuario:

Diálogo

Cliente: Hola. Tengo una pregunta sobre Game Pass.

Agente: Hola. ¿Cómo estás hoy?

Cliente: Estoy bien.

Agente. Veo que necesitas ayuda con Xbox Game Pass.

Cliente: Sí. Quería saber por cuánto tiempo puedo acceder a los juegos después de que salgan de Game Pass.

Agente: Una vez que un juego sale del catálogo de Xbox Game Pass, tendrás que comprar una copia digital desde la aplicación Xbox para Windows o la Microsoft Store, reproducirlo desde un disco u obtener otra forma de derecho para poder seguir jugando el juego. Recuerda que Xbox notifica a los miembros antes de que un juego salga del catálogo de Xbox Game Pass. Y, como miembro, puedes comprar cualquier juego en el catálogo con hasta un 20 % de descuento (o el mejor precio con descuento disponible) para seguir jugando el juego una vez que salga del catálogo.

Cliente: Entiendo, gracias.

Resumen cierto

El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que se hayan retirado de Game Pass. El agente informa al cliente que tendría que comprar el juego para seguir teniendo acceso.

Zero-shot

El enfoque de zero-shot es útil cuando no tiene suficientes datos de entrenamiento etiquetados. En este caso, no hay suficientes resúmenes ciertos. Es importante diseñar las solicitudes cuidadosamente para extraer la información relevante. El siguiente formato se usa para extraer resúmenes generales de los chats entre el agente y el cliente:

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

suffix = "The summary is as follows: "

Este es un ejemplo que muestra cómo ejecutar un modelo zero-shot:

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 y observaciones

La salida del modelo zero-shot se genera directamente desde el modelo base. En este caso, tanto Curie como Davinci resumen el cuadro de diálogo bastante bien. La única diferencia notable es que el modelo Curie proporciona un poco menos de detalle. Curie inicia el resumen con "El cliente pregunta al agente sobre Xbox Game Pass". La frase correspondiente en Davinci es "El cliente preguntó por cuánto tiempo podía acceder a los juegos después de salgan del catálogo de Xbox Game Pass".

Diálogo

Cliente: Hola. Tengo una pregunta sobre Game Pass.

Agente: Hola. ¿Cómo te va?

Cliente: Estoy bien.

Agente: Veo que necesitas ayuda con Xbox Game Pass.

Cliente: Sí. Quería saber por cuánto tiempo puedo acceder a los juegos después de que salgan de Game Pass.

Agente: Una vez que un juego sale del catálogo de Xbox Game Pass, tendrás que comprar una copia digital desde la aplicación Xbox para Windows o la Microsoft Store, reproducirlo desde un disco u obtener otra forma de derecho para poder seguir jugando el juego. Recuerda que Xbox notifica a los miembros antes de que un juego salga del catálogo de Xbox Game Pass. Y, como miembro, puedes comprar cualquier juego en el catálogo con hasta un 20 % de descuento, o el mejor precio con descuento disponible, para seguir jugando el juego una vez que sale del catálogo.

Cierto

El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que se hayan retirado de Game Pass. El agente informa al cliente que tendría que comprar el juego para seguir teniendo acceso.

Resultado de Davinci

El cliente preguntó por cuánto tiempo podía acceder a los juegos después de que salen del catálogo de Xbox Game Pass. El agente le dijo que necesitaría comprar una copia digital del juego desde la aplicación Xbox para Windows o la Microsoft Store para poder continuar jugando. El agente también recordó al cliente que se le notificaría antes de que un juego salga del catálogo de Xbox Game Pass. Como miembro, el cliente podrá comprar cualquier juego en el catálogo con un máximo de 20 % de descuento o el mejor precio con descuento disponible.

Resultado de Curie

El cliente pregunta al agente sobre Xbox Game Pass. El agente indica al cliente que una vez que un juego sale del catálogo de Xbox Game Pass, el cliente tendrá que comprar una copia digital desde la aplicación Xbox para Windows o la Microsoft Store, reproducirlo desde un disco u obtener otra forma de derecho para poder continuar jugando el juego. El agente también le recuerda al cliente que Xbox notificará a los miembros antes de que un juego salga del catálogo de Xbox Game Pass.

Few-shot

Cuando se usa el enfoque few-shot, el modelo se proporciona con un pequeño número de ejemplos.

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: "

Este es un ejemplo que muestra cómo ejecutar un modelo de few-shot:

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 y observaciones

Con el enfoque de few-shot, los resúmenes continúan capturando características destacadas de la conversación. El resumen de Davinci es más compacto y más cercano a ser cierto. Curie fabrica algunos detalles triviales.

Diálogo

Cliente: Hola. Tengo una pregunta sobre Game Pass.

Agente: Hola. ¿Cómo te va?

Cliente: Estoy bien.

Agente: Veo que necesitas ayuda con Xbox Game Pass.

Cliente: Sí. Quería saber por cuánto tiempo puedo acceder a los juegos después de que salgan de Game Pass.

Agente: Una vez que un juego sale del catálogo de Xbox Game Pass, tendrás que comprar una copia digital desde la aplicación Xbox para Windows o la Microsoft Store, reproducirlo desde un disco u obtener otra forma de derecho para poder seguir jugando el juego. Recuerda que Xbox notifica a los miembros antes de que un juego salga del catálogo de Xbox Game Pass. Y, como miembro, puedes comprar cualquier juego en el catálogo con hasta un 20 % de descuento, o el mejor precio con descuento disponible, para seguir jugando el juego una vez que sale del catálogo.

Cierto

El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que se hayan retirado de Game Pass. El agente informa al cliente que tendría que comprar el juego para seguir teniendo acceso.

Resultado de Davinci

El cliente quería saber por cuánto tiempo podía acceder a los juegos después de que salen de Game Pass. El agente informa que una vez que un juego sale del catálogo de Xbox Game Pass, el cliente tendría que comprar una copia digital u obtener otra forma de derecho para continuar jugando el juego.

Resultado de Curie

El cliente tiene una pregunta sobre el Game Pass. El cliente está bien. El agente necesita ayuda con el Xbox Game Pass. El cliente pregunta por cuánto tiempo puede acceder a los juegos después de que salen del catálogo de Game Pass. El agente informa que, una vez que un juego sale del catálogo de Xbox Game Pass, el cliente tendrá que comprar una copia digital desde la aplicación Xbox para Windows o la Microsoft Store, reproducirlo desde un disco u obtener otra forma de derecho para poder continuar jugando el juego. El cliente está encantado de escuchar esto y agradece al agente.

Ajuste preciso

El ajuste preciso es el proceso de adaptar los modelos para obtener un resultado deseado específico a partir de sus propios conjuntos de datos.

Este es un formato de ejemplo:

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

Resultados y observaciones

Las pruebas sugieren que un modelo Curie de ajuste preciso conduce a resultados que son comparables a los de un modelo de few-shot de Davinci. Ambos resúmenes capturan la pregunta del cliente y la respuesta del agente sin capturar los detalles sobre los descuentos y sin agregar contenido. Ambos resúmenes son similares al cierto.

Diálogo

Cliente: Hola. Tengo una pregunta sobre Game Pass.

Agente: Hola. ¿Cómo te va?

Cliente: Estoy bien.

Agente: Veo que necesitas ayuda con Xbox Game Pass.

Cliente: Sí. Quería saber por cuánto tiempo puedo acceder a los juegos después de que salgan de Game Pass.

Agente: Una vez que un juego sale del catálogo de Xbox Game Pass, tendrás que comprar una copia digital desde la aplicación Xbox para Windows o la Microsoft Store, reproducirlo desde un disco u obtener otra forma de derecho para poder seguir jugando el juego. Recuerda que Xbox notifica a los miembros antes de que un juego salga del catálogo de Xbox Game Pass. Y, como miembro, puedes comprar cualquier juego en el catálogo con hasta un 20 % de descuento, o el mejor precio con descuento disponible, para seguir jugando el juego una vez que sale del catálogo.

Cierto

El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que se hayan retirado de Game Pass. El agente informa al cliente que tendría que comprar el juego para seguir teniendo acceso.

Resultado de Curie

El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que salen de Game Pass. El agente explica que, una vez que un juego sale del catálogo de Xbox Game Pass, el cliente debe comprar una copia digital desde la aplicación Xbox para Windows o la Microsoft Store, reproducirlo desde un disco u obtener otra forma de derecho para poder continuar jugando el juego.

Conclusiones

Por lo general, el modelo Davinci requiere menos instrucciones para realizar las tareas que otros modelos, como Curie. Davinci es más adecuado para resumir texto que requiera una comprensión del contexto o del lenguaje específico. Dado que Davinci es el modelo más complejo, su latencia es mayor que la de otros modelos. Curie es más rápido que Davinci y es capaz de resumir conversaciones.

Estas pruebas sugieren que puede generar mejores resúmenes al proporcionar más instrucciones al modelo a través de los métodos few-shot o de ajuste preciso. Los modelos de ajuste preciso son mejores para adaptarse a la estructura y el contexto aprendidos a partir de un conjunto de datos de entrenamiento. Esta funcionalidad es especialmente útil cuando los resúmenes son específicos del dominio (por ejemplo, generar resúmenes a partir de las notas de un médico o de la atención al cliente con una receta en línea). Si usa el ajuste preciso, tiene más control sobre los tipos de resúmenes que ve.

Para facilitar la comparación, este es un resumen de los resultados presentados anteriormente:

Cierto

El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que se hayan retirado de Game Pass. El agente informa al cliente que tendría que comprar el juego para seguir teniendo acceso.

Resultado zero-shot de Davinci

El cliente preguntó por cuánto tiempo podía acceder a los juegos después de que salen del catálogo de Xbox Game Pass. El agente le dijo que necesitaría comprar una copia digital del juego desde la aplicación Xbox para Windows o la Microsoft Store para poder continuar jugando. El agente también recordó al cliente que se le notificaría antes de que un juego salga del catálogo de Xbox Game Pass. Como miembro, el cliente podrá comprar cualquier juego en el catálogo con hasta 20 % de descuento o el mejor precio con descuento disponible.

Resultado zero-shot de Curie

El cliente pregunta al agente sobre Xbox Game Pass. El agente indica al cliente que una vez que un juego sale del catálogo de Xbox Game Pass, el cliente tendrá que comprar una copia digital desde la aplicación Xbox para Windows o la Microsoft Store, reproducirlo desde un disco u obtener otra forma de derecho para poder continuar jugando el juego. El agente también le recuerda al cliente que Xbox notificará a los miembros antes de que un juego salga del catálogo de Xbox Game Pass.

Resultado few-shot de Davinci

El cliente quería saber por cuánto tiempo podía acceder a los juegos después de que salen de Game Pass. El agente informa que una vez que un juego sale del catálogo de Xbox Game Pass, el cliente tendría que comprar una copia digital u obtener otra forma de derecho para continuar jugando el juego.

Resultado few-shot de Curie

El cliente tiene una pregunta sobre el Game Pass. El cliente está bien. El agente necesita ayuda con el Xbox Game Pass. El cliente pregunta por cuánto tiempo puede acceder a los juegos después de que salen del catálogo de Game Pass. El agente informa que, una vez que un juego sale del catálogo de Xbox Game Pass, el cliente tendrá que comprar una copia digital desde la aplicación Xbox para Windows o la Microsoft Store, reproducirlo desde un disco u obtener otra forma de derecho para poder continuar jugando el juego. El cliente está encantado de escuchar esto y agradece al agente.

Resultado de ajuste preciso de Curie

El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que salen de Game Pass. El agente explica que, una vez que un juego sale del catálogo de Xbox Game Pass, el cliente debe comprar una copia digital desde la aplicación Xbox para Windows o la Microsoft Store, reproducirlo desde un disco u obtener otra forma de derecho para poder continuar jugando el juego.

Evaluación del resumen

Hay varias técnicas para evaluar el rendimiento de los modelos de resumen.

Estas son algunas:

ROUGE (Subestudio orientado a la recuperación para la evaluación de Gisting). Esta técnica incluye medidas para determinar automáticamente la calidad de un resumen comparándolo con resúmenes ideales creados por humanos. Las medidas cuentan el número de unidades superpuestas, como n-gramas, secuencias de palabras y pares de palabras, entre el resumen generado por el equipo que se evalúa y los resúmenes ideales.

Este es un ejemplo:

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. Esta técnica calcula las puntuaciones de similitud mediante la alineación de resúmenes generados y de referencia en un nivel de token. Las alineaciones de tokens se calculan de forma expanstina para maximizar la similitud coseno entre las incrustaciones de tokens contextualizadas de BERT.

Este es un ejemplo:

  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 similitud. Una matriz de similitud es una representación de las similitudes entre diferentes entidades en la evaluación del resumen. Puede usarlo para comparar distintos resúmenes del mismo texto y medir su similitud. Se representa mediante una cuadrícula bidimensional, donde cada celda contiene una medida de la similitud entre dos resúmenes. Puede medir la similitud mediante varios métodos, como la similitud de coseno, la similitud de Jaccard y la distancia de edición. A continuación, use la matriz para comparar los resúmenes y determinar cuál es la representación más precisa del texto original.

Este es un comando de ejemplo que genera la matriz de similitud de una comparación BERTScore de dos oraciones similares:

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

La primera frase, "El gato está en el porche junto al árbol", se conoce como candidato. La segunda frase se conoce como referencia. El comando usa BERTScore para comparar las oraciones y generar una matriz.

Esta matriz siguiente muestra la salida generada por el comando anterior:

Diagrama que muestra una matriz de similitud.

Para obtener más información, vea SummEval: reevaluación de la evaluación de resúmenes. Para obtener un kit de herramientas de PyPI para resúmenes, consulte Summ-eval 0.892.

Uso responsable

GPT puede producir excelentes resultados, pero debe comprobar la salida en busca de sesgos sociales, éticos y legales, y también resultados dañinos. Al ajustar los modelos, debe quitar los puntos de datos que pueda ser perjudicial que aprenda el modelo. Puede formar equipos de alerta para identificar las salidas dañinas del modelo. Puede implementar este proceso manualmente y respaldarlo mediante métodos semiautomatizados. Puede generar casos de prueba mediante modelos de lenguaje y, a continuación, usar un clasificador para detectar comportamientos dañinos en los casos de prueba. Por último, debe realizar una comprobación manual de los resúmenes generados para asegurarse de que estén listos para usarse.

Para obtener más información, vea Equipos de alerta para modelos de lenguaje con modelos de lenguaje.

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Autor principal:

Otro colaborador:

Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.

Pasos siguientes