{"id":246,"date":"2024-01-30T10:08:13","date_gmt":"2024-01-30T13:08:13","guid":{"rendered":"https:\/\/portal7ia.com.br\/?p=246"},"modified":"2024-02-01T04:36:04","modified_gmt":"2024-02-01T07:36:04","slug":"code-llama-o-state-of-the-art-llm-para-programacao","status":"publish","type":"post","link":"https:\/\/portal7ia.com.br\/index.php\/2024\/01\/30\/code-llama-o-state-of-the-art-llm-para-programacao\/","title":{"rendered":"Code Llama, o state-of-the-art LLM para programa\u00e7\u00e3o"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A META AI lan\u00e7a, agora no final de janeiro de 2024, o <strong>Code Llama<\/strong>, um modelo de linguagem avan\u00e7ado (LLM) que pode usar prompts de texto para gerar c\u00f3digo de programa\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O Code Llama \u00e9 l\u00edder de mercado entre os LLMs dispon\u00edveis publicamente para tarefas de programa\u00e7\u00e3o e tem o potencial de tornar os fluxos de trabalho mais r\u00e1pidos e eficientes para desenvolvedores atuais, al\u00e9m de reduzir as barreiras de entrada para pessoas que est\u00e3o aprendendo a programar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O Code Llama est\u00e1 dispon\u00edvel em tr\u00eas vers\u00f5es:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>CodeLlama<\/strong>, o modelo de c\u00f3digo fundamental; <\/li>\n\n\n\n<li><strong>CodeLlama &#8211; Python<\/strong>, especializado para Python; <\/li>\n\n\n\n<li><strong>Code Llama &#8211; Instruct<\/strong>, afinado para compreender instru\u00e7\u00f5es em linguagem natural.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">O Code Llama \u00e9 um modelo de linguagem avan\u00e7ado (LLM) de \u00faltima gera\u00e7\u00e3o capaz de gerar c\u00f3digo e linguagem natural sobre c\u00f3digo a partir de prompts tanto de c\u00f3digo(de programa\u00e7\u00e3o) quanto de linguagem natural.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O Code Llama \u00e9 gratuito para pesquisa e uso comercial.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em nossos pr\u00f3prios testes de refer\u00eancia, o Code Llama superou os modelos de linguagem dispon\u00edveis publicamente em tarefas de c\u00f3digo.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Como o Code Llama Funciona?<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O Code Llama \u00e9 uma vers\u00e3o especializada em c\u00f3digo do Llama 2<\/strong>, que foi criada atrav\u00e9s de treinamento adicional do Llama 2 em seus conjuntos de dados espec\u00edficos de c\u00f3digo, amostrando mais dados desse mesmo conjunto por um per\u00edodo mais longo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Essencialmente, o Code Llama apresenta capacidades de codifica\u00e7\u00e3o aprimoradas, constru\u00eddas sobre o Llama 2.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ele pode gerar c\u00f3digo e linguagem natural sobre c\u00f3digo a partir de prompts tanto de c\u00f3digo quanto de linguagem natural (por exemplo, &#8220;Escreva uma fun\u00e7\u00e3o que gere a sequ\u00eancia de Fibonacci&#8221;). Tamb\u00e9m pode ser usado para conclus\u00e3o de c\u00f3digo e debugging.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Linguagens Suportadas<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">Suporta muitas das linguagens mais populares usadas hoje, incluindo <strong>Python, C++, Java, PHP, Typescript (Javascript), C# e Bash.<\/strong><\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Tamanho do Code Llama<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">Estamos lan\u00e7ando quatro tamanhos do Code Llama com <strong>par\u00e2metros de 7B, 13B, 34B e 70B<\/strong>.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Treinamento<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">Cada um desses modelos \u00e9 <strong>treinado com 500B de tokens<\/strong> de c\u00f3digo e dados relacionados a c\u00f3digo, exceto o <strong>70B<\/strong>, que \u00e9 treinado com <strong>1TB de tokens<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Os modelos base e instruct de 7B e 13B<\/strong> tamb\u00e9m foram treinados com a capacidade de preenchimento no meio (<strong>Fill-in-the-middle<\/strong>) permitindo que eles insiram c\u00f3digo em c\u00f3digo existente, o que significa que podem oferecer suporte a tarefas como conclus\u00e3o de c\u00f3digo imediatamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Os tr\u00eas modelos atendem a diferentes requisitos de servi\u00e7o e lat\u00eancia. O modelo de 7B, por exemplo, pode ser utilizado em uma \u00fanica GPU.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Os modelos de 34B e 70B apresentam os melhores resultados e permitem uma assist\u00eancia de codifica\u00e7\u00e3o mais eficaz, mas <strong>os modelos menores de 7B e 13B s\u00e3o mais r\u00e1pidos<\/strong> e mais adequados para tarefas que exigem baixa lat\u00eancia, como a conclus\u00e3o de c\u00f3digo em tempo real.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Janela de Contexto<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Os modelos do Code Llama proporcionam gera\u00e7\u00f5es est\u00e1veis com <strong>at\u00e9 100.000 tokens <\/strong>de contexto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Todos os modelos s\u00e3o <strong>treinados em sequ\u00eancias de 16.000 tokens<\/strong> e mostram melhorias em entradas com at\u00e9 100.000 tokens.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al\u00e9m de ser um requisito para gerar programas mais extensos, ter sequ\u00eancias de entrada mais longas desbloqueia novos casos de uso empolgantes para um LLM de c\u00f3digo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por exemplo, os usu\u00e1rios podem fornecer mais contexto do seu c\u00f3digo-fonte para tornar as gera\u00e7\u00f5es mais relevantes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isso tamb\u00e9m auxilia em cen\u00e1rios de debugging em bases de c\u00f3digo maiores, onde acompanhar todo o c\u00f3digo relacionado a um problema espec\u00edfico pode ser desafiador para os desenvolvedores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quando os desenvolvedores se deparam com a debugging de um grande trecho de c\u00f3digo, eles podem passar todo o comprimento do c\u00f3digo para o modelo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adicionalmente, aprimoramos ainda mais duas varia\u00e7\u00f5es adicionais do Code Llama:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Code Llama &#8211; Python e <\/li>\n\n\n\n<li>Code Llama &#8211; Instruct.<\/li>\n<\/ul>\n\n\n\n<h6 class=\"wp-block-heading\">Code Llama &#8211; Python <\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 uma varia\u00e7\u00e3o especializada em linguagem do Code Llama, refinada ainda mais com 100 bilh\u00f5es de tokens de c\u00f3digo Python.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como o Python \u00e9 a linguagem mais avaliada para gera\u00e7\u00e3o de c\u00f3digo &#8211; e porque Python e PyTorch desempenham um papel importante na comunidade de IA &#8211; acreditamos que um modelo especializado oferece utilidade adicional.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Code Llama &#8211; Instruct <\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 uma varia\u00e7\u00e3o ajustada e alinhada com instru\u00e7\u00f5es do Code Llama. A afina\u00e7\u00e3o de instru\u00e7\u00f5es continua o processo de treinamento, mas com um objetivo diferente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O modelo recebe uma entrada de &#8220;instru\u00e7\u00e3o em linguagem natural&#8221; e a sa\u00edda esperada. Isso o torna melhor em compreender o que os humanos esperam de seus prompts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Recomendamos o uso das variantes Code Llama &#8211; Instruct sempre que estiver usando o Code Llama para gera\u00e7\u00e3o de c\u00f3digo, j\u00e1 que o Code Llama &#8211; Instruct foi ajustado para gerar respostas \u00fateis e seguras em linguagem natural.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e3o recomendamos o uso do Code Llama ou Code Llama &#8211; Python para realizar tarefas gerais em linguagem natural, pois nenhum desses modelos foi projetado para seguir instru\u00e7\u00f5es em linguagem natural. <strong>O Code Llama \u00e9 especializado em tarefas espec\u00edficas de programa\u00e7\u00e3o e n\u00e3o \u00e9 adequado como modelo fundamental para outras tarefas<\/strong>.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Performance<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Para testar o desempenho do Code Llama em rela\u00e7\u00e3o \u00e0s solu\u00e7\u00f5es existentes, utilizamos dois benchmarks populares de programa\u00e7\u00e3o: HumanEval e Mostly Basic Python Programming (MBPP).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O HumanEval avalia a capacidade do modelo de completar c\u00f3digo com base em docstrings, enquanto o MBPP avalia a capacidade do modelo de escrever c\u00f3digo com base em uma descri\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nossos testes de refer\u00eancia mostraram que o Code Llama teve um desempenho superior a LLMs de c\u00f3digo aberto espec\u00edficos para c\u00f3digo e superou o Llama 2.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>O Code Llama 34B, por exemplo, obteve uma pontua\u00e7\u00e3o de 53,7% no HumanEval e 56,2% no MBPP, a mais alta em compara\u00e7\u00e3o com outras solu\u00e7\u00f5es de c\u00f3digo aberto de ponta, e em p\u00e9 de igualdade com o ChatGPT.<\/strong><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">ATEN\u00c7\u00c3O: Riscos Existem<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Como acontece com toda tecnologia de ponta, o Code Llama traz consigo riscos. Construir modelos de IA de maneira respons\u00e1vel \u00e9 crucial, e tomamos in\u00fameras medidas de seguran\u00e7a antes de lan\u00e7ar o Code Llama.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como parte de nossos esfor\u00e7os de equipe de teste de seguran\u00e7a (red teaming), realizamos uma avalia\u00e7\u00e3o quantitativa do risco do Code Llama em gerar c\u00f3digo malicioso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Criamos prompts que tentavam solicitar c\u00f3digo malicioso com uma inten\u00e7\u00e3o clara e avaliamos as respostas do Code Llama em rela\u00e7\u00e3o ao ChatGPT (GPT3.5 Turbo). Nossos resultados mostraram que o Code Llama respondeu com respostas mais seguras.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Programadores j\u00e1 est\u00e3o utilizando LLMs para auxiliar em uma variedade de tarefas, desde a escrita de novos softwares at\u00e9 a debugging de c\u00f3digos existentes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O objetivo \u00e9 tornar os fluxos de trabalho dos desenvolvedores mais eficientes, para que possam se concentrar nos aspectos mais centrados no ser humano de seu trabalho, em vez de tarefas repetitivas.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Abordagem Open Source<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">Na Meta, acreditamos que os modelos de IA, especialmente os LLMs para codifica\u00e7\u00e3o, se beneficiam mais de uma abordagem aberta, tanto em termos de inova\u00e7\u00e3o quanto de seguran\u00e7a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Modelos espec\u00edficos para c\u00f3digo, dispon\u00edveis publicamente, podem facilitar o desenvolvimento de novas tecnologias que melhoram a vida das pessoas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ao lan\u00e7ar modelos de c\u00f3digo, como o Code Llama, toda a comunidade pode avaliar suas capacidades, identificar problemas e corrigir vulnerabilidades.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">O futuro da IA generativa para codifica\u00e7\u00e3o<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">O Code Llama \u00e9 projetado para apoiar engenheiros de software em todos os setores &#8211; incluindo pesquisa, ind\u00fastria, projetos de c\u00f3digo aberto, ONGs e empresas. No entanto, h\u00e1 muitos mais casos de uso para apoiar do que nossos modelos base e instruct podem atender.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esperamos que o Code Llama inspire outros a aproveitar o Llama 2 para criar novas ferramentas inovadoras para pesquisa e produtos comerciais.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">_______________<br>Fonte: <a href=\"https:\/\/ai.meta.com\/blog\/code-llama-large-language-model-coding\/_\">https:\/\/ai.meta.com\/blog\/code-llama-large-language-model-coding<\/a>\/<br><em>Tradu\u00e7\u00e3o: ChatGPT3.5<\/em>; Edi\u00e7\u00e3o: Admin<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A META AI lan\u00e7a, agora no final de janeiro de 2024, o Code Llama, um modelo de linguagem avan\u00e7ado (LLM) que pode usar prompts de texto para gerar c\u00f3digo de programa\u00e7\u00e3o. O Code Llama \u00e9 l\u00edder de mercado entre os LLMs dispon\u00edveis publicamente para tarefas de programa\u00e7\u00e3o e tem o potencial de tornar os fluxos [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":250,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,30,33],"tags":[63,64,26,62,65],"class_list":["post-246","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-llms","category-news","tag-code-llama","tag-coding","tag-llm","tag-meta-ai","tag-programacao"],"blocksy_meta":[],"brizy_media":[],"_links":{"self":[{"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/posts\/246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=246"}],"version-history":[{"count":3,"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/posts\/246\/revisions"}],"predecessor-version":[{"id":294,"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/posts\/246\/revisions\/294"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/media\/250"}],"wp:attachment":[{"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}