6 pontos por GN⁺ 2024-09-06 | 2 comentários | Compartilhar no WhatsApp
  • Yi-Coder é um modelo de linguagem de grande porte (LLM) open source para código que oferece desempenho de ponta em programação com menos de 10 bilhões de parâmetros
  • Está disponível em dois tamanhos, 1.5B e 9B de parâmetros, com versões base e chat projetadas para inferência eficiente e treinamento flexível
  • Yi-Coder-9B foi construído com base no Yi-9B, adicionando 2.4T tokens de alta qualidade a partir de um corpus de código em nível de repositório do GitHub e de dados relacionados a código filtrados do CommonCrawl

Principais características do Yi-Coder

  • Pré-treinado com 2,4 trilhões de tokens de alta qualidade em 52 linguagens de programação principais
  • Modelagem de contexto longo: usa uma janela de contexto de até 128K tokens, permitindo compreensão e geração de código em nível de projeto
  • Pequeno, mas poderoso: o Yi-Coder-9B supera outros modelos com menos de 10 bilhões de parâmetros, como CodeQwen1.5 7B e CodeGeex4 9B, e chega até mesmo a alcançar desempenho equivalente ao DeepSeek-Coder 33B

Yi-Coder oferece desempenho impressionante em programação

LiveCodeBench

  • LiveCodeBench é uma plataforma publicamente disponível projetada para fornecer uma avaliação abrangente e justa de programação competitiva para LLMs
  • Yi-Coder-9B-Chat alcançou uma impressionante taxa de aprovação de 23,4% e é o único modelo com menos de 10B de parâmetros a ultrapassar 20%
  • Esse desempenho supera DeepSeek-Coder-33B-Instruct (22,3%), CodeGeex4-All-9B (17,8%), CodeLlama-34B-Instruct (13,3%) e CodeQwen1.5-7B-Chat (12%)

HumanEval, MBPP e CRUXEval-O

  • Yi-Coder-9B-Chat alcançou taxas de aprovação de 85,4% no HumanEval e 73,8% no MBPP, superando outros LLMs de código
  • Além disso, o Yi-Coder 9B se tornou o primeiro LLM open source para código a alcançar mais de 50% de acurácia no CRUXEval-O

Yi-Coder se destaca em edição e autocompletar de código

CodeEditorBench

  • Yi-Coder-9B alcança uma impressionante taxa média de vitória entre os LLMs open source para código, superando de forma consistente o DeepSeek-Coder-33B-Instruct e o CodeQwen1.5-7B-Chat tanto nos subconjuntos Primary quanto Plus

CrossCodeEval

  • Yi-Coder supera outros modelos de escala semelhante nos conjuntos de dados de Python e Java, tanto em cenários com recuperação quanto sem recuperação
  • Isso valida que treinar com comprimentos de contexto maiores em corpus de código no nível de repositório de software permite ao Yi-Coder capturar dependências de longo prazo de forma eficaz, contribuindo para seu excelente desempenho

Yi-Coder consegue modelar contexto longo de 128K

Agulha no código

  • Para testar a capacidade de modelagem de contexto longo do Yi-Coder, foi criada uma tarefa sintética chamada "agulha no código", que usa sequências de comprimento 128K
  • Nessa tarefa, uma função personalizada simples é inserida aleatoriamente em uma base de código longa, e o modelo é testado para verificar se consegue reproduzir a função no final da base de código
  • Isso avalia se o LLM consegue extrair informações-chave em um contexto longo, refletindo sua capacidade fundamental de compreender sequências longas
  • Yi-Coder-9B concluiu essa tarefa perfeitamente dentro da faixa de comprimento de 128K

Yi-Coder também brilha em raciocínio matemático

Raciocínio matemático com apoio de programas

  • Yi-Coder foi avaliado em 7 benchmarks de raciocínio matemático em uma configuração com apoio de programas (PAL: Program-aided Language Models)
  • Yi-Coder-9B alcançou uma impressionante acurácia de 70,3%, superando os 65,8% do DeepSeek-Coder-33B

Conclusão

  • Estamos disponibilizando o Yi-Coder 1.5B/9B para a comunidade como open source, tanto na versão base quanto na versão chat
  • O Yi-Coder mostra desempenho notável em várias tarefas, incluindo programação básica e competitiva, edição de código e conclusão em nível de repositório, compreensão de contexto longo e raciocínio matemático
  • Acreditamos que o Yi-Coder pode ampliar os limites dos pequenos LLMs de código, acelerando o desenvolvimento de software e abrindo casos de uso capazes de transformá-lo

Resumo do GN⁺

  • A principal vantagem do Yi-Coder é oferecer desempenho de programação de ponta mesmo com um número reduzido de parâmetros. Isso pode viabilizar excelente suporte à programação sem exigir os enormes recursos computacionais demandados por grandes LLMs como o ChatGPT
  • A capacidade de modelagem de contexto longo do Yi-Coder permite compreender código ao longo de projetos inteiros, o que parece especialmente útil em tarefas de programação complexas
  • Apresenta ótimo desempenho em programação competitiva, edição de código, conclusão em nível de repositório, compreensão de contexto longo e raciocínio matemático
  • Entre as principais ferramentas de suporte à programação baseadas em LLM estão GitHub Copilot e Amazon CodeWhisperer. Em comparação com elas, o Yi-Coder tem a vantagem de ser um modelo mais leve, embora ainda fique atrás em recursos adicionais como plugins
  • Outros projetos com funcionalidades semelhantes incluem DeepSeek-Coder, CodeGeex4 e CodeLLama
  • A capacidade de raciocínio matemático do Yi-Coder é um ponto interessante. A abordagem de resolver problemas por meio de programação se diferencia dos modelos puramente linguísticos e mostra o potencial de uso dos LLMs não só em matemática, mas também em várias outras áreas

2 comentários

 
GN⁺ 2024-09-06
Comentários do Hacker News
  • Claude 3.5 Sonnet ainda apresenta o melhor desempenho entre os LLMs voltados para código

    • Mas o DeepSeek Coder V2 236B é mais barato e eficiente
    • Usando DeepSeek Coder V2 no Aider e no plugin Claude Dev
  • O Yi-Coder recebeu uma pontuação menor que o GPT-3.5 no benchmark de edição de código do Aider

    • Sonnet: 77%
    • GPT-3.5: 58%
    • Yi-Coder-9b-Chat: 54%
    • Yi-Coder-9b-Chat-q4_0: 45%
  • Ao testar LLMs em tarefas de SRE/DevOps/C#/Golang/C++, foram recebidas respostas ilógicas

    • Ao pedir a escrita de um script simples em Python, veio uma resposta sem sentido
    • Foram fornecidas respostas irrelevantes em várias linguagens de programação
  • É interessante a diferença na forma como engenheiros de software e artistas reagem aos modelos de IA

  • Está esperando modelos especializados em linguagens específicas

    • Os modelos atuais lidam com várias linguagens, mas são necessários modelos realmente muito bons em linguagens específicas
  • Há curiosidade sobre como configurar pequenos LLMs localmente

    • Pergunta se o recurso de autocompletar com Tab funciona no VSCode
    • Pede dicas sobre como configurar modelos em nuvem além do GitHub Copilot
  • Pergunta sobre hardware recomendado para rodar modelos em um PC desktop local

  • Gostaria de ver o desempenho do SWE-agent com o Yi-Coder-9B-Chat

  • Pedido de explicação sobre o benchmark do Aider

    • Há curiosidade sobre por que os mesmos 113 testes são executados toda vez
    • Há dúvidas sobre como isso avalia a capacidade geral do modelo de gerar e editar código
  • Pergunta por que o tamanho do modelo é expresso pelo número de pesos

    • Quer saber os requisitos de RAM de GPU
    • Questiona o quanto o número de pesos realmente importa para o usuário comum