Ajustando e servindo CodeGen, um modelo de geração de código, com PeriFlow

Jan 20 2023
CodeGen, lançado em 2022 pela Salesforce, é um modelo de linguagem que permite aos usuários criar programas com linguagem natural em vez de ter que usar amplo conhecimento de programação. O CodeGen é uma ferramenta empolgante, pois permite que humanos e IA programem juntos, tornando a programação mais fácil e rápida do que nunca.

CodeGen, lançado em 2022 pela Salesforce, é um modelo de linguagem que permite aos usuários criar programas com linguagem natural em vez de ter que usar amplo conhecimento de programação. O CodeGen é uma ferramenta empolgante, pois permite que humanos e IA programem juntos, tornando a programação mais fácil e rápida do que nunca.

Como exemplo de suas capacidades, o CodeGen pode receber uma solicitação “Retornar n-ésimo número de Fibonacci” e gerar rapidamente o código JavaScript correspondente. Isso significa que os desenvolvedores podem converter rapidamente conceitos complexos em linhas de código sem precisar escrever o código manualmente, economizando tempo e recursos valiosos. Vamos dar uma olhada como abaixo.

Entrada para CodeGen:

/*Return n-th Fibonacci number .
  >>> fib(10)
  55
  >>> fib(1)
  1
  >>> fib(8)
  21
  */
  const fib = (n) => {

if(n < 2) {
    return n;
  }
  return fib(n - 1) + fib(n - 2);
};

Outro exemplo é a geração de teste. CodeGen gera testes rapidamente, o que é extremamente útil no processo de testar a validade do programa. Ao ter testes gerados automaticamente, os desenvolvedores de software podem melhorar a qualidade de seu código, mas com muito menos esforço. Veja a seguir um exemplo de geração de código de teste.

Entrada para CodeGen:

//sumToN is a function that sums numbers from 1 to n.
const sumToN = (n) => {
  return n * (n + 1) / 2;
}
//write a test code that assets the correctness of sumToN()
const testSumToN = () => {

assert.equal(sumToN(1), 1);
  assert.equal(sumToN(2), 3);
  assert.equal(sumToN(3), 6);
  assert.equal(sumToN(4), 10);
  assert.equal(sumToN(5), 15);
  assert.equal(sumToN(6), 21);
  assert.equal(sumToN(7), 28);
  assert.equal(sumToN(8), 36);
  assert.equal(sumToN(9), 45);
  assert.equal(sumToN(10), 55);
}

Com o PeriFlow, é possível adaptar (ou seja, realizar ajustes finos ou treinamento com parâmetros eficientes) CodeGen e servir o CodeGen sem esforço e rapidamente para os aplicativos, o que enfatiza ainda mais o compromisso da FriendliAI em tornar o serviço e treinamento de IA generativa simples e econômico. Nossos clientes podem usar o PeriFlow para realizar a inferência do CodeGen muito mais rápido do que qualquer outra solução disponível.

Comparamos o PeriFlow Serving (Orca) com o NVIDIA Triton + FasterTransformer ao servir o CodeGen com parâmetros de 16B em uma GPU NVIDIA A100 de 80GB. Nos experimentos, o intervalo do comprimento do token de entrada está entre 128 e 512, e o intervalo do comprimento do token de saída está entre 32 e 256. A figura abaixo mostra a taxa de transferência (req/s) e a latência média (ms).

Nossas descobertas revelam que o PeriFlow Serving (Orca) supera o desempenho do Triton + FasterTransformer, alcançando uma taxa de transferência surpreendentemente 30 vezes maior com o mesmo nível de latência, graças à sua nova arquitetura. Observe que o ganho real pode variar dependendo das cargas de trabalho e do hardware. Além de nossos posts anteriores sobre a aceleração do Orca para modelos GPT3 e T5 de grande e pequena escala, demonstramos que o PeriFlow é uma escolha ideal para minimizar custos quando se trata de servir o CodeGen.

Em resumo, o CodeGen abre uma excelente oportunidade para humanos e IA colaborarem para programar juntos. Com o PeriFlow, é possível adaptar rapidamente o CodeGen e atender o modelo com muito mais eficiência. Estamos entusiasmados com o que podemos oferecer, pois tem o potencial de abrir as portas para muitos usuários que desejam aproveitar o PeriFlow para combinar o melhor da criatividade humana com recursos de codificação orientados por IA!

Para mais informações sobre o FriendliAI, consulte o link .
Sobre o PeriFlow, confira no
link .