¿Qué sentido tiene el código abierto que se ejecuta a una escala que nadie puede replicar? La inteligencia artificial necesita la colaboración, pero pensemos en ella de forma diferente.
Está claro que tenemos que hacer algo sobre cómo hablamos del código abierto y de la apertura en general. Está claro desde, al menos, 2006, cuando recibí una buena bofetada por denunciar a Google y a Yahoo! por contener el código abierto. Como escribió Tim O’Reilly en aquel momento, en la era de la nube del código abierto, “una de las motivaciones para compartir, la necesidad de dar una copia del código fuente para permitir que alguien ejecute tu programa, ha desaparecido realmente“. De hecho, continuó, “no sólo ya no es necesario, sino que en el caso de las aplicaciones más grandes, ya no es posible”.
Esa imposibilidad de compartir ha enredado la definición de código abierto durante la última década, y ahora está afectando a la forma en que pensamos en la inteligencia artificial (IA), como señaló recientemente Mike Loukides. Nunca ha habido un momento más importante para colaborar en la IA, pero también nunca ha habido un momento en que hacerlo haya sido más difícil. Como describe Loukides, “debido a su escala, los grandes modelos lingüísticos tienen un problema importante de reproducibilidad”.
Al igual que ocurrió con la nube en 2006, las empresas que realizan los trabajos más interesantes en el ámbito de la IA pueden tener dificultades para “abrir el código” de la forma que tradicionalmente hemos esperado. Aun así, esto no significa que no puedan seguir siendo abiertas de forma significativa.
Buena suerte ejecutando ese modelo en tu portátil
Según Loukides, aunque muchas empresas digan estar involucradas en la IA, en realidad sólo hay tres que están impulsando la industria: Facebook, OpenAI y Google. ¿Qué tienen en común? La capacidad de ejecutar modelos masivos a escala. En otras palabras, están haciendo IA de una manera que tú y yo no podemos. No intentan ser reservados; simplemente tienen una infraestructura y un conocimiento de cómo ejecutar esa estructura que tú y yo no tenemos.
“Puedes descargar el código fuente del OPT-175B de Facebook”, reconoce Loukides, “pero no podrás entrenarlo tú mismo en ningún hardware al que tengas acceso. Es demasiado grande incluso para las universidades y otras instituciones de investigación. Todavía tienes que creer en la palabra de Facebook de que hace lo que dice que hace”. Esto, a pesar del gran anuncio de Facebook de que estaba “compartiendo Open Pretrained Transformer (OPT-175B) … para permitir una mayor participación de la comunidad en la comprensión de esta nueva tecnología fundacional”.
Eso suena muy bien, pero, como insiste Loukides, OPT-175B “probablemente ni siquiera puede ser reproducido por Google y OpenAI, a pesar de que tienen suficientes recursos informáticos”. ¿Por qué? “OPT-175B está demasiado ligado a la infraestructura de Facebook (incluido el hardware personalizado) para ser reproducido en la infraestructura de Google”. De nuevo, Facebook no está tratando de ocultar lo que está haciendo con OPT-175B. Simplemente es muy difícil construir una infraestructura de este tipo, e incluso los que tienen el dinero y los conocimientos necesarios para hacerlo acabarán construyendo algo diferente.
Esto es exactamente lo que Jeremy Zawodny, de Yahoo, y Chris DiBona, de Google, señalaron en 2006 en la OSCON. Claro que podrían abrir todo su código, pero ¿qué podría hacer cualquiera con él, dado que fue construido para funcionar a una escala y de una manera que literalmente no podría reproducirse en ningún otro lugar?
Volviendo a la IA. Es difícil confiar en la IA si no entendemos la ciencia dentro de la máquina. Tenemos que encontrar la manera de abrir esa infraestructura. Loukides tiene una idea, aunque puede que no satisfaga a los más entusiastas del software libre y la IA: “La respuesta es proporcionar acceso gratuito a los investigadores externos y a los primeros usuarios para que puedan plantear sus propias preguntas y ver la amplia gama de resultados”. No, no dándoles acceso con tarjeta de acceso a los centros de datos de Facebook, Google u OpenAI, sino a través de APIs públicas. Es una idea interesante que podría funcionar.
Pero no es “código abierto” en el sentido que muchos desean. Probablemente eso esté bien.
Piensa de forma diferente sobre el código abierto
En 2006, me alegré de enfurecerme contra las mega máquinas de código abierto (Google y Yahoo!) por no ser más abiertas, pero esa acusación no tenía ni tiene sentido. Desde 2006, por ejemplo, Google ha empaquetado y abierto infraestructuras clave cuando lo hace para satisfacer sus necesidades estratégicas. He llamado a cosas como TensorFlow y Kubernetes el open sourcing de las rampas de entrada (TensorFlow) o de salida (Kubernetes), ya sea el open sourcing de los estándares de la industria para el aprendizaje de máquinas que, con suerte, conducen a más cargas de trabajo de Google Cloud, o asegurar la portabilidad entre nubes para dar a Google Cloud más oportunidades de ganar cargas de trabajo. Es un negocio inteligente, pero no es código abierto en el sentido de Pollyanna.
Tampoco es que Google esté solo en esto. Simplemente, es mejor en código abierto que la mayoría de las empresas. Como el código abierto es intrínsecamente egoísta, las empresas y los individuos siempre abrirán el código que les beneficie a ellos o a sus propios clientes. Siempre ha sido así, y siempre lo será.
En lo que respecta al punto de Loukides sobre las formas de abrir significativamente la IA a pesar de la diferencia entre los tres gigantes de la IA y todos los demás, no está argumentando a favor del código abierto en la forma en que tradicionalmente lo hicimos bajo la definición de código abierto. ¿Por qué? Porque por muy fantástica que sea (y lo es de verdad), nunca ha conseguido responder al dilema del código abierto en la nube (tanto para los creadores como para los consumidores de software) que DiBona y Zawodny expusieron en la OSCON de 2006. Llevamos más de una década y no estamos más cerca de una respuesta.
Excepto que, en cierto modo, lo estamos.
He argumentado que necesitamos una nueva forma de pensar sobre las licencias de código abierto, y mis pensamientos podrían no ser demasiado diferentes de cómo Loukides razona sobre la IA. La clave, tal y como yo entiendo su argumento, es proporcionar el suficiente acceso para que los investigadores puedan reproducir los éxitos y los fracasos del funcionamiento de un determinado modelo de IA. No necesitan un acceso completo a todo el código y la infraestructura para ejecutar esos modelos porque, como él argumenta, hacerlo es esencialmente inútil. En un mundo en el que un desarrollador puede ejecutar un programa de código abierto en un portátil y hacer obras derivadas, tiene sentido exigir el acceso completo a ese código. Dada la escala y las complejidades únicas del código que se ejecuta en Google o Microsoft hoy en día, esto ya no tiene sentido, si es que alguna vez lo tuvo. Al menos, no para todo el código de la nube que se ejecuta a escala.
Tenemos que abandonar nuestra visión binaria del código abierto. Nunca ha sido una lente particularmente útil a través de la cual ver el mundo del código abierto, y cada vez lo es menos, dada la era de la nube. Como empresas e individuos, nuestro objetivo debería ser abrir el acceso al software de forma que beneficie a nuestros clientes y a los desarrolladores de terceros para fomentar el acceso y la comprensión, en lugar de intentar adaptar un concepto de código abierto de hace décadas a la nube. No ha funcionado para el código abierto, al igual que no está funcionando para la IA. Es hora de pensar de forma diferente.
-Matt Asay, cio.com