Faragiri

Aprender desarrollo con IAinteligencia artificial

Meter un modelo en un producto se tuerce a los dos lados de la llamada: el párrafo que no se recuperó y la respuesta que no validó nadie. El orden que lo arregla.

8Secciones
8Min de lectura
2Profundidad

El orden

El segundo peldaño es el que se salta todo el mundo

Una escalera y no una lista: el cuarto peldaño no se puede juzgar sin el segundo, y el tercero tampoco se puede depurar sin él.

  1. 01Haz la llamadaUna tarde. Deja fijado lo que cuesta y por dónde falla
  2. 02Escribe el juego de casosAntes de que exista la función, y con respuestas malas dentro
  3. 03Dale tus datosRecuperación, y primero es un problema de búsqueda
  4. 04Cambia la formaAjuste fino, y solo contra el segundo peldaño
  5. 05Ponlo delante de desconocidosEsperas, reintentos, coste y texto que no escribió nadie

Saltarse el segundo peldaño es invisible durante unas seis semanas, porque todo lo de encima sigue funcionando. Lo que falta no es acierto, es poder saber si algo ha cambiado.

Una abonada pregunta si puede llevar a su sobrina el domingo, y el primer fallo no es lo que contesta el modelo. Es que el párrafo que gobierna esa pregunta no llegó a ponerse delante de él.

Álvaro Estébanez Quirós mantiene el software de reservas de cuatro piscinas municipales en Gijón, y lo que le pidieron era pequeño: que una abonada escriba una pregunta con sus palabras y que el sistema conteste con el reglamento de uso y el cuadro de cursillos delante. Dentro de inteligencia artificial este es el primer tema en el que un fallo llega a un desconocido, y el modelo era la parte que ya funcionaba. Todo lo que se torció durante un mes estaba a un lado o al otro de la llamada.

La norma que gobernaba la pregunta no compartía una palabra con ella

La pregunta de la sobrina trajo el apartado de las cuotas de abono, porque la abonada había escrito «sobrina» y «domingo», y la norma que decide el caso dice «los menores de catorce años» y «fines de semana», que no comparte con la pregunta ni una palabra. El modelo escribió con ese párrafo una respuesta fluida, educada y equivocada, que era lo único que podía hacer con él.

Si el párrafo bueno no está entre los primeros, ningún modelo salva la respuesta. Esa es la frase que hay que guardar, porque mueve el trabajo de sitio: la recuperación se juzga por si el párrafo correcto está en el puñado que pasas, y eso es un problema de búsqueda con décadas de técnica detrás, y ninguna de esa técnica va de modelos.

En español el asunto es peor que en inglés, y de una manera que se puede medir. El inglés pregunta con las mismas palabras con las que redacta; el español redacta una norma en infinitivo y en plural genérico y la pregunta llega en primera persona y en singular.

Aquí la pregunta y la norma casi nunca comparten una palabra: «llevar» contra «acceso de acompañantes», «sobrina» contra «menores», «cuánto me cuesta» contra «tarifa reducida». La distancia que en inglés es una casualidad, aquí es la regla.

Las tildes y la eñe se caen del índice antes que nada

El segundo caso de Álvaro fue más barato de arreglar y más frecuente. Una abonada buscó «clases de natacion para ninos», escrito en el teclado del móvil sin tilde y con ene, y el reglamento dice «natación» y «niños». Para una búsqueda por palabras son cadenas distintas, así que el párrafo no se recuperó nunca y el sistema contestó con lo más parecido que encontró, que era el horario de la sauna.

Pliega las tildes y la eñe en los dos lados del índice, o la búsqueda no encuentra. En los dos lados es la parte que se olvida: no basta con limpiar la pregunta, porque entonces «natacion» sigue sin coincidir con «natación» guardada con su tilde. La segunda pasada fue indexar cada norma dos veces, una tal como está escrita y otra como la pregunta que contesta, que es un trabajo de redacción y no de programación, y en este idioma es el que más rinde.

El ajuste fino enseña una forma, no un dato

Antes de todo eso, Álvaro se había gastado quince días en un ajuste fino sobre trescientos correos antiguos de las taquillas, con la teoría razonable de que el sistema debía aprender cómo se contesta en estas piscinas. Y funcionó. Las respuestas volvían hablando exactamente como el mostrador, con el tratamiento de la casa y la despedida de la casa, y seguían equivocadas con los domingos.

El ajuste fino enseña una forma, no un dato. Mueve el estilo, el formato y la clase de cosa que sale, que es algo que merece tener cuando la salida tiene que parecerse siempre a lo mismo.

Es el instrumento equivocado para acertar con un párrafo concreto, y el fallo que produce es del caro, porque las respuestas se vuelven más convincentes sin volverse menos falsas. Un dato que cambia cada trimestre va en algo que se lee en el momento de contestar, nunca dentro de los pesos.

El juego de casos que no le dijo nada

Había escrito un juego de casos, que fue lo único hecho en el orden correcto. Escribe el juego de casos antes que la función, porque una demostración no puede fallar: una demostración es una pregunta elegida después de que el sistema existiera, y selecciona lo que ya funciona, siempre, sin que nadie decida hacer trampa.

La primera versión no le enseñó nada igualmente. Doce preguntas, todas cosas que una abonada puede preguntar, todas contestadas bien la primera tarde.

Un juego de casos sin respuestas equivocadas dentro solo mide que la cosa arranca. El que se ganó el sueldo fue el segundo, hecho con las preguntas que el sistema había fallado ese mes, con la de la sobrina la primera y con la respuesta esperada escrita por una persona: los menores de catorce años entran acompañados, y la norma citada en vez de resumida.

Dónde está el trabajo

Todo se estrecha en una petición, y la petición es la parte que no escribiste

Cuatro cosas se aprietan dentro de una sola llamada y de ella caen tres consecuencias. La llamada son cuatro líneas.

  1. La pregunta de la abonadaEscrita como se escribe en un móvil, sin tildes
  2. El reglamento de usoNueve páginas, redactadas para un tablón
  3. El cuadro de cursillosCambia cada trimestre y vive en otro sistema
  4. La instrucción permanentePara quién es la respuesta, y qué no se puede inventar
Una petición, una respuestaSe cambia por otro proveedor en una tarde, que es la pista de dónde no está el valor
  1. Una respuesta analizadaO un rechazo, guardado para el juego de casos del mes que viene
  2. Una plaza dada, o una negativaUna fila en una base de datos que cuesta deshacer
  3. El domingo de alguienDonde acaba llegando un párrafo que no recuperó nadie

Los dos conos son el sistema y la cintura es el proveedor. Un dibujo que hiciera la cintura la parte más grande sería el retrato de la demostración y no el del servicio.

Los dos lados de la llamada son tuyos

Cada llamada es una llamada de red, así que falla como fallan las llamadas de red: despacio, a ratos y en el peor momento. Y además cobra. Un reintento por tiempo de espera agotado puede cobrar dos veces y contestar una, y un reintento sobre una petición que ya había apuntado a alguien en un cursillo es una plaza duplicada y no un párrafo duplicado.

A la salida, trata la salida del modelo como un formulario que ha rellenado un desconocido. No es marcado que escribieras tú ni un valor de tu propia base de datos: es texto producido bajo influencias que no puedes enumerar, y está a punto de pintarse en una página, de entrar en una consulta o de llegar a una función que reserva. Analízalo contra un tipo declarado, rechaza lo que no encaje y guarda el rechazo, porque los rechazos son los casos del mes que viene.

El orden, y el escalón que se salta todo el mundo

Primero la llamada, en la API de un modelo, que es una tarde y deja fijado lo que cuesta la cosa y por dónde falla. El juego de casos, segundo.

Tercero, RAG, que es donde está casi todo el trabajo. Cuarto y pocas veces, fine tuning.

Y luego todo lo que hay entre una demostración y un servicio, que es en producción.

El segundo es el que se salta, y saltárselo no se ve durante unas seis semanas. Sin él el tercero no se puede depurar, porque nada distingue una recuperación que mejoró de una que cambió. El cuarto no se puede justificar de ninguna manera, porque lo único que afirma un ajuste fino es una comparación.

Quien llega al cuarto escalón sin el segundo ha comprado un cambio caro que no tiene forma de evaluar, y se lo va a quedar, porque suena mejor. Los evals no son el paso ordenado del final: son el instrumento con el que se leen todos los demás.

El atasco es mejorar a ojo

Aquí el atasco llega después de poner la cosa en marcha. El sistema contesta casi todo, los fallos evidentes ya no están, y a partir de ahí cada cambio se juzga probándolo: otro tamaño de trozo, otra instrucción, un modelo más nuevo, y detrás de cada uno tres preguntas y un veredicto. La actividad no baja de ritmo, que es por lo que nadie nota que el mejorar se ha parado.

Lo que lo convierte en atasco y no en costumbre es quién elige las tres preguntas. Las elige la persona que acaba de hacer el cambio, minutos después de hacerlo, entre los casos que tenía en la cabeza mientras lo hacía.

El segundo juego de casos de Álvaro existe porque la pregunta de la sobrina no fue nunca una de las tres y no lo habría sido nunca. Nadie escribe una prueba a partir de un caso en el que todavía no ha pensado, y por eso los casos tienen que venir de lo que salió mal y no de lo que podría salir.

Qué abrir en 2026, y qué sustituyó cada cosa

pgvector mete los embeddings en el Postgres que ya está debajo de la aplicación, y sustituyó a levantar una segunda base de datos solo para guardar vectores. Es libre y gratuito.

Aquí gana por dos motivos: la recuperación que funciona casi siempre necesita un filtro al lado de la búsqueda por parecido, y la pregunta de una abonada sobre el domingo quiere las normas de esa piscina, vigentes, ordenadas por las dos cosas a la vez. El segundo motivo es de aquí: el texto de los socios no sale de la base de datos que ya tienes ni del sitio donde ya la tienes alojada, y dónde vive ese índice es una decisión que se toma antes de escribir la función y no después.

Pydantic valida lo que ha vuelto contra un tipo declarado antes de que lo vea nada de lo que hay detrás, libre y gratuito, y sustituyó a analizar prosa con una expresión regular y confiar en que la forma aguantara.

promptfoo pasa un fichero de casos contra una petición en cada cambio y dice qué respuestas se han movido, libre y gratuito, y sustituyó a probar las mismas tres preguntas a mano después de cada edición, que es el método que usa todo el mundo primero y que selecciona en silencio las tres preguntas que ya funcionaban.

Queda la pregunta que hay debajo del mes que perdió Álvaro. Nada de lo que falló en la recuperación iba de modelos: era una norma redactada para un tablón, indexada por las palabras que resultó llevar dentro, y buscada por alguien que escribe sin tildes.

Eso es análisis de datos disfrazado, y la versión de este problema que tiene nombre y bibliografía es la puesta en producción, que tenía tiempos de espera, reintentos y marcha atrás mucho antes de que existiera nada de esto. Y cuando quien hace la llamada ya no es una pantalla sino uno de los agentes de IA, el formulario que rellena el desconocido lo rellena cien veces por noche.

Al lado de esto

Por encima de esto