Opinión
Open source

Repensando el código abierto para la inteligencia artificial

¿Cuáles son los derechos y restricciones de licencia para modelos de lenguaje grandes? ¿Cubren pesos y arquitecturas de redes neuronales profundas?

codigo abierto

Seguimos utilizando el término código abierto en el contexto de modelos de lenguaje grande (LLM, de sus siglas inglesas), como Llama 2, pero no está claro a qué nos referimos. Y no aludo a la pelea sobre si Meta debería usar ‘fuente compartida’ para describir su licencia en lugar de código abierto, como Steve O’Grady de RedMonk y otros han argumentado. Esta no es la pregunta correcta porque hay una lucha mucho más fundamental. Es decir, ¿qué significa el código abierto en un mundo donde los LLM (y los modelos básicos) se desarrollan, utilizan y distribuyen de maneras que son significativamente diferentes del software?

Mehul Shah, fundador y CEO de Aryn, un startup que tiene como objetivo reimaginar la búsqueda empresarial a través de la inteligencia artificial (IA), me describió por primera vez el problema en una entrevista. Shah, quien encabezó el servicio Amazon OpenSearch, está apostando fuerte por la IA y por el código abierto. ¿Los dos van juntos? No es tan simple como parece a primera vista. De hecho, al igual que el movimiento código abierto tuvo que repensar términos clave como “distribución” a medida que el software se desplazaba a la nube, es probable que tengamos que lidiar con las inconsistencias introducidas al aplicar la definición de código abierto a los números de punto flotante.

En una larga publicación sobre el tema, Mike Linksvayer, jefe de política de desarrolladores en GitHub, dijo que “no existe una definición establecida de lo que es la IA de código abierto”. Tiene razón, no solo no está resuelto, sino que apenas se discute. Esto tiene que cambiar.

Como Shah enfatizaba en nuestra entrevista, “los modelos de IA son ostensiblemente solo programas de software, pero la forma en que se desarrollan, usan y distribuyen es diferente al software”. A pesar de esta inconsistencia, seguimos refiriéndonos casualmente a cosas como Llama 2 como código abierto o definitivamente como su contrario. ¿A qué nos referimos?

Algunos quieren que signifique que el software tiene o no licencia de acuerdo con la definición de código abierto. Pero esto pierde el foco. Este es algo que no es del todo software en la forma en la que tradicionalmente lo hemos pensado en lo que se refiere a las licencias de código abierto.

Si miramos bajo el capó de estos LLM, todos son modelos de redes neuronales profundas que, a pesar de sus diferencias, todos usan aproximadamente la misma arquitectura. Se llama arquitectura de transformador. Dentro de estos modelos, tiene neuronas, instrucciones sobre cómo están conectadas y una especificación de cuántas capas de neuronas necesitas. Los diferentes modelos requieren solo decodificadores o solo codificadores, o diferentes números de capas, pero en última instancia, todos son bastante similares arquitectónicamente.

La principal diferencia son los números que conectan las neuronas, también conocidos como pesos. Esos números te dicen cuándo le das al modelo alguna entrada, qué neuronas se activan y cómo se propagan. Aunque no está claro, sospecho que muchas personas piensan que estos pesos son el código que Meta y otros son de código abierto.

La principal diferencia son los números que conectan las neuronas, también conocidos como pesos. Esos números te dicen cuándo le das al modelo alguna entrada, qué neuronas se activan y cómo se propagan. Aunque no está claro, sospecho que muchas personas piensan que estos pesos son el código que Meta y otros son de código abierto. Quizás. Pero aquí es donde las cosas se complican.

Como señala Shah, "Si nos fijamos en todas las cosas que están en la definición de libre y de código abierto, algunas de esas cosas se aplican y las otras no". Por un lado, no puede modificar los pesos directamente. No puedes entrar y cambiar un número de punto flotante. Tienes que volver a compilarlos de otro lugar. "Quiero una licencia sobre los pesos en sí que me permita construir productos y otros modelos encima de ellos con la menor cantidad de restricciones posible", subraya el creador de Datasette, Simon Willison. Eso al menos aclara dónde debería aplicarse la licencia, pero no resuelve del todo la pregunta más fundamental de Shah sobre si el código abierto de los pesos tiene sentido.

 

¿Dónde aplicar la licencia?

En nuestra conversación, Shah describió algunas formas diferentes de pensar sobre el "código" en el contexto de los LLM. La primera es pensar en datos de entrenamiento curados como el código fuente de los programas de software. Si comenzamos allí, entonces el entrenamiento (descenso de gradiente) es como la compilación del código fuente, y la arquitectura de red neuronal profunda de los modelos de transformadores o LLM es como el hardware virtual o el hardware físico en el que se ejecuta el programa compilado. En esta lectura, los pesos son el programa compilado.

Esto parece razonable, pero inmediatamente plantea preguntas clave. Primero, que los datos curados a menudo son propiedad de otra persona. En segundo lugar, aunque las licencias están en los pesos de hoy, esto puede no funcionar bien porque esos pesos son solo números de punto flotante. ¿Es esto diferente de decir que eres código de licencia, que es solo un montón de 1 y 0? ¿La licencia debe estar en la arquitectura? Probablemente no, ya que la misma arquitectura con diferentes pesos puede darle una IA completamente diferente. ¿Debería la licencia estar entonces en los pesos la arquitectura? Tal vez, pero es posible modificar el comportamiento del programa sin acceso al código fuente a través del ajuste fino y el ajuste de instrucciones. Luego está la realidad de que los desarrolladores a menudo distribuyen deltas o diferencias de los pesos originales. ¿Los deltas están sujetos a la misma licencia que el modelo original? ¿Pueden tener licencias completamente diferentes?

¿Ves los problemas? Todo solucionable, pero no simple. No es tan claro como declarar que un LLM es de código abierto o no.

Tal vez una mejor manera de pensar en el código abierto en el contexto de los pesos es pensar en los pesos como el código fuente del software, que parece ser la interpretación de Willison. En este mundo, la compilación del software se reduce a su interpretación en diferentes hardware (CPU y GPU). Pero, ¿la licencia sobre los pesos incluye la arquitectura de la red neuronal? ¿Qué hacemos con los diffs y variantes del modelo después del ajuste fino?

¿Qué hacemos con los datos de entrenamiento, que son posiblemente tan importantes, si no más, como las pesas? ¿Qué hay del código abierto en el proceso de seleccionar el conjunto correcto de datos? Muy importante, pero actualmente no se prevé por la forma en que usamos el código abierto para describir un LLM.

Estos no son problemas académicos. Dada la explosión en la adopción de IA, es importante que los desarrolladores, las nuevas empresas y todos puedan usar LLM de código abierto y saber lo que eso significa. Willison, por ejemplo, me dice que le encantaría entender mejor sus derechos bajo un LLM con licencia como Llama 2. Además, ¿cuáles son sus limitaciones? ¿Qué significan realmente las restricciones "sobre su uso para ayudar a entrenar modelos competidores, especialmente [con respecto a] el ajuste fino"? Willison está muy por delante de la mayoría de nosotros en términos de adopción y uso de LLM para avanzar en el desarrollo de software. Si tiene preguntas, todos deberíamos hacerlo.

"Estamos en la era de la programación de datos", declara Shah. Pero para que esta era tenga el máximo impacto, tenemos que averiguar a qué nos referimos cuando lo llamamos código abierto.



Forma parte de nuestra comunidad

 

¿Te interesan nuestras conferencias?

 

 
Cobertura de nuestros encuentros
 
 
 
 
Lee aquí nuestra revista de canal

DealerWorld Digital