Bitácora de fernand0 Cambiando de aires

Muchos usuarios odian a sus ordenadores

Heilig-Geist-Spital. Ventanas.

Una buena puesta de pie a tierra en Why Doctors Hate Their Computers (un resumen en ‘Why doctors hate their computers?’ por si el primero no está disponible).

Yo diría que los médicos y muchas otras profesiones se sienten incómodos con los ordenadores, no es exclusivo de la clase médica.

La primera (y subtítulo del artículo) es la pregunta de si estos aparatos no se están convirtiendo en una barrera entre pacientes y médicos.

Digitization promises to make medical care easier and more efficient. But are screens coming between doctors and patients?

También, la sensación de que en lugar de liberarles del trabajo, se convierte en un nuevo trabajo por sí mismo.

But three years later I’ve come to feel that a system that promised to increase my mastery over my work has, instead, increased my work’s mastery over me.

En algunos casos simplemente es una ayuda, que a veces es más lento y otras veces nos proporciona rapidez.

Some things were slower than they were with our old system, and some things had improved.

Compartir información es bueno, pero se convierte también en un problema cuando cualquiera (‘cualquiera’) puede modificar esa información, independientemente de la experiencia, conocimiento del paciente, o simplemente opinión… Provocando lentitud y dificultades al médico responsable.

But now everyone across the organization can modify the list, and, she said, “it has become utterly useless.” Three people will list the same diagnosis three different ways.

Otra dificultad puede venir del simple copia y pega: si lo tienes que hacer a mano, extraes la información relevante y la escribes brevemente. Si puedes copiar un informe (o un trozo), lo haces.

Doctors’ handwritten notes were brief and to the point. With computers, however, the shortcut is to paste in whole blocks of information—an entire two-page imaging report, say—rather than selecting the relevant details.

Como decíamos arriba, estos problemas no son solo para la medicina y a esto se suma que muchas veces los programas crecen de forma casi orgánica.

They regularly added new features to it, and, over time, the program expanded to more than a million lines of code, in multiple computer languages. Every small change produced unforeseen bugs.

Luego necesitan algún tipo de gestión o regulación, relacionada con que esos cambios pueden afectar a demasiada gente y, por lo tanto, deben realizarse con precacución. Y la eterna lucha entre quienes siempre quieren más y los que ya estaban satisfechos con lo que tenían.

As a program adapts and serves more people and more functions, it naturally requires tighter regulation. Software systems govern how we interact as groups, and that makes them unavoidably bureaucratic in nature. There will always be those who want to maintain the system and those who want to push the system’s boundaries.

Todo esto tiene algún defensor: se trata de mejorar la vida de los pacientes, no la de los médicos.

“But we think of this as a system for us and it’s not,” he said. “It is for the patients.”

Y con sus propias ventajas: se puede ayudar a los pacientes de formas insospechadas. Además del acceso remoto a sus resultados, claro, pero también análisis más amplios para evitar sobredosis en medicaciones complicadas o identificación de pacientes susceptibles de beneficiarse de nuevos tratamientos.

In one project, Partners is scanning records to identify people who have been on opioids for more than three months, in order to provide outreach and reduce the risk of overdose. Another effort has begun to identify patients who have been diagnosed with high-risk diseases like cancer but haven’t received prompt treatment.

Probablemente se trata de que estamos muy al inicio de todo esto y habrá que ver médicos más comprensivos con estas nuevas posibilidades, y también beneficios tangibles que demuestren que tenían sentido.

“I’m playing the long game,” he said. “I have full faith that all that stuff is just going to get better with time.”

Sin olvidar las necesidades propias de cada profesión, y cómo deben abordarse los proyectos relacionados con estas necesidades y características. Por un lado, un tema complejo y adaptativo a la realidad (con herramientas que no lo son tanto).

Medicine is a complex adaptive system: it is made up of many interconnected, multilayered parts, and it is meant to evolve with time and changing conditions. Software is not. It is complex, but it does not adapt.

Por otro, decidir entre mutación (profesionales que tienen diferentes características y forma de abordar problemas y solucionarlos) frente a la adaptación: tenemos una herramienta y tenemos que continuar desarrollando nuestra tarea con ella.

Mutation produces variety and deviation; selection kills off the least functional mutations. Our old, craft-based, pre-computer system of professional practice—in medicine and in other fields—was all mutation and no selection.
Computerization, by contrast, is all selection and no mutation.

Se pueden añadir algunas ayudas (por ejemplo, encargar a otro personal la transcripción y anotación de la información) pero al final, tenemos una parte positiva: seguramente todo mejorará.

It’s not hard to believe that our interfaces for documenting and communicating will get easier, more intuitive, less annoying.

Por la otra la pregunta de si realmente podremos reducir ese trabajo ‘burocrático’ o terminará siendo más de lo mismo.

With the time that scribes freed up, the system simply got doctors to take on more patients. Their workload didn’t lighten; it just shifted.

También puede ocurrir que los especialistas tomen las riendas y empiecen a pedir lo que realmente necesitan (y a conseguirlo).

Together, they convened an open weekly meeting, currently on Thursday mornings, where everyone in the neurosurgery department—from the desk clerks to the medical staff to the bosses—could come not just to complain about the system but also to reimagine it.

Es un problema frecuente (muchas veces por soberbia, otras por falta de medios, y también otras por pura falta de interés o implicación; incluso puro sabotaje) que los usuarios no están en el desarrollo ni en la selección de funcionalidades. Todavía puede haber sitio para implicarles y devolverles el control.

Malhotra’s innovations showed that there were ways for users to take at least some control of their technology—to become, with surprising ease, creators. Granted, letting everyone tinker inside our medical-software systems would risk crashing them. But a movement has emerged to establish something like an app store for electronic medical records, one that functions much the way the app store on your smartphone does.

El artículo dice muchas más cosas y creo que vale la pena leerlo indpendientemente de en qué ‘lado’ se esté.

En la Casa de la Mujer hablando de IA

No me considero un gran experto en IA, aunque algo de material he ido preparando para mis clases, alguna sesión que me han pedido aquí y allá y mis propias lecturas y pruebas con la cosa.

Hace algunas semanas me contactó María Dubón de la Asociación María Moliner para ver si podíamos organizar una sesión sobre inteligencia artificial.

Se celebró el día 16 de abril en la Casa de la Mujer del Ayuntamiento de Zaragoza y propusimos (con la ayuda de una IA, claro) como título: “IA. Un viaje en el tiempo y usos para la vida diaria”. El objetivo era tratar de poner en contexto unos avances de setenta años, mostrar algunos hitos y luego tratar de mostrar ejemplos de uso que cualquiera podría tener interés en utilizar.

Empezamos hablando de los primeros años (1956, reunión de Darmouth, nótese que son solo 11 años después del nacimiento de la que se considera primera computadora de propósito general, ENIAC). Luego señalamos algunos hitos (creación del laboratorio de IA del MIT, creación de ELIZA, el primer chatbot, los sucesivos inviernos de la IA -con la pregunta de si nos estaremos acercando a otro-, cómo la IA cambió de una orientación a reglas para convertirse en un análisis y búsqueda de patrones en datos, … Hablamos de Deep Blue y el ajedrez, el premio de Netflix, Jeopardy y Watson, el AlphaGo de Google Deepmind y el juego del go, los éxitos en procesamiento de lenguaje natural de Alibaba y, finalmente, el nacimiento y anuncio de la IA de moda, ChatGPT y los modelos gigantes de lenguaje).

En una segunda parte algo más técnica hablamos de IA, aprendizaje de máquina (machine learning, aprendizaje profundo (deep learning) y, finalmente la IA generativa, incluyendo algún ejemplo. Después pasamos a detallar un poco más cómo funcionan estos nuevos modelos (probabilidades, tokens, aritmética de relaciones, …

Aunque tratamos de dar una visión positiva de la tecnología (ya hay bastantes ‘cenizos’ por ahí afuera) no podemos dejar pasar la ocasión de comentar algunos problemas como:

  • Alucinaciones
  • Desactualización
  • Aislamiento
  • Dependencia (que además por poco no hemos podido usar un ejemplo del fin de semana, con final feliz, parece que finalmente se ha arreglado la cosa).
  • Noticias falsas, manipulaciones,…

Para completar esta parte comentamos sobre la posibilidad de aumentar los modelos con nuestra propia información (Retrieval-Augmented Generation, RAG), conectarlos con otras herramientas (Model Context Protocol, MCP), y la (pen)última palabra de moda, la IA Agéntica.

Finalmente, y según lo prometido, nos estuvimos contectando a una IA para hacerle algunas preguntas: fue llamativo ver cómo analizaba la página web de la asociación, extraía las actividades y las ponía en nuestro calendario, pero también cómo nos ayudaba a seleccionar en un catálogo de actividades las que caían en un día de la semana determinado. Luego, otros ejemplos, como recomendaciones de recorridos turísticos en un viaje y otras que creo que no se comentan suficiente: podemos usar las IAs para que nos traduzcan un texto en otro idioma, pero también podemos utilizarlas para hablar en ese idioma y mejorar nuestras capacidades; no solo eso, podemos pedirle sugerencias, ideas de mejora, … preparar exámenes para ver si hemos aprendido suficiente,…

Creo que quedó bien, y será de utilidad para las personas más interesadas en estos asuntos, sin dejar de lado la parte más técnica que es la que nos puede ayudar a comprender mejor lo que tenemos entre manos.

Si alguien quiere el material de la sesión o que la repitamos en alguna parte no tiene más que decirlo.

Publicado originalmente en En la Casa de la Mujer hablando de IA

La IA y algunos argumentos en contra (respondidos)

Molinillos de café

En el uso de la IA estamos viendo todas las posiciones: defensores y creyentes acérrimos, y también enemigos absolutos, que creen que es una (otra) moda que pasará en algún momento.

En My AI Skeptic Friends Are All Nuts el autor comenta precisamente esto, por un lado jefes obligando a sus empleados a utilizar la IA:

Tech execs are mandating LLM adoption. That’s bad strategy. But I get where they’re coming from.

Y otra gente (muy inteligente, según el texto) anunciando que se trata de otra moda más, como lo fueron los NFTs.

Some of the smartest people I know share a bone-deep belief that AI is a fad — the next iteration of NFT mania.

La posición del autor es que podrían dejar de desarrollarse los LLMs (la IA de la que se habla fundamentalmente hoy en día) y aún así seguirían siendo un resultado importante.

Concreta un poco que está hablando de las arquitecturas de agentes: ya no se trata solo de una ventana de preguntas y respuestas, sino de habla de estos programitas que pueden actuar de manera autónoma sobre nuestro código, ejecutar herramientas comunes e integrarse en el flujo de desarrollo habitual de cualquier desarrollador competente.

People coding with LLMs today use agents. Agents get to poke around your codebase on their own. They author files directly. They run tools. They compile code, run tests, and iterate on the results. They also:

Los LLMs pueden escribir una parte muy importante de la parte más aburrida del código, reducir nuestras consultas en el buscador, …. y no se cansan.

LLMs can write a large fraction of all the tedious code you’ll ever need to write. And most code on most projects is tedious. LLMs drastically reduce the number of things you’ll ever need to Google. They look things up themselves. Most importantly, they don’t get tired; they’re immune to inertia.

No están exentos de problemas, claro, a veces hay que meterse en el código y arreglar cosas. Pero siempre es posible indicar al sistema lo que no nos gusta, e indicarle que lo tiene que arreglar (y, tal vez, darle alguna pista).

But an LLM can be told to go refactor all your unit tests. An agent can occupy itself for hours putzing with your tests in a VM and come back later with a PR. If you listen to me, you’ll know that.

Otra crítica que podemos hacer es que no tendremos ni idea de lo que hace el código pero, nos dice: claro que puedes leer el código, y ver lo que está pasando: no sólo puedes, deberías hacerlo, si lo que generas va a ser utilizado por alguien más que tú.

If you build something with an LLM that people will depend on, read the code. In fact, you’ll probably do more than that. You’ll spend 5-10 minutes knocking it back into your own style. LLMs are showing signs of adapting to local idiom, but we’re not there yet.

¿Habrá alucinaciones? Es posible, pero nuevamente hay herramientas que nos ayudarán a detectarlas y resolverlas.

Agents lint. They compile and run tests. If their LLM invents a new function signature, the agent sees the error. They feed it back to the LLM, which says “oh, right, I totally made that up” and then tries again.

¡El código es malo! Pero tú estás allí para vigilar, igual que harías con un programador joven, y no deberías estar dejando el control

Maybe the current confusion is about who’s doing what work. Today, LLMs do a lot of typing, Googling, test cases †, and edit-compile-test-debug cycles. But even the most Claude-poisoned serious developers in the world still own curation, judgement, guidance, and direction.

Estos sistemas no funcionan bien en mi lenguaje favorito. Entonces la decisión es tuya: uno de los motivos para elegir un lenguaje u otro puede ser lo productivos que lleguemos a ser con ello.

All this is to say: I write some Rust. I like it fine. If LLMs and Rust aren’t working for you, I feel you. But if that’s your whole thing, we’re not having the same argument.

¿Y el oficio? Probablemente estemos hablando de cosas diferentes: la comparación que haces es con un mueble hecho a mano, artesano y de mucha calidad en oposición a lo que necesita para realizar su trabajo (una mesa más o menos corriente, que compra en cualquier sitio y no nos la construimos).

I have a basic wood shop in my basement. I could get a lot of satisfaction from building a table. And, if that table is a workbench or a grill table, sure, I’ll build it. But if I need, like, a table? For people to sit at? In my office? I buy a fucking table.

Los desarrolladores resuelven problemas en un tiempo razonable y con un coste adecuado: no son artesanos ni artistas.

Professional software developers are in the business of solving practical problems for people with code. We are not, in our day jobs, artisans.

El código será mediocre. Esto se dice como si el código no fuera ya mediocre (justo estos días salta la terrible amenaza de un sistema que es capaz de encontrar fallos de seguridad y encuentra muchos: Claude’s Mythos). Llevamos mucho tiempo desarrollando programas bastante mal. O sea, que en el peor caso tendremos algo parecido a lo que ya teníamos.

But I’m getting ahead of myself. It doesn’t matter. If truly mediocre code is all we ever get from LLMs, that’s still huge. It’s that much less mediocre code humans have to write.

Esto no es inteligencia artificial general. Claro que no lo es: resuelve una serie de problemas y hay otros en los que no podemos ni pensar.

Things either work or they don’t, no matter what Jensen Huang has to say about it.

Destruye empleo. Y eso es exactamente lo que hace la sociedad de hoy en día: optimizar, producir las mismas cosas (o más) con menos esfuerzo…

LLMs really might displace many software developers. That’s not a high horse we get to ride. Our jobs are just as much in tech’s line of fire as everybody else’s have been for the last 3 decades. We’re not East Coast dockworkers; we won’t stop progress on our own.

Esto es copiar. Pero justamente eso es lo que hacen la mayoría de los profesionales, no solo eso: se oponen a cualquier tipo de protección que pudiera evitar el problema, en código, pero también en el arte y en el entretenimiento.

The great cultural project of developers has been opposing any protection that might inconvenience a monetizable media-sharing site. When they fail at policy, they route around it with coercion. They stand up global-scale piracy networks and sneer at anybody who so much as tries to preserve a new-release window for a TV show.

Estoy harto de oir hablar de ello. Y vas a seguir oyendo: todavía podemos ver nuevos usos, mejores características y más atención.

But AI is also incredibly — a word I use advisedly — important. It’s getting the same kind of attention that smart phones got in 2008, and not as much as the Internet got. That seems about right.

Nombrando amenazas: Microsoft y la meteorología

La niebla en Zaragoza, es una pasta pegajosa

Alguna vez hemos hablado de los nombres con que identificamos las cosas y, a veces, las consecuencias que eso tiene. Por eso me hizo gracia leer How Microsoft names threat actors.

Tienen una clasificación para los nombres de los agentes que suponen una amenaza que utiliza la temática del tiempo meteorológico (weather).

Microsoft uses a naming taxonomy for threat actors aligned with the theme of weather.

Para los diferentes tipos de agentes utilizan cinco grupos:

  • Estados nación
  • Agentes con motivación económica
  • Actores ofensivos privados
  • Operaciones de influencia
  • Grupos en desarrollo.

De esta manera, asignan nombres a cada uno de los actores o agentes y la combinación de varios de ellos nos da información de su tipología, origen, etc…

Por ejemplo, tifón indicaría que el origen es China (sucesos meteorológicos representan países o regiones) y tempestad indicaría que se trata de un actor movido por objetivos financieros (en este caso, el nombre representa una motivación).

In this taxonomy, a weather event or family name represents one of the above categories. For nation-state actors, we assigned a family name to a country/region of origin tied to attribution. For example, Typhoon indicates origin or attribution to China. For other actors, the family name represents a motivation. For example, Tempest indicates financially motivated actors.

Como curiosidad, el nombre asignado a España es derecho que, en meteorología, y según la Wikipedia es un fenómeno meteorológico al estilo de una tormenta de viento en línea recta, extensa y de larga duración. China, como decíamos sería tifón, y Alemania un temporal. Ninguno de nuestros vecinos tiene nombre específico.

Los grupos en desarrollo serían tormentas y las operaciones de influencia serían inundaciones.

Curioso.

Por cierto, como la imagen representa una escena con niebla estaríamos hablando de Gran Bretaña, claro.

Un poco de soberanía tecnológica: ejecuta una IA en tu PC

Desde que descubrí la cosa vengo haciendo pruebas con IAs locales: esto es, inteligencias artificiales de las que llaman abiertas open que, esencialmente, permiten descargar un modelo y ejecutarlo en nuestro propio sistema. Las ventajas son claras: adiós a la contabilidad de tokens y privacidad, fundamentalmente. Los inconvenientes también: raramente tendremos un sistema tan potente como necesitaríamos, los modelos ocupan espacio (desde muchos megas, a bastante gigas), …

Para darle más emoción yo lo tengo en una Raspberry Pi con 4 procesadores y 8Gb de RAM (los modelos tienen que ‘caber’ en memoria) pero para algunas tareas puedo esperar la respuesta (minutos, típicamente) y no expongo la información a ningún servicio externo.

Por eso guardé Run Your Own AI que explica como hacerlo y que recomiendo a cualquiera que quiera probar.

El siguiente paso en esta ‘soberanía’ tecnológica sería entrenar nuestros propios modelos, pero eso es algo que todavía no hemos mirado con detalle y que suena mucho más complicado.

Mi elección para estas pruebas ha sido:

Y he probado algunos modelos. Los que mejor resultado me han dado:

Se pueden ver algunas pruebas que he ido haciendo en este hilo de X:

Como dice allí mismo una parte está dedicada a sistemas de Apple, pero se puede hacer en sistemas que no lo sean:

On a PC, skip the steps about MLX and use Ollama to download a model. Then install the llm-ollama plugin instead of llm-mlx.

Como dice el autor, otra de las fuentes de inspiración ha sido Simon Willison y todos esperamos el día en que podamos correr uno de estos LLMs en nuestro teléfono móvil.