Hoje estamos lançando o Code Llama, um modelo de linguagem (LLM) que usa prompts de texto para gerar e discutir código. O Code Llama é o que há de mais moderno entre os LLMs disponíveis publicamente em tarefas de programação. Ele tem o potencial de tornar os fluxos de trabalho mais rápidos e eficientes para os desenvolvedores e reduzir a barreira de entrada para as pessoas que estão aprendendo a programar. O Code Llama tem o potencial de ser usado como uma ferramenta educacional e de produtividade para ajudar os programadores a escrever softwares mais robustos e bem documentados.
Acreditamos que uma abordagem aberta à IA é o melhor caminho para o desenvolvimento de novas ferramentas de inteligência artificial que sejam inovadoras, seguras e responsáveis, por isso estamos lançando o Code Llama para pesquisa e uso comercial sob a mesma licença comunitária do Llama 2.
O Code Llama é uma versão especializada em código do Llama 2 que foi criada por meio de um treinamento adicional do Llama 2 em seus conjuntos de dados específicos de código, coletando, por mais tempo, mais dados desse mesmo conjunto. Essencialmente, o Code Llama apresenta recursos de programação aprimorados. Ele pode gerar código e linguagem natural sobre código, tanto a partir de código quanto de linguagem natural (por exemplo, “Escreva uma função que produza a sequência de Fibonacci”). Também pode ser usado para conclusão e depuração de códigos. Ele é compatível com muitas das linguagens de programação mais populares usadas atualmente, incluindo Python, C++, Java, PHP, Typescript (Javascript), C#, Bash e muito mais.
Estamos lançando três tamanhos de Code Llama, com parâmetros 7B, 13B e 34B, respectivamente. Cada um desses modelos é treinado com 500 bilhões de tokens de código e dados relacionados a código. Os modelos de base e de instrução 7B e 13B também foram treinados com o recurso fill-in-the-middle (FIM), o que lhes permite inserir código num código existente e pode oferecer suporte a tarefas, como o autocompletar.
Os três endereçam diferentes requisitos de serviço e latência. O modelo 7B, por exemplo, pode ser servido em uma única GPU (Unidade de Processamento Gráfico). O modelo 34B retorna os melhores resultados e permite uma melhor assistência de programação, mas os modelos menores, 7B e 13B, são mais rápidos e mais adequados para tarefas que exigem baixa latência, como recurso de autocompletar em tempo real.
Também ajustamos duas variações adicionais do Code Llama: Code Llama – Python e Code Llama – Instruct.
O Code Llama – Python é uma variação especializada em linguagem do Code Llama, aperfeiçoada com 100 bilhões de tokens de código Python. Como o Python é a linguagem mais avaliada para geração de código, e porque o Python e o PyTorch desempenham um papel importante na comunidade de IA, acreditamos que um modelo especializado oferece utilidades adicionais.
O Code Llama – Instruct é uma variação do Code Llama com instruções ajustadas e alinhadas. O ajuste de instruções dá continuidade ao processo de treinamento, mas com um objetivo diferente. O modelo é alimentado com uma entrada de instrução de linguagem natural e o resultado esperado. Isso faz com que ele entenda melhor o que as pessoas esperam de seus prompts. Recomendamos usar as variantes do Code Llama – Instruct sempre que usar o Code Llama para geração de código, pois o Code Llama – Instruct foi ajustado para gerar respostas úteis e seguras em linguagem natural.
Os programadores já usam LLMs para obter auxílio em uma variedade de tarefas. O objetivo é tornar os fluxos de trabalho dos desenvolvedores mais eficientes para que eles possam se concentrar nos aspectos mais humanos de seu trabalho, em vez de tarefas repetitivas. Acreditamos que os modelos de IA – e os LLMs para programação em particular – se beneficiam mais de uma abordagem aberta, tanto em termos de inovação quanto de segurança. Modelos específicos de código disponíveis publicamente podem facilitar o desenvolvimento de novas tecnologias que melhoram a vida das pessoas. Ao disponibilizar modelos de código como o Code Llama, toda a comunidade pode avaliar seus recursos, identificar problemas e corrigir vulnerabilidades.
O Code Llama foi projetado para dar suporte a engenheiros de software em todos os setores, incluindo pesquisa, indústria, projetos de código aberto, ONGs e negócios. Entretanto, ainda há muitos outros casos de uso a serem apoiados. Esperamos que o Code Llama inspire outras pessoas a aproveitar o Llama 2 para criar novas ferramentas inovadoras para pesquisa e produtos comerciais.
Saiba mais sobre o Code Llama em nosso blog sobre IA ou faça o download do modelo do Code Llama.