![Os copilotos estão prontos para provisionar sua infraestrutura?](https://optimuscloud.com.br/wp-content/uploads/2024/02/1709219409_Os-copilotos-estao-prontos-para-provisionar-sua-infraestrutura-150x150.png)
Os copilotos estão prontos para provisionar sua infraestrutura?
29 de fevereiro de 2024![Como construir pesquisa de sites com Astro, Qwik e Fuse.js](https://optimuscloud.com.br/wp-content/uploads/2024/02/1709230223_Como-construir-pesquisa-de-sites-com-Astro-Qwik-e-Fusejs-150x150.jpg)
Como construir pesquisa de sites com Astro, Qwik e Fuse.js
29 de fevereiro de 2024A IA generativa substituirá os programadores humanos? Provavelmente não. No entanto, um humano usando GenAI poderia. Mas com tantos Large Language Models (LLMs) disponíveis hoje, a quilometragem pode variar.
Se você está lutando para acompanhar todos os LLMs, você não é o único. Estamos testemunhando uma corrida armamentista entusiasmada pelos LLMs. As ofertas GenAI do Google por si só se tornaram abundantes – seus mais novos modelos abertos, chamados Gemma, são o exemplo mais recente de rápido downsizing do LLM (é hora de chamá-los de Small Language Models?).
Mais pertinente para a comunidade DevOps é o ritmo acelerado de desenvolvimento que estamos vendo de outros LLMs especificamente adaptados para geração de código, como o Code Llama 70B recentemente atualizado da Meta. Naturalmente, o GenAI assustou mais do que alguns desenvolvedores. Quase metade deles, num estudo recente, expressou receio de ter sucesso num mundo GenAI com os seus actuais conjuntos de competências técnicas.
Mas essa preocupação é realmente justificada? Os relatos da morte do programador humano podem ser muito exagerados. Os humanos podem até ter mais tempo para se preparar para um mundo dominado pela GenAI do que imaginam.
Na verdade, a pergunta mais apropriada que um desenvolvedor deveria fazer não é “A GenAI aceitará meu trabalho?” mas sim, “Qual LLM eu uso?”
Grande demais para ter sucesso na codificação
A promessa dos LLMs para o mundo do desenvolvimento de software é transformar programadores em arquitetos. Porém, nem todos os LLMs são criados iguais, e vale a pena explorar por que LLMs menores estão surgindo em primeiro lugar.
Os modelos convencionais mais poderosos, como GPT-4 e Claude 2, ainda mal conseguem resolver menos de 5% dos problemas reais do GitHub. O ChatGPT ainda alucina muito: variáveis falsas, ou mesmo conceitos obsoletos há mais de uma década. Além disso, faz parecer absurdo muito bom. Você pode tentar “promover a engenharia” para sair desse absurdo, mas há um ponto ideal na quantidade de contexto que é benéfico – muito leva a resultados mais confusos e aleatórios às custas de mais poder de processamento.
A maior preocupação dos LLMs para codificação é a confiança. Historicamente, os LLMs tradicionais sugavam indiscriminadamente tudo o que estava online, como um grande aspirador digital, sem muita transparência sobre a origem dos dados. Se pelo menos um por cento do código enviado por uma empresa contiver código protegido por direitos autorais de outra organização, isso será um problema. Você pode imaginar um cenário de recall de pesadelo em que um produto enviado não tenha recursos over-the-air para resolver códigos duvidosos.
No entanto, o cenário do LLM está mudando rapidamente.
Os LLMs são especializados o suficiente para codificação?
Quando Meta anunciou atualizações em seu Code Llama 70B no início do ano, pareceu uma tentativa bem-vinda de corrigir a falta de foco na codificação entre os LLMs convencionais. É oferecido em três tamanhos diferentes: parâmetros de 7 bilhões, 13 bilhões e 34 bilhões. Ele também é treinado em 500 bilhões de tokens de código e dados relacionados a códigos, contendo uma grande janela de contexto de 100.000 tokens.
O mais interessante deles, em teoria, é o Code Llama Python, uma versão do Code Llama especializada para Python – principalmente pelo que representa para a evolução dos LLMs daqui para frente. Ao contrário de alguns modelos dos pares Big Tech da Meta, este é dedicado exclusivamente à programação um linguagem específica treinada em cerca de 100 bilhões de tokens adicionais de código Python. Esse nível de modelagem personalizada para casos de uso específicos é exatamente o que a indústria mais precisa.
A ênfase em “emocionante na teoria” é necessária porque ainda não se sabe quão útil algo como o Code Llama realmente será para os desenvolvedores. Vá para o Reddit e o veredicto inicial parece ser que o modelo gerou frustração sobre questões que incluem, entre outras coisas, um formato de alerta complicado, proteções excessivamente rígidas e, principalmente, alucinações. Esse último ponto é outro lembrete humilhante de que qualquer modelo é tão bom quanto os dados nos quais foi treinado.
Porém, falha ou não, a abordagem LLM personalizada da Meta atraiu atenção importante para o fato de que grandes modelos de linguagem não são a única maneira de ter sucesso na geração de código assistida por IA. Estamos vendo isso refletido no impulso crescente da indústria para LLMs menores e mais focados, especializados em codificação – como BigCode, Codegen e CodeAlpaca. StarCoder é outro que, apesar de ter apenas 15,5 bilhões de parâmetros em tamanho, superou os maiores modelos como PaLM, LaMDA e LLaMA em benchmarks de avaliação.
Cada uma dessas opções tem prós e contras, mas o mais importante é que os modelos menores serão muito mais seguros para uso do que os maiores. Se você está codificando em C++, você realmente precisa de seu LLM repleto de conhecimentos irrelevantes como “quem foi o terceiro presidente dos Estados Unidos?” Quanto menor for o conjunto de dados, mais fácil será manter as coisas relevantes, mais barato será treinar o modelo e menor será a probabilidade de você roubar inadvertidamente os dados protegidos por direitos autorais de alguém.
As equipes de DevOps em 2024 fariam bem em pesquisar minuciosamente todas as opções de LLM disponíveis no mercado, em vez de optar pelas mais visíveis. Pode até valer a pena usar mais de um para diferentes casos de uso.
Mas voltando à questão existencial em questão…
A GenAI substituirá os humanos?
Alguma dessas ferramentas GenAI provavelmente se tornará um substituto para programadores reais? A menos que a precisão das respostas de codificação fornecidas pelos modelos aumente dentro de uma margem de erro aceitável (ou seja, 98-100%), então provavelmente não.
Vamos supor, porém, para fins de argumentação, que a GenAI atinja essa margem de erro. Isso significa que o papel da engenharia de software mudará para que você simplesmente revise e verifique o código gerado pela IA em vez de escrevê-lo? Tal hipótese poderia revelar-se falha se o princípio dos quatro olhos servir de referência. É um dos mecanismos mais importantes de controle de risco interno, exigindo que qualquer atividade de risco material (como software de remessa) seja revisada e verificada novamente por um segundo indivíduo independente e competente. A menos que a IA seja reclassificada como uma forma de vida independente e competente, então ela não deverá ser qualificada como um par de olhos nessa equação tão cedo.
Se houver um futuro em que a GenAI se torne capaz de desenvolvimento ponta a ponta e de construção de interfaces homem-máquina, não será num futuro próximo. LLMs podem fazer um trabalho adequado de interação com texto e elementos de uma imagem. Existem até ferramentas que podem converter designs web em código frontend. Em comparação com a codificação, no entanto, é muito mais difícil para a IA assumir sozinha o design que relaciona fluxos de trabalho gráficos e UI/UX (embora não seja impossível). A codificação também é apenas uma parte do desenvolvimento. O resto é investir em algo novo, descobrir quem é o público, traduzir ideias em algo edificável e aperfeiçoar. É aí que entra o elemento humano.
Independentemente de quão bons os LLMs sejam, um princípio deve sempre prevalecer para os programadores: trate cada código como se fosse seu. Faça a revisão por pares e pergunte ao seu colega: “Este código é bom?” Nunca confie cegamente nisso.
A postagem Por que grandes modelos de linguagem não substituirão codificadores humanos apareceu pela primeira vez em The New Stack.