Recursos/Entrenamiento de modelos/De chats a ejemplos de entrenamiento

Concepto

Conversaciones de múltiples turnos y ponderaciones

Cómo una conversación con varias respuestas del asistente se convierte en datos de entrenamiento, los dos formatos que utilizan los proveedores para ello y el efecto secundario que se debe tener en cuenta.

Capítulo 33 min de lectura4 referencias

El problema

Las conversaciones reales rara vez consisten en una pregunta y una respuesta. Un chat de soporte puede llegar a diez intercambios: un saludo, una pregunta aclaratoria, dos respuestas parciales y una solución final. Vale la pena aprender algunas de esas respuestas del asistente y otras no. Un formato de entrenamiento debe expresar tanto el contexto completo como la elección de qué respuestas cuentan.

Pesos por mensaje · un registro
userHolaassistant · weight 0solo contextouserExportar mi informe como PDFassistant · weight 1aprendido
Sin pesos · un registro por objetivo
userHolaassistantaprendido de todos modosuserExportar mi informe como PDFassistantaprendido✂
El mismo chat, donde solo se eligió la segunda respuesta. Con pesos, la primera respuesta se mantiene como contexto. Sin pesos, el registro se corta después de la respuesta elegida, y se aprende cada respuesta del asistente que contenga.

Enfoque 1: pesos por mensaje

Algunos formatos permiten que cada mensaje del asistente tenga un peso. Toda la conversación es un solo registro; las respuestas marcadas con weight: 1 se aprenden, y las respuestas marcadas con weight: 0 son solo contexto — se leen, pero no se evalúan.

Pesos por mensaje
{"messages": [
  {"role": "user",      "content": "Hi"},
  {"role": "assistant", "content": "Hello! How can I help?", "weight": 0},
  {"role": "user",      "content": "Export my report as PDF"},
  {"role": "assistant", "content": "Open the report, click Export → PDF…", "weight": 1}
]}

Esta es la opción eficiente. Cada registro se procesa una vez, todos los objetivos de una conversación comparten su contexto y la elección de lo que se debe aprender es exacta.

Enfoque 2: un registro por objetivo

Los formatos sin ponderaciones solo pueden indicar: «esta es una conversación; aprenda las respuestas del asistente». Para aprender una respuesta en particular, la conversación se corta justo después de ella y se guarda como un registro independiente. Una conversación con tres objetivos se convierte en tres registros, cada uno más largo que el anterior.

Sin pesos — el registro se corta después de la respuesta elegida
{"messages": [
  {"role": "user",      "content": "Hi"},
  {"role": "assistant", "content": "Hello! How can I help?"},
  {"role": "user",      "content": "Export my report as PDF"},
  {"role": "assistant", "content": "Open the report, click Export → PDF…"}
]}

Existen dos efectos secundarios. Cualquier respuesta anterior del asistente dentro de un registro también se aprende, ya que el formato no puede marcarla únicamente como contexto, incluidas las respuestas que usted no eligió. Además, la primera parte de la conversación aparece en varios registros, por lo que se procesa, y se paga, varias veces.

Desglose del cálculo
  1. Una conversación tiene cuatro intercambios de unos 250 tokens cada uno. Las respuestas 2 y 4 son objetivos; las respuestas 1 y 3 no lo son.
  2. Con pesos: un registro de unos 1000 tokens. Las respuestas 2 y 4 se aprenden una vez cada una; la 1 y la 3 son contexto.
  3. Sin pesos: un registro cortado después de la respuesta 2 (unos 500 tokens) y otro cortado después de la respuesta 4 (unos 1000 tokens) — 1500 tokens en total, un 50 % más.
  4. Se aprende cada respuesta del asistente en un registro: las respuestas 1 y 2 dos veces, las respuestas 3 y 4 una vez. Las respuestas 1 y 3, que usted no eligió, se aprenden de todos modos.

Cuándo es importante

La diferencia es mínima cuando las conversaciones son cortas o todas las respuestas del asistente son buenas. Sin embargo, es importante cuando las conversaciones son largas, cuando las primeras respuestas son deficientes (un primer intento erróneo que se corrigió más tarde) o cuando usted omitió respuestas deliberadamente. Con un proveedor que admite ponderaciones, obtiene exactamente lo que eligió; con uno que no lo hace, vale la pena corregir las respuestas deficientes antes del entrenamiento.

Errores comunes

  • Asumir que una respuesta que no marcó nunca se aprenderá, independientemente del formato del proveedor.
  • Dejar una respuesta inicial incorrecta en una conversación larga cuando el proveedor no puede excluirla.
  • Comparar el recuento de tokens entre proveedores sin tener en cuenta el contexto repetido.
  • Dividir los registros de una misma conversación entre entrenamiento y validación; por este motivo, la división se realiza por conversación.

Referencias y lecturas adicionales

Las fuentes externas se abren en una pestaña nueva.

  1. 01SFT TrainerHugging Face TRL docs · huggingface.coEntrenamiento basado únicamente en los turnos del asistente dentro de una conversación completa.
  2. 02Chat templatesHugging Face Transformers docs · huggingface.coCómo se estructuran los chats de múltiples turnos para un modelo y cómo se localizan los turnos del asistente.
  3. 03Supervised fine-tuningOpenAI API docs · developers.openai.comLos datos de entrenamiento en formato de chat de un proveedor, incluidos los ejemplos de múltiples turnos.
  4. 04Prepare supervised fine-tuning data for Gemini modelsGoogle Cloud documentation · docs.cloud.google.comEl formato de los contenidos con los roles del usuario y del modelo.

Convierta semanas de trabajo experto en minutos

Vea cómo Scalata se adapta a su equipo, a sus datos y a sus Controles.

Contactar con ventas