A Microsoft está na vanguarda da pesquisa em Inteligência Artificial (IA) e está apresentando duas notáveis contribuições para o campo: o WaveCoder e o CodeOcean. Estas duas ferramentas estão mostrando como a IA generativa pode ser aplicada de forma inovadora para aprimorar a qualidade dos dados de treinamento.
A Microsoft Inovação em IA de Alta Qualidade
Neste artigo, exploraremos as realizações dos pesquisadores da Microsoft, que introduziram o WaveCoder, um modelo de linguagem de programação projetado para superar seus concorrentes em eficiência, mesmo com menos exemplos de treinamento. Em paralelo, eles também desenvolveram o CodeOcean, um conjunto de dados meticulosamente curado, composto por 20.000 exemplos de códigos diversos, que serve para melhorar o desempenho de modelos básicos em aplicativos de programação.
Um dos principais desafios ao criar modelos de linguagem mais compactos e eficazes para programação é encontrar o equilíbrio entre o tamanho do conjunto de dados de treinamento e o desempenho do modelo. Os pesquisadores enfrentaram essa questão com o CodeOcean, que fornece uma diversidade máxima de exemplos, mesmo com uma quantidade limitada de dados. Esse conjunto de dados é baseado no CodeSearchNet, uma ampla coleção de código com 2 milhões de pares de comentários e código, que foi refinada pela equipe para criar um subconjunto menor, mas igualmente diversificado, por meio de técnicas de embeddings e um modelo baseado em BERT.
Para criar dados de treinamento de alta qualidade que incluam instruções e códigos, os pesquisadores utilizaram uma abordagem geradora-discriminadora, combinando tarefas de programação com descrições em linguagem natural. Esse processo criativo resultou em 20.000 exemplos que abrangem quatro categorias de tarefas de código: geração de código, resumo de código, tradução para outras linguagens e correção de código.
O WaveCoder, treinado com este conjunto de dados refinado e diversificado, provou que é possível alcançar melhorias significativas na eficiência do ajuste de instruções, mesmo com menos dados de treinamento em comparação com seus concorrentes. Este modelo também demonstrou desempenho superior em várias tarefas de programação em diferentes linguagens.
Além disso, o CodeOcean foi usado para aprimorar três modelos de linguagem de programação existentes, resultando em melhorias notáveis em benchmarks importantes de programação.
Embora o CodeOcean e o WaveCoder ainda não estejam disponíveis, aguardamos ansiosamente o lançamento dessas inovações, que prometem transformar a paisagem da IA no desenvolvimento de software. Este artigo irá detalhar essas avançadas contribuições que moldarão o futuro da IA e da programação.
Com WaveCoder e CodeOcean, a Microsoft mostra como a IA generativa pode ser usada para obter melhores dados de treinamento.
Pesquisadores da Microsoft revelaram o WaveCoder, um novo modelo de linguagem de programação que visa superar modelos de tamanho semelhante com menos exemplos de treinamento. A equipe também desenvolveu o CodeOcean, um conjunto de dados com curadoria de 20.000 exemplos de códigos diferentes, para melhorar o ajuste fino de modelos básicos para aplicativos de programação.
Segundo os pesquisadores, um dos maiores desafios na criação de modelos menores e mais eficientes para linguagens de programação é equilibrar o tamanho do conjunto de dados de treinamento com o desempenho do modelo. O conjunto de dados CodeOcean visa superar este desafio, fornecendo diversidade máxima em um número limitado de exemplos. CodeOcean é baseado em CodeSearchNet, um enorme conjunto de dados de código com 2 milhões de pares de comentários e código, que a equipe reduziu a um subconjunto menor, mas ainda diversificado, usando embeddings e um modelo baseado em BERT.
CodeOcean usa uma estrutura geradora-discriminadora para dados de treinamento de alta qualidade
Para criar exemplos de treinamento contendo código e instruções, os pesquisadores usaram uma estrutura geradora de discriminação para criar instruções baseadas nos exemplos de código bruto. Primeiro, o GPT-4 foi usado para definir tarefas em contextos de cenários específicos.
Essas tarefas foram então combinadas com uma instrução e passadas para o GPT-3.5 para gerar instruções semelhantes para exemplos adicionais. Dessa forma, a equipe gera automaticamente uma grande quantidade de dados de treinamento contendo instruções e códigos, como tarefas de código com descrições e soluções em linguagem natural.
Os dados são então enviados de volta ao GPT-4, onde são avaliados de acordo com critérios definidos. Bons exemplos são transferidos para um banco de dados de amostra, que serve como modelo para gerar dados de treinamento adicionais. Através deste processo iterativo, a equipe gerou 20.000 exemplos de alta qualidade cobrindo quatro categorias diferentes de tarefas de código: geração de código, resumo de código, tradução para outra linguagem de programação e reparo de código.
WaveCoder mostra a importância de bons dados
A equipe treinou o WaveCoder neste conjunto de dados e o comparou ao WizardCoder, um modelo treinado com cerca de quatro vezes a quantidade de dados. A equipe descobriu que a diferença no desempenho era pequena, sugerindo que dados de instruções refinados e diversificados podem melhorar significativamente a eficiência do ajuste de instruções. WaveCoder também superou outros modelos de código aberto em resumo de código e tarefas de reparo em quase todas as linguagens de programação.
Os pesquisadores também usaram CodeOcean para refinar três modelos de linguagem de programação: StarCoder-15B, CodeLLaMA (7B e 13B) e DeepseekCoder-6.7B. Em três importantes benchmarks de programação – HumanEval, MBPP e HumanEvalPack – todos os modelos apresentaram melhorias significativas de até 20%.
CodeOcean e WaveCoder ainda não estão disponíveis, mas segundo um dos pesquisadores envolvidos, serão publicados em breve.
Em um mundo movido pela inovação tecnológica, a Microsoft mais uma vez demonstra sua liderança no campo da Inteligência Artificial com a introdução do WaveCoder e do CodeOcean. Essas duas ferramentas não apenas abrem novas portas para a IA generativa, mas também prometem revolucionar a forma como os modelos de linguagem são treinados e aplicados na programação.
O WaveCoder, ao superar modelos semelhantes com menos dados de treinamento, aponta para um futuro em que a eficiência e o desempenho dos modelos podem ser otimizados, mesmo quando os recursos de dados são limitados. Sua capacidade de competir com modelos maiores destaca a importância de dados de treinamento refinados e diversificados, como os fornecidos pelo CodeOcean.
O CodeOcean, por sua vez, representa um avanço significativo na criação de conjuntos de dados de alta qualidade para tarefas de programação. A abordagem geradora-discriminadora utilizada para gerar dados de treinamento, que incluem código e instruções em linguagem natural, é uma inovação notável que promete melhorar a precisão e a eficácia dos modelos de IA em aplicativos de programação.
À medida que aguardamos ansiosamente o lançamento dessas inovações, fica claro que a Microsoft está comprometida em capacitar a comunidade de desenvolvedores e pesquisadores com ferramentas avançadas que impulsionam a IA e a programação. Esses avanços não apenas melhorarão a eficiência do desenvolvimento de software, mas também abrirão novos horizontes para a criatividade e a resolução de problemas no campo da tecnologia.
Leia mais em: A IA Ainda Não Terminou A Transformação.
Portanto, à medida que nos despedimos deste artigo, podemos antever um futuro emocionante, onde a IA generativa e o treinamento de modelos se tornarão mais acessíveis e eficazes, graças ao WaveCoder e ao CodeOcean. A Microsoft continua a pavimentar o caminho para uma IA mais inteligente e capaz, e estamos ansiosos para ver como essas inovações moldarão o cenário tecnológico nos próximos anos.
Especialista em Inteligência Artificial.
Mentor do G4 Educação, Professor de IA da ESPM e Diretor na Nalk
Entre para a melhor formação de IA na prática do Brasil, faça parte do VIVER DE IA.