viernes, 6 de septiembre de 2024

Los nuevos ciudadanos inteligentes, según Luis Alberto Santos

'Smart Citizens' es un libro que proporciona una visión centrada en las personas del entorno digital actual. Aunque la tecnología está siempre como telón de fondo, no se trata de un libro tecnológico sino que, más bien, habla de cómo la tecnología afecta a las personas y a nuestro entorno y lo que deberíamos hacer a nivel tanto individual como colectivo. 

El autor se concentra, fundamentalmente, en tres tipos de problemáticas:

  • El talento (su desarrollo y papel en el mundo digital), que se trata en una primera parte titulada 'El mundo ya no es lo que era' y que abarca los cinco primeros capítulos
  • El entorno urbano (y aquí el autor se concentra bastante en la idea de las 'Smart Cities')
  • Sostenibilidad (bastante entremezclado con el anterior). Esta problemática y la anterior se recogen en la segunda parte titulada 'La ciudad de hoy... y de mañana'

El libro comienza con una introducción en que el autor nos da algún datos sobre la elaboración del libro, las motivaciones para escribirlo y alguna perspectiva sobre la transformación digital.

A partir de ahí, la obra se estructura en nueve capítulos, a saber:

  • 'La revolución del talento': Describe cómo la tecnología está provocando cambios en el entorno social y, sobre todo, laboral, cómo esos cambios pueden suponer la destrucción de puestos de trabajo y cómo, en el fondo, ello realza la importancia del talento y la necesidad de desarrollarlo. En ese camino, el autor aboga por una actitud positiva y constructiva.

  • 'El tsunami tecnológico': Realiza un rápido repaso por algunas de las tecnologías más transformadoras e influyentes actualmente como la robótica, el Big Data, la inteligencia artificial, Internet de las Cosas, blockchain, comunicaciones 5G y por satélite, la impresión 3D, la realidad virtual y aumentada, el cloud computing, la nanotecnología o la biotecnología, y destaca la necesidad de flexibilidad para adaptarse a los cambios, así como la creciente importancia de elementos intangibles como el talento y la creatividad.

  • 'El nuevo mundo': Es una firme llamada, en este contexto tecnológico y de cambio, a la conciencia, responsabilidad e iniciativa individuales, a la necesidad de que cada uno tome el timón para dirigir su propio desarrollo.

  • '¿El futuro es STEM?': Repasa algunas de las realidades del panorama laboral pero apuesta por el desarrollo no solo de los conocimientos STEM sino por una visión más integral, y destaca elementos como la posibilidad del trabajo como 'freelance' o las seis habilidades más importantes: talento y creatividad, formación continua, flexibilidad, colaboración, gestión de la marca personal y pasión.

  • 'El renacer del aprendizaje': Se enfoca en el talento, destaca la necesidad del aprendizaje y también desarrolla mucho la figura del mentor.

  • 'Nuestro escenario vital': Con este capítulo el libro hace un cambio de tercio que nos conduce al mundo de las 'smart cities'. En este capítulo, en concreto, se repasa el desarrollo histórico de las ciudades, y se identifican algunas problemáticas actuales del entorno urbano.

  • '¿Cómo te mueves?': Se concentra en el ámbito de la movilidad en entornos urbanos, identifica problemáticas, especialmente ligadas al uso de vehículos con motores de combustión, repasa algunas alternativas como vehículos eléctricos o híbridos, así como medios del tipo bicicleta. También revisa modelos de uso más eficientes como el 'carsharing', finalizando con el vehículo autónomo.

  • 'De city a smart city': Se entra de lleno en el concepto de 'Smart' city', que define como la simbiosis entre ciudadanos inteligentes y nuevas tecnologías. Colateralmente, aborda también una descripción de las denominadas soluciones BIM ('Building Information Modelling').

  • 'Prosperidad sostenible': Aunque ligado a todo lo relativo al entorno urbano, este último capítulo pone foco sobre todo en los elementos de sostenibilidad, tocando aspectos como las energías renovables, la economía circular, etc

Cada uno de los capítulos se remata con un resumen en forma de 'bullets' que resumen el contenido y destacan aquello que conviene recordar.

Tras esto, el libro se remata con unas breves conclusiones donde nos recuerda los grandes cambios a que estamos sometidos, la necesidad de la actitud positiva y el foco en evolucionar los entornos urbanos.

'Smart citizens' es un libro amable y de fácil lectura que, al tiempo que hace llamadas de atención sobre algunos problemas aparejados al desarrollo tecnológico, también intenta inspirar una actitud constructiva y el desarrollo de la responsabilidad individual.

 

Luis Alberto Santos

(Fuente: Ficha de autor en el libro 'Smart citizens')

Luis Alberto Santos
Luis Alberto Santos (Salamanca, 1989), ha trabajado para distintas grandes corporaciones del ámbito tecnológico.

Aunque su carrera profesional se ha basado en la informática, las telecomunicaciones y la electrónica, desde el año 2015 se forma intensivamente para adquirir conocimientos y nuevas competencias en el ámbito de la transformación digital y las smart cities, permitiéndole conocer los cambios que se avecinan en la industria y en nuestras ciudades. De esta manera, ha unido sus conocimientos tecnológicos con otros organizacionales, lo que le otorga una visión más ampliada del sector.

Apasionado del talento y de las nuevas tecnologías, divulga acerca de los desafíos del siglo XXI: telecomunicaciones, transformación digital, management,

Puedes saber más del autor, visitando su página oficial o consultando su perfil en LinkedIn.

Ficha técnica:


EDITORIAL: Autoeditado
AÑO: 2024 
ISBN: 978-1718079366
PAGINAS: 169

jueves, 5 de septiembre de 2024

Los robots, el inicio de curso y los cantos de sirena

Después de un par de semanas en que tengo que reconocer que había dejado un poco abandonado el blog (el último post publicado antes de éste data del 12 de Agosto) vuelvo a la carga. Así que con este artículo me pongo un poco a llevar a cabo eso que se suele denominar 'el inicio de curso'.

Y lo hago, más que desarrollando un tema concreto, señalando tres elementos o tres movimientos de la ultimísima tecnología y mercado, tres elementos que están acaparando titulares y mensajes, pero sobre los que en general se aporta (al menos en lo que he visto hasta ahora) poco detalle, lo cual me hace mantener alguna reserva sobre su situación real. Los tres temas son:

  • Inteligencia artificial generativa para control
  • El 'boom' de los agentes inteligentes
  • El auge de los robots humanoides

Veamos algún breve comentario sobre ellos. Serán comentarios muy breves, porque, realmente, hasta que no proceda a una investigación y estudio más detallado, prefiero no pronunciarme demasiado, sólo explicar un poco el terreno de juego.


Inteligencia artificial generativa para control


Como sabemos, la inteligencia artificial generativa, en su idea inicial y que le da nombre, se pensó para 'crear' contenidos: textos, imágenes, vídeos, música, etc.

Sin embargo, y no sé si incluso un poco para sorpresa de los científicos e ingenieros que la han desarrollado, la inteligencia artificial generativa ha demostrado que puede ir más allá, que no sólo puede crear un una modalidad, sino que puede combinar varias y que puede hacer tareas que exceden la mera creación y hay quien incluso la ve como un primer paso en la Inteligencia Artificial General.

Al hablar de control me refiero a la toma de decisiones, y una toma de decisiones que relaciona, entradas, estados y objetivos con las acción a realizar (salidas) y que afecta a robots, equipos autónomos, soluciones de automatización, etc.

Ya hace unos meses, en el post 'Inteligencia artificial generativa para la decisión y su uso en robots', me hacía eco de alguna experiencia de automatización en robots usando modelos fundacionales (un nombre que ya refleja, de alguna forma, ese ir más allá de la mera generación de contenidos de la inteligencia artificial generativa) y expresaba alguna reserva sobre su estado actual y sobre si, incluso en caso de éxito técnico, sería la solución más adecuada para una automatización.

Clarificar que no tengo ninguna duda de su uso en sistemas de automatización y robots para todo lo que tiene que ver con percepción o interacción con usuarios humanos, sino para el control puro y duro. 

¿Tiene más sentido un modelo generativo que un modelo basado en reglas? Y si es así ¿cuándo? A bote pronto creo que puede tener sentido pero no de manera generalizada. El estado del arte actual y la lógica de esa aplicabilidad actualmente es lo que quiero trabajar. 


Los agentes inteligentes


Casi como una extensión natural, en cierto sentido, de lo anterior, está el asunto de los agentes inteligentes, un tema del que veo bastantes titulares pero hasta ahora no he tenido oportunidad de ver mucho más.

Conviene recordar que la idea de un agente, y de un agente inteligente, no es nueva ni muchísimo menos. De hecho, los lectores habituales de este blog o que me sigan en otros ámbitos en que hablo de robótica, me habrán oído contar cómo, una de las formas de caracterizar un robot es, precisamente, como un agente inteligente.

¿Cuál es la novedad ahora?

Bueno, es en lo que quiero profundizar, pero creo que enlaza mucho con el asunto del control. Creo que se trata de utilizar nuevos avances y resultados de la inteligencia artificial, en especial la generativa, para dotar de mayor autonomía, de mayor flexibilidad, mayores capacidades de aprendizaje (seguramente apoyado en variantes del aprendizaje por refuerzo) y, por decirlo de alguna manera, de mayor 'inteligencia', a unos entes, los agentes que, aunque pueden ser robots tradicionales, parecen tender a adoptar más frecuentemente formas de robot software, y que podrían funcionar de manera colaborativa.


Robots humanoides


Finalmente, se ven últimamente muchas noticias sobre robots y, en concreto, robots humanoides, la más reciente de las cuáles, en el momento que esto escribo, es el anuncio del robot NEO Beta por parte de OpenAI.

Aparte de elementos de marketing y, seguramente, avances en materiales y en control cinemático y dinámico de los robots, así como avances en percepción, parte de ese interés, marketing aparte, enlaza de nuevo con las posibilidades que añade la inteligencia artificial generativa: mejores capacidades relacionales, eso desde luego, y puede que nuevas posibilidades en cuanto a control y aprendizaje.

Pero es posible que, sin negar avances técnicos reales, haya también mucho de imagen, propaganda, globo sonda o tanteo del mercado.

Además, algunos de los casos de uso que se insinúan en los vídeos y materiales promocionales, no tengo claro que tengan sentido práctico (aunque si el mercado lo absorbe, ya no se necesita más). Por ejemplo, no acabo de ver claro el interés (económico y de ingeniería de proceso) de aplicar robots humanoides en plantas de fabricación, como propone Elon Musk hacer con su Optimus en las fábricas de Tesla.


Investigación y los posibles cantos de sirena


Los tres temas anteriores, me fascinan desde el punto de vista tecnológico y de negocio, pero también tengo alguna reserva, como he dicho, sobre el avance real de la tecnología ahora mismo y la racionalidad, técnica, económica y de mercado de algunos de los casos de uso.

Así que, procedo a iniciar la investigación y estudio (hasta donde lo publicado y mi tiempo me lo permitan) de la verdadera naturaleza de esas soluciones ahora mismo.

Y lo hago, sobre todo porque me interesa, me apasiona, y lo uso en mi actividad profesional. Pero lo hago también, aunque sea como subproducto, como un mecanismo de defensa, como una forma de aplicar y transmitir rigor, para huir del marketing engañoso, del entusiasmo no justificado, de las expectativas infladas y, en general, de todos esos cantos de sirena que tanto abundan en el sector tecnológico.


Conclusiones


Aunque siempre sujetas al exceso comunicativo y a los cantos de sirena, en este curso que empieza, se nos muestran tres tendencias o tres tipos de soluciones fascinantes y sobre las que pretendo aplicar el rigor mediante investigación y estudio: el control basado en IA generativa, los agentes y los robots humanoides. 


lunes, 12 de agosto de 2024

Tres enfoques para la adopción de modelos de machine learning

Afortunadamente, actualmente la construcción de un modelo de machine learning, siempre que no sea muy avanzado, y siempre que se disponga de los datos necesarios, puede ser relativamente sencilla y al alcance de muchas organizaciones.
Aún así, el entrenamiento de un modelo es una parte fundamental para el resultado final y en ocasiones, la empresa que quiere adoptar un modelo puede no disponer de los datos de entrenamiento necesarios, o de la capacidad de computación (aunque esta se puede 'alquilar' en la nube) o, simplemente, no encontrarse seguro de su conocimiento para llevar a cabo la labor.

Para esas diferentes situaciones existen alternativas u opciones básica, que comprimo en tres siguiendo el esquema propuesto en el libro 'Artificial Intelligence with Microsoft Power BI' de Jen Stirrup y Thomas J. Weinandy.


La decisión construir o comprar


Antes, una breve digresión. Como veremos en seguida, dos de los enfoques de adopción implican o bien que la empresa asuma completamente la generación y entrenamiento del modelo, o bien que lo externalice completamente.

Y, en el fondo, esa no es más que otra manifestación de un dilema presente en el mundo del software y de los sistemas informáticos, prácticamente desde que estos existen: ¿Me hago yo el sistema o se lo compro a un tercero? Es decir, ¿construir o comprar?

Tampoco es que sea un dilema propio del mundo del software en absoluto, pero sí es cierto que en otro tipo de productos o soluciones, más del mundo físico, la opción de construir (que significaría fabricar) por parte de una empresa no especializada suele ser poco realista, mientras que en el mundo digital tiende a ser una opción perfectamente planteable.


Modelos a medida


La primera opción para el caso de un modelo de machine learning es el modelo a medida ('custom model'), que vendría a ser la traslación de la opción 'construir' al caso de los modelos de machine learning. 

En este caso la empresa decide construirse su propio modelo usando sus propios datos y entrenando al modelo con ellos.

 Aunque hablamos de 'construir', como se hiciera desde cero, normalmente lo que queremos decir es que se entrena un modelo con datos propios, pero eso no implica, al menos no en general, que la empresa se invente y desarrolle un algoritmo nuevo. Normalmente se apoyará en algoritmos existentes usando herramientas también existentes (librerías python con algoritmos ya disponibles y fácilmente utilizables, o herramientas de más alto nivel como servicios en la nube especializados o soluciones de AutoML). Lo que la empresa hace por sí mismas es la creación de datasets y el entrenamiento, prueba y despliegue del modelo.

En casos extremos, podríamos hablar de una verdadera construcción de un algoritmo desde cero, el diseño de una nuevas lógica o una nueva arquitectura, y no sólo el entrenamiento, pero eso está al alcance de pocas empresas o universidades. Normalmente repito, al hablar de modelos a medidas nos referimos realmente sólo a entrenar con datos propios un algoritmo ya existente.


Modelos pre-entrenados


En el caso de los modelos pre-entrenados ('pretrained model'), vendríamos a situarnos en la opción de 'comprar'. Es decir, la empresa, para una tarea suficientemente transversal, por ejemplo, aspectos básicos de visión artificial o análisis de sentimiento, adquiere un modelo ya entrenado y plenamente funcional.


Transfer-learning


Las anteriores serían las dos opciones extremas pero, como sucede con tantas presuntas dicotomías, suelen existir soluciones intermedias entre los extremos. Y los modelos de machine learning no son una excepción. 

En la fuente citada, como opción intermedia nos habla del 'transfer learning'. En el 'transfer learning' se concentra en un modelo un conocimiento más o menos genérico y transversal, en una fase de pre-entrenamiento, pero luego ese modelo puede ser adaptado ('fine tuning') con un entrenamiento, normalmente mucho más ligero en datos y recursos. De esta forma una empresa puede adquirir uno de esos modelos genéricos y adaptarlo a sus datos y casuísticas.  

Hoy en día, los modelos fundacionales de IA generativa permiten incluso, un cierto nivel de  adaptación al usuario mediante la simple interacción conversacional con el modelo, mediante feedback del usuario o con base a las instrucciones o ejemplos que el propio usuario pueda proporcionar.

Aunque en el libro en que me baso, habla de 'transfer learning' como la vía intermedia, yo tiendo a ver el transfer learning como una técnica general de entrenamiento y compartición de los aprendizajes y, a cambio, creo que las vías intermedias de adopción pueden traducirse en formatos ligeramente diferentes.


Conclusiones


La adopción de modelos de machine learning es relativamente sencilla hoy en día y, a la hora de realizarla, las empresas pueden optar entre construirse desde cero un modelo propio ('construir') o elegir uno ya disponible y pre-entrenado ('comprar'), pero existen también situaciones intermedias que se apoyan en la idea del 'transfer learning'


viernes, 9 de agosto de 2024

Los orígenes de la odometría y la humanidad en la tecnología

Este post es un poco como nostálgico, o de pura curiosidad, pero es que me ha hecho gracia e incluso resultado interesante descubrir lo que a continuación te cuento y que son los orígenes lejanos de la odometría y que, sinceramente, ignoraba. Y ya de paso, puedo extraer algunas conclusiones algo más elevadas.


Odometría


Empecemos por el principio: ¿Qué es eso de la odometría? Si acudimos a la omnipresente wikipedia, obtenemos la siguiente definición


La odometría es el uso de datos de sensores de movimiento para estimar el cambio de la posición con respecto al tiempo


Lo que quiere decir esa definición es lo siguiente: tenemos un objeto que se mueve y que, por tanto recorre una trayectoria y una distancia. La odometría pretende que ese mismo objeto que se mueve pueda, de alguna forma, estimar la distancia y trayectoria recorrida, con base en la medición de su propio movimiento.

Para conocer su propio movimiento, el objeto que se mueve, debe tener sensores de sus partes implicadas en el movimiento. Digámoslo de forma más clara, aunque simplificada: si un coche dese estimar la distancia que recorre, debe tener sensores que le informen del giro de sus ruedas.


Usos de la odometría. Robótica


La odometría puede ser aplicada siempre que exista ese elemento móvil que recorre una trayectoria. Pero el uso típico, y por el que personalmente me he interesado en ella es por su ejemplo en robótica, ligado sobre todo a robots móviles del tipo AMR ('Autonomous Mobile Robots') o es también usada en los vehículos autónomos (una forma especial de robots) o, por qué no, por vehículos más tradicionales.

La odometría se resuelve técnicamente hoy en día normalmente con base a los denominados encoders ópticos ligados a las ruedas del robot o vehículo o usando las también muy comunes IMU ('Inertial Measurement Units') que combinan acelerómetros y giróscopos.


Encoder óptico

Por si tienes curiosidad, aquí te dejo este video de mi proyecto 'The robot notes' en que hablo, precisamente, de odometría.



El problema de la odometría, como se comenta en el propio vídeo, es que genera errores, por lo que normalmente se combina con otra medida basada en referencias externas como balizas o geoposicionamiento. De alguna forma, por ejemplo, la interacción con las balizas nos ayuda a fijar una referencia absoluta y cierta pero, entre baliza y baliza la trayectoria se mide mediante dometría.


Los orígenes: Herón y Leonardo Da Vinci 


Pero los orígenes de la odometría son mucho más modestos, aunque probablemente mucho más ingeniosos y meritorios.

Leyendo el libro 'Cuando fuimos jóvenes' de Martiniano Mallavibarrena, descubro, y esto es lo que ha motivado este post, que el primer odómetro fue concebido por el gran Herón de Alejandría, allá por el año 2 de nuestra era. Este odómetro pretendía medir la distancia recorrida en un camino. 

Odómetro de Herón

Investigo un poquito más en Internet y veo que Herón asumía que los carruajes de la época con ruedas de cuatro pies de diámetro, necesitaban dar cuatrocientas vueltas para recorrer una milla romana. Así que lo que planteó fue un mecanismo que medía cuántas veces esas ruedas habían dado cuatrocientas vueltas que era tanto como decir cuántas millas romanas habían recorrido. Para ello conectó a las ruedas otra rueda dentada de cuatrocientos dientes que, cuando completaba una vuelta permitía que cayera un pequeño guijarro en un recipiente. Finalizado el recorrido, tantos guijarros era equivalente a tantas millas.

Odómetro de Leonardo

Y descubro también que, unos cuantos siglos más tarde Leonardo de Vinci perfeccionó el odómetro de Herón, pero manteniendo la misma idea base y construyó una carretilla para medir distancias que, parece, cada 1,5 metros, un eje daba una vuelta y la rueda vertical avanzaba uno de sus treinta dientes. Con ello cada 45 metros, se movía una la rueda horizontal y permitía que cayera una canica en una caja.


Una mini-reflexión: tecnología, ingenio y humanidad 


Así que, y casi es un juego de palabras, la 'odometría' tiene un largo recorrido.

Y esto me lleva dos pequeñas ideas. Por un lado a la belleza de la ingeniería y al sorprendente ingenio humano que esta disciplina demuestra ya desde sus orígenes, o quizá más que nunca en esos orígenes donde, con tan poca base en que sustentarse. Aunque, no nos engañemos, el ingenio humano sigue muy presente. En su momento, cuando descubrí cómo estaban planteados algunos de los primeros algoritmos de inteligencia artificial generativa, como los autocodificadores variaciones, ya me admiró el ingenio de quienes habían ideado aquello.

Por otro, consecuencia de lo anterior, y como ya he expresado , frente al discurso común y poco reflexionado de quienes, muchos, hacen ver como que la tecnología deshumaniza o como que es algo ajeno a la humanidad, afirmo todo lo contrario: la tecnología y la ingeniería es una de las mayores demostraciones de la grandeza de la mente humana y es, por ello, una de las actividades más humanas que existen.


Conclusiones


El caso concreto de la odometría, que aquí hemos revisado, pone de manifiesto la brillantez del ingenio humano, un ingenio que viene demostrándose desde hace siglos, e incluso milenios, y que continua en la actualidad, haciendo que la tecnología y la ingeniería sean unas disciplinas muy, muy humanas. 

lunes, 5 de agosto de 2024

Sobre el machine learning y las predicciones

Una de las aportaciones comunes de los algoritmos de inteligencia artificial, y particularmente, los de machine learning, es su capacidad de hacer predicciones.

El término predictivo se ha convertido de hecho, no del todo pero casi, en sinónimo de inteligencia artificial o, al menos, indicador del uso de la misma. Así, por ejemplo, si hablando de analítica nos encontramos el término 'predictiva', casi podemos estar seguros de que es una forma de analítica que se basa en algoritmos de machine learning.  


El funcionamiento de los algoritmos de machine learning


En algunas ocasiones, especialmente cuando razonamos acerca de sesgos, es importante, recordar no obstante, cómo operan los algoritmos de machine learning y cómo realizan esas predicciones.

En esencia, la secuencia de actuación vendría a ser la siguiente:


  • Existe un problema del mundo real sobre el que deseamos hacer predicciones, por ejemplo, nuestras ventas.
  • Para ese fenómeno, disponemos de datos de cómo se han comportado en el pasado esas ventas y de muchas variables posibles que las pueden explicar (inversión en marketing, número de vendedores, número de visitas, número de nuevos productos en el porfolio, indicadores macroeconómicos, etc)
  • Seleccionamos un tipo de modelo de machine learning, por ejemplo, una regresión lineal, y las variables o características de entrada y la variable de o variables de salida.
  • Con los datos de ventas y otras variables de contexto del pasado, entrenamos el modelo, que va ajustando sus parámetros en el proceso
  • Una vez entrenado y ajustados esos parámetros, el modelo de machine learning se convierte en un 'modelo del mundo', donde el mundo en este caso son las ventas de nuestra compañía
  • Y ahora que ya hemos modelado 'el mundo', ahora que, de alguna forma, en el modelo hemos capturado la esencia de cómo se comporta ese mundo, cómo se comportan esas ventas, podemos hacer predicciones: ante unas nuevas variables de entrada podemos predecir qué valor de salida cabe esperar.


Así de sencillo.


Una afirmación cierta y falsa a la vez


De forma un poco casual me he vuelto a topar con una afirmación hecha en el excelente libro 'Design Machine Learning Systems' de Chip Huyen. Dice así


ML algorithms don’t predict the future, but encode the past, thus perpetuating the biases in the data and more


Esta afirmación parece recoger, de manera compacta, justo lo que acabo de explicar y, a su vez, advertir de la posibilidad de existencia de sesgos.

La frase parece muy razonable, incluso parece reafirmar lo que acabo de explicar. Debo decir, además, que la autora es una autoridad reconocida en materia de machine learning y que el libro, repito, es excelente y muy, muy recomendable. 

Y, sin embargo, me atrevo a decir que esta afirmación es equívoca y no del todo correcta


Sobre las predicciones


Diría que es incorrecto afirmar que los algoritmos de machine learning no hacen predicciones. Claro que hacen predicciones.

Lo que la autora quiere resaltar, en el fondo, es que esas predicciones se apoyan en unos datos del pasado. Y, efectivamente, así es.

Pero eso no supone que los algoritmos no sean capaces de hacer predicciones. Sí que son capaces. Claro que son capaces. En buena parte los queremos por eso y para eso. El hecho de que se apoyen en un modelo determinado por datos del pasado supone sí, una advertencia sobre algunos aspectos como los sesgos a los cuales me referiré luego o supone, también, una advertencia, y esta no la recoge la afirmación de Huyen, en el sentido de que un modelo no podrá predecir un fenómeno completamente novedoso y disruptivo, simplemente, porque no ha recibido datos sobre ello. 

Pero afirmar que no hacen predicciones es confundir y creo que es falso.

Llamo la atención además sobre el hecho de que no parece que en eso los algoritmos sean tan diferentes de las personas o los seres vivos. Aunque no comprendemos completamente los mecanismos cognitivos y de aprendizaje de los seres vivos, y en especial los humanos, parece que también aprendemos con base a experiencias, unas experiencias que en el fondo siempre son pasadas y que recibimos, o por nuestra propia experiencia directa, o por transmisión de padres u tras figuras similares, o mediante la educación o, probablemente, también, en cierto modo como 'experiencia ancestral de especie codificada en nuestros genes. 

Parece que, de alguna manera,  también los seres vivos, incluyendo los humanos, hacemos predicciones y tomamos decisiones con base en datos del pasado, datos de nuestras experiencias directas o recibidas de manera indirecta por transmisión externamente o por herencia. Y tampoco los seres humanos, por ejemplo, somos capaces de predecir los así llamados 'cisnes negros', precisamente porque son situaciones novedosas de las cuales no teníamos experiencias similares. Y también tenemos nuestros propios sesgos, nuestros sesgos cognitivos.

Por tanto, el que los algoritmos de machine learning abstraigan un modelo con base en datos del pasado, no los descalifica, por decirlo de alguna manera, para hacer predicciones. Y en eso es donde creo que Huyen se equivoca o al menos no elige de manera acertada la frase.


Los cambios de valores


Otra advertencia que hago con cierta frecuencia en cursos o charlas que tienen que ver con la ética de la inteligencia artificial y en que abordo la temática de los sesgos, es que en muchos casos en que 'se acusa' a los algoritmos de estar sesgados en materias como el género, y parece incluso latir una acusación velada a desarrolladores y empresas por ese sesgo, en el fondo no existe, estrictamente hablando un sesgo. Si se analiza correctamente, no existe, como digo, un verdadero sesgo en el algoritmo, que técnica y metodológicamente puede ser perfecto.

Lo que ocurre es que, de manera reciente, han cambiado los valores de la sociedad, y han cambiado los criterios que los usamos para tomar algunas decisiones, precisamente en el campo para el que queremos utilizar un algoritmo. Pero como los datos de que disponemos para entrenar a ese algoritmo son previos a ese cambio de valores sociales, no 'nos gusta', por decirlo de alguna forma, la decisión que nos propone el algoritmo. Y la consideramos sesgada.

Aunque a efectos prácticos podemos percibir eso como un sesgo, desde el punto de vista técnico y metodológico no lo es y, por tanto, la forma de tratarlo y resolver ese resultado que 'no nos gusta'. es también diferente.

Estrictamente hablando, un algoritmo podría no perpetuar esos mal llamados sesgos si realmente hubiera un cambio social que modificase la forma de decidir, y se fuese periódicamente reentrenando el modelo con esos nuevos datos basados en la nueva forma de decisión. 

Así y todo, la advertencia de Huyen es muy relevante si las decisiones que propone un algoritmo entrenado con datos del pasado, se adoptan sin revisión y siempre  se usan algoritmos para decidir, porque entonces, se producirá una especie de círculo vicioso en que el algoritmo decide con base en información del pasado pero sus decisiones pasan a engrosar el acervo de nuevas experiencias, los nuevos datos con los que el algoritmo es re-entrenado, reforzando más y más ese tipo de decisión que consideramos desacertada.


Conclusión


Los algoritmos de machine learning, por supuesto que son capaces de hacer predicciones. 

Para ello se entrenan con datos del pasado y construyen un modelo de funcionamiento que les sirve como base para hacer esas predicciones. 

El hecho de que se usen datos del pasado para el entrenamiento es perfectamente lógico y parece guardar paralelismos con la forma de funcionar de los seres vivos. Y eso no les resta capacidad predictiva, pero sí nos advierte ante la posibilidad de existencia de sesgos, o de perpetuación de valores obsoletos, así como la imposibilidad de predecir acontecimientos completamente novedosos y disruptivos.


lunes, 22 de julio de 2024

Big stream: procesamiento de datos en tiempo real para un mundo de dispositivos y sensores

Cuando hablamos de procesamiento de datos, especialmente de analítica, y de tratamiento de grandes datos, tendemos a pensar, y la verdad es que es bastante razonable, en un almacén de datos, más o menos ordenado, sobre el que lanzamos consultas o algoritmos de machine learning para obtener indicadores, resúmenes, tendencias o predicciones.

Pero no siempre es así. Existen cada vez más casos de uso, y más posibilidades, de explotar y analizar flujos de datos en tiempo real.

Vayamos poco a poco.


Almacenes de datos 


Desde casi los primeros tiempos de la informática han existido los almacenes de datos. Inicialmente eran meros ficheros pero muy pronto la necesidad de tratar datos en abundancia, garantizando su coherencia y escalabilidad llevó a la invención de las bases de datos, y con ellas, los Sistemas de Gestión de Bases de Datos (SGBD), de entre las cuales, las 'reinas' fueron, y en el fondo casi que siguen siendo, las bases de datos relacionales con sus sistemas de gestión de bases de datos relacionales. Sobre esas bases de datos relacionales, se podían ya hacer consultas, informes y análisis.

Sin embargo, a medida que el volumen de datos crecía y la complejidad de los análisis también, hacer analítica sobre la misma base de datos relacional operativa generaba problemas de prestaciones. Por ello, y como explico en mi primer libro 'La carrera digital', surgieron, en primer lugar los ODS ('Operational Data Store'), meras réplicas de una base de datos pero físicamente soportada en ficheros diferenciados.

Y luego, con la misma motivación de prestaciones, pero impulsado también por el interés en mejorar las capacidades analíticas, y de la mano de los conceptos de Business Intelligence y OLAP ('Online Analytical Processing') surgieron los denominados datamarts o datawarehouses, creo que a finales de los años 90.


Big Data y datalakes


Y en eso llegó el Big Data que, en el fondo, y en cuanto a utilidad y resultados, casi aspira a lo mismo que el Business Intelligence pero que surge en un entorno nuevo, donde el volumen de datos, que ya era grande, explota hacia niveles muy superiores y donde, sobre todo, cobran enorme importancia los datos semiestructurados (ficheros XML y JSON, por ejemplo) y no estructurados (texto libre, imágenes, vídeos, etc) y todo esto unido a una exigencia cada vez mayor de disponer de análisis en tiempo real, superando los típicos informes basados en datos del día anterior tan comunes usando datawarehoueses.

Esto da lugar al concepto de Big Data, donde las tres ideas expresadas se recogen en las famosas tres Vs de Doug Laney, Volumen, Variedad y Velocidad, a las que, de una forma algo espuria en mi opinión, luego se le han ido añadiendo otras Vs.

Asociado a Big data tenemos otra forma de repositorio de datos: los famosos datalakes que, en concepto, no son muy diferentes de los datamarts o datawarehouses pero que experiementan ese incremento en volumen y variedad de datos.


Big Stream


Sin embargo, y un poco 'a la chita callando' se va desarrollando un concepto, muy unido al Big data, pero en el fondo bastante diferente: el del 'Big stream', que se centra en el procesamiento de datos pero no unos datos contenidos en un repositorio sino unos datos que van llegando en tiempo real en una suerte de flujos de datos.

Leo acerca de este concepto en 'Internet of things: architectures, protocols and standards' de Simone Cirani, Gianluigi Ferrari, Marco Picone y Luca Veltri donde los autores comparan el concepto de big data con el de big stream y nos dicen:


The main differences between the Big Data  and Big Stream paradigms are the nature of data sources and the real-time/latency requirements of the consumers.


En efecto, hay que diferenciar el origen de datos que, en el caso del Big Data tienden a ser sistemas de información más o menos convencionales, mientras que en el caso del Big Stream con frecuencia, aunque no exclusivamente, hablamos de información procedente de sensores y dispositivos, con frecuencia en estrecha conexión, por tanto, con el mundo físico.

La segunda diferenciación, igualmente relevante, son los requisitos de latencia (es decir, la necesidad de una rápida respuesta) y de funcionamiento en tiempo real, algo que es habitual en la interacción con el mundo físico, especialmente en aplicaciones críticas.

En la misma obra, y poco después, los autores nos amplían esa comparativa diciendo:


In brief, while both Big data and Big Stream systems deal with massive amounts of data, the former focuses on the analysis of data while the latter focuses on the management of flows of data


En efecto, ambas tecnologías, Big Data y Big Stream, tratan con grandes cantidades de datos, pero mientras que en el Big Data más tradicional éstos tienden a estar ya recogidos en algún tipo de almacén de datos (típicamente un datalake), en el caso del Big Stream nos llegan como flujos en tiempo real y el volumen no deriva tanto del tamaño de cada bloque de información sino de la hiper-abundancia y continuidad de esos bloques de información.

No es extraño encontrar una explicación sobre Big Stream en un libro de Internet de las Cosas porque, seguramente, éste sea el campo donde más sentido adquiere para procesar toda la abundantísimo información que generan 'las cosas' que incluyen, por ejemplo, dispositivos y sensores para telemedida. 

Sin embargo, no es éste el único, y así, en el post 'Stream Processing – Tecnologías y Comparativa' Óscar Fernández nos identifica otra serie de usos


  • Monitorización de sistemas, de redes y de aplicaciones
  • Dispositivos Internet of Things (IoT)
  • Sistemas de recomendación y optimización de resultados
  • Transacciones financieras, detección de fraude y trading
  • Seguimiento de usuarios en páginas web y comercio electrónico
  • Notificaciones en dispositivos y aplicaciones móviles en tiempo real


No voy a profundizar aquí, aunque es muy interesante, en los retos técnicos que esto supone y me quedo, de momento, con resaltar este interesante y prometedor concepto de Big Stream


Conclusiones


Aunque menos popular que el Big Data, el Big Stream es una forma de procesamiento de datos que, probablemente, vaya adquiriendo más y más importancia (aunque no sé si relevancia mediática) a medida que se expandan Internet de las Cosas y los sistemas ciber-físicos, y que incorporemos, por tanto, más y más dispositivos y sensores a la 'conversación y, por tanto, a la creación de datos.


jueves, 18 de julio de 2024

Machine Learning en producción: diferencias con la investigación

Leyendo literatura especializada sobre inteligencia artificial y machine learning, incluyendo libros bastante técnicos e incluso orientados a proyectos, a veces llama la atención el poco énfasis que se pone en el paso a producción.

El ignorado paso a producción


En efecto, los libros técnicos tienden a centrarse en las posibilidades, en el desarrollo, en cómo se hace o entrena un modelo, y cómo se traslada eso al lenguaje o herramienta de que se trate, pero no en cómo, una vez desarrollado, entrenado y probado, ese algoritmo, ese componente o ese programa, se despliega, se pone en producción y se utiliza realmente.

Y si en lugar de literatura técnica, hablamos de divulgación generalista, a veces incluso propagandística, para qué hablar. Es posible que muchos autores de esa divulgación ni siquiera sean demasiado conscientes de la necesidad del paso a producción, de sus métodos y sus implicaciones.

No sólo afecta esta carencia a la inteligencia artificial, eso es cierto, sino a todo el mundo del software. Creo que con la única excepción de la literatura referida a cloud y DevOps, la producción del software es un tema bastante ignorado.

Probablemente es que se trate de un tema más especializado, de público más restringido y, seguramente, menos entretenido, variado y brillante que el desarrollo o la investigación. 


Machine learning en producción


Pero si, el software para que sea funcional, disponible y escalable en entornos profesionales y corporativos, hay que llevarlo a producción, y los modelos de machine learning no son una excepción.

En el caso de los modelos de machine learning, además, hay alguna diferencia entre cómo se trabaja en producción a cómo se hace en desarrollo que me parece especialmente interesante tener clara, sobre todo por lo que tiene que ver con el uso d elos datos y la diferenciación entre entrenamiento en inferencia, entre lo que es la construcción del modelo propiamente dicha, y su uso para hacer predicciones.

Hace unos días, finalicé la lectura del libro 'Artificial Intelligence with Microsoft Power BI' de Jen StirrupThomas J. Weinandy y en él me he encontrado una comparativa entre los modelos de machine learning en investigación (no es exactamente desarrollo, pero me resulta bastante válido) y en producción.

Y los autores destacaban cinco diferencias.


Las cinco diferencias del machine learning en producción frente a investigación


En concreto, las cinco diferencias que señalan es la obra, son las siguientes:


  • Requisitos: En investigación normalmente se busca llegar o superar el máximo estado el 'estado del arte', las máximas prestaciones o resultados utilizando para comparación diferentes 'benchmarks'. En aplicaciones reales y en producción, sin embargo, diferentes clientes pueden tener diferentes requisitos, apuntaría que yo que, con frecuencia, requisitos que pueden ser más prácticos y menos exigentes.

  • Prioridad computacional: En la investigación, el foco se pone sobre todo en la fase de entrenamiento y que ésta sea lo más rápida posible para lo que interesa un muy alto rendimiento ('throughput'). En aplicaciones finales y en producción, lo que importa es la inferencia, no el entrenamiento. Y, en ese caso, es mucho más importante una baja latencia que un alto rendimiento.

  • Datos: En el caso de la investigación, los datos usados suelen ser datasets más o menos estáticos. Sin embargo, en producción la situación es completamente dinámica.

  • Equidad ('fairness'): No suele existir foco en este punto en el caso de la investigación, mientras que en producción sí que se debiera considerar.

  • Interpretabilidad ('interpretability'): Igual que en el caso anterior, no suele ser el foco en la investigación, pero en producción debería tenerse en cuenta.


Hay dos cosas sobre las que me gustaría llamar la atención sobre estas diferencias. En primer lugar, respecto al punto de los datos, cómo es en investigación o desarrollo donde realmente se utilizan grandes cantidades de datos y capacidad computacional, pero como luego en producción (inferencia) normalmente no es así, normalmente hay un comparativamente bajo uso de datos y de capacidad computacional (y, por tanto, de energía). Una diferenciación que creo que no es del todo conocida ni entendida y que, entre otros varios puntos, intenté clarificar, hace ya bastante tiempo, en el post 'La equívoca relación de la inteligencia artificial con los datos'.

Igualmente es relevante comentar los dos últimos puntos, la equidad y la interoperabilidad. que tienen un claro componente ético. En estos dos puntos, y sin contradecir en absoluto a los autores, decir que, en mi percepción, no se tienen todavía tanto en cuenta en producción como se debería (aunque hay un creciente interés, espero que sincero en el tema) y que, aunque puedo comprender que en investigación se les preste algo menos de atención, ya deberían formar parte de los estudios, extendiendo, quizá, lo que denominamos 'etica por diseño, a casi algo que podríamos bautizar como 'etica desde la investigación'.

Por último, solo remarcar que, como el lector avezado se habrá dado cuenta, en realidad no he comentado, desde un punto de vista técnico u operativo, cómo es el paso a producción que comentaba al principio y que quizá ese paso a producción habría que confrontarlo más con el desarrollo que con la investigación. Es cierto, y quizá en algún momento deba tratarlo, pero por ahora, por lo menos creo que resulta interesante esta comparativa y pude ser un punto de partida.


Conclusiones


El trabajo con modelos de machine learning en investigación y desarrollo, presenta algunas diferencias importantes con lo que se hace cuando se lleva a casos prácticos y se despliega en producción.

En este post, hemos visto someramente, cinco diferencias entre una situación y otra.