Ir al contenido principal
Laravel, thinking fast.
Capitulo 13 · Cuando el modelo se equivoca

Los empates van para el proveedor, y sin coincidencias no se cambia nada

Julian Beaujardin

Dos detalles hacen que el ordenador sea seguro de desplegar, y ambos van de no equivocarse con seguridad.

Cobertura igual conserva el orden del proveedor. El ?: de ese comparador recurre al índice original, así que un empate preserva lo que decidiera el proveedor. Su orden es una clasificación de relevancia real; barajar un marcador plano sustituiría información por ruido.

Cuando no coincide nada, devuelve la entrada intacta:

// Every candidate is equally (un)related — e.g. a Spanish query against
// English alt text. Trust the provider rather than an arbitrary reshuffle
// of a flat scoreboard.
if (array_sum(array_column($scored, 'coverage')) <= 0) {
    return $candidates;
}

Ese caso es común y predecible: una consulta en español contra descripciones en inglés puntúa cero en todo. El ordenador no puede ayudar, así que se abstiene.

Una capa de rescate nunca debe ser peor que aquello que rescata. Enuncia el suelo explícitamente —nunca una elección peor que el comportamiento actual— y añade la rama que lo garantiza.

Determinista significa testable

Todo lo anterior es una función pura, y por eso el razonamiento sobrevive como pruebas: la foto de balayage ganando a la foto genérica de peluquería, la de limpieza ganando a los globos de cumpleaños, la de fregar ganando a la oficina en casa.

Esa última es el experimento borrado, fijado. Cualquiera que reinvente la ponderación por posición hará fallar una prueba cuyo comentario explica por qué se probó y se descartó. La medición está en el repositorio, no en la memoria de alguien.

Dónde más aplica esta forma

El patrón reaparece siempre que un modelo delega en algo que elige:

  • Escoger entre resultados de búsqueda, documentos o productos
  • Decidir cuál de varios resultados de herramientas se presenta primero
  • Elegir una plantilla, una categoría o una etiqueta de un conjunto fijo
  • Cualquier «el modelo sugirió una consulta, y ahora la responde otra cosa»

En todos ellos la tentación es que el modelo haga también la elección. A menudo la versión determinista es mejor: es auditable, gratis, instantánea y nunca tiene un mal día. Recurre al modelo cuando el criterio requiera de verdad comprensión del lenguaje —y mide ambos antes de decidir que la requiere.

Lo que sostiene este capítulo

  • Una mala salida suele ser una mala tubería, no un mal modelo. Las consultas compuestas y el «gana el primero» produjeron casi todas las imágenes fuera de tema.
  • Escribe primero la versión determinista. Cobertura de términos, sin embeddings, legible en un minuto.
  • Mide la versión lista contra la simple, y bórrala si no gana. El ingenio que mide igual es peor.
  • Preserva el orden anterior en los empates. Una clasificación de relevancia real gana a un barajado arbitrario.
  • Garantiza un suelo: nunca peor que no hacer nada, y añade la rama que lo impone.
  • Fija la medición como prueba para que la alternativa descartada no pueda volver.
  • Lo determinista gana a una llamada al modelo allí donde el criterio no necesita lenguaje.