La startup de inteligencia artificial Hugging Face y ServiceNow Research, la división de investigación y desarrollo de ServiceNow, lanzaron StarCoder, una alternativa gratuita a los sistemas de inteligencia artificial generadores de código en la línea de Copilot de GitHub.
Sistemas generadores de código como AlphaCode de DeepMind; CodeWhisperer de Amazon; y el Codex de OpenAI, que impulsa a Copilot, ofrece una visión tentadora de lo que es posible con la IA en el ámbito de la programación informática. Suponiendo que los problemas éticos, técnicos y legales se resuelvan algún día (y las herramientas de codificación impulsadas por IA no causen más errores y vulnerabilidades de seguridad de las que resuelven), podrían reducir sustancialmente los costos de desarrollo y permitir que los programadores se concentren en tareas más creativas.
De acuerdo a un estudiar de la Universidad de Cambridge, al menos la mitad de los esfuerzos de los desarrolladores se dedican a la depuración y no a la programación activa, lo que le cuesta a la industria del software un estimado de $ 312 mil millones por año. Pero hasta ahora, sólo un puñado de sistemas de IA generadores de código se han puesto a disposición del público de forma gratuita, lo que refleja los incentivos comerciales de las organizaciones que los construyen (ver: Replit).
StarCoder, que por el contrario tiene licencia para permitir el uso libre de regalías por parte de cualquier persona, incluidas las corporaciones, recibió capacitación en más de 80 lenguajes de programación, así como en el texto de los repositorios de GitHub, incluida la documentación y cuadernos de programación. StarCoder se integra con el editor de código Visual Studio Code de Microsoft y, al igual que ChatGPT de OpenAI, puede seguir instrucciones básicas (p. ej., “crear una interfaz de usuario de aplicación”) y responder preguntas sobre el código.
Felicidades a todos los @BigCodeProyecto colaboradores que trabajaron incansablemente durante los últimos más de 6 meses para hacer realidad la visión de lanzar un Código LLM de parámetros 15B desarrollado de manera responsable. No podemos agradecerles lo suficiente por la colaboración y las contribuciones a la comunidad. https://t.co/282sCRJq3k
— Investigación de ServiceNow (@ServiceNowRSRCH) 4 de mayo de 2023
Leandro von Werra, ingeniero de aprendizaje automático en Hugging Face y codirector de StarCoder, afirma que StarCoder iguala o supera el modelo de IA de OpenAI que se usó para potenciar las versiones iniciales de Copilot.
“Una cosa que aprendimos de lanzamientos como Stable Diffusion el año pasado es la creatividad y la capacidad de la comunidad de código abierto”, dijo von Werra a TechCrunch en una entrevista por correo electrónico. “A las pocas semanas del lanzamiento, la comunidad había creado docenas de variantes del modelo, así como aplicaciones personalizadas. Lanzar un poderoso modelo de generación de código permite a cualquiera ajustarlo y adaptarlo a sus propios casos de uso y habilitará innumerables aplicaciones posteriores”.
Construyendo un modelo
StarCoder es parte del proyecto BigCode de más de 600 personas de Hugging Face y ServiceNow, lanzado a fines del año pasado, que tiene como objetivo desarrollar sistemas de inteligencia artificial “de última generación” para código de una manera “abierta y responsable”. Hugging Face suministró un clúster de cómputo interno de 512 GPU Nvidia V100 para entrenar el modelo StarCoder.
Varios grupos de trabajo de BigCode se centran en subtemas como la recopilación de conjuntos de datos, la implementación de métodos para entrenar modelos de código, el desarrollo de un conjunto de evaluación y la discusión de las mejores prácticas éticas. Por ejemplo, el grupo de trabajo Legal, Ética y Gobernanza exploró preguntas sobre licencias de datos, atribución del código generado al código original, la redacción de información de identificación personal (PII) y los riesgos de generar código malicioso.
Inspirado en los esfuerzos anteriores de Hugging Face para abrir sistemas sofisticados de generación de texto, BigCode busca abordar algunas de las controversias que surgen en torno a la práctica de la generación de código impulsada por IA. La organización sin fines de lucro Software Freedom Conservancy, entre otras, ha criticado a GitHub y OpenAI por usar código fuente público, no todo el cual está bajo una licencia permisiva, para entrenar y monetizar Codex. Codex está disponible a través de las API pagas de OpenAI y Microsoft, mientras que GitHub recientemente comenzó a cobrar por el acceso a Copilot.
Por su parte, GitHub y OpenAI afirman que Codex y Copilot, protegidos por la doctrina de uso justoal menos en los EE. UU., no entre en conflicto con ningún acuerdo de licencia.
“Lanzar un sistema capaz de generar código puede servir como plataforma de investigación para las instituciones que están interesadas en el tema pero que no cuentan con los recursos o los conocimientos necesarios para entrenar tales modelos”, dijo von Werra. “Creemos que, a largo plazo, esto conducirá a una investigación fructífera sobre la seguridad, las capacidades y los límites de los sistemas de generación de código”.
A diferencia de Copilot, el StarCoder de 15 mil millones de parámetros se entrenó en el transcurso de varios días en un conjunto de datos de código abierto llamado The Stack, que tiene más de 19 millones de repositorios seleccionados y con licencia permisiva y más de seis terabytes de código en más de 350 lenguajes de programación. En el aprendizaje automático, los parámetros son las partes de un sistema de IA aprendidas a partir de datos de entrenamiento históricos y esencialmente definen la habilidad del sistema en un problema, como la generación de código.
Un gráfico que desglosa el contenido del conjunto de datos de The Stack. Créditos de imagen: Código grande
Debido a que tiene una licencia permisiva, el código de The Stack se puede copiar, modificar y redistribuir. Pero el proyecto BigCode también proporciona una manera para que los desarrolladores “opten por no participar” en The Stack, de manera similar a los esfuerzos en otros lugares para permitir que los artistas eliminen su trabajo de los conjuntos de datos de entrenamiento de IA de texto a imagen.
El equipo de BigCode también trabajó para eliminar la PII de The Stack, como nombres, nombres de usuario, direcciones de correo electrónico e IP, y claves y contraseñas. Crearon un conjunto de datos separado de 12,000 archivos que contenían PII, que planean divulgar a los investigadores a través de un “acceso cerrado”.
Más allá de esto, el equipo de BigCode usó la herramienta de detección de códigos maliciosos de Hugging Face para eliminar archivos de The Stack que podrían considerarse “inseguros”, como aquellos con vulnerabilidades conocidas.
Los problemas de privacidad y seguridad con los sistemas de IA generativa, que en su mayor parte se entrenan con datos relativamente sin filtrar de la web, están bien establecidos. ChatGPT una vez voluntario el teléfono de un periodista. Y GitHub ha reconocido que Copilot puede generar claves, credenciales y contraseñas vistas en sus datos de entrenamiento en cadenas novedosas.
“El código plantea parte de la propiedad intelectual más delicada para la mayoría de las empresas”, dijo von Werra. “En particular, compartirlo fuera de su infraestructura plantea inmensos desafíos”.
En este punto, algunos expertos legales han argumentado que los sistemas de IA generadores de código podrían poner en riesgo a las empresas si sin darse cuenta incorporaran texto sensible o protegido por derechos de autor de las herramientas en su software de producción. Como Elaine Atwell notas en un artículo del blog corporativo de Kolide, debido a que los sistemas como Copilot eliminan el código de sus licencias, es difícil saber qué código se puede implementar y cuál puede tener términos de uso incompatibles.
En respuesta a las críticas, GitHub agregó una opción que permite a los clientes evitar que se muestre el código sugerido que coincide con el contenido público potencialmente protegido por derechos de autor de GitHub. Amazon, siguiendo el ejemplo, tiene CodeWhisperer resaltado y, opcionalmente, filtra la licencia asociada con las funciones que sugiere que se parecen a los fragmentos que se encuentran en sus datos de entrenamiento.
Conductores comerciales
Entonces, ¿qué saca de esto ServiceNow, una empresa que se dedica principalmente al software de automatización empresarial? Un “modelo de alto rendimiento y una licencia de modelo de IA responsable que permite el uso comercial”, dijo Harm de Vries, líder del Laboratorio de modelos de lenguaje grande en ServiceNow Research y codirector del proyecto BigCode.
Uno se imagina que ServiceNow eventualmente incorporará StarCoder en sus productos comerciales. La compañía no reveló cuánto, en dólares, invirtió en el proyecto BigCode, salvo que la cantidad de computación donada fue “sustancial”.
“El laboratorio de modelos de lenguaje grande en ServiceNow Research está acumulando experiencia en el desarrollo responsable de modelos generativos de IA para garantizar la implementación segura y ética de estos poderosos modelos para nuestros clientes”, dijo de Vries. “El enfoque de investigación científica abierta de BigCode brinda a los desarrolladores y clientes de ServiceNow total transparencia sobre cómo se desarrolló todo y demuestra el compromiso de ServiceNow de realizar contribuciones socialmente responsables a la comunidad”.
StarCoder no es código abierto en el sentido más estricto. Más bien, se está lanzando bajo un esquema de licencia, OpenRAIL-M, que incluye restricciones de casos de uso “legalmente exigibles” que los derivados del modelo, y las aplicaciones que usan el modelo, deben cumplir.
Por ejemplo, los usuarios de StarCoder deben aceptar no aprovechar el modelo para generar o distribuir código malicioso. Si bien los ejemplos del mundo real son pocos y distantes entre sí (al menos por ahora), los investigadores han demostrado cómo la IA como StarCoder podría usarse en malware para evadir formas básicas de detección.
Queda por ver si los desarrolladores realmente respetan los términos de la licencia. Dejando a un lado las amenazas legales, no hay nada en el nivel técnico básico que les impida ignorar los términos para sus propios fines.
Eso es lo que sucedió con Stable Diffusion antes mencionado, cuya licencia igualmente restrictiva fue ignorada por los desarrolladores que usaron el modelo de IA generativa para crear imágenes de falsificaciones profundas de celebridades.
Pero la posibilidad no ha desanimado a von Werra, quien siente que las ventajas de no lanzar StarCoder no compensan las desventajas.
“En el lanzamiento, StarCoder no ofrecerá tantas funciones como GitHub Copilot, pero con su naturaleza de código abierto, la comunidad puede ayudar a mejorarlo en el camino, así como a integrar modelos personalizados”, dijo.
Los repositorios de código de StarCoder, el marco de entrenamiento de modelos, los métodos de filtrado de conjuntos de datos, el conjunto de evaluación de código y los cuadernos de análisis de investigación están disponibles en GitHub a partir de esta semana. El proyecto BigCode los mantendrá en el futuro a medida que los grupos busquen desarrollar modelos de generación de código más capaces, impulsados por los aportes de la comunidad.
Ciertamente hay trabajo por hacer. En el documento técnico que acompaña al lanzamiento de StarCoder, Hugging Face y ServiceNow dicen que el modelo puede producir contenido inexacto, ofensivo y engañoso, así como PII y código malicioso que lograron pasar la etapa de filtrado del conjunto de datos.