StarCoder 2 é uma IA geradora de código que roda na maioria das GPUs

Os desenvolvedores estão adotando geradores de código alimentados por IA – serviços como GitHub Copilot e Amazon CodeWhisperer, juntamente com modelos de acesso aberto, como CodeLlama da Meta – em um ritmo surpreendente. Mas as ferramentas estão longe de ser ideais. Muitos não são gratuitos. Outros o são, mas apenas sob licenças que os impedem de serem utilizados em contextos comerciais comuns.
Em resposta à crescente necessidade de soluções alternativas, a Hugging Face, uma startup de IA, colaborou com a ServiceNow, uma plataforma líder para automação de fluxo de trabalho, para desenvolver o StarCoder, um gerador de código-fonte aberto que utiliza um modelo de licenciamento mais flexível em comparação com outras ferramentas semelhantes. no mercado. Lançado inicialmente no início deste ano, foram feitos esforços contínuos de desenvolvimento para o seu sucessor, StarCoder 2, que deverá oferecer funcionalidade e versatilidade ainda maiores.
StarCoder 2 não é um modelo de codificação individual, mas sim um conjunto de modelos que abrange vários tipos. Foi lançado hoje e é composto por três versões distintas, das quais o par inicial é capaz de funcionar de forma eficiente na maioria das GPUs de consumo contemporâneas.
Os modelos mencionados acima foram desenvolvidos usando vários graus de contagem de parâmetros, sendo cada um treinado por diferentes entidades. Especificamente, um modelo de 3 bilhões de parâmetros (3B) foi treinado pela ServiceNow, enquanto outros modelos de 7 bilhões de parâmetros (7B) e 15 bilhões de parâmetros (15B) foram treinados respectivamente pela Hugging Face e NVIDIA, que também servem como apoiadores recentes do projeto StarCoder em andamento.
Os componentes que são determinados por meio do processo de dados de treinamento são chamados de “parâmetros”, que abrangem a proficiência do modelo referente a uma tarefa específica, como a produção de código.
StarCoder 2 é um programa de software semelhante a muitos outros que tem a capacidade de fornecer sugestões para completar linhas de código incompletas ou recuperar segmentos de código específicos quando solicitado por meio de entrada de linguagem natural. A equipe de desenvolvimento por trás desta tecnologia afirma que ela melhorou significativamente suas capacidades em comparação com versões anteriores, treinando-a com quatro vezes mais dados. Este avanço foi possível através de esforços colaborativos entre Hugging Face, ServiceNow e Nvidia, que concordam que a eficiência geral e a relação custo-benefício do StarCoder 2 foram notavelmente melhoradas.
StarCoder 2 é capaz de ser ajustado com eficiência em um período de tempo relativamente curto, utilizando uma poderosa unidade de processamento gráfico, como a Nvidia A100, quando empregado com conjuntos de dados primários ou alternativos para aplicativos próprios ou de terceiros, incluindo, mas não se limitando para chatbots e sistemas de suporte de codificação individualizados. Além disso, devido ao seu extenso treinamento em um conjunto de dados extenso e variado que abrange mais de 600 linguagens de programação distintas, o StarCoder 2 tem o potencial de produzir prognósticos altamente precisos e contextualmente conscientes, considerando todos os aspectos.
O design proposital do StarCoder 2 é adaptado especificamente para os desenvolvedores que exigem a criação acelerada de aplicativos, conforme confirmado por Harm de Vries, o estimado líder da unidade de desenvolvimento StarCoder 2 da ServiceNow, durante uma correspondência recente com nossa publicação. Com o StarCoder2 à sua disposição, os desenvolvedores podem aumentar a eficiência de seus processos de programação, mantendo uma velocidade inabalável e um calibre excepcional.
Vale a pena considerar que alguns desenvolvedores podem ter opiniões diferentes das expressas por De Vries em relação à eficiência e ao calibre da geração de código em termos de rapidez e saída. Embora os geradores de código tenham o potencial de agilizar tarefas específicas de programação, eles também apresentam desvantagens e limitações inerentes.
Um estudo recente de Stanford descobriu que os engenheiros que usam sistemas de geração de código têm maior probabilidade de introduzir vulnerabilidades de segurança nos aplicativos que desenvolvem. Em outro lugar, uma pesquisa da Sonatype, a empresa de segurança cibernética, mostra que a maioria dos desenvolvedores está preocupada com a falta de conhecimento sobre como o código dos geradores de código é produzido e com a “expansão de código” de geradores que produzem muito código para gerenciar.
Os termos de licenciamento do StarCoder 2 podem representar um obstáculo potencial para certos indivíduos.
StarCoder 2 é licenciado sob o RAIL-M da Hugging Face, que visa promover o uso responsável, impondo restrições de “toque leve” tanto aos licenciados do modelo quanto aos usuários downstream. Embora menos restritiva do que muitas outras licenças, o RAIL-M não é verdadeiramente “aberto” no sentido de que não permite que os desenvolvedores usem o StarCoder 2 para todas as aplicações concebíveis (aplicativos de aconselhamento médico estão estritamente fora dos limites, por exemplo). Alguns comentaristas dizem que os requisitos do RAIL-M podem ser muito vagos para serem cumpridos em qualquer caso – e que o RAIL-M pode entrar em conflito com regulamentos relacionados à IA, como a Lei de IA da UE.
Tendo em conta os vários factores discutidos até agora, vamos agora considerar se o StarCoder 2 realmente supera os seus concorrentes em termos de funcionalidade e desempenho – tanto ofertas freeware como premium.
Parece que quando comparado com certas iterações do CodeLlama, como o CodeLlama 33B, o StarCoder 2 15B demonstra eficiência superior em termos de desempenho. Notavelmente, Hugging Face relatou que esta versão do StarCoder executa tarefas de conclusão de código com o dobro da taxa do CodeLlama 33B, mantendo uma precisão comparável, embora as tarefas específicas em questão ainda não tenham sido divulgadas pelos desenvolvedores do Hugging Face.
StarCoder 2, como uma coleção de modelos de código aberto, também tem a vantagem de ser capaz de implantar localmente e “aprender” o código-fonte ou base de código de um desenvolvedor – uma perspectiva atraente para desenvolvedores e empresas cautelosas em expor o código a uma IA hospedada na nuvem. Em uma pesquisa de 2023 do Portal26 e CensusWide, 85% das empresas disseram que estavam cautelosas em adotar GenAI como geradores de código devido aos riscos de privacidade e segurança – como funcionários compartilhando informações confidenciais ou treinamento de fornecedores em dados proprietários.
StarCoder 2 foi endossado por empresas notáveis como Hugging Face, ServiceNow e Nvidia devido à sua aparente superioridade ética sobre outros concorrentes, além do risco legal reduzido.
Todas as instâncias de Inteligência Artificial Geral (GenAI) se reproduzem produzindo uma réplica das informações que lhes foram ensinadas durante a fase de treinamento. Esta reiteração pode levar a consequências não intencionais, especialmente quando se considera a utilização de geradores de código que assimilaram propriedade intelectual protegida. Apesar de incorporarem mecanismos de triagem e medidas de segurança, estes geradores ainda correm o risco de recomendar código proprietário sem a devida identificação, violando potencialmente as leis de direitos autorais.
Vários fornecedores, como o GitHub, a Microsoft (a organização-mãe do GitHub) e a Amazon, comprometeram-se a fornecer apoio jurídico nos casos em que um utilizador dos seus serviços de geração de código enfrente alegações de violação de propriedade intelectual. No entanto, a extensão desta protecção difere entre estas empresas e é normalmente restrita a clientes empresariais.
Em contraste com ferramentas de geração de código, como o GitHub Copilot, que dependem de código proprietário, o StarCoder 2 utilizou exclusivamente software licenciado pela Software Heritage, uma organização sem fins lucrativos dedicada à preservação e arquivamento de repositórios de código. Antes de iniciar seu processo de treinamento, o consórcio de desenvolvimento do StarCoder 2, conhecido como BigCode, proporcionou aos detentores de direitos a oportunidade de excluir seus respectivos códigos da inclusão no conjunto de dados de treinamento, caso assim o desejassem.
O conjunto de dados de treinamento do StarCoder 2 pode ser acessado e utilizado pelos desenvolvedores a seu critério. Isto inclui a capacidade de replicar e examinar os dados, proporcionando transparência e promovendo a confiança no sistema.
Leandro von Werra, um talentoso engenheiro de aprendizado de máquina da Hugging Face e co-líder do BigCode, destacou o fato de que, apesar do recente aumento nos geradores de código aberto, muitos carecem de informações críticas sobre os conjuntos de dados utilizados para seu desenvolvimento, bem como as técnicas específicas. empregados durante o processo de treinamento.
Von Werra reconheceu durante uma entrevista que existe um desafio no que diz respeito à reprodutibilidade dos procedimentos de treinamento do ponto de vista científico. Além disso, ele destacou que, como contribuidor de dados que compartilha seu código em plataformas como o GitHub, pode ser difícil determinar se os dados de alguém foram utilizados ou não. Para responder a estas preocupações, o StarCoder 2 garante transparência ao longo de todo o processo, abrangendo a aquisição de dados de pré-treinamento até à fase de treino propriamente dita.
Embora StarCoder 2 exiba certas limitações, semelhantes a outras ferramentas de geração de código, ele tem suas imperfeições. Como destacou de Vries, o gerador é propenso a produzir códigos tendenciosos, incorporando elementos que perpetuam estereótipos de gênero e raça. Além disso, como o modelo foi treinado principalmente em comentários em inglês, código Python e Java, seu desempenho é abaixo do ideal ao lidar com idiomas que não sejam o inglês ou linguagens de programação menos comumente usadas, como Fortran e Haskell.
Apesar disso, Von Werra afirma que representa um progresso na direção apropriada.
Na sua essência, promover a confiança nos sistemas de inteligência artificial exige uma abordagem transparente e auditável para todo o processo de desenvolvimento do modelo, abrangendo tanto os dados de formação utilizados como os métodos específicos utilizados durante a formação. A demonstração do StarCoder 2 exemplifica o potencial de modelos altamente acessíveis para alcançar resultados excepcionais através desta estratégia abrangente.
Pode-se ponderar as motivações que levam empresas como Hugging Face, ServiceNow e NVIDIA a investir em iniciativas como StarCoder 2. Afinal, são entidades corporativas com considerações financeiras a serem levadas em conta – o custo do treinamento de modelos pode ser substancial.
Com base no meu entendimento, a implementação dessa abordagem provou ser eficaz no cultivo de relacionamentos positivos e, ao mesmo tempo, oferece recursos premium por meio de ofertas proprietárias construídas sobre a base de software de código aberto disponível publicamente.
A ServiceNow aproveitou o StarCoder para produzir o Now LLM, um produto projetado especificamente para geração de código que foi adaptado para se alinhar aos padrões de fluxo de trabalho, casos de uso e processos da ServiceNow. Tanto a Hugging Face quanto a NVIDIA estão oferecendo suas próprias implementações dos modelos StarCoder 2 em suas plataformas. Especificamente, Hugging Face fornece versões hospedadas desses modelos, enquanto a NVIDIA os torna acessíveis por meio de uma API e interface de usuário.
Os desenvolvedores individuais que estão particularmente atraídos pela perspectiva de utilizar o software sem incorrer em quaisquer despesas podem obter os componentes necessários para atingir esse objetivo baixando-os diretamente do repositório oficial no GitHub dedicado ao projeto StarCoder 2.
*️⃣ Link da fonte: