Asistente para el diagnóstico fitosanitario de cultivos, con dos capacidades distintas de modelos fundacionales de Hugging Face.
Ver la demostración Ejecutar la aplicación Modelo ViT Modelo ConvNeXtRecorrido real de 20 segundos, grabado sobre la aplicación en ejecución
Se arrastra la fotografía de una hoja al recuadro, el clasificador la identifica como Peach · Bacterial spot con 99,7 % de confianza, el asistente responde una consulta sobre la enfermedad con ese diagnóstico ya en contexto, y una consulta ajena al dominio queda rechazada por el filtro sin llegar al modelo de lenguaje.
Por qué publicamos un video y no un enlace. La dirección pública que genera Gradio existe únicamente mientras el cuaderno está en ejecución, así que cualquier enlace que dejáramos aquí quedaría muerto a los pocos días. El video resuelve eso: dispone el funcionamiento completo de forma permanente y verificable. Y si prefieres ejecutarla tú, el cuaderno está en la entrega y levanta en unos cuatro minutos — las instrucciones están más abajo.
Dos capacidades distintas de modelos fundacionales, en una sola aplicación
Subes la foto de una hoja y el sistema hace dos cosas que no son la misma. La clasifica entre 38 categorías fitopatológicas, y después conversa contigo sobre qué hacer con ese diagnóstico. El sistema tiene dos capacidades y tres modelos: ViT y ConvNeXt resuelven la misma tarea y están los dos porque son el objeto de la comparación experimental.
Ajustados sobre PlantVillage. Devuelven una etiqueta entre 38 clases con su probabilidad. Se pueden ejecutar por separado o comparar lado a lado.
Sin ajustar. Recibe como texto la clase que decidió el clasificador y conversa sobre tratamiento y manejo. No procesa la imagen.
El clasificador es preciso pero cerrado: ante una especie que nunca vio devuelve igual una de sus 38 etiquetas, con alta confianza y sin manera de decir «no sé». El modelo de lenguaje no decide nada: recibe la clase ya resuelta y se encarga de traducirla a manejo agronómico, que es la pregunta que un usuario tiene de verdad frente a una hoja enferma.
Comparación controlada sobre el conjunto de prueba, usado una sola vez
| Modelo | Preentr. | Parámetros | Exactitud | Macro F1 | Weighted F1 | Latencia CPU |
|---|---|---|---|---|---|---|
| CNN desde cero (referencia) | No | 8,49 M | 59,60 % | 0,354 | 0,544 | — |
| ViT-Base/16 | IN-21k | 85,83 M | 99,08 % | 0,988 | 0,991 | 395,0 ms |
| ConvNeXt-Tiny | IN-1k | 27,85 M | 96,41 % | 0,919 | 0,960 | 119,6 ms |
de macro F1 sobre la red entrenada desde cero, contra +39,5 pp de exactitud
de macro F1 de ViT sobre ConvNeXt, con solo 2,7 pp de diferencia en exactitud
más rápido ConvNeXt en CPU, con un tercio de los parámetros
ConvNeXt obtuvo un F1 de 0,000 en Potato___healthy, una clase con solo tres ejemplos en prueba, y 0,182 en Corn___Cercospora_leaf_spot. ViT resolvió las dos por encima de 0,900. Abandonar las clases pequeñas es exactamente el mismo patrón que había mostrado la red entrenada desde cero, y por eso elegimos ViT como modelo por defecto aunque sea más lento.
Las dos arquitecturas coinciden en tres de sus cinco peores clases. Cuando los dos modelos fallan en lo mismo, la dificultad viene del problema y no del modelo.



Medimos la segunda capacidad y dos cosas que creíamos resultaron falsas
Sometimos el asistente a diez consultas sobre una misma hoja de duraznero clasificada como Peach · Bacterial spot: ocho del dominio agronómico y dos deliberadamente ajenas. Cada respuesta se clasificó en correcta, vaga o incorrecta.
| Resultado sobre 10 consultas | Qwen2.5-0,5B | Qwen2.5-1,5B |
|---|---|---|
| Correctas (de 8 en dominio) | 0 | 1 |
| Vagas (de 8 en dominio) | 1 | 3 |
| Incorrectas (de 8 en dominio) | 7 | 4 |
| Fuera de dominio bloqueadas | 0 de 2 | 2 de 2 |
Ante la pregunta por la dosis de cobre, el modelo de 0,5 B inventó una cifra —«0,001 gramos por litro»— y un instrumento que no existe. El de 1,5 B respondió que no tenía información específica y derivó a un agrónomo. Se abstuvo. Un modelo mayor no solo acierta más: reconoce mejor los límites de lo que sabe, y en un asistente que sugiere tratamientos eso importa más que la exactitud media.
Habíamos escrito en la instrucción de sistema que el asistente solo respondiera sobre botánica y agricultura. Al medirlo, dejó pasar las dos consultas ajenas al dominio: a una pregunta de salud humana llegó a sugerir analgésicos. Lo reemplazamos por un filtro léxico determinista que decide antes de invocar al modelo, y que acertó 21 de 21 casos etiquetados. La lección se resume en una línea: lo que debe cumplirse siempre no se le pide al modelo, se le impone al sistema.
Es una mitigación, no una solución: el filtro decide por vocabulario, así que una consulta ajena redactada con palabras agrícolas pasaría.
Lo que este trabajo no demuestra
En lo metodológico, los dos hallazgos que más cambiaron nuestra lectura de los resultados —el buffer de barajado del experimento de referencia y el agrupamiento por hoja de PlantVillage— no tienen nada que ver con la arquitectura de los modelos.
Cuatro minutos, sin instalar nada en tu equipo
4_Codigo_Aplicacion_Gradio.ipynb —incluido en la entrega— en Google Colab.Ctrl+F9). La descarga de los tres modelos desde el Hub toma unos minutos la primera vez..gradio.live. Esa es la aplicación, y funciona desde cualquier navegador mientras el cuaderno siga abierto.Los tres modelos se descargan solos desde el Hub, así que no hay que entrenar nada ni configurar credenciales. El cuaderno de entrenamiento se entrega por separado y con todas sus salidas ejecutadas, por si interesa revisar el proceso completo.
Por qué la aplicación no corre dentro de este Space.
En julio de 2026 Hugging Face modificó su política: los Spaces de tipo Gradio y Docker pasaron a requerir plan PRO, mientras que los de tipo Static siguen siendo gratuitos. Está documentado en el foro oficial de Hugging Face.
La documentación menciona una excepción: una cuenta gratuita «in good standing» podría alojar hasta dos Spaces Gradio sobre ZeroGPU. La verificamos en la cuenta del proyecto el 11 de agosto de 2026 y no estuvo disponible: el formulario de creación ofrece Gradio y Docker marcados como «Paid», sin opción de hardware ZeroGPU.
La aplicación es exactamente la misma que habíamos preparado. Lo único que cambia es dónde se ejecuta el proceso: en vez del contenedor de Hugging Face, corre en un cuaderno de Google Colab y Gradio publica la dirección con share=True. Los dos modelos ajustados siguen publicados en el Hub, y esta portada está desplegada como Space Static.