Enfoque en la informática: ¿cómo programar una IA?

La historia de Soraya y la IA

Cuando Julie apareció a la mañana siguiente con dos personas a su lado y los presentó como la"científica" y el "ingeniero" de datos, Soraya sintió un orgullo inmenso. Los conocimientos de Nico estaban dando sus frutos.

Julie tomó la palabra:

Esta es Tania, que se encargará deprogramar las posibles nuevas aplicaciones. Y él es Max, nuestro becario en ciencia de datos.

Tania saludó con la cabeza y Max, que parecía recién salido del colegio, sonrió.

Christophe dio unas palmadas.

¡Vamos, los usuarios llegarán pronto!

Soraya pasó dos largas y aburridas horas en el mostrador de préstamos y devoluciones antes de volver a la sala del personal. Tania se había sentado en una esquina del mostrador. Sus largos rizos ocultaban la pantalla. Soraya se inclinó sobre su hombro y descubrió una serie de jeroglíficos incomprensibles: el texto estaba lleno de corchetes y sangrías y contenía palabras en inglés como "if" y "while". Soraya abrió los ojos como platos. Estaba surgiendo una estructura:

def genera_recomendacion(lector): 
if lector == lector_ha_prestado_antes:  
             usa_modelo(lector) 
else:  
             devuelve_lista_por_defecto()...

Lenguajes informáticos

Lenguajes de programación diseñados para humanos

Existen diferentes tipos de lenguaje informático. Algunos se ocupan de los datos, otros del procesamiento. Estos últimos se llaman "lenguajes de programación". Las líneas que ha visto Soraya proceden de uno de ellos. Un lenguaje de programación sirve para realizar acciones. Es un medio de comunicación con el ordenador, al que das órdenes utilizando este código.

Aunque parezca complicado y Soraya tenga dificultades para entenderlo, el lenguaje que observa está diseñado para ser legible por humanos. No es el código que interpreta directamente la máquina, ya que un compilador o un compilador lo traduce a un formato comprensible para el ordenador.

IMAGES/RBHS02-02-1.PNG

Por eso, aunque el texto que ve Soraya parezca críptico a primera vista, ha sido pensado por humanos para humanos. Es un lenguaje formal. Esto significa que tiene reglas, pero poca o ninguna semántica. Sabemos en qué orden colocar las palabras, pero no tienen significado en sí mismas.

Al fin y al cabo, un lenguaje de programación es un lenguaje porque es un conjunto de signos que permiten la comunicación. Como tal, se basa en un alfabeto. Gran parte de lo que utilizamos en nuestra vida cotidiana procede del mundo anglosajón. Lo mismo ocurre con los lenguajes de programación. Casi todos ellos utilizan el alfabeto, las palabras clave y la sintaxis inglesa.

Ha habido intentos de construir lenguas en otros idiomas. El Langage Symbolique d’Enseignement (LSE) es un ejemplo. Hay que decir que esta lengua, dirigida a un público francófono, no ha ido más allá de su marco inicial: un colegio de electricidad.

El vocabulario del lenguaje de programación

El vocabulario de estos lenguajes es limitado. Los términos más comunes son:

  • if: indica una condición (si).

  • else: indica una alternativa (de lo contrario).

  • while: establece una repetición mientras se cumpla una condición.

"If" y "else" enmarcan lo que se conoce como "cláusula condicional".

En cuanto a "while", introduce la noción de permanencia. Pide a la máquina que haga algo mientras ("mientras") se cumpla una determinada condición.

La gramática...

Centrarse en un lenguaje: Python

Introducción a un lenguaje popular

Desde hace varios años, Python es uno de los lenguajes de programación más populares. Su facilidad y flexibilidad atraen tanto a desarrolladores principiantes como a expertos. Puede utilizarse como base para crear todo tipo de aplicaciones. He aquí algunos ejemplos de casos de uso. En 2016, Instagram explicó que utilizaba Python en su mayor parte. Detrás de las historias de la vida real y de las portadas de la red social se esconde código Python. En el caso de Instagram, es el lenguaje principal.

Los programas con los que interactuamos son casi siempre el resultado de varios lenguajes entrelazados. No es raro ver Java junto a JavaScript o PHP, lenguajes igualmente populares. Gracias a numerosos artículos de blogs y conferencias, sabemos que algunos empleados de Netflix desarrollan en Python. Sin duda, otros lenguajes giran en torno a Python.

Python es un lenguaje muy utilizado. Tiene una amplia gama de usos: videojuegos, software empresarial, aplicaciones de escritorio, sitios web, etc. Pero hay un área en la que Python ha emergido como el claro ganador, y es en el aprendizaje automático, convirtiéndolo en una habilidad muy solicitada en el campo de la inteligencia artificial. Por eso, más allá de los dos ejemplos citados, es seguro que muchas de las plataformas que utilizamos a diario están formadas, al menos en parte, por código Python. Por tanto, Python merece un breve repaso de su historia y su estructura.

Breve historia de Python

Guido van Rossum, un desarrollador holandés, creó Python en 1989. Python ha mejorado con los años hasta convertirse en lo que es hoy: un lenguaje popular. Guido van Rossum era fan de Monty Python’s Flying Circus, una alocada serie de televisión británica. Fue a raíz de este programa cuando bautizó Python. Esto demuestra que los nombres de los lenguajes pueden tener orígenes más o menos serios.

Los puntos fuertes de Python

Como hemos visto, todos los lenguajes tienen el mismo objetivo: dar órdenes a la máquina. Entonces, ¿por qué utilizar Python en lugar de cualquier...

Codificación o reutilización de componentes para desarrollar IA

Reutilización del código

Tania trabajará en el sistema de recomendaciones. Sin embargo, no será necesario que escriba todo el código desde cero. Probablemente reutilizará componentes desarrollados por Max y otras herramientas disponibles. En muy poco tiempo, la construcción de una IA ha cambiado mucho. Hubo un tiempo en el que el usuario tenía que programarlo casi todo. En aquella época, era imprescindible tener conocimientos avanzados en la materia o estar lo suficientemente motivado como para interesarse por ella. A lo largo de los años, se han resuelto muchos problemas y sus soluciones se han plasmado en estructuras que pueden reutilizarse.

Tania va a utilizarlo. En primer lugar, buscará en las librerías informáticas lo que ya se haya hecho. Una biblioteca es un conjunto de funciones listas para usar. Puedes importarlas a tu aplicación y utilizar el código como si lo hubieras escrito tú mismo. Y hoy en día, hay tantas bibliotecas en el mundo del aprendizaje automático que lo más difícil puede ser saber cuáles elegir.

Las bibliotecas suelen ser gratuitas en el sentido de que puedes utilizarlas, pero es posible que tengas que pagar si quieres asistencia. Aquí es donde surge otra dificultad. No siempre es fácil entender un código...

Modelar más que codificar

Los desarrolladores escriben poco código

La idea de este capítulo era mostrar que la IA está codificada. Es un conjunto de signos que puede asustar a primera vista, pero que tiene sentido para las personas que han aprendido a descifrarlo.

El segundo objetivo era ofrecer una visión de la vida cotidiana de una mujer desarrolladora. Se puede ver a Tania inclinando sus bucles sobre el código. Pero al centrar toda nuestra atención en esto último, hemos mentido un poco, o al menos exagerado el caso. En realidad, un ingeniero sólo escribe unas pocas líneas al día, quizá unas docenas. Vale la pena señalar que Tania puede no estar escribiendo el texto que Soraya está viendo. Podría estar leyéndolo. Y, de hecho, los desarrolladores dedican gran parte de su tiempo a esta actividad. Si sólo producen unas pocas líneas al día, ¿para qué les pagamos? ¿Por leer código?

Para empezar, cuanto más conciso sea el código, más claro será. Cuanto menos código, menos mantenimiento. Esto es cierto en menor medida. Pero ser capaz de escribir poco código en lugar de mucho código para la misma funcionalidad es una habilidad buscada e importante.

Modelar el negocio en lugar de escribir líneas y líneas de código

En segundo lugar, si bien es cierto...

En pocas palabras

  • La IA está hecha de código. Es decir, los programadores utilizan un lenguaje informático para producir un texto. Éste representa instrucciones dadas a un ordenador. En realidad, este lenguaje está diseñado para humanos. Como todo lenguaje, sigue una serie de reglas. Una vez que las conoces, todo se vuelve menos críptico.

  • Existen varios lenguajes de programación. Uno de los más populares es Python, y con razón: ha sido el maestro del aprendizaje automático durante los últimos años.

  • Hoy en día, para diseñar IA, ya no es necesario construirlo todo desde cero. Puedes basarte en lo que ya se ha hecho, ya sea en términos de código, modelos o datos.

  • Una programadora como Tania sólo dedica parte de su tiempo a escribir el código que creará la IA. Lleva a cabo toda una serie de otras tareas para lograr su objetivo: conversaciones con las personas de su entorno, pruebas, correcciones, etc.

La IA se codifica utilizando un lenguaje de programación. Esta es una de las primeras asignaturas de la inteligencia artificial: la informática. Cuando uno se pone manos a la obra, se da cuenta de que lo que a primera vista resulta críptico no tiene ninguna intención de serlo. La informática no es una habilidad mágica ni imposible de obtener. Sería como aprender un idioma.