Meta lançou um "artefato" de IA. Como o modelo de código aberto e de código livre Code Llama se compara ao ChatGPT?

Fonte original: Laboratório de Inovação AGI

Fonte da imagem: gerada por Unbounded AI‌

A Meta lançou recentemente o Code Llama, um modelo de linguagem em grande escala baseado no Llama 2 para ajuste fino, que pode gerar código usando prompts de texto e é de código aberto para pesquisa e uso comercial.

Code Llama é um LLM aberto de última geração para tarefas de codificação que tem o potencial de tornar os fluxos de trabalho atuais dos desenvolvedores mais rápidos e eficientes e diminuir a barreira de entrada para aqueles que estão aprendendo a codificar. Code Llama tem potencial para ser usado como uma ferramenta educacional e de produtividade para ajudar os programadores a escrever software mais robusto e bem documentado.

Como funciona o Code Llama

Em julho deste ano, a Meta (antigo Facebook) lançou o Llama 2, um modelo de código aberto gratuito e disponível comercialmente. A versão mais recente, Code Llama, é uma versão dedicada do Llama2 especificamente para codificação, criada por meio de treinamento adicional do Llama 2 em seu conjunto de dados específico de código, amostrando mais dados do mesmo conjunto de dados por períodos de tempo mais longos.

No geral, o Code Llama possui recursos de codificação aprimorados, desenvolvidos com base no Llama 2. Ele pode gerar código e linguagem natural sobre o código com base em dicas de código e linguagem natural (por exemplo, "escreva-me uma função que produza a sequência de Fibonacci".) Ele também pode ser usado para conclusão e depuração de código.

Code Llama oferece suporte a muitas das linguagens mais populares em uso atualmente, incluindo Python, C++, Java, PHP, Typeface (Java), C# e Bash.

Code Llama atualmente tem três versões de parâmetros: 7 bilhões de parâmetros, 13 bilhões de parâmetros, 34 bilhões de parâmetros.

Cada versão é treinada com tokens de código 500B e dados relacionados ao código. A base de parâmetros e os modelos de instrução de 7 bilhões e 13 bilhões também são treinados com recursos Fill-in-the-Intermediate (FIM), permitindo-lhes conectar código ao código existente, o que significa que podem suportar tarefas como conclusão de código fora do comum. caixa.

Esses três modelos atendem a diferentes requisitos de serviço e latência. Por exemplo, 7 bilhões de modelos podem rodar em uma única GPU. O modelo de 34 bilhões retorna os melhores resultados e oferece melhor assistência de codificação, mas os modelos menores de 7 bilhões e 13 bilhões são mais rápidos e mais adequados para tarefas que exigem baixa latência, como a conclusão de código em tempo real.

O modelo Code Llama fornece geração estável com até 100.000 tokens de contexto. Todos os modelos são treinados em sequências de 16.000 tokens e mostram melhorias em entradas de até 100.000 tokens.

Além de ser um pré-requisito para gerar programas mais longos, ter sequências de entrada mais longas pode desbloquear novos casos de uso interessantes para o Code LLM. Por exemplo, os usuários podem fornecer modelos com mais contexto a partir de sua base de código para tornar as gerações mais relevantes. Também ajuda na depuração de cenários em bases de código maiores, onde pode ser um desafio para os desenvolvedores compreender todo o código relacionado a um problema específico. Quando os desenvolvedores enfrentam a depuração de grandes quantidades de código, eles podem passar todo o comprimento do código para o modelo.

Meta também ajusta duas versões adicionais do Code Llama: Code Llama - Python e Code Llama - Instruct.

  • Code Llama - Python é uma variante específica da linguagem do Code Llama, aprimorada ainda mais no token de 100B do código Python.
  • Code Llama - Instruct é uma versão ajustada e alinhada das instruções do Code Llama. Os ajustes nas instruções dão continuidade ao processo de treinamento, mas com objetivos diferentes. O modelo aceita “instruções em linguagem natural” como entrada e saída esperada. Isso permite entender melhor o que as pessoas esperam do prompt. Recomendamos usar a versão Code Llama - Instruct ao usar Code Llama para geração de código, porque Code Llama - Instruct foi ajustado para gerar respostas úteis e seguras em linguagem natural.

Mas não é recomendado usar Code Llama ou Code Llama - Python para tarefas gerais de linguagem natural porque nenhum dos modelos foi projetado para seguir instruções de linguagem natural. Code Llama foi projetado para tarefas específicas de código e não é adequado como modelo base para outras tarefas.

Qual é o desempenho do Code Llama?

Humano e Programação Python Principalmente Básica (MBPP) são dois benchmarks comumente usados para proficiência de codificação - Human testa a capacidade de um modelo de completar código a partir de uma docstring, e MBPP testa a capacidade de um modelo de escrever código a partir de uma descrição. Testar o Code Llama em relação a esses dois benchmarks mostra que o Code Llama supera o Llama de código aberto e específico do código e supera o próprio Llama 2. Por exemplo, o Code Llama 34B pontua 53,7% em Humano e 56,2% em MBPP, superando o ChatGPT, mas ainda inferior ao GPT-4 em Humano.

Fonte do gráfico: Meta

*O modelo ajustado do CodeLlama-34B ultrapassou o GPT-4? *

Embora o Code Llama não tenha vencido o teste, isso não é tudo do Code Llama, outro destaque é o ajuste fino novamente. Os usuários podem ajustar o Code Llama de código aberto novamente para construir a melhor versão que atenda às suas necessidades.

Phind recentemente ajustou CodeLlama-34B e CodeLlama-34B-Python com base em seu próprio conjunto de dados, e suas versões ajustadas alcançaram 67,6% e 69,5% em Humano, que superou o GPT-4 anunciado pela OpenAI em março em 67% de o total.

Links Relacionados:

Comparação de uso real ChatGPT vs. Code Llama

Em primeiro lugar, nesta comparação foram utilizadas a versão GPT-3.5 do ChatGPT e o Code Llama suportado pela plataforma Perplexity. Faremos 8 perguntas para comparar se os dois geram código com sucesso.

Questão 1:

"Usando Python. Dadas duas strings word1 e word2. Mescle as strings adicionando letras em ordem alternada, começando com word1. Se uma string for mais longa que a outra, anexe letras adicionais às strings mescladas. fim.

Retorne a string mesclada.

Exemplo 1: • Entrada: palavra1="abc", palavra2="pqr" • Saída: "apbqcr"

🟢 ChatGPT: +1 para sucesso 🔵 Código da Chama:成功+1

Questão 2:

"Usando Python. Dada uma string s, basta inverter todas as vogais da string e retorná-la.

As vogais são "a", "e", "i", "o" e "u", que podem ocorrer várias vezes em letras minúsculas e maiúsculas.

Exemplo 1:

Entrada: s="olá" Saída: "Salão"

🟢 ChatGPT: +1 para sucesso 🔵 Código Llama: Falha +0

Questão 3:

"Usando Python. Dado um array inteiro nums, mude todos os 0 para o final dele, mantendo a ordem relativa dos elementos diferentes de zero. Observe que você deve fazer isso no local, sem fazer uma cópia do array.

Exemplo 1:

Entrada: nums = [0,1,0,3,12] Saída: [1,3,12,0,0]"

🟢 ChatGPT: +1 para sucesso 🔵 Código Llama: Falha +0

Pergunta 4:

"Usando Python. Você tem um canteiro longo onde algumas parcelas são plantadas e outras não. No entanto, parcelas adjacentes não podem ser plantadas com flores. Dada uma matriz inteira de 0 e 1 para um canteiro de flores, onde 0 significa vazio e 1 significa não vazio, e um número inteiro n, retorna verdadeiro se n novas flores puderem ser plantadas no canteiro sem violar a regra de flores não adjacentes, Caso contrário, retorne falso.

Exemplo 1: Entrada: canteiro = [1,0,0,0,1], n = 1 Saída: verdadeiro Exemplo 2: Entrada: canteiro de flores = [1,0,0,0,1], n = 2 saída: falso

🟢 ChatGPT: +1 para sucesso 🔵 Código da Chama:成功+1

Pergunta 5:

"Usando Python. Dada uma string de entrada s, inverta a ordem das palavras.

Uma palavra é definida como uma sequência de caracteres que não são espaços em branco. Palavras em s serão separadas por pelo menos um espaço.

Retorna uma sequência de palavras unidas por espaços simples na ordem inversa.

Observe que s pode conter espaços à esquerda ou à direita ou vários espaços entre duas palavras. A string retornada deve ter apenas um espaço para separar as palavras. Não inclua espaços extras.

Exemplo 1: Entrada: s = "O céu é azul" Resultado: "Azul é o céu""

🟢 ChatGPT: +1 para sucesso 🔵 Código da Chama:成功+1

Pergunta 6:

"Usando Python. Dada uma string s e um inteiro k, retorne o número máximo de vogais em qualquer substring de comprimento k em s. As vogais em inglês são “a”, “e”, “i”, “o” e “u”.

Exemplo 1: Entrada: s = "leetcode", k = 3 Saída: 2 Explicação: "lee", "eet" e "ode" contêm 2 vogais.

🟢 ChatGPT: +1 para sucesso 🔵 Código da Chama:成功+1

Pergunta 7:

"Usando Python. Dada uma string s que contém asteriscos *.

Com uma operação, você pode:

Escolha uma estrela em s.

Remove o caractere não asterisco mais próximo à sua esquerda e remove o próprio asterisco.

Retorna a string após remover todas as estrelas.

Exemplo 1: Entrada: s="leet**cod*e" Saída: "lecoe""

🟢 ChatGPT: +1 para sucesso 🔵 Código Llama: Falha +0

Pergunta 8:

"Usando Python. Dada uma matriz de temperaturas inteiras representando temperaturas diárias, retorne uma matriz de respostas onde resposta [i] é o número de dias após dia que você tem que esperar por temperaturas mais altas. Se não houver nenhum dia no futuro para fazer isso, guarde a resposta [i] == 0。

Exemplo 1: Entrada: Temperatura = [73,74,75,71,69,72,76,73] Saída: [1,1,4,2,1,1,0,0]"

🟢 Bate-papo GPT: +1 🔵 Código Camelo: +1

Resultados finais:

🟢 Bate-papoGPT: 8/8 🔵 CódigoLlama: 5/8

Em resumo, o Code Llama não apresenta vantagens óbvias em comparação com o ChatGPT no efeito de uso real, mas os testes acima não podem ser totalmente usados como base para julgamento. Além disso, o Code Llama de código aberto é mais fácil que o ChatGPT para os usuários personalizarem de acordo com suas necessidades, o que pode trazer mais possibilidades.

Referências:

Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
  • Recompensa
  • Comentário
  • Compartilhar
Comentário
0/400
Sem comentários
  • Marcar
Faça trade de criptomoedas em qualquer lugar e a qualquer hora
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)