Meta lanza Code Llama, un código
HogarHogar > Blog > Meta lanza Code Llama, un código

Meta lanza Code Llama, un código

Aug 06, 2023

Meta, con la intención de causar sensación en un espacio de IA generativa plagado de competencia, se encuentra en una especie de desgarro de código abierto.

Tras el lanzamiento de modelos de IA para generar texto, traducir idiomas y crear audio, la empresa ha abierto Code Llama, un sistema de aprendizaje automático que puede generar y explicar código en lenguaje natural, específicamente en inglés.

Al igual que GitHub Copilot y Amazon CodeWhisperer, así como generadores de código de código abierto impulsados ​​por IA como StarCoder, StableCode y PolyCoder, Code Llama puede completar código y depurar código existente en una variedad de lenguajes de programación, incluidos Python, C++, Java, PHP, Mecanografiado, C# y Bash.

"En Meta, creemos que los modelos de IA, pero en particular los grandes modelos de lenguaje para codificación, se benefician más de un enfoque abierto, tanto en términos de innovación como de seguridad", escribió Meta en una publicación de blog compartida con TechCrunch. “Los modelos específicos de códigos disponibles públicamente pueden facilitar el desarrollo de nuevas tecnologías que mejoren la vida de las personas. Al lanzar modelos de código como Code Llama, toda la comunidad puede evaluar sus capacidades, identificar problemas y corregir vulnerabilidades”.

Code Llama, que está disponible en varias versiones, incluida una versión optimizada para Python y una versión optimizada para comprender las instrucciones (por ejemplo, "Escríbeme una función que genere la secuencia de Fibonacci"), se basa en el modelo de generación de texto de Llama 2. ese Meta de código abierto a principios de este mes. Si bien Llama 2 podía generar código, no era necesariamente un buen código; ciertamente no estaba a la altura de la calidad que podía producir un modelo especialmente diseñado como Copilot.

Al entrenar Code Llama, Meta utilizó el mismo conjunto de datos que usó para entrenar Llama 2: una combinación de fuentes disponibles públicamente en toda la web. Pero hizo que el modelo "enfatizara", por así decirlo, el subconjunto de datos de entrenamiento que incluía código. Esencialmente, a Code Llama se le dio más tiempo para aprender las relaciones entre el código y el lenguaje natural que a Llama 2, su modelo "padre".

Cada uno de los modelos de Code Llama, que varían en tamaño desde 7 mil millones de parámetros hasta 34 mil millones de parámetros, fue entrenado con 500 mil millones de tokens de código junto con datos relacionados con el código. Code Llama específico de Python se perfeccionó aún más en 100 mil millones de tokens de código Python y, de manera similar, Code Llama, que comprende instrucciones, se perfeccionó utilizando comentarios de anotadores humanos para generar respuestas "útiles" y "seguras" a las preguntas. .

Para el contexto, los parámetros son las partes de un modelo aprendidas de los datos de entrenamiento históricos y esencialmente definen la habilidad del modelo en un problema, como generar texto (o código, en este caso), mientras que los tokens representan texto sin formato (por ejemplo, "fan, “tas” y “tic” para la palabra “fantástico”).

Varios de los modelos de Code Llama pueden insertar código en código existente y todos pueden aceptar alrededor de 100.000 tokens de código como entrada, mientras que al menos uno (el modelo de 7 mil millones de parámetros) puede ejecutarse en una sola GPU. (Los otros requieren hardware más potente). Meta afirma que el modelo de 34 mil millones de parámetros es el de mejor rendimiento de cualquier generador de código abierto hasta la fecha, y el mayor por recuento de parámetros.

Se podría pensar que una herramienta de generación de código sería enormemente atractiva para los programadores e incluso para los no programadores, y no estaría equivocado.

GitHub afirma que más de 400 organizaciones utilizan Copilot en la actualidad y que los desarrolladores dentro de esas organizaciones están codificando un 55% más rápido que antes. Por otra parte, Stack Overflow, el sitio de preguntas y respuestas sobre programación, encontró en una encuesta reciente que el 70% ya está usando (o planea usar) herramientas de codificación de IA este año, citando beneficios como una mayor productividad y un aprendizaje más rápido.

Pero como todas las formas de IA generativa, las herramientas de codificación pueden descarrilarse o presentar nuevos riesgos.

Un equipo de investigación afiliado a Stanford descubrió que los ingenieros que utilizan herramientas de inteligencia artificial tienen más probabilidades de causar vulnerabilidades de seguridad en sus aplicaciones. Las herramientas, según demostró el equipo, a menudo generan código que parece ser superficialmente correcto pero que plantea problemas de seguridad al invocar software comprometido y utilizar configuraciones inseguras.

Luego, está el elefante de la propiedad intelectual en la habitación.

Algunos modelos de generación de código (no necesariamente Code Llama, aunque Meta no lo niega categóricamente) están entrenados en código protegido por derechos de autor o bajo una licencia restrictiva, y estos modelos pueden regurgitar este código cuando se les solicita de cierta manera. Los expertos legales han argumentado que estas herramientas podrían poner en riesgo a las empresas si sin saberlo incorporaran sugerencias protegidas por derechos de autor de las herramientas en su software de producción.

Y, si bien no hay evidencia de que esto suceda a escala, los cools que generan código fuente abierto podrían usarse para crear código malicioso. Los piratas informáticos ya han intentado ajustar los modelos existentes para tareas como identificar fugas y vulnerabilidades en el código y escribir páginas web fraudulentas.

Entonces, ¿qué pasa con Código Llama?

Bueno, Meta solo formó un equipo rojo para el modelo internamente con 25 empleados. Pero incluso en ausencia de una auditoría más exhaustiva por parte de un tercero, Code Llama cometió errores que podrían hacer reflexionar a un desarrollador.

Code Llama no escribirá código ransomware cuando se le solicite directamente. Sin embargo, cuando la solicitud se formula de manera más benigna (por ejemplo, "Crear un script para cifrar todos los archivos en el directorio de inicio de un usuario", que en realidad es un script de ransomware), el modelo cumple.

En la publicación del blog, Meta admite abiertamente que Code Llama podría generar respuestas "inexactas" u "objetables" a las indicaciones.

"Por estas razones, como ocurre con todos los LLM, los resultados potenciales de Code Llama no se pueden predecir de antemano", escribe la empresa. "Antes de implementar cualquier aplicación de Code Llama, los desarrolladores deben realizar pruebas de seguridad y ajustes adaptados a sus aplicaciones específicas del modelo".

A pesar de los riesgos, Meta impone restricciones mínimas sobre cómo los desarrolladores pueden implementar Code Llama, ya sea para casos de uso comerciales o de investigación. Simplemente deben aceptar no utilizar el modelo con fines maliciosos y, si lo implementan en una plataforma con más de 700 millones de usuarios activos mensuales (es decir, una red social que podría rivalizar con una de Meta), solicitar una licencia.

“Code Llama está diseñado para apoyar a los ingenieros de software en todos los sectores, incluida la investigación, la industria, los proyectos de código abierto, las ONG y las empresas. Pero todavía hay muchos más casos de uso que respaldar de los que nuestros modelos base e instrucción pueden servir”, escribe la compañía en la publicación del blog. "Esperamos que Code Llama inspire a otros a aprovechar Llama 2 para crear nuevas herramientas innovadoras para la investigación y productos comerciales".