Ingeniería y semántica

La convergencia de la semántica, a través de la IA lingüística, con el mundo de la ingeniería permite obtener soluciones usando el lenguaje como motor, lo que convierte al diseño de sistemas en una estructura interpretable automáticamente en la que se elimina la actividad de programación, según el autor, aumentará la velocidad y se agilizará el time-to-market, pero cambiará también la relación entre la sociedad y la tecnología
Alfonso Díez
6 de junio de 2023 | Compartir: Compartir en twitter Compartir en LinkedIn
Ingeniería y semántica

Hace cinco años fui a un congreso sobre Ingeniería y Conocimiento en USA, donde uno de los trasfondos eran las tecnologías LLM. ¿Quién iba a imaginar en aquel momento que hoy nos íbamos a encontrar con una revolución? Nada lo hacía pensar, puesto que entonces las aplicaciones posibles tenían unos objetivos mucho más simples de lo que hoy vemos. De hecho, el primer GPT es de 2018.

Ahora la inteligencia artificial ya no trabaja con probabilidades y datos, sino con palabras y conceptos (aunque sea a través del cálculo de probabilidades de palabras). Inesperadamente, tenemos una capacidad de manipular información que no habíamos tenido nunca, y con un nivel de precisión que nos maravilla a todos. Tenemos que reflexionar sobre lo que esto significa para la sociedad y para nuestras empresas. El pensador Yuval Harari, autor de Homo Deus entre otros libros, nos avisa que la inteligencia artificial se ha colado en la naturaleza de la humanidad, que es el manejo del lenguaje. Harari afirma que, si los ordenadores pueden manipular el lenguaje con la calidad que estamos viendo, la propia concepción de la humanidad puede quedar en peligro. O sea que Homo ya no sería Deus, porque habría creado una criatura que podría volverse contra él, ya que tiene un nivel de competencia brutal en aquello que hace que la humanidad exista: el lenguaje.

Ahora tenemos, por un precio ridículo, la posibilidad de usar a un ordenador como un alter ego en nuestra vida cotidiana. No es un copiloto, es un yo alternativo que escribe mis cartas, publica mis artículos, hablará con mis clientes y tomará mis decisiones. Tenemos el peligro de que este nuevo yo vaya creciendo, seguramente a costa nuestra, hasta el punto de reemplazarnos. Podemos imaginar este futuro distópico compuesto de alter egos hablando de cosas de seres humanos, o de sus propias cosas. Usaremos tecnologías como ChatGPT para escribir un mensaje a una empresa que usará Bard para procesarlo y generar una respuesta que analizaremos con ChatGPT… Tenemos el peligro de dejar de generar y entender mensajes, y delegar todo eso a máquinas.

Pero a pesar de estas consideraciones un tanto catastrofistas, también debemos ver la oportunidad que esto significa para nuestras empresas.

Uno de los aspectos más comentados es la programación de aplicaciones. ¿Cómo será el desarrollo de aplicaciones en el futuro inmediato? Y digo inmediato porque el cambio a herramientas de programación automática ya es una realidad.

En mi opinión, la programación simplemente desaparecerá en su mayor parte. ¿Por qué? Pensemos un poco qué significa un sistema de información. Una aplicación informática es conocimiento encapsulado sobre un tema concreto: vender a clientes, hacer facturas, simular una factoría, enviar correos, etc. Cada área de cada empresa tiene su propio conocimiento, y de ahí vienen los famosos silos de aplicaciones.

La actividad de un diseñador es la de crear una estructura que “despiece” ese conocimiento en fragmentos algorítmicos, y la actividad de un programador es la de coger cada parte y crear el algoritmo correspondiente, con sus entradas y salidas. Para ello, el diseñador tiene que entender en detalle el tema concreto. Las nuevas herramientas de programación automática van a aumentar la productividad y calidad de los programadores: por lo que parece al doble o triple. La consecuencia de esto es que vamos a desplazar el cuello de botella de la programación al diseño. Si programar es una actividad que se trivializa, la clave será tener los mejores diseñadores y aumentar su productividad. Diseñar un sistema sí que parece una actividad que, hoy por hoy, queda lejos del alcance de una IA lingüística.

Sin embargo, démosle una vuelta a este argumento. Decimos que un sistema es conocimiento encapsulado. Pero ¿qué pasaría si este conocimiento fuese sobre el propio diseño? Por ejemplo, el diseñador piensa que necesita una función de negocio que haga ciertas cosas, tales como presentar una pantalla con datos, manipular información de una base de datos, aplicar un algoritmo para llegar a unas conclusiones, generar mensajes, etc. Una tecnología suficientemente avanzada podría interpretar este diseño y convertirlo, en tiempo real, en su propia ejecución. Es decir, tendríamos un emulador de aplicaciones, en vez de una aplicación. Y este emulador sería una tecnología universal que podría convertirse dinámicamente en cualquier sistema que queramos.

¿Para qué programar aplicaciones si podemos simular que las hemos programado? ¿Para qué tomarnos el trabajo de hacer programas y mantenerlos, si podemos interpretar el diseño en tiempo real? Esta visión nos lleva a trabajar en plataformas que son capaces de formalizar el conocimiento del diseño, ya sea funcional o técnico, y que dejen este conocimiento disponible para ser interpretado, simulando la aplicación que describen.

Esto no es tan extraño, si tenemos en cuenta que una parte importante de nuestras infraestructuras en informática son emuladores: el hardware, los firewalls, los sistemas operativos, las instalaciones, son hoy en día sistemas virtualizados. Lo que vamos a tener ahora es que el entorno de las aplicaciones de negocio es también un sistema universal virtualizado, que emula reglas de negocio.

¿Y cuáles son las consecuencias de esto? Muy importantes, en verdad. Lo que estamos haciendo es convertir el diseño de un sistema en una estructura interpretable automáticamente, y eliminando la actividad de programación. Esto impacta de forma en tres ejes clave de la empresa: la velocidad de puesta en marcha, el riesgo, y el valor añadido. Lo que obtenemos es un time-to-market muy rápido, un riesgo mínimo y el máximo valor añadido.

Esto es una consecuencia de la evolución del estado del arte de la IA en estos años. Lo que está pasando es que está convergiendo el mundo de la semántica (IA lingüística) con el mundo de la ingeniería (desarrollo de sistemas), produciendo un nuevo concepto: Ingeniería Semántica, que es la capacidad de crear soluciones de ingeniería usando la semántica como motor.

Creemos que la IA basada en modelos de lenguaje, combinada con intérpretes de modelos, va a revolucionar el panorama de la ingeniería de sistemas en el futuro cercano, produciendo una nueva concepción de lo que es un sistema de información, y creando una nueva relación entre la sociedad y la tecnología.

Scroll al inicio
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad