01 O que é o Genie? O que ele pode fazer?
Semelhante ao Devin, o Genie também pode realizar autonomamente várias tarefas de codificação sob a orientação de engenheiros humanos, incluindo correção de bugs, construção de funcionalidades, refatoração de código e validação de código por meio de testes abrangentes.
Além de operar autonomamente, o Genie também pode colaborar com usuários.
Atualmente, o Genie ainda está em fase de teste beta fechado, e você pode se inscrever para testá-lo após registrar suas informações no site oficial.
A Cosine afirma que o Genie pode simular o processo cognitivo de engenheiros humanos.
Pullen explica em um post no blog: "Minha ideia era simples: deixe-o observar como os engenheiros humanos realizam o trabalho e imite esse processo."
O código gerado pelo Genie é armazenado no repositório GitHub do usuário, o que significa que a Cosine não mantém cópias e não há riscos de segurança associados.
Além disso, a plataforma de software da Cosine já está integrada com o Slack e notificações do sistema, permitindo que ele use notificações do sistema para alertar usuários, fazer perguntas ou sinalizar problemas, como um colega humano.
"O Genie também pode fazer perguntas de esclarecimento aos usuários e responder a comentários/opiniões sobre os Pull Requests que gera".
Pullen afirma: "Estamos tentando fazer com que o Genie se comporte como um colega, então faz sentido que o modelo use os mesmos canais que um colega usaria."
Colaboração com a OpenAI, usando o mais recente GPT-4o
Diferentemente de muitos modelos que dependem de modelos base com algumas ferramentas adicionais, o Genie foi desenvolvido por meio de um processo proprietário que inclui treinamento e ajuste fino de modelos da OpenAI.
Quando o Genie começou a ser desenvolvido, só podia ser ajustado com base em modelos com janelas de contexto relativamente pequenas, variando de 16-32k tokens.
A equipe descobriu em suas explorações iniciais que, mesmo com conjuntos de dados enormes de mais de 100 milhões de tokens, além dos benefícios da arquitetura projetada e vários métodos de compressão/fragmentação, ainda eram limitados pela quantidade de informações que o modelo podia expressar em um determinado momento. A única solução era usar modelos com janelas de contexto maiores.
Felizmente, logo depois eles obtiveram acesso aos modelos de contexto longo da OpenAI, o que se tornou um ponto de virada para as capacidades do Genie.
Pullen revelou à VentureBeat: "O Genie (atualmente) é uma variante não-geral do GPT-4o, que a OpenAI nos permitiu acessar e usar para treinamento como parte de um programa experimental."
"O modelo teve um bom desempenho, e como resultado, compartilhamos nossas descobertas com a equipe de ajuste fino e liderança de engenharia da OpenAI. Isso foi um verdadeiro ponto de virada para nós, pois os convenceu a investir recursos e atenção em nossa nova tecnologia."
Embora a Cosine não tenha especificado o modelo exato, a OpenAI recentemente anunciou a disponibilidade limitada do modelo de contexto longo GPT-4o, com comprimento de saída de até 64k tokens, um aumento de 16 vezes em comparação com os 4k iniciais.
Dados de treinamento são a chave
Pullen escreveu no relatório técnico que, nas execuções de treinamento recentes, o Genie foi treinado com dezenas de bilhões de tokens de dados, cuja combinação foi escolhida para tornar o modelo o mais competente possível nas linguagens que mais interessam aos usuários atualmente.
O relatório técnico do Genie lista 15 linguagens incluídas nos dados de treinamento, cobrindo linguagens populares como Java, JS, C, C++, C#, Rust, Python, bem como Scala, Kotlin, Swift, PHP e outras comumente usadas.
Entre elas, JavaScript, Python, TypeScript e TSX são as linguagens com maior proporção no conjunto de dados, com as demais representando 3% cada.
O blog da Cosine afirma que a equipe passou quase um ano compilando o conjunto de dados, incluindo uma grande quantidade de atividades de desenvolvimento de software de engenheiros reais.
Obter e utilizar efetivamente esses dados foi extremamente difícil, pois essencialmente esses dados não existiam.
Seu pipeline de dados começa rastreando as trajetórias de desenvolvimento de engenheiros de software, coletando dados de pull requests, commits e issues de repositórios OSS (licença MIT).
Em seguida, esses dados são executados no pipeline para exportar o processo de raciocínio de forma forense, reconstruindo como os humanos chegaram às conclusões finais.
Este conjunto de dados proprietário foi a base para o treinamento da primeira versão do modelo, com o restante do trabalho sendo concluído por auto-jogo e auto-aperfeiçoamento.
O ciclo de autonomia do Genie consiste em quatro processos principais: planejamento, recuperação, escrita de código e execução de código. Estes não são novos em si, mas foram aprimorados em maior grau porque o Genie foi treinado para executar tarefas como um humano.
"O impacto da anotação de dados não pode ser subestimado. Obter dados de alta qualidade de engenheiros de software competentes é muito difícil, mas o resultado vale a pena, pois nos dá uma visão profunda de como os desenvolvedores pensam para resolver problemas de maneiras que não são facilmente observáveis."
Este conjunto de dados não apenas reflete um fluxo de informações perfeito e descoberta progressiva de conhecimento, mas também captura o processo de tomada de decisão gradual dos engenheiros humanos.
Pullen afirma: "Ao realmente treinar nossos modelos usando este conjunto de dados, em vez de simplesmente solicitar modelos base (que é o que outros estão fazendo), descobrimos que não estávamos mais apenas gerando código aleatoriamente, mas abordando problemas como um humano."
Resultados da avaliação de referência
Durante o processo de desenvolvimento do modelo, a equipe usou principalmente dois benchmarks para avaliação - SWE-Bench e HumanEval.
O primeiro cobre problemas mais abrangentes, incluindo decomposição de problemas, localização de código relevante, categorização de código e implementação de soluções viáveis; o último se concentra mais na escrita de código, sem conteúdo de recuperação e com menos ênfase na compreensão do problema.
No entanto, o blog oficial divulgou apenas as pontuações do SWE-Bench, com o Genie alcançando 30,08% e 50,67% no SWE-Lite.
O desempenho do Genie no SWE-Bench foi particularmente impressionante: é a maior pontuação até agora, com um aumento de mais de 10% em comparação com o segundo colocado de 19,27%.
Além disso, a equipe testou separadamente a capacidade de recuperação de informações do modelo, especialmente a capacidade de recuperar as partes corretas dos arquivos de código necessários.
Esta é uma das componentes centrais de um engenheiro de IA - se o modelo não consegue encontrar de forma confiável e hábil o código correto para editar, então a capacidade de editar código não pode ser totalmente utilizada.
Assumindo que o modelo sempre encontra o código correto, a capacidade de recuperação pode ser medida simplesmente observando quantas linhas de código o modelo procurou para concluir a tarefa e quantas linhas de código foram realmente encontradas.
No teste, o Genie recuperou com sucesso 91.475 linhas de código necessárias de 142.338 linhas, obtendo uma pontuação de 64,27%. Obviamente, ainda há muito espaço para melhoria aqui, e a capacidade de recuperação é um aspecto menos focado em comparação com a capacidade de decomposição de problemas.
02 Apoiado pela YC, liderado por um mestre de Oxford chinês
A Cosine foi fundada através do famoso acelerador de startups Y Combinator do Vale do Silício.
A empresa é um laboratório de raciocínio humano focado em pesquisar e mapear como os humanos executam tarefas, com o objetivo de ensinar modelos de IA a imitar, se destacar e expandir essas tarefas.
Em 2022, Alistair Pullen, Sam Stenner e Yang Li co-fundaram a Cosine, posicionando-a como um laboratório de raciocínio humano.
Eles esperam começar no campo da engenharia de software, estudando e mapeando como os humanos executam tarefas, a fim de ensinar a IA a imitar, se destacar e expandir essas tarefas, impulsionando o desenvolvimento da inteligência.
A Cosine já