Recursos/Entrenamiento de modelos/Conjuntos de datos

Método

Datos sintéticos y el Generador de conjuntos de datos

Cómo un modelo capaz puede redactar las conversaciones de ejemplo que usted aún no tiene, y cómo las instrucciones, el plan, las comprobaciones y la revisión del Generador de conjuntos de datos mantienen esos chats variados, fundamentados y bajo su control.

Capítulo 48 min de lectura5 referencias

Qué son los datos sintéticos

Los mejores datos de entrenamiento son las conversaciones reales con sus usuarios. A menudo hay muy pocas, solo cubren los casos fáciles o el asistente que desea entrenar aún no existe. Los datos sintéticos cubren ese vacío: un modelo capaz escribe conversaciones de ejemplo que muestran el comportamiento que usted desea, y luego se entrena un modelo más pequeño o económico con ellas.

Esta es ahora una técnica estándar. El artículo de Self-Instruct (2022) hizo que GPT-3 escribiera sus propias instrucciones y respuestas, filtró las no válidas y casi duplicadas, y ajustó GPT-3 con el resultado: una mejora absoluta del 33 % en el banco de pruebas Super-NaturalInstructions. Alpaca de Stanford (2023) utilizó la misma idea para crear 52.000 demostraciones por menos de 500 dólares. UltraChat generó 1,5 millones de diálogos de varios turnos, y phi-1 de Microsoft demostró que un modelo de código de 1.300 millones de parámetros entrenado en parte con libros de texto sintéticos podía alcanzar el 50,6 % en el banco de pruebas HumanEval.

El riesgo: el estudiante copia al escritor

Un modelo entrenado con los textos de otro modelo aprende sus hábitos tan fielmente como su conocimiento. Si cada usuario generado comienza con «Hola, tengo una pregunta sobre...», el modelo entrenado solo manejará preguntas educadas y bien formuladas. Si el escritor nunca rechaza nada, el estudiante tampoco lo hará. Las investigaciones sobre el entrenamiento repetido de modelos con texto generado (Shumailov y colegas, 2023) descubrieron que los casos raros —las colas de la distribución— son lo primero en desaparecer. Por lo tanto, los buenos datos sintéticos dependen principalmente de dos cosas: la variedad, para que los casos raros e incómodos estén presentes, y el control, para que usted decida cómo se ve un buen resultado.

Resumenalcance, audiencia, recuentos, documentos
→el modelo planificaPlanescenarios que usted lee y edita
→usted apruebaGeneraren segundo plano; pausar o reanudar
→a medida que llegan los chatsComprobacionesformato corregido, problemas indicados
→usted leeRevisar y añadirmarcados como Sintéticos en el conjunto de datos
El generador de conjuntos de datos en cinco pasos. No se escribe nada hasta que usted haya aprobado el plan, y nada llega a un conjunto de datos hasta que haya revisado los chats.

Cómo funciona el generador de conjuntos de datos

Las instrucciones generales describen qué se debe generar. El alcance indica lo que cubre el asistente y, lo que es igual de importante, lo que no: los chats fuera del alcance, en los que el asistente rechaza o redirige amablemente, enseñan al modelo dónde termina su trabajo. El objetivo y el argumento indican qué logra una buena respuesta y quién es el asistente: tono, persona (perfil), reglas. La audiencia indica quiénes son los usuarios, lo que da forma a las preguntas. Las instrucciones incluyen cualquier otra cosa («terminar siempre con un paso siguiente», «nunca dar precios»). Luego vienen los recuentos y límites: cuántos chats, turnos por chat, la respuesta más larga, el mensaje de usuario más largo y el idioma. Los documentos opcionales proporcionan sus datos.

1. Plan. Antes de escribir cualquier chat, el modelo redacta un plan: una lista de escenarios, cada uno con un tema, un tipo de usuario, una dificultad (fácil, difícil, caso extremo o fuera del alcance) y la intención del usuario, además de cuántos chats recibe cada uno. Planificar primero es lo que produce variedad: sin ello, un modelo al que se le piden 100 chats tiende a escribir 100 versiones de las mismas tres preguntas. Usted lee el plan, edita o elimina filas y añade las suyas propias antes de que se escriba nada.

TemaTipo de usuarioDificultadIntenciónChats
Notificar la rotura de una tuberíareclamante por primera vezfáciliniciar una reclamación de hogar8
Reclamación rechazada por notificación tardíacliente frustrado, cortantedifícilentender el motivo y apelar9
Daños cubiertos por dos pólizaspropietariocaso extremoaveriguar qué póliza paga8
Envío de fotos y reciboscliente mayor, inseguro con las aplicacionesfácilsubir pruebas7
Demandar al vecino de arribareclamantefuera de alcanceobtener asesoramiento legal8
Un plan ilustrativo para 40 chats con temas de automóviles: aproximadamente un escenario por cada 8 chats da un total de 5. Cada fila define quién pregunta, la dificultad y qué busca, de modo que los 40 chats no pueden ser la misma pregunta de cortesía.

2. Generar. Una vez que aprueba el plan, los chats se escriben en segundo plano, y cada uno se basa en las partes de sus documentos que se ajustan a su escenario. Puede pausar, reanudar o cancelar en cualquier momento, y el generador muestra una estimación aproximada del tiempo restante.

3. Comprobaciones. Cada chat se comprueba a medida que llega. La estructura debe ser correcta: el usuario y el asistente se turnan, comenzando por el usuario y terminando con una respuesta del asistente. Los modelos a menudo escriben un turno más o menos de lo solicitado; estos chats se conservan y se recortan, ya que siguen siendo buenos ejemplos. Solo los chats defectuosos —roles incorrectos, mensajes vacíos— se descartan y se vuelven a escribir. Otros problemas generan una alerta: el chat se conserva pero se marca para su revisión.

Comprobación de formato
Dañadoroles incorrectos, mensajes vacíos→descartado y reescrito
Un turno de más o de menossigue siendo una buena conversación→conservado, recortado a los turnos solicitados
Indicadores · conservados, marcados para revisión
duplicadodemasiado largovacíonegativano fundamentado

Un indicador es una pregunta, no un veredicto: una negativa es exactamente lo correcto en un escenario fuera de alcance y una señal de advertencia en cualquier otro caso.

Cada chat se comprueba a medida que llega. Solo los chats dañados se descartan y se reescriben; todo lo demás se conserva, y los dudosos llevan un indicador para que usted sepa dónde mirar primero.

4. Revisar y añadir. Usted lee los chats, los filtra por escenario o alerta, edita o elimina cualquiera de ellos y los añade a un conjunto de datos nuevo o existente. Allí se marcan como Sintéticos, para que siempre se puedan distinguir de los chats reales. Si se vuelve a añadir la misma generación, solo se añade lo que aún no está incluido.

Una generación de 40 chats para un servicio de asistencia de reclamaciones (ilustrativo)
  1. Resumen. Un asistente de reclamaciones de seguros para pólizas de hogar. Fuera de alcance: asesoramiento legal y cualquier asunto sobre otras aseguradoras. Público: asegurados, algunos estresados, otros no acostumbrados a las aplicaciones. 40 chats, turnos mixtos, respuestas de hasta 400 tokens, dos artículos del centro de ayuda como documentos.
  2. Plan. Temas en automático: 40 ÷ 8 = 5 escenarios, desde un sencillo “informar de la rotura de una tubería” hasta un “¿puedo demandar a mi vecino?” fuera de alcance. Usted añade un sexto escenario complejo —una reclamación presentada dos veces por error— y traslada 2 chats a este.
  3. Generar. El generador estima unos minutos. Usted hace una pausa después de los primeros chats para leerlos y luego continúa.
  4. Comprobaciones. Llegan 40 chats: 3 se recortan a los turnos solicitados, 1 chat defectuoso se reescribe, 2 se marcan como posibles negativas (ambos en el escenario fuera de alcance, por lo que es correcto) y 1 como infundado.
  5. Revisión. Usted corrige la respuesta infundada contrastándola con el artículo, elimina un chat insustancial y añade 39 chats al conjunto de datos junto a 120 reales.

Cómo utilizarlo correctamente

  • Mezcle con datos reales cuando disponga de ellos. Los chats sintéticos son más limpios que los reales, y un modelo entrenado únicamente con ellos puede confundirse ante entradas desordenadas. Solicite usuarios parcos, con errores tipográficos y frustrados en las instrucciones.
  • Revise una muestra, especialmente los escenarios difíciles y fuera de alcance: ahí es donde el redactor suele equivocarse más con la respuesta ideal.
  • Utilice el modelo más potente que tenga para redactar. El estudiante, en el mejor de los casos, puede igualar al redactor.
  • Fundaméntelo en documentos siempre que las respuestas dependan de sus datos, para que las respuestas utilicen sus políticas en lugar del conocimiento general del modelo.
  • Reserve chats reales para la evaluación. Probar un modelo entrenado con chats sintéticos utilizando más chats sintéticos sobrestima su calidad.

Configuración

Temas (escenarios)Típico Automático#

Cuántos escenarios contiene el plan. Automático elige aproximadamente uno por cada 8 chats, con un mínimo de 5 y un máximo de 60; o bien, establezca un número exacto. Más temas ofrecen más variedad y menos chats por tema; menos temas profundizan más en cada situación.

Turnos por chatTípico Mixto#

Cuántos intercambios entre usuario y asistente tiene cada chat: de 1 a 4, o mixto. Los chats de un solo turno son rápidos de escribir y revisar; los chats de varios turnos enseñan al modelo a utilizar lo que se dijo anteriormente. La opción mixta suele ser la más cercana al uso real.

Máximo de tokens de salida#

La respuesta más larga del asistente, en tokens. Establézcalo en la longitud con la que desea que responda el modelo entrenado: el estudiante aprende tanto la longitud como el contenido. Los límites más amplios hacen que la compilación sea más lenta, aunque de forma menos que proporcional, ya que las respuestas rara vez alcanzan el límite.

Máximo de caracteres de entrada#

El mensaje de usuario más largo, en caracteres. Los usuarios reales suelen ser breves; un límite bajo mantiene las preguntas generadas cortas y realistas en lugar de largas y sobreexplicadas.

Documentos#

Páginas de ayuda, manuales o políticas opcionales, para que las respuestas utilicen sus datos. Sin documentos, el redactor se basa en su conocimiento general, que puede ser incorrecto o estar desactualizado para su producto.

Alertas

Duplicado#

Muy similar a otro chat en la generación. Conserve uno y elimine o reescriba el otro; las copias casi idénticas sobreponderan un ejemplo y reducen la variedad.

Demasiado largo#

Una respuesta que supera el límite de tokens de salida, o un mensaje de usuario que supera el límite de caracteres. Acórtelo, o el modelo aprenderá a dar respuestas más largas de lo que usted solicitó.

Vacío#

Un mensaje sin texto. Elimine el chat o escriba el mensaje que falta; una respuesta vacía no enseña nada y una pregunta vacía enseña al modelo a no responder nada.

Rechazo#

Una respuesta que parece una negativa (“No puedo ayudarle con eso”). Es esperable en escenarios fuera de alcance; en otros casos es una señal de advertencia, porque entrenar con ella enseña al modelo a negarse a responder preguntas que debería contestar.

Sin fundamento#

Solo cuando se utilizaron documentos: una respuesta que podría no basarse en sus documentos, dependiendo del conocimiento general del modelo en lugar de sus datos. Compruébela con el documento y corríjala.

Errores comunes

  • Omitir escenarios fuera del alcance, de modo que el modelo entrenado responda a todo, incluido lo que no debería.
  • Escribir cientos de chats sin leer el plan y luego descubrir que todos preguntan lo mismo.
  • Entrenar solo con chats sintéticos cuando existen chats reales; el modelo se desorienta ante entradas reales y desordenadas.
  • Ignorar las alertas en los escenarios difíciles y extremos, donde el escritor se equivoca con mayor frecuencia.
  • Evaluar un modelo entrenado con chats sintéticos utilizando más chats sintéticos.
  • Escribir con un modelo más débil que el que se va a entrenar; en el mejor de los casos, el estudiante solo podrá igualar al escritor.

Referencias y lecturas adicionales

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

  1. 01Self-Instruct: Aligning Language Models with Self-Generated InstructionsWang et al., 2022 · arXiv · arxiv.orgUn modelo que escribe sus propias instrucciones de entrenamiento, con filtrado para las no válidas y casi duplicadas.
  2. 02Alpaca: A Strong, Replicable Instruction-Following ModelStanford CRFM, 2023 · crfm.stanford.edu52.000 demostraciones generadas por menos de 500 dólares y los límites del resultado.
  3. 03Enhancing Chat Language Models by Scaling High-quality Instructional ConversationsDing et al., 2023 · arXiv · arxiv.orgUltraChat: generación de 1,5 millones de conversaciones variadas de varios turnos.
  4. 04Textbooks Are All You NeedGunasekar et al., 2023 · arXiv · arxiv.orgphi-1: cuánto pueden hacer los datos generados cuidadosamente por un modelo pequeño.
  5. 05The Curse of Recursion: Training on Generated Data Makes Models ForgetShumailov et al., 2023 · arXiv · arxiv.orgPor qué desaparecen los casos raros cuando los modelos aprenden solo de los resultados de otros modelos.

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