breve
Hoje, temos o prazer de abrir o código-fonte da poderosa, diversificada e útil família de modelos Qwen2.5-Coder, e temos o compromisso de continuar avançando no desenvolvimento de Open CodeLLMs.
- formidávelO Qwen2.5-Coder-32B-Instruct se torna o modelo de código aberto atual para o SOTA, com recursos de código que se equiparam ao GPT-4o, demonstrando recursos de código fortes e abrangentes, bem como bons recursos matemáticos e de uso geral.
- coletorO Qwen2.5-Coder abrangeu os seis principais tamanhos de modelo para atender às necessidades de diferentes desenvolvedores: no mês passado, abrimos o código-fonte dos tamanhos 1,5B e 7B e, desta vez, abrimos o código-fonte dos tamanhos 0,5B, 3B, 14B e 32B.
- pragmáticoExploramos a utilidade do Qwen2.5-Coder nos cenários Code Assistant e Artifacts e usamos alguns exemplos para demonstrar o potencial do Qwen2.5-Coder em cenários do mundo real.
Potente: capacidade de código até o modelo de código aberto SOTA
- geração de códigoO Qwen2.5-Coder-32B-Instruct, o principal modelo desse código-fonte aberto, obteve o melhor desempenho entre os modelos de código-fonte aberto em vários benchmarks populares de geração de código (por exemplo, EvalPlus, LiveCodeBench e BigCodeBench) e alcançou um desempenho competitivo com o GPT-4o.
- Correções de códigoO Qwen2.5-Coder-32B-Instruct pode ajudar os usuários a corrigir erros em seu código e tornar a programação mais eficiente. O Aider é um benchmark popular para a correção de código, e o Qwen2.5-Coder-32B-Instruct atinge uma pontuação de 73,7, que é comparável ao GPT no Aider. O Qwen2.5-Coder-32B-Instruct obteve uma pontuação de 73,7 no Aider e teve um desempenho tão bom quanto o GPT-4o.
- raciocínio codificadoA inferência de código refere-se à capacidade de um modelo de aprender o processo de execução de código e prever com precisão as entradas e saídas do modelo. O Qwen2.5-Coder-7B-Instruct, lançado no mês passado, já demonstrou bom desempenho na capacidade de raciocínio de código, e o modelo 32B vai ainda mais longe.
- multilíngueO Qwen2.5-Coder-32B-Instruct tem um bom desempenho em mais de 40 linguagens de programação, alcançando uma pontuação de 65,9 no McEval, com desempenhos impressionantes em Haskell, Racket etc., graças à nossa limpeza e racionamento de dados exclusivos na fase de pré-treinamento.
Além disso, o recurso de fixação de código de linguagem de multiprogramação do Qwen2.5-Coder-32B-Instruct também é surpreendente, o que ajudará os usuários a entender e modificar suas linguagens de programação familiares e aliviará bastante o custo de aprendizado de linguagens desconhecidas.
Semelhante ao McEval, o MdEval é um benchmark de correção de código de linguagem de multiprogramação, e o Qwen2.5-Coder-32B-Instruct obteve uma pontuação de 75,2 no MdEval, que é a pontuação máxima entre todos os modelos de código aberto.
- Alinhamento de preferências humanasPara testar o desempenho do alinhamento do Qwen2.5-Coder-32B-Instruct nas preferências humanas, construímos o Code Arena (semelhante ao Arena Hard), uma referência de avaliação de preferência de código a partir de anotações internas. Usamos o GPT-4o como modelo de avaliação para alinhamento de preferências, com uma avaliação "A vs. B win", ou seja, a porcentagem em que a pontuação do modelo A excede a pontuação do modelo B no conjunto de instâncias de teste. Os resultados na figura a seguir mostram a vantagem do Qwen2.5-Coder-32B-Instruct no alinhamento de preferências.
Versatilidade: uma variedade de tamanhos de modelos
A família de modelos de código-fonte aberto Qwen2.5-Coder consiste em seis tamanhos: 0,5B, 1,5B, 3B, 7B, 14B e 32B, que não só atendem às necessidades dos desenvolvedores em diferentes cenários de recursos, mas também fornecem uma boa base experimental para a comunidade de pesquisa. A tabela a seguir mostra as informações detalhadas do modelo:
Modelos | Parâmetros | Parâmetros que não são de membros | Camadas | Cabeças (KV) | Incorporação de laços | Comprimento do contexto | Licença |
---|---|---|---|---|---|---|---|
Qwen2.5-Coder-0.5B | 0.49B | 0.36B | 24 | 14 / 2 | Sim | 32K | Apache 2.0 |
Qwen2.5-Coder-1.5B | 1.54B | 1.31B | 28 | 12 / 2 | Sim | 32K | Apache 2.0 |
Qwen2.5-Coder-3B | 3.09B | 2.77B | 36 | 16 / 2 | Sim | 32K | Pesquisa Qwen |
Qwen2.5-Coder-7B | 7.61B | 6.53B | 28 | 28 / 4 | Não | 128K | Apache 2.0 |
Qwen2.5-Coder-14B | 14.7B | 13.1B | 48 | 40 / 8 | Não | 128K | Apache 2.0 |
Qwen2.5-Coder-32B | 32.5B | 31.0B | 64 | 40 / 8 | Não | 128K | Apache 2.0 |
Sempre acreditamos na filosofia da Lei de Escalonamento. Avaliamos o desempenho dos modelos Qwen2.5-Coder de diferentes tamanhos em todos os conjuntos de dados para verificar a eficácia do dimensionamento em LLMs de código.
Para cada tamanho, temos modelos Base e Instruct de código aberto, em que o modelo Base serve como base para os desenvolvedores ajustarem seus modelos, e o modelo Instruct é o modelo de alinhamento oficial disponível para bate-papo direto.
Veja como o modelo Base se comporta em diferentes tamanhos:
Veja como o modelo Instruct se comporta em diferentes tamanhos:
Para ser mais intuitivo, mostramos uma comparação entre diferentes tamanhos do modelo Qwen2.5-Coder e outros modelos de código aberto no conjunto de dados principal.
- Para o modelo básico, escolhemos o MBPP-3shot como índice de avaliação, e nossos extensos experimentos mostram que o MBPP-3shot é mais adequado para avaliar o modelo básico e pode se correlacionar bem com o efeito real do modelo.
- Para o modelo Instruct, escolhemos os tópicos do LiveCodeBench dos últimos quatro meses (2024.07 - 2024.11) para avaliação, e esses tópicos publicados recentemente, que provavelmente não vazaram para o conjunto de treinamento, refletem a capacidade de OOD do modelo.
A correlação positiva esperada entre o tamanho e a eficácia do modelo e o fato de o codificador Qwen2.5 ter alcançado o desempenho do SOTA em todos os tamanhos nos incentiva a continuar explorando modelos de codificadores maiores.
Prático: Conheça o Cursor e os Artefatos
Um codificador prático sempre foi nossa visão. Para isso, exploramos a aplicação prática do modelo Qwen2.5-Coder no contexto de assistentes de código e artefatos.
Qwen2.5-Coder 🤝 Cursor
Os assistentes de código inteligentes já são amplamente usados, mas atualmente dependem principalmente de modelos de código fechado, e esperamos que o surgimento do Qwen2.5-Coder forneça aos desenvolvedores uma alternativa amigável e poderosa.
Além disso, o Qwen2.5-Coder-32B demonstrou forte capacidade de conclusão de código no modelo pré-treinado e obteve desempenho SOTA em cinco conjuntos de avaliação, incluindo Humaneval-Infilling, CrossCodeEval, CrossCodeLongEval, RepoEval e SAFIM.
Para manter uma comparação justa, controlamos o comprimento máximo da sequência em 8k e usamos o modo Fill-in-the-Middle para os testes. Nos 4 conjuntos de análise de CrossCodeEval, CrossCodeLongEval, RepoEval e Humaneval-Infilling, avaliamos se o conteúdo gerado é absolutamente igual aos rótulos reais (Exact Match); e no SAFIM, usamos a taxa de sucesso de execução de 1 vez (Pass@1) para a avaliação.
Qwen2.5-Coder 🤝 Artefatos
O Artifacts é um dos aplicativos mais importantes para geração de código que pode ajudar os usuários a criar algo adequado para visualização, e escolhemos o Abrir a WebUI Explore o potencial do Qwen2.5-Coder em cenários de artefatos, aqui estão alguns exemplos concretos:
Em breve, estaremos on-line com o modo de código no site oficial do Tongyi https://tongyi.aliyun.com, que oferece suporte a todos os tipos de aplicativos de visualização, como sites gerados por uma frase, minijogos e gráficos de dados. Seja bem-vindo para experimentar!