Intermedio7 min de lecturaActualizado

Clasificación zero-shot: cómo un modelo entiende reglas escritas con palabras

¿Cómo aplica un modelo «Nada de spoilers» sin haberse entrenado con esa regla? Inferencia de lenguaje natural y reglas de moderación personalizadas.

El problema

Un clasificador clásico solo conoce las categorías con las que se entrenó. Pero cada comunidad tiene sus propias normas: nada de spoilers, no vender cuentas, solo hablar de fútbol, nada de enlaces a otros servidores. Entrenar un modelo nuevo para cada norma de cada comunidad es imposible.

La clasificación zero-shot lo resuelve: el modelo recibe la categoría como una frase en el momento de la petición y juzga si el texto encaja con ella.

Inferencia de lenguaje natural (NLI)

Muchos clasificadores zero-shot se basan en una tarea llamada inferencia de lenguaje natural. El modelo recibe dos textos:

  • una premisa (aquí: el mensaje del chat),
  • una hipótesis (aquí: una regla o la descripción de una categoría),

y decide si la premisa implica la hipótesis, la contradice o es neutral.

Premisa (mensaje)HipótesisRespuesta
«jaja el perro muere al final»«Este mensaje revela la trama de una película o serie.»implica
«¿alguien ha visto el final?»«Este mensaje revela la trama de una película o serie.»no implica
«vendo mi cuenta nivel 80, escríbeme»«Este mensaje ofrece comprar o vender cuentas de juegos.»implica

La probabilidad de «implica» se convierte en la puntuación de la regla. El mismo mecanismo sirve para las categorías fijas: «insulto» es simplemente la hipótesis «Este mensaje insulta a una persona».

Por qué generaliza

Durante el entrenamiento el modelo ve cientos de miles de pares premisa–hipótesis sobre todo tipo de temas. No aprende las reglas en sí: aprende la habilidad de comprobar si un texto encaja con una descripción. Esa habilidad se traslada a reglas que nunca ha visto, en cualquier idioma que conozca el modelo.

Escribir buenas reglas

  • Lo concreto gana a lo abstracto. «No comprar, vender ni intercambiar cuentas u objetos» funciona mejor que «Respeta la economía».
  • Una idea por regla. Divide «Nada de spam ni de política» en dos reglas.
  • Describe el comportamiento, no una lista de palabras. «No reveles el final de películas o series» detecta los spoilers escritos de cualquier forma.
  • Prueba con ejemplos reales y ajusta el umbral, como con cualquier categoría.

El contexto también ayuda a las reglas

«Muere al final» solo es un spoiler si la conversación trata de una serie. Los modelos zero-shot que también leen los mensajes anteriores pueden juzgar reglas que dependen del chat; ver el contexto en la moderación.

En VigiMod

Las reglas se envían con cada petición, hasta 10, en cualquier idioma:

"rules": {"no-spoilers": "Nada de spoilers de películas o series"}

Cada regla devuelve su propia puntuación y su marca (rule:no-spoilers), junto a las categorías integradas. Detalles en la documentación.

Ponte a prueba

Responde a las preguntas y comprueba tus respuestas.

  1. 1. ¿Qué significa aquí «zero-shot»?
  2. 2. En NLI, el mensaje del chat hace el papel de…
  3. 3. ¿Qué regla funcionará probablemente mejor?
  4. 4. ¿Por qué el modelo puede comprobar una regla que nunca vio?

Todas las guías →

Míralo con mensajes reales

Prueba la demo en vivo o lee cómo funciona la API.