Primeros Pasos Con A.I.: Captchas
Corría un caluroso fin de semana de agosto cuando me encontré con un interesante tutorial de Tensorflow por PyLessons. En este, se explica el proceso requerido para entrenar un modelo de reconocimiento de caracteres para resolver captchas, un problema que hasta hace unos años era considerado imposible.
Pero desde hace algunos años, la inteligencia artificial, el machine learning, las redes neuronales y otros demonios han visto una impresionante evolución. Desde hace muchos ayeres, los captchas tradicionales no solo se han hecho obsoletos, sino que el día de hoy, con cualquier computadora se puede entrenar y correr un modelo.
Seis años atrás me quejaba amargamente de los captchas que son tan prevalescentes en los sitios de gobierno—servicios que pagamos todos y de los cuales no tenemos otra opción más que usarlos. Una cosa es que Google, o Facebook, o Netflix me impongan restricciones (es su plataforma, y tengo otras opciones si no me gustan sus reglas), para un servicio público es simple y sencillamente una medida abusiva que nos quita —literalmente— cientos de años de nuestro precioso y limitado tiempo.
En ese sentido, el sitio de SAT probablemente es el más utilizado en todo el gobierno y sus implementaciones de captchas llevan, por lo menos, 10 años de implementación sin actualizaciones. No podía existir un ejemplar más perfecto para ver la utilidad de estas herramientas.
El primer paso fue echar a andar el ejemplo que nos proporciona PyLessons. Desafortunadamente las versiones señaladas o no eran compatibles, o tenían errores. No hubo de otra más que indagar en el código fuente hasta encontrar una que cumpliera todos los requisitos. Lo demás fue instalar paquetes que no tenía y luego correr un comando. Y esperar. Resulta que entrenar modelos en una laptop no es recomendado, pero es lo que hay.
Ya con el modelo del tutorial, el siguiente paso fue crear un dataset propio (fácil) y después etiquetarlo (difícil). Para la primer parte, cree un script para visitar 1,000 veces el sitio de SAT y descargar el captcha. De la segunda parte, necesitamos resolver cada uno de los captchas para tenerlo en texto plano, esto es lo que le va a ayudar al modelo a aprender.
Anti Captcha es un servicio que ya había utilizado anteriormente y que cobra $1 dólar por resolver 1,000 captchas. Por ese precio es inmejorable, así que esa fue la ruta que tomé.
El siguiente paso fue entender un poco de la parametrización; Tensorflow espera que todas las imágenes que le proporcionemos midan lo mismo, información que además hay que incluirla antes de pasar a entrenar el modelo. No fue mucho problema. Una noche después, ya tenía un modelo que tenía poco menos del 70% de éxito resolviendo captchas que se usaron para entrenar. Nada mal, pero tal vez podría mejorar.
El problema seguramente estaba en el tamaño del dataset—1,000 captchas no parecen ser suficientes. $10 dólares más a Anti Captcha y algunas noches dejando el modelo en entrenamiento (resulta que el proceso no es consistente; obtenemos diferentes modelos incluso dándole los mismos valores de entrada), tenía un modelo con 99.6% de eficacia. De los 10,117 captchas en el dataset, solo 32 no eran reconocidos correctamente.
Ya con modelo en mano, la siguiente tarea fue hacerlo portable; que se ejecutara en tantos lenguajes como fuera posible. La buena noticia es que el mismo tutorial exporta a ONNX; la mala es que hay implementaciones no oficiales que son mucho más fáciles de utilizar que las oficiales. Tras mucho prueba y error, ya podíamos interpretar el resultado con Javascript. Node y PHP fueron los siguientes.
A la par de estas implementaciones, contacté a mis amigos de phpCfdi para exponenciar la utilidad de este modelo. Pocos días después ya teníamos un Captcha Resolver.
Este ejercicio me dejó pensando en las diferentes maneras que la A.I. permeará nuestras vidas. Creo que el mundo está enfocado en la evolución hacia AGI, pero al igual que el microchip, mini modelos empezarán a estar en todos lados—no solo en nuestras computadoras, resolviendo captchas, sino probablemente en las llantas de nuestros carros, en los dispensadores de agua, en la caja de la pizza y en nuestras licuadoras, buscando patrones para descifrar cómo trabajar de mejor manera.
P.S. Breaking the 4Chan Captcha Obviamente blackjack sabe mucho más que yo y la implementación es más compleja e interesante.
P.P.S. Sora Open AI lanzó ayer su herramienta de generación de video, aunque ha tenido problemas con el tráfico, por lo que millones hemos podido solo ver lo que otros con acceso han hecho.
Primeros Pasos Con A.I.: Captchas fue escrito por @rafael_soto_ el día martes 10 de diciembre de 2024 a las 11:31 a. m.
Este post fue etiquetado: tecnología web ai video interesante gobierno México
23 años haciendo sitios web
Sabemos una o dos cosas acerca de cómo posicionar tu negocio en internet. Hablemos.
Comentarios
Agrega tu comentario
Nota: Comentarios deshabilitados temporalmente, disculpen las molestias.