08 julio 2021

Profesiones que se transforman

Un rico almuerzo
Mi amigo de tantos años, Aldo González, me invitó a almorzar con don Pedrito Clemente. Dos grandes ariqueños de los mejor informados que tenemos en la ciudad, Aldo es presidente de la Cámara de Comercio y don Peter el periodista decano de La Estrella de Arica, que gran compañía. Rica comida y mejor trago, me tomé un pisco sour  enorme que me dejó KO por toda la tarde, son las 23:36 y vengo recién despertando de una larga siesta, supongo que me acostaré muy tarde ahora, porque no tengo nada de sueño. Ahora que recién despierto tengo que ver que diablos escribo-

Profesiones que se transforman
Poco a poco y casi sin darnos cuenta, muchas profesiones se están transformando por efecto de la automatización. Esto está creando un impacto enorme -negativo- en los procesos de enseñanza porque muchas habilidades que se creían indispensables, de la noche a la mañana han ido quedando obsoletas.

Prácticamente todo lo que me enseñaron en la universidad hoy está obsoleto, bueno, algunas cosas como el electromagnetismo y la física sirven como cultura general, pero de los cursos de ingeniería prácticamente nada sirve. Cuando yo estudié, los ingenieros debían desarrollar habilidades de cálculo muy complicadas, casi todas las matemáticas estaban dirigidas a convertirnos en buenos calculistas.

En 1975, cuando estaba terminando de estudiar para técnico electrónico aparecieron las calculadoras y estaba prohibido usarlas en las pruebas, porque eran muy caras y daban una ventaja injusta, ya que las preguntas involucraban cálculos muy complicados que con calculadora se hacían en segundos. Con el tiempo las calculadoras se masificaron y las preguntas de las pruebas tuvieron que cambiar. Cuando a mi me tocó estudiar ingeniería de ejecución en la universidad, las pruebas ya casi no involucraban largos cálculos, sino una especie de "problemas de ingenio".

Entonces las preguntas eran unos problemas aparentemente sin solución, pero que tenían un truco, un detalle ingenioso -a veces casi imposible de imaginar- que había que encontrarlo, eso era lo que se entendía por inteligencia en esos años y hasta hoy es lo que se aplica en las pruebas de muchos de los cursos universitarios.

Con los años pasé a hacer clases -cuando me fallaban los trabajos buenos- y me vi enfrentado a diseñar pruebas, como fui programador durante muchos años era más o menos natural que hiciera clases de computación, análisis de sistemas, diseño de procesos y cosas así. Hoy lamento pensar que enseñé tantas cosas inútiles y que mis pruebas, que supuestamente eran para descremar a los mejores, siempre estuvieron mal diseñadas, porque medían capacidades que van camino a convertirse en obsoletas.

Mis pruebas eran siempre de esas con "pregunta de ingenio", por ejemplo les daba un problema en lenguaje natural como "se necesita resolver un problema de control de inventario, que tiene estas entradas y queremos saber esta información diseñe los módulos, los informes y codifique los algoritmos correspondientes a cada módulo".

Pongo aquí control de inventario como problema típico, pero podía ser cualquier otro problema de programación, más o menos enredado donde había que encontrar una manera ingeniosa de resolver: ordenar un conjunto de datos, escoger entre, presentar, o cualquier proceso por el estilo donde había que aplicar el ingenio. Esa era la clase de problemas que yo había tenido trabajando como programador y pensaba que la habilidad para convertir un problema expresado en lenguaje natural en un código de programación era una habilidad única, que ninguna máquina podía sustituir.

Me equivocaba, tal como se equivocaron mis profesores que pensaron que enseñándome a programar el Intel 8080 en lenguaje de máquina estaban formando futuros buenos programadores. Saber programar en lenguaje de máquina hoy es totalmente inútil, ser capaz de diseñar un compilador, o un protocolo propio de transmisión de datos, o cualquier cosa en bajo nivel, ya no sirve para nada, porque esas cosas ya se hicieron y se estandarizaron, y aparte de ser muy complicadas, no tenían ninguna gracia. Son habilidades similares a la capacidad de hacer complicados cálculos mentales: obsoletas.

Resulta que hoy, con la llamada "inteligencia artificial" -que no es muy inteligente que digamos, pero ese es otro tema- nos acercamos cada vez más al punto en que casi no se necesite saber ningún lenguaje de programación, la mayoría de los problemas bastará con decirlos en lenguaje natural y el código se genera de manera automática.

Esto que parece magia imposible, no significa que los computadores hayan aprendido a pensar, sino que se está aprovechando los cientos de millones de líneas de código que ya se han escrito y están disponibles en repositorios de Internet como Subversion, Github y otros por el estilo.   

El repositorio de código más grande del mundo hoy es Github y este año Microsoft lo compró en 7.500 millones de dólares. Github fue creada el año 2008 por cuatro programadores, como un espacio donde todos podían subir su código para distribuirlo libremente, supongamos que a mi se me ocurre una buena idea  de código, la subo allí junto con una breve descripción de para qué sirve y como funciona. Hoy contiene cientos de millones de módulos de código con su descripción de para qué sirven.

La "inteligencia artificial" hoy está concentrada en un asunto que ha resultado muy productivo: el machine learning, es decir aprendizaje automatizado. Este consiste en tomar una gran cantidad de datos y "aprender" de ellos, buscando relaciones y organizándolas. Por ejemplo hoy casi cualquiera le puede enseñar a un computador a que reconozca una cara, o cualquier objeto captado en video, lo marque y lo siga ¿Cómo lo hace? tomando muchas fotos de esa cara en distintos ángulos y correlacionando lo que tienen en común para obtener un "modelo" capaz de reconocerla aunque sea desde un ángulo nuevo.

Bueno, lo mismo se puede hacer con el código. Resulta que hay cientos de millones de piezas de código con su descripción -en lenguaje natural- que dice para que sirven. Eso nos permite decirle a un computador "necesito un control de inventario" y nos devuelve el código completo, que puede tener cientos o miles de líneas.

Todo eso ya existe y está progresando muy rápido. Es una tecnología real, técniczmente resuelta, no como otros problemas que todavía son insolubles (producir grafeno a escala industrial, la fusión fría, baterías eficientes y cosas por el estilo). El software que más se usa para aprendizaje automático se llama Transformer, ese es el que hace el deep learning, y aunque todavía no es totalmente intuitivo tampoco es difícil de entender.

En base a eso se está desarrollando Github Copilot, un sistema automático para crear código en lenguaje natural, que pronto estará disponible para todos, pueden dar un vistazo a sus capacidades aquí.  El avance tecnológico ha sido más o menos así:

Etapa 1 Programación en lenguaje de máquina, duró muy poco, casi enseguida empezaron a aparecer los compiladores, intérpretes, que dieron paso a la
Etapa 2 Lenguajes de programación, luego apareció la 
Etapa 3 Open Source, miles de millones de líneas de código públicamente disponibles, pero como son tantas, nadie las puede revisar, entonces aparece la
Etapa 4 Machine learning, que hace el trabajo bruto de tomar nuestro lenguaje natural, buscar entre los miles de millones de líneas ya escritas y ofrecernos uno o más resultados alternativos.

¡Bingo! Con eso ya no necesitaremos ningún programador "ingenioso" porque el ingenio individual está siendo reemplazado por la sabiduría colectiva públicamente disponible en Internet. El problema es que los programadores ingeniosos, capaces de diseñar algoritmos a partir de problemas en lenguaje natural quedarán cada vez más obsoletos, serán como los operadores de código morse, con habilidades que hoy prácticamente no se necesitan.

Eso está ocurriendo en todas las profesiones, tal vez llegue el día en que la inteligencia colectiva haga innecesario el ingenio individual, o mucho menos importante de lo que es hoy, y la única habilidad valiosa y diferenciadora será comer bien y tomar pisco sour, lo que representa un problema enorme para todo el sistema educativo. En cualquier caso yo ya me estoy entrenando en comer y tomar rico, tal vez sea una habilidad muy valiosa en el futuro, quien lo sabe.

11 comentarios:

  1. Tomas, algo que tiene que desarrollarse paralelamente a la automatización de código de programación y otro trabajo, es mejorar algoritmos de búsqueda de ayuda, ya que toma tiempo encontrar lo que quieres en internet, porque no sabes hacer la pregunta adecuada o no sabes dónde buscar, y encuentras mucha información duplicada en internet.
    Pedro

    ResponderBorrar
  2. Hola Pedro, Tim Berners-Lee hace muchos años propuso y viene predicando el concepto de "web semántica" que es precisamente eso: permitir hacer mejores búsquedas usando lenguaje natural. Google ha hecho mucho de eso, no solo en la búsqueda de la web sino también en la traducción automática, ambos problemas son los que dieron nacimiento a todos los desarrollos actuales del machine learning

    ResponderBorrar
  3. usan mucho la inferencia bayesiana en esas interpretaciones del lenguaje (traductores, etc ...) "si ha dicho X es probable que Y a continuación signifique tal cosa" y cosas asì. Uls

    ResponderBorrar
  4. Si Ulschmidt, en el caso de machine learning hay un tremenda ventaja que permite usar la estadística con eficiencia y más seguridad, porque no usa muestras sino censos, es decir, trabaja con toda la población, no con una "muestra representativa" que es una de las mayores debilidades de la estadística inferencial.

    ResponderBorrar
  5. Tomas,
    Muy interesante tu posteo de hoy!
    Por un lado no creo que la tomatera haga bien sino que mata neuronas por lo que deberías ser muchísimo más productivo y genial de lo que actualmente eres. Sugiero que en la soleada costanera ariqueña corras un poco y respires aire puro marino para renovar tu cerebro.
    Por el otro, en referencia a la etapa 3 y 4, yo poseo y me encanta el programa de ingeniería FreeCAD el cual está basado en innumerables work benches que están almacenados en Github y otros.
    https://wiki.freecadweb.org/Workbenches
    Yo poseo también otro programa que es muy poderoso pero no posee la riqueza de los workbenches de FreeCAD, por lo que quisiera saber de ti si existe una herramienta como llavero maestro que haga una conexión entre el workbench (Banco de Arte)FreeCAD con el programa que yo poseo o el que se desee teniendo como base una herramienta común de lenguaje Phyton?

    ResponderBorrar
  6. El alcohol hace mal para algunas cosas y bien para otras, tengo dos amigos muertos de cirrosis y uno de sobredosis, lo que no evita que me pegue una buena tranca de vez en cuando. Ahora menos que antes, en la adolescencia (15-18 años) tomaba hasta quedar tirado todos los fines de semana, pero tengo la suerte de tener mala caña, así es ue con los años el cuerpo ya no me acompaña y lo hago muy espaciado, igual pienso que unas pocas veces en el año una buena borrachera, como Dios manda, es algo indispensable para mí. Si me mata las neuronas mejor para mí, mientras más tonto seré más feliz, no me gusta ningún trago, pero si me gusta quedar achispado y una que otra vez borracho, creo que es algo muy necesario y tal vez hasta saludable, pero en fin, cada cual tiene sus opiniones sobre eso.

    En cuanto a machine learning ni sabía que existía para freecad, soy un completo ignorante en CAD, apenas manejo el Visio y Sketchup al nivel más básico, así es que no tengo idea si habrá forma de importar los objetos de Github a otros programas

    ResponderBorrar
  7. ¿Alguien me podrá traducir al dialecto chilense lo d este sesudo posteo ? ....... ya jubilado, el único conocimiento tecnológico q domino es mi cavernario rPhone (teléfono retardado) Nokia, q solo llama, recibe y suena la alarma pa mis 14 píldoras diarias .....

    ResponderBorrar
  8. jajaja si no está tan enredado. Al menos lo del pisco sour se entiende creo, Se llama "Catedral" y la copa hace 400 cc ¡hay que tomárselo rápido, antes que se entibie! Eso me faltó colocar.

    ResponderBorrar
  9. Comer y tomar, soy todo un especialista en comer rico jajajajaja.

    ResponderBorrar
  10. En una de esas la buena vida es la profesión del futuro

    ResponderBorrar
  11. Jajajaja sí y en ese caso ya soy todo un profesional.

    ResponderBorrar

"Send me a postcard, drop me a line
Stating point of view
Indicate precisely what you mean to say
Yours sincerely, wasting away
Give me your answer, fill in a form
Mine for evermore
Will you still need me, will you still feed me
When I'm sixty-four"