IA y software de código abierto ¿Separados al nacer?

IA y software de código abierto ¿Separados al nacer?

 

He estado leyendo, escribiendo y hablando desde finales del año pasado sobre la intersección del software de código abierto y el aprendizaje automático, tratando de entender lo que el futuro podría traer. 

Cuando empecé, esperaba hablar principalmente sobre cómo la comunidad de aprendizaje automático utiliza el software de código abierto. Pero cuanto más he explorado, más me he dado cuenta de que hay muchas similitudes entre las dos áreas de práctica. En este artículo discutiré algunas de esas similitudes, así como lo que el aprendizaje automático puede y no puede aprender del software de código abierto.

 

Construyendo, desde el principio

 

La similitud fácil y obvia es que tanto el aprendizaje automático moderno como el software moderno se construyen casi en su totalidad con software de código abierto. Para el software, son compiladores y editores de código; para el aprendizaje automático, son frameworks de entrenamiento e inferencia como PyTorch y TensorFlow. Estos espacios están dominados por el software de código abierto y nada parece indicar que esto vaya a cambiar.

Hay una notable excepción aparente a esto: todos estos frameworks dependen de la tecnología y el software propietarios de Nvidia. En realidad, esto es más paralelo de lo que puede parecer a primera vista. Durante mucho tiempo, el software de código abierto se ejecutaba principalmente en sistemas operativos propietarios de Unix, vendidos por proveedores de hardware propietarios. Solo cuando apareció Linux comenzamos a dar por sentado que una “base” abierta del stack era posible, y mucho desarrollo abierto se lleva a cabo en estos días en MacOS y Windows. No está claro cómo esto se desarrollará en el aprendizaje automático. Amazon (para AWS), Google (tanto para la nube como para Android) y Apple están invirtiendo en chips y stacks que compiten, y es posible que uno o más de ellos sigan el camino trazado por Linus (y Intel) al liberar todo el stack.

 

Datos de entrenamiento: ¿La nueva cadena de suministro accidental?

 

Un paralelismo más crítico entre cómo se construye el software de código abierto y cómo se construye el aprendizaje automático es la complejidad y disponibilidad pública de los datos en los que se basan.

Como se detalla en este preprint titulado “El proyecto de procedencia de datos”, del cual soy coautor, el aprendizaje automático moderno se basa literalmente en miles de fuentes de datos, al igual que el software de código abierto moderno se basa en cientos de miles de bibliotecas. Y al igual que cada biblioteca abierta conlleva desafíos legales, de seguridad y de mantenimiento, cada conjunto de datos público también presenta el mismo conjunto exacto de dificultades.

En nuestra organización, hemos hablado de la versión de este desafío para el software de código abierto como una “cadena de suministro accidental”. La industria del software comenzó a construir cosas porque los increíbles bloques de construcción de las bibliotecas de código abierto significaban que podíamos hacerlo. Esto hizo que la industria comenzara a tratar el software de código abierto como una cadena de suministro, lo cual fue una sorpresa para muchos de esos “proveedores”.

Para mitigar estos desafíos, el software de código abierto ha desarrollado muchas técnicas sofisticadas (aunque imperfectas), como escáneres para identificar qué se está utilizando y metadatos para rastrear las cosas después de la implementación. También estamos comenzando a invertir en personas para tratar de abordar la falta de correspondencia entre las necesidades industriales y las motivaciones de los voluntarios.

Desafortunadamente, la comunidad de aprendizaje automático parece estar lista para sumergirse en el mismo error “accidental” de cadena de suministro, haciendo muchas cosas porque pueden hacerlo, sin detenerse a pensar mucho en las implicaciones a largo plazo una vez que toda la economía se base en estos conjuntos de datos.

 

El código abierto se expande para abarcar muchos nichos

 

Un último paralelismo importante es que sospecho fuertemente que el aprendizaje automático se expandirá para abarcar muchos, muchos nichos, al igual que el software de código abierto. En este momento, el (merecido) entusiasmo se centra en los modelos grandes y generativos, pero también hay muchos modelos pequeños disponibles, así como ajustes en modelos más grandes. De hecho, el sitio de alojamiento HuggingFace, la plataforma principal de aprendizaje automático, informa que el número de modelos en su sitio está creciendo de forma exponencial.

Estos modelos probablemente serán abundantes y estarán disponibles para su mejora, al igual que pequeñas piezas de software de código abierto. Esto los hará increíblemente flexibles y poderosos. Por ejemplo, estoy utilizando una herramienta pequeña basada en el aprendizaje automático para medir el tráfico de manera económica y sensible a la privacidad en mi calle, un caso de uso que no hubiera sido posible hace unos años excepto en dispositivos caros.

Pero esta proliferación significa que deberán ser rastreadas: los modelos pueden volverse menos como mainframes y más como software de código abierto o SaaS, que aparecen en todas partes debido a su bajo costo y facilidad de implementación.

 

Metadata no es una Panacea, pero es un primer paso

 

Entonces, si existen estos importantes paralelismos (especialmente en cadenas de suministro complejas y distribución en proliferación), ¿qué puede aprender el aprendizaje automático del software de código abierto?

La primera lección paralela que podemos sacar es simplemente que para comprender sus muchos desafíos, el aprendizaje automático necesitará metadatos y herramientas. El software de código abierto se encontró involuntariamente con el trabajo de metadatos a través de la conformidad de derechos de autor y licencias, pero a medida que la cadena de suministro accidental para el software ha madurado, los metadatos han demostrado ser inmensamente útiles en una variedad de aspectos.

En el aprendizaje automático, el seguimiento de metadatos es un trabajo en progreso. Algunos ejemplos:

  • Un artículo clave de 2019, ampliamente citado en la industria, instó a los desarrolladores de modelos a documentar su trabajo con “tarjetas de modelo”. Desafortunadamente, investigaciones recientes sugieren que su implementación en la práctica todavía es débil.
  • Tanto las especificaciones de listas de materiales de software (SBOM) SPDX como CycloneDX están trabajando en listas de materiales de IA (AI BOM) para ayudar a rastrear datos y modelos de aprendizaje automático, de manera más estructurada que las tarjetas de modelo (como corresponde a la complejidad que se esperaría si esto realmente se paraleliza con el software de código abierto).
  • HuggingFace ha creado una variedad de especificaciones y herramientas para permitir a los autores de modelos y conjuntos de datos documentar sus fuentes.
  • El artículo sobre Procedencia de Datos del MIT citado anteriormente intenta comprender la “verdad fundamental” de la licencia de datos, para ayudar a detallar las especificaciones con datos del mundo real.
  • Anecdóticamente, muchas empresas que realizan trabajos de entrenamiento de aprendizaje automático parecen tener relaciones algo informales con el seguimiento de datos, usando “más es mejor” como excusa para cargar datos en el depósito sin necesariamente rastrearlo correctamente.

Si hemos aprendido algo del código abierto, es que obtener los metadatos correctos (primero, las especificaciones y luego los datos reales) será un proyecto de años y puede requerir intervención gubernamental. El aprendizaje automático debería dar ese salto de metadatos lo antes posible.

 

La Seguridad será un Problema Real

 

La seguridad ha sido otro impulsor importante de la demanda de metadatos en el software de código abierto: si no sabes lo que estás ejecutando, no puedes saber si eres susceptible a la interminable corriente de ataques.

El aprendizaje automático no está sujeto a la mayoría de los tipos de ataques tradicionales de software, pero eso no significa que sean invulnerables. (Mi ejemplo favorito es que era posible envenenar conjuntos de entrenamiento de imágenes porque a menudo se extraían de dominios muertos). La investigación en esta área es lo suficientemente intensa como para que ya hayamos pasado de la “prueba de concepto” a “hay suficientes ataques para enumerar y taxonomizar“.

Desafortunadamente, el software de código abierto no puede ofrecer al aprendizaje automático ninguna bala mágica para la seguridad. Si las tuviéramos, las estaríamos utilizando. Pero la historia de cómo el software de código abierto se extendió a tantos nichos sugiere que el aprendizaje automático debe tomar este desafío en serio, comenzando por el seguimiento de metadatos de uso e implementación, precisamente porque es probable que se aplique de muchas formas más allá de las en las que se implementa actualmente.

 

La Regulación y la Responsabilidad se Ampliarán

 

Las motivaciones que impulsaron los metadatos de código abierto (derechos de autor y luego seguridad) apuntan al siguiente paralelismo importante: a medida que crece la importancia de un sector, el alcance de las cosas que deben medirse y rastrearse se ampliará, porque la regulación y la responsabilidad también se ampliarán.

En el software de código abierto, la “regulación” gubernamental principal durante muchos años fue la ley de derechos de autor, y los metadatos se desarrollaron para respaldar eso. Pero el software de código abierto ahora se enfrenta a una variedad de reglas de seguridad y responsabilidad del producto, y debemos madurar nuestras cadenas de suministro para cumplir con esos nuevos requisitos.

La IA también será regulada de diversas maneras a medida que se vuelva cada vez más importante. Las fuentes de regulación serán extremadamente diversas, incluyendo el contenido (tanto las entradas como las salidas), la discriminación y la responsabilidad del producto. Esto requerirá lo que a veces se llama “rastreabilidad”, es decir, comprender cómo se construyen los modelos y cómo esas elecciones (incluyendo las fuentes de datos) afectan los resultados de los modelos.

Este requisito fundamental, ¿qué tenemos? ¿cómo llegó aquí?, es ahora íntimamente familiar para los desarrolladores de software de código abierto empresarial. Sin embargo, puede ser un cambio radical para los desarrolladores de aprendizaje automático y debe ser aceptado.

 

“A largo plazo” es más largo de lo que la gente piensa

 

Otra lección paralela que el aprendizaje automático puede aprender del software de código abierto (y de hecho de muchas olas de software anteriores, que se remontan al menos a los mainframes) es que su vida útil será muy, muy larga. Una vez que una tecnología es “suficientemente buena”, se implementará y, por lo tanto, deberá mantenerse durante mucho, mucho tiempo. Esto implica que debemos pensar en el mantenimiento de este software lo antes posible y considerar lo que significará que este software pueda sobrevivir durante décadas. “Décadas” no es una exageración; muchos clientes con los que me encuentro están utilizando software lo suficientemente antiguo como para votar. Muchas compañías de software de código abierto, y algunos proyectos, ahora tienen versiones de “Soporte a Largo Plazo” que están destinadas a este tipo de casos de uso.

En contraste, OpenAI mantuvo su herramienta Codex disponible durante menos de dos años, lo que generó mucha ira, especialmente en la comunidad académica. Dado el rápido ritmo de cambio en el aprendizaje automático, y que la mayoría de los adoptantes probablemente están interesados en utilizar la última tecnología, esto probablemente no fue irrazonable, pero llegará el día, más pronto de lo que la industria piensa, en el que deberá planificar este tipo de “largo plazo”, incluido cómo interactúa con la responsabilidad y la seguridad.

 

Los incentivos financieros no siempre están alineados

 

Finalmente, está claro que, al igual que el software de código abierto, habrá mucho dinero fluyendo hacia el aprendizaje automático, pero la mayor parte de ese dinero se acumulará alrededor de lo que un autor ha llamado “las empresas ricas en procesadores”. Si los paralelismos con el software de código abierto se hacen realidad, esas empresas tendrán preocupaciones y prioridades de gasto muy diferentes a las del creador medio (o usuario) de modelos.

Nuestra empresa, Tidelift, ha estado reflexionando sobre este problema de incentivos en el software de código abierto durante algún tiempo, y entidades como el mayor comprador de software del mundo, el gobierno de Estados Unidos, también están investigando el problema.

Las compañías de aprendizaje automático, especialmente aquellas que buscan crear comunidades de creadores, deben reflexionar sobre este desafío. Si dependen de miles de conjuntos de datos, ¿cómo garantizarán la financiación para el mantenimiento, el cumplimiento legal y la seguridad durante décadas? Si las grandes empresas terminan con decenas o cientos de modelos implementados en toda la empresa, ¿cómo garantizarán que aquellos con el mejor conocimiento especializado, es decir, aquellos que crearon los modelos, sigan disponibles para trabajar en nuevos problemas a medida que se descubran?

Al igual que con la seguridad, no hay respuestas fáciles para este desafío. Pero cuanto antes el aprendizaje automático tome el problema en serio, no como un acto de caridad, sino como un componente clave del crecimiento a largo plazo, mejor será toda la industria y todo el mundo.

 

Conclusión

 

Las profundas raíces del aprendizaje automático en la cultura académica de experimentalismo y en la cultura de rápida iteración de Silicon Valley le han servido bien, lo que ha llevado a una explosión increíble de innovación que habría parecido mágica hace menos de una década. El curso del software de código abierto en la última década quizás haya sido menos glamoroso, pero durante ese tiempo se ha convertido en el fundamento de todo el software empresarial y ha aprendido muchas lecciones en el camino. Esperemos que el aprendizaje automático no vuelva a inventar esas ruedas. Luis Villa es cofundador y asesor general de Tidelift. Anteriormente fue un destacado abogado especializado en software de código abierto que asesoraba a clientes, desde empresas Fortune 50 hasta startups líderes, sobre el desarrollo de productos y las licencias de código abierto.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Descifrando la verdad de los datos Cómo los modelos de lenguaje grandes utilizan las personas para modelar la veracidad

Con la introducción de los Modelos de Lenguaje Grande (LLMs), el subcampo de la Inteligencia Artificial, es decir, el...

Inteligencia Artificial

Capturando Carbono

¿Pueden las tecnologías de captura de carbono aliviar el impacto del cambio climático?

Inteligencia Artificial

El Ascenso y Caída de la Ingeniería Rápida ¿Moda o Futuro?

Este artículo proporciona una visión general de la ingeniería rápida, desde sus inicios hasta su estado actual.

Ciencias de la Computación

Vidrio de grado óptico impreso en 3D a escala nanométrica.

Los ingenieros han impreso en tres dimensiones vidrio de calidad óptica a escala nanométrica a baja temperatura utili...