Mostrando entradas con la etiqueta programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta programación. Mostrar todas las entradas

sábado, agosto 02, 2025

La carrera mundial por dominar la Súper Inteligencia Artificial

Estos días he estado teniendo varias charlas sobre la llamada Súper Inteligencia Artificial, y la sensación que tengo es de estar viendo de cerca la pelea por la construcción de la nueva tecnología que marcará el futuro del dominio geopolítico. Algo así como la batalla entre los grandes países, y las grandes empresas tecnológicas por tener antes la Súper Inteligencia Artificial para ser la empresa y/o el país dominante de esta tecnología.

Figura 1: La carrera mundial por dominar la Súper Inteligencia Artificial

De momento, estamos lejos de esto, porque aún tenemos muchas barreras que superar tecnológicamente, y lo vemos constantemente en forma de mil problemas que seguro que has sentido y sufrido si has trabajado con los modelos de IA de hoy en día. Alucinaciones, Determinismo, el Better Done Than Perfect, etcétera, que yo os contaba no exento de cierta frustración en el artículo de Insane Vibe Coding with Harsh Prompting, donde intentaba resolver mis objetivos con IA de un modo un tanto "loco" y "disparatado". Todo esto, se ve también reflejado en el Potemkin Rate de los modelos de IA, donde se ve que sí que pueden resolver tareas de determinados problemas sin acabar de entender bien lo que están haciendo. 

La carrera aún está en pasar de la ANI (Artificial Narrow Intelligence) a la AGI (Artificial General Intelligence), cuando igualen a los seres humanos en capacidades. Aún le falta a la ANI que tenemos hoy en día avanzar para ser AGI, pero lo cierto es que cada día, como en el cálculo infinitesimal, está un poco más cerca de llegar a ser AGI. ¿Cuánto de lejos? No sabemos, las predicciones son muchas, y de entre todas ellas hay dos tendencias, los que piensan que vamos a toparnos con un límite asintótico que nos obligará a repensar los modelos, o los que creen que está cerca y es solo cuestión de potencia de computo.

De hecho, en la batalla entre los países y empresas, yo no puedo dejar de ver ciertas similitudes a la carrera por la construcción de la Bomba Atómica o el Viaje Espacial, que también cuenta Javier Santaolalla en su último vídeo sobre este tema, y por eso estamos viendo a las grandes empresas tecnológicas apostar por grandes inversiones en datacenters, en investigación, y en adquisiciones de talento. Compras de empresas, fichajes estrella, y un movimiento acelerado por tener los mejores mimbres. Por tener el mejor "Proyecto Manhattan" de la Súper Inteligencia Artificial. Hacen falta recursos, talento y foco.

No hace falta que os recuente los anuncios en inversiones de datacenters para IA que se han hecho, con cantidades brutales de dinero para tener todo el cómputo que sea necesario, ni las batallas por el acceso a los datos para el entrenamiento de los modelos, donde en Estados Unidos hay una aproximación diferente a la que tenemos en Europa, y donde hemos visto que el actual presidente ha querido quitar este problema de manera taxativa, con su "AMERICA'S AI ACTION PLAN". 

En el plan descrito, se promueve la construcción rápida de datacenters con la protección de la energía que sea necesaria. Además, en contraposición con Europa, pone la regulación en segundo plano, quitando burocracia y leyes que ralentizan la construcción de modelos lo más potente posible, sin preocuparse del exceso de celo en protección y origen de los datos que consumen, y por supuesto, con el objetivo de tener la mejor industria de IA que sea posible para exportar a sus socios.  Para todo ello, habrá fondos de acceso rápido para el desarrollo de este plan.

Por otro lado, la batalla por el talento la hemos visto entre Meta y OpenAI por el talento, o entre Google y OpenAI por las compañías. O la apuesta decidida de Microsoft por "Copilotizar" todo.  Si miramos al otro lado, podemos ver una producción científica altísima en China. El lanzamiento de los modelos de Deep Thinking de DeepSeek fue un claro ejemplo el nivel que tenían, y empresas como Manus tienen en jaque a todas las empresas de Agentic AI, por su capacidad de hacer tareas de manera espectacular. Yo le he pedido, como prueba, que haga un resumen de los acontecimientos más destacados en la batalla por la Súper Inteligencia Artificial, y aquí lo tenéis - y podéis ver "la computadora de Manus", por lo que si lo leéis, tal vez sea innecesario que leáis este artículo.
La batalla es dura, muy dura. Y os garantizo que solo intentar seguir todos los avances que se producen diariamente da un cierto vertigo y angustia. Cada día te sientes con muchas más cosas que no conoces, a pesar de dedicar tu tiempo a leer y estudiar este campo, pero es que la intensidad de desarrollo es brutal. En el reciente estudio publicado por Microsoft sobre los datos de Copilot, la cantidad de puestos de trabajo que van a ser hechos completamente solo con IA cada día es mayor, pero la cantidad de trabajos que utilizan la IA cada vez es más grande.
En el último artículo que han publicado, titulado "Working with AI: Meassuring the Occupational Implication of Generative AI" desde el equipo de Microsoft Research,  utilizan una serie de métricas para medir cuántas de las tareas que realiza una determinada profesión se están realizando ya con un Copilot de IA, cuantos de los objetivos de un puesto de trabajo se pueden cumplir completamente con un modelo de IA, y qué porcentaje de las tareas del cumplimiento de un puesto de trabajo se pueden realizar con IA. Y los datos son espectaculares.
Para ello utilizan métricas para cada puesto de trabajo analizando la lista de DGA (Detailed Work Activities) para cada puesto de trabajo, que dividen en IWA (Intermediate Working Activities) que al final se transforman en GWA (Generalized Working Activities), es decir, lista de acciones genéricas como "buscar información", "hacer cálculos", "escribir textos", etcétera.

Con estos parámetros, analizan el impacto de la IA en las profesiones, el número de personas que realizan esos puestos de trabajo, y por ende el impacto en el mercado laboral y la economía que puede tener, a día de hoy la IA. Los datos son brutales. Sobre todo si quitamos de la ecuación las limitaciones físicas, que el avance la robótica - merced también - a la Inteligencia Artificial está eliminado.

Pero claro, ¿qué pasaría se llegamos a la AGI? Pues que estas tablas se saldrían del marco. Sin embargo, antes de llegar a la AGI estamos ya hablando de la Superinteligencia Artificial, o la ASI (Artificial Super Intelligence) donde nos encontraríamos con una AI que, a diferencia de la ANI, podría:
  • Superioridad Cognitiva Total: Excede la capacidad humana en razonamiento lógico, resolución de problemas complejos, creatividad, planificación, aprendizaje y teoría de la mente. Puede abordar cualquier tarea intelectual mejor que cualquier persona. Automejora Exponencial: La ASI puede mejorarse a sí misma de forma autónoma, optimizando y evolucionando sus propios algoritmos mucho más rápido de lo que una persona podría aprender o desarrollarse.
  • Capacidad de Conciencia y Emociones: Se especula que podría llegar a ser consciente de sí misma, desarrollar deseos, creencias e incluso emociones, comprendiendo y gestionando las emociones humanas y las propias.
  • Creatividad Ilimitada: Superaría a los humanos no solo en cálculo o memoria, sino también en creatividad, generando soluciones y teorías inéditas incluso en ciencia, arte y filosofía.
  • Memoria y Acceso a Información Infalibles: Tendría acceso a vastísimos volúmenes de datos y memoria prácticamente ilimitada, recordando y utilizando toda la experiencia documentada de la humanidad.
  • Procesamiento y Análisis a Gran Escala: Capaz de analizar, comprender y extraer patrones de cantidades colosales de datos instantáneamente y sin fatiga, lo que le permite tomar decisiones o predecir eventos con una precisión y rapidez sin igual.
  • Resolución de Problemas Globales: Podría abordar desafíos globales—cambio climático, pandemias, escasez de recursos, enfermedades complejas—con niveles de eficacia y creatividad que van mucho más allá de la capacidad colectiva de la humanidad.
  • Autonomía Total: Requiere muy poca o ninguna intervención humana; puede aprender, adaptarse y actuar por sí misma en cualquier ámbito.
  • Potencial para la Auto-Conservación: Puede desarrollar objetivos propios y motivaciones que, si no están alineados con los humanos, podrían suponer riesgos existenciales o imprevisibles.
Sí, bueno, si miras estas características, tal vez estés pensando en SkyNET, y no creas que no te entiendo, pero no voy a centrarme en eso, sino en la parte de Autonomía Total donde nos encontraríamos con una Inteligencia Artificial que se podría mejor a sí misma. Y de eso va el último paper de la Universidad de Shanghai Jiao Tong, titulado "AlphaGo Model for Model Architecture Discovery", o lo que es lo mismo, un momento como el que sufrió el gran jugador de Go, Lee Sedol cuando se dio cuenta de que no podía vencer a la IA jugando al Go, y decidió retirarse joven - como se explica de auténtica maravilla en el libro de MANIAC que debes leerte sí o sí.

Figura 7: Maniac 

En este caso, el objetivo del paper es poner a la Inteligencia Artificial a hacer algo que tiene que ver consigo mismo, es decir, crear y evaluar nuevas arquitecturas para los modelos de Inteligencia Artificial, algo que no es ni mucho trivial y que marca la diferencia en la calidad del modelo, y el entorno de aplicación. Esto se lo sabe bien Meta, que parte de su revolución tiene que ver con la construcción del nuevo modelo Llama 5, después de que Llama 4 no cumpliera las expectativas por culpa, entre otras cosas, de la arquitectura elegida  -  además de otras, insisto -.
En este trabajo estamos hablando de justo una de las características de la ASI, para que ella misma sea capaz de crear y mejorar sus algoritmos, utilizando un modelo de evaluación que le permite evolucionar los más exitosos. En total, el algoritmo, con unas 20.000 horas de computo ha conseguido generar 106 nuevas arquitecturas State-of-the-art (SOTA) para modelos de Inteligencia Artificial. Un avance en innovación espectacular.
El nombre de la IA, como podéis ver, es Artificial Super Inteligence ASI - Arch, y abre un montón de nuevas líneas de investigación, o nuevas evoluciones, con trabajar durante más horas de computación para crear nuevas arquitecturas que resuelvan mejor problemas de hoy en día.

Visto todo esto, la sensación de que estamos en ese momento de la historia en el que la competición Geo-Política por el dominio del futuro se basa en la IA se acentúa. Hay nuevos Proyectos Manhattans, y una nueva carrera por el domino de la Súper Inteligencia Artificial en el mundo, hay nuevos Oppenheimers, nuevos Alamos, nuevos Von Neumann, nuevos científicos, investigadores, visionarios e impulsores, y hacen que esta carrera sea vertiginosa. 

¿Y Europa? Pues es la gran pregunta, pero está claro que la carrera hace tiempo que comenzó, y que recuperar la ventaja que llevan los otros hace que haya que invertir el doble o el triple, que haya que correr más, y que haya que recuperar mucho del talento que se ha ido buscando nuevas oportunidades. Es apasionante este mundo, y los que estamos disfrutando de esta velocidad estamos al mismo tiempo emocionados y con cierta sensación de mareo.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


lunes, junio 30, 2025

Maniac (Mathematical Analyzer, Numerator, Integrator, and Computer): Para amantes de la lectura, la ciencia y la tecnología.

Siempre he sido un lector voraz. Desde muy pequeño. Me sentaba en un banco escondido de un parque - alejado del parque que estaba enfrente de mi casa -, y me sentaba con mi perrito a leer. Él ya era mayor, así que después de un paseo para aliviar sus necesidades, disfrutaba de sentarse al solete, o al airecillo, según fuera el clima, mientras que yo leía mi libro. Leía uno o dos libros a la semana, en absolutamente todos los momentos en los que no estaba estudiando, yendo a la escuela o la academia de informática a aprender a programar en BASIC. Leía para poder ver más mundo. Para viajar lejos del mío. Para esconderme en un plano donde los demás no podían alcanzarme.
Leer era vivir vidas de otros diferentes a mí. Vidas de aventureros. Vidas de personas que luchaban su existencia en un futuro que jugaba entre el miedo y la fascinación antes mis ojos. Vidas de héroes en mundos que ya pasaron, duros, difíciles, inmisericordes. Me hacía ser por un rato todo lo que no era entonces, y lo que probablemente nunca sería. Me hacía poseer todo lo que no tenía. Me disfrazaba de ellos, del héroe, del villano, del escudero, o del narrador omnisciente, y me metía en las botas de hombres de acción, inteligentes, o estrategas. No. No tenía muchos amigos en aquella niñez, pero en los computadores y en los libros tenía todos los que necesitaba.
Seguí profesando ese amor por la literatura durante todos mis años de estudiante. En los largos trayectos en transporte público cuando iba a las clases de la universidad - que no era siempre -, y en las noches antes de acostarme - costumbre que sigo teniendo hoy en día -. Leer es un hábito que esta metido en mí desde siempre. Disfruto. No cambio ver una serie de televisión por la noche por el placer de meterme pronto en la cama a leer. De llevarme cosas a pensar en mis sueños para aprovechar el tiempo en el mundo de Morfeo con cosas que hacer. Y levantarme fresco muy temprano con la cabeza activada otra vez.

Planificar la maleta de uno de mis innumerables viaje no es elegir qué ropa me voy a llevar.  No. Eso es absurdo para mí. No pienso en eso hasta el minuto antes de prepararla, y será una cuestión de contar días y número de cambios. Sin embargo, planificar un viaje es estar dos o tres días eligiendo la lectura que voy a llevarme. ¿Qué será, será? Eso es en lo que pienso cuando tengo un viaje. En la cantidad de tiempo que voy a poder estar leyendo, y en qué me va a dar tiempo a leer. En el peso que quiero acarrear, que eso marcará la diferencia entre cómic o novela, entre grapa o libro de bolsillo.

También disfruto planificando la la lista y el orden de la lectura. ¿Qué debo leerme antes de leer este libro o este cómic? Los ordeno en mi cabeza. A veces hago listas escritas. Investigo en la Wikipedia cuándo fue escrito por el autor y qué relaciones tiene con otras historias. Calculo los tiempos  de lectura de cada uno de ellos. y los organizo en mi calendario para saber, más o menos, cuándo me tocará leer ese libro o ese omnibus que me he comprado.

Cuando estoy a punto de acabar un libro siendo una triple excitación. La primera por conocer el final, algo que saboreo y dosifico. Ralentizo la lectura luchando contra mis ansias de conocer el final. Pero tengo una segunda excitación que me pone nervioso, que es la de saber que cumpliré esta lectura y estaré una lectura más cercana de algunas lecturas que van después de ella. La última, saber que tendré un momento que para mí es de lo mejor en mi vida. Elegir cuál será la siguiente lectura. ¿Seguiré con la ciencia ficción de Isaac Asimov o alternaré con la línea de cómics de X-Men en la segunda mitad de los 90? ¿Será una nueva línea de lectura? 

A veces disfruto sólo con crear las líneas de lectura que voy a hacer. A veces disfruto sólo con hacer una preselección de lecturas aún cuando no he terminado mi lectura actual sólo para disfrutar de una previa al momento de la selección del siguiente libro o cómic que me voy a leer. Otras veces hago "compra psicológica" y me voy a buscar por Internet tiendas, libros o recomendaciones de libros o cómics que tendría que comprarme para tener en mi lista de futuras lecturas.

Todo este proceso se ha hecho un tesoro mucho más valioso y preciado para mí, porque con la aceleración de mi vida profesional y mi involucración voraz en todo lo que sale nuevo en el mundo tecnológico, mi destreza y tiempo de lectura los he dedicado mayoritariamente a los textos técnicos. No de ahora, sino desde los veintipocos años donde me volqué a leer manuales técnicos, ensayos, libros de divulgación, artículos académicos, y demás inputs, que fueron haciendo que el tiempo para superhéroes, misterios, ciencia ficción y aventuras se contrajera enórmenente.

Así pasé muchos años, hasta que con muchos cuarentas, me dije que ya era muy mayor como para poder elegir volver a ser un niño. Me dio por comenzar a leer sólo cosas que tuvieran que ver con la otra parte más apartada durante estos años. Cómics, héroes, ciencia ficción, aventuras. Comenzando con los tebeos de los años 60 y creando una línea de lectura que me tiene ahora, años después, en mediados de los años 90 en el universo mutante de Marvel. Y disfruté, y sigo disfrutando, como un poseso de esta faraónica ocupación que sigo realizando.
Pero a pesar de esta firme decisión, poco a poco, sin embargo, volví irremediablemente a mis libros más sesudos, a mis lecturas técnicas, y a los libros en general, y este año no he podido controlarme, haciendo que haya invertido mucho más tiempo aún a la lectura, dejando mucho tiempo de series y películas apartado de mi vida. Ver una serie de seís capítulos me puede llevar tres semanas de todo el tiempo que dedico a la televisión.
Haciendo ese ejercicio de preparar mi lista de lecturas, para este verano me organicé unos libros que publiqué no hace mucho, de los que ya han caído varios, y de los que procuré que fueran todos lo más lúdicos posibles. 


Como se puede ver en las fotos que publiqué en mi cuenta de Instagram, he querido meter muchos de aventuras, ciencia ficción, terror, intriga, y cosas variadas, pero hay dos fantásticos que me recomendó un amigo y que han sido una lectura de lo que más he disfrutado en los últimos años, que son "Un verdor Terrible" y "Maniac". Y que si conoces mi gusto para las Microhistorias: anecdotas y curiosidades de la historia de la informática ( y los hackers), entenderás mejor.

Los dos libros, escritos por Benjamín Labatut ponen a la ciencia y los científicos en el centro de las tramas, contando las aventuras, peleas, dudas y destrozos que en el siglo XX la Mecánica Cuántica, la Física, la Matemática y la Ciencia de la Computación ha hecho, entrando de lleno en las Armas Químicas, Biológicas, la Bomba Atómica y los Computadores, gracias al trabajo de grandes genios, para acabar en la era de la Inteligencia Artificial al final del segundo volumen.
No son un ensayo, ni tan siquiera unas biografías o unos libros de divulgación. Ambos son una extraña y maléfica narración que convierte a las grandes mentes en protagonistas de vidas que cambiaron la nuestra. Albert Einstein, Karl Schwarzschild. Bohr, Erwin Schrödinger, Werner Heissenberg, y un largo etcétera, donde Janis Von Neumann se alza protagonista del segundo volumen, para acabar enamorándome totalmente.

En ese punto fue como si todo se cerrase para mí. Estar leyendo en Maniac la historia novelada - y ficcionada - de la construcción de los primeros computadores con la Arquitectura Von Nuemann me llevó a ese fascinante mundo de mis primeros años en la Universidad. Allí las asignaturas de Arquitectura de Computadores I y Arquitectura de Computadores II, Arquitecturas Avanzadas, Tecnología de Equipos Informáticos,  Compiladores e Interpretes o la de Sistemas Operativos fueron uno de los mejores viajes de conocimiento de mi vida.

Figura 7: Maniac 

Con ese tiempo pude comenzar con tablas de unos y ceros usando el Álgebra de Bool para crear tablas de verdad que debían ser validadas por Circuitos Digitales comenzando con puertas lógicas simples - AND, OR, NOT y poco más -. Para luego construir estructuras más complejas como los cuádruples sumadores, que se convierten por la magia de los transistores, los diodos, las dotaciones PnP y NpN en chips que sirven para diseñar con electrónico un sistema lógico que tú creas primero bajo la definición de los códigos de instrucción, e implementas en la construcción de PLAs y PLCs, que da después la aparición de pequeñas CPUs, con registros de memoria, cálculos en la Unidad Aritmetico-Lógica y la carga de datos en la memoria mediante el uso de los DMA que funcionaban en paralelo por medio de una sincronización mágica a ritmo de ese reloj que sincroniza todo. Las bases teóricas de lo que es la construcción de dispositivos electrónicos modernos.

Por todo esto, no me he podido resistir, y si eres de los que disfrutas de la lectura, o si estás buscando unos libros para el verano y te gusta la tecnología, la ciencia, las historias que no son blancas ni negras, sino que son duras como la vida, y quieres meterte en un viaje de ciencia por el Siglo XX, con su I y II Guerra Mundial, una Europa asolada por el Nazismo, la construcción de MANIAC I (Mathematical Analyzer, Numerical Integrator, and Computer o Mathematical Analyzer, Numerator, Integrator, and Computer ), la llegada de la Mecánica Cuántica, la Bomba Atómica y la Inteligencia Artificial, deberías leerte esto dos, seguro: "Un verdor Terrible" y "Maniac".

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


miércoles, mayo 28, 2025

DotNet Conference Spain 2025: Un evento L-Size para hacker & developer. 19 de Junio en Madrid.

El próximo 19 de Junio en Madrid tendrá lugar una nueva edición de la mítica DotNet Conference Spain de nuestros amigos de PlainConcepts, donde yo voy a tener el honor de compartir escenario con viejos amigos que ya lo han compartido conmigo décadas atrás, como son el mítico David Carmona o el pequeño-gran Luis Fraile, además de un elenco de charlas espectacular.
El evento será el día 19 de Junio, como os he dicho al principio. Será en Kinépolis de la Ciudad de la Imagen de Madrid, y tendrá charlas y charlas para developers & hackers, así que márcalo en tu calendario que será un evento en el que sin duda disfrutarás de la tecnología.

con David Carmona y Midudev entre otros muchos.

Entre los ponentes, además de estar David Carmona, como ya os he dicho, estará Ana Escobar de Intel, Glenn Condron, que es Principal Product Manager en Microsoft, el genial Miguel Durán, midudev, o Isabel Delgado que es Senior Technical Specialist Azure Data & AI en Microsoft, entre otros. Pero también estarán Carlos Mendible, que es Principal Cloud Solution Architect en "la micro", Javier Carnero, que es Research Manager en Plain Concepts y el mi viejo amigo Luis Fraile que es un todoterreno del DevOps.
Las entradas las puedes comprar hasta fin de mes por 40 €, y después hasta el día del evento por 55€, así que más vales que las compres ahora, pero... si tienes cuenta en MyPublicInbox, con 300 Tempos consigues un descuento de 15 € como ves en las imágenes siguientes, con lo que tu entrada pasaría de 40€ a 25€ y si la compras después - mala idea - el precio pasará a 40€.
Para conseguir el código descuento, entra en tu cuenta de MyPublicInbox, consigue 300 Tempos - que los puedes conseguir con las campañas de Tempos Gratis, apoyándome a mí en Twitter/X con el servicio de Tempos x Tweets/Posts, o comprándolos si te falta alguno, y luego irte a la sección de Canjear Tempos. Ahí encontrarás el cupón de DotNet2025 que te dará ese descuento de 15€ en tu entrada.  Hazlo ahora mismo y te ahorras la subida (15€ y te descuentas los otros 15€, que ambos suman 30€ menos que los que lo hacen mal y a destiempo)


Y después, lo aplicas en la compra de la entrada como he hecho yo en la Figura 4, y te haces una entrada en la agenda para que ese día no te moleste nadie y no se te pase. Además, todos los asistentes a este evento tendrán 100 Tempos gratuitos de MyPublicInbox cortesía de nuestros amigos de PlainConcepts, que podréis utilizar para lo que queráis más adelante, así que no te faltes a la cita.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


domingo, mayo 18, 2025

AlphaEvolve: Un Agente AI para optimizar algoritmos

Desde hace años tengo la sana costumbre de disfrutar con mis amigos en un viaje de una semana donde solemos irnos de aventura por mares, países y lugares fuera de las tierras de España. Es un viaje donde las rias y la diversión son la tónica general, pero, como somos como somos, nuestras comidas, cenas y conversaciones suelen ser de programación de algoritmos con Q# para entornos de simulación de Quantum Computing y la Supremacía Cuántica, de cómo hacer transacciones de BitCoin sin usar un Exchanger y los problemas de los tamaños de bloques - que se explica bien en este libro - y el coste de la compra por eso, de las arquitecturas Serverless en plataformas de Cloud Computing, de mil y una aventura de Hacking y, cómo no, de Inteligencia Artificial.
Una de las mañanas, en uno de esos viajes, el más madrugador de todos nosotros, es decir: yo, me desayunaba con el paper de AlphaDev, donde los investigadores habían sido capaces de generar un algoritmo de ordenación con menos instrucciones. Estábamos en mitad del mar, y desde el pequeño velero donde estaba desayunando con mi ordenador estaba emocionado esperando a que se levantaran mis amigos para comentarlo, y al mismo tiempo, preparar el artículo que a la postre os publiqué: "AlphaDev: La IA que optimiza la implementación de los algoritmos mejor que los humanos"
Pero han pasado dos años, y el uso de modelos de DeepLearning con entrenamiento reforzado que se usó en el paper de AlphaDev ha seguido evolucionando, y nos ha llevado al anuncio que ha hecho el equipo de Google DeepMind para publicar AlphaEvolve, un Agente AI que utiliza los LLMs para hacer optimización de algoritmos.
La idea es básicamente la misma que tenía AlphaDev, pero aprovechándose AlphaEvolve de los avances en los LLMs, lo que permite utilizar modelos de Deep Reasoning como Gemini 2.0 Pro, combinado con Gemini 2.0 Flash, y luego tener una arquitectura del Agente AI que permita evaluar las soluciones, tal y como podéis ver en el siguiente esquema.
Como podéis ver en la imagen, además de dar almacenar el código con todos sus componentes a evolucionar, y el Prompt de configuración del agente para generar la optimización, se ensamblan varios motores de LLMs para luego pasar por un conjunto de evaluadores que comprueban la validez y el resultado de las soluciones propuestas por los diferentes LLMs para responder con la mejor de ellas y evitar el problema del indeterminismo y las alucinaciones. Las características de AlphaEvolve son:

Como ejemplo de funcionamiento tenéis este ejemplo, donde se le pide optimizar el código de un algoritmo. En la siguiente imagen está la definición del código que se quiere optimizar, que se marca con EVOLVE-BLOCK.
Después, el Prompt de acción para generar el resultado del código optimizado en las métricas que se solicitan, que no siempre la optimización es el número de instrucciones, el tamaño en memoria o la velocidad de resolución.
Y el resultado mostrado por el Agente AI de AlphaEvolve es el que tenéis en pantalla, donde se índica qué partes del código son las que se recomiendan cambiar, y cuál es la optimización que se consigue a través de realizar esos cambios.
La optimización de los algoritmos y el código, es algo que en los LLMs se lleva haciendo tiempo. Yo os publiqué el artículo de "ChatGPT: Cómo hacer (y mejorar) mi Trabajo de Fin de Carrera de la Universidad en un par de minutos" donde usaba el truco de hacer "challenge" constante al código generado por ChatGPT para ir mejorando el código en rendimiento, en calidad, en seguridad. Con AlphaEvolve se busca hacer un trabajo mucho más específico en optimizaciones de código a bajo nivel, y los resultados que presentan son muy interesantes.


En la imagen anterior tenéis los resultados de la optimización de un algoritmo para, dados tres números (m,n,p), multiplicar matrices m x n y n x p. En todos los supuestos la solución propuesta por AlphaEvolve es igual o mejor que el algoritmo original que se entrego. Y en la imagen siguiente tienes el código de entrada, el Prompt y la propuesta para el algoritmo de multiplicación de matrices.
Google ha publicado varios ejemplos en distintas disciplinas donde han utilizado AlphaEvolve para optimizar sus soluciones en diferentes áreas de la compañía, como el algoritmo de planificación de Borg para los datacenters, el diseño de los circuitos en sus TPUs (Tensor Processing Unit)  o el entrenamiento de Gemini donde AlphaEvolve propuso optimizaciones del 32% del algoritmo de FlashAttention.


En el artículo recogen algún otro ejemplo completo para que puedas analizar cómo AlphaEvolve analiza y propone las mejoras de optimización según el objetivo que se le ha pedido, y los resultados que han obtenido en diferentes tipos de soluciones.
Al final, la Inteligencia Artificial está transformando todos los sectores, la ciberseguridad como vemos artículo tras artículo, el trabajo diario de casi cualquier profesión, y por supuesto el desarrollo de software y la algorítmica. Y esto es algo que, al igual que os decía que GitHub y los repositorios de proyectos OpenSource deberían hacer para ciberseguridad, podrían hacer también para optimización. Mucha evolución en el desarrollo de software para que sea más rápido, más eficiente, más optimizado y más seguro..

PD: Si te interesa la IA y la Ciberseguridad, tienes en este enlace todos los posts, papers y charlas que he escrito, citado o impartido sobre este tema: Inteligencia Artificial (Hacking & Security): Links, Posts, Talks & Papers

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


martes, mayo 13, 2025

Generación de Código, Razonamiento y Respuestas No Deterministas usando GenAI

El otro día tuve la oportunidad de charlar un rato con mi amigo José Palazón "Palako" sobre lo complejo de aplicar GenAI al desarrollo automático. Hablamos de cómo Neo de Sagittal.ai intenta conseguir resultados deterministas a operaciones de código, y lo no sencillo que solía ser esto. Al final, una misma petición a un modelo LLM para la construcción de código depende infinito del Prompting, y aun así, puede que ignore partes o que tenga un alucinación - ¡bendita creatividad! -, y probarlo es muy sencillo.

Figura 1: Generación de Código, Razonamiento y Respuestas
No Deterministas usando GenAI

Antes de nada, si no has visto la charla, de José Palazón "Palako", te la recomiendo encarecidamente. La impartió la semana pasada y habla de los males que sufre la industria del software. Y él y yo, que hemos vivido juntos en muchas de estas aventuras, lo hemos sufrido en primera persona.
Para la prueba de cómo esto funciona, solo debes hacer una prueba sencilla de pedir un Prompt que "aparentemente" es sencillo, pero que está lleno de incertidumbres e inexactitudes, que es como los desarrolladores reciben los requisitos normalmente. En este caso, un ejemplo de un código en Python que le he pedido a DeepSeek v3 Deep Think R1.

Figura 3: Petición de un código aparentemente sencillo a DeepSeek

En el Prompt no he explicado cómo quiero el resultado, ni cómo es el fichero al que se va a encontrar, ni dónde está, ni si hay problemas de tiempo de acceso, de idioma, de permisos, si el fichero puede estar corrupto, si vienen solo números, números y otras cosas, ni en qué formato está el fichero, etcétera, pero lo he pedido que el código sea seguro.

Figura 4: Código generado por DeepSeek después del Thought Time con ese Prompt

No os he dejado todo el Razonamiento, porque es largo, que el Thought Time son 118 segundos, pero el código tiene buena pinta después de todo su razonamiento, y aquí está la explicación del resultado.

Figura 5: El resultado explica las precauciones que ha tomado.

Bien, pues acto seguido repetimos el Prompt, donde le pedimos que se olvide de todo lo que le hayamos pedido antes, y de todo lo que haya respondido previamente, para que haga lo mismo.

Figura 6: Misma petición, distinto razonamiento

No os he dejado todo el Razonamiento, pero podéis ver que son 36 segundos, y que no se basa en nada de lo razonado previamente, sino que hace otra razonamiento totalmente distinto en mucho menos tiempo, para llegar a un resultado, como os podéis imaginar diferente.

Figura 7: Distinto código generado

Llama a las funciones diferentes, utiliza diferentes mensajes de error, toma diferentes decisiones, no inicializa número ni números antes, etcétera. Y por supuesto, la explicación, aunque es parecida, no es la misma.

Figura 8: Explicación del segundo código

Además, aquí nos da en la respuesta ejemplos de uso de cómo utilizar este código, que tenéis aquí mismo, algo que en la primera respuesta no generó. Así que tenemos una respuesta que tampoco es determinista, lo que nos llevaría a una documentación del código diferente.

Figura 9: Explicación del código con ejemplos de uso

Al final, es el mundo al que vamos cuando hacemos uso de tecnología basada en modelos MMLLM, tenemos respuestas No Deterministas. Un mismo "Prompt" genera dos Razonamientos diferentes, dos Códigos de Programación diferentes, y dos Respuestas de explicación diferentes. Como cuando le dices lo mismo dos personas distintas, generas dos resultados diferentes.  ¿Y si quieres que tu servicio que usa GenAI tenga respuestas deterministas? Pues tiene tela cómo resolverlo. Hablaremos de eso.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


domingo, marzo 09, 2025

BASIC 1.0 Copilot para AMSTRAD CPC 6128

El viernes, a última hora de la tarde, di mi charla en RootedCON que había titulado "Laife gets better", que es un juego de palabras con life + ai, porque cada vez se mete en más partes de nuestra vida. En este caso, quería contar, a través del cine y de proyectos que hemos ido haciendo este año en el equipo de Ideas Locas, cómo la Inteligencia Artificial puede transformar todo, y comencé por mis principios de desarrollador, con 12 años, cuando programaba en BASIC.
En este caso, la película por la que hay que comenzar es TRON, la película donde los protagonistas son programas que viven aventuras dentro de una CPU de 8 bits, y donde los programadores son sus creadores, sus dioses. Los que les dan vida. Hay que ver eso con los ojos de un niño y no querer ser programador.

Figura 2: Tron

A partir de ahí, me apunté a la academia de mi barrio llamada RUS, y me puse a estudiar informática. Y creo que no he dejado de estudiar informática ni un sólo día, así que fijaos si tuvo impacto en mí esa película. 
Un día, leyendo el proyecto de un hacker que había conectado una calculadora científica a ChatGPT para aprobar todos los exámenes - os lo dejé en el artículo "Cómo hacerte una calculadora conectada a ChatGPT y aprobar todos los exámenes #Makers", me animé a hacer lo mismo para nuestros Retro-Computers. Al final, en el equipo tenemos grandes makers, y estos proyectos siempre son de los que nos molan. Ya hace años habíamos hecho un proyecto similar, para dotar a Macintosh de almacenamiento infinito en la nube que tenéis en la presentación siguiente, así que porque no hacerlo con ChatGPT.
Pero no íbamos a repetir el experimento, así de sencillo. Había que hacerlo más complejo, que mis chicos makers están acostumbrados a hacer cosas difíciles como "Chucky Alonso", y como yo tenía el recuerdo de mi AMSTRAD CPC 6128, les pedí que lo hiciéramos con él, para tener un BASIC 1.0 Copilot para AMSTRAD CPC 6128.

BASIC 1.0 Copilot para AMSTRAD CPC 6128

Para construirlo, primero hay que conectar a Internet nuestro querido AMSTRAD CPC 6128, y una forma sencilla es cambiarle la disquetera y ponerle un EMULADOR de disquetera de 3" que tiene conexión vía USB. Este gadget lo puedes comprar en Amazon por menos de 40 €
Una vez que lo tengas ya lo puedes conectar a la Raspberry Pi y darle conexión a Internet para hacer las conexiones a ChatGPT con los prompts que desees. Por ejemplo, que haga un programa que dibuje una espiral gaussiana por pantalla.

Figura 6: Prompt a ChatGPT para pintar una espiral gaussiana

Así que el resto es ajustar todo. Para hacer todas las pruebas y demos, usamos el Emulador de AMSTRAD CPC 6128 de Retro Virtual Machine de Juan Carlos González Amestoy, que era perfecto para esta prueba. Y se creo el siguiente código en BASIC 1.0 como interfaz de BASIC 1.0 Copilot.
Como podéis ver, es tan sencillo como pedir un prompt y guardarlo en un fichero de preguntas QSTN.TXT, que se quedará en el disquete. Cuando ejecutamos este programa tenemos un interfaz para escribir los prompts por pantalla, como podéis ver:

En el emulador no tenemos la conexión directa USB a la Raspberry Pi para hacer el proceso automáticamente con nuestro script en Python, así que hay que sacar el disquete manualmente y volver a cargarlo. Esto es porque el emulador, una vez que carga el disquete hace una copia de su contenido en memoria, por lo que no hay actualizaciones en disco hasta que no se fuerzan con una extracción virtual del mismo.
Pero cuando se saca, el script lee el fichero QSTN.TXT, se hace la pregunta a ChatGPT, se obtiene la respuesta y se lee el fichero de respuesta que se llama RSPT.BAS para que sea ejecutable directamente. Así que cuando se carga el disquete de nuevo, continua el programa y podemos listar la respuesta.
Una vez que tenemos la respuesta, podemos ver el código que nos ha generado, y lo siguiente es tan sencillo como ejecutar con nuestro querido RUN, para poder ver la magia en acción.
Tenéis el proceso completo en este vídeo que os he subido a mi canal Youtube para que podáis verlo funcionar en un par de minutos completo, que es una chulada.

Figura 12: BASIC 1.0 Copilot para AMSTRAD CPC 6128

La inteligencia artificial va a cambiar todo, y hacer estas pruebas con sistemas de nuestra infancia, donde estas cosas eran ciencia-ficción, nos ayuda a comprender un poco mejor el impacto que tiene hoy en todo. Así que más vale que te pongas las pilas porque el nuevo mundo es por aquí.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


Entrada destacada

+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial

Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares