A experiência do nosso CTO na utilização de IA generativa para codificação
A experiência do nosso CTO na utilização de IA generativa para codificação
Evan Davis, o nosso CTO, utilizou a mais recente tecnologia de IA para resolver problemas do mundo real. Recentemente, falou sobre as suas experiências com a utilização de IA generativa para o trabalho de codificação com a equipa Skim AI, fornecendo algumas das suas ideias pessoais sobre as aplicações práticas da tecnologia e as potenciais armadilhas. Com esta conversa e o blogue resultante, pretendemos dar uma visão interna deste ambiente em rápida mudança e, especificamente, por que razão a codificação nunca mais será a mesma nesta era de IA generativa fácil de utilizar.
O potencial e as limitações da IA generativa na codificação
A IA generativa, um subconjunto da inteligência artificial, centra-se na criação de novos conteúdos, desde obras de arte a código, aprendendo com exemplos existentes. Na experiência recente de Evan com modelos de IA generativa de topo, como o ChatGPT-3.5, GPT-4, Github CoPilot, Código da Amazon, Bardo e muito mais, a tecnologia tem-se revelado um valioso aliado nas tarefas de codificação. Esta é uma nota importante antes de nos debruçarmos sobre algumas das limitações. No seu estado atual, a IA generativa está a ter um grande impacto na codificação e só continuará a evoluir e a melhorar com o tempo.
Para quem tem alguns conhecimentos de programação, a tecnologia pode proporcionar um avanço significativo, podendo tratar de cerca de 80% da tarefa e tornar o processo de depuração mais fácil de gerir. Isto alinha-se com os especialistas da indústria que acreditam que a IA generativa irá revolucionar a forma como abordamos a codificação, acelerando o processo e reduzindo o erro humano.
No entanto, como acontece com qualquer tecnologia emergente, a IA generativa tem as suas limitações. Na sua experiência pessoal, Evan observou que a tecnologia ocasionalmente gerava código que carecia de lógica, particularmente com bibliotecas menos comuns. A IA chamava funções fantasma - funções que não existiam na biblioteca - levando a confusão e tempo adicional gasto a decifrar os resultados. Este é um desafio conhecido neste domínio e os investigadores continuam a aperfeiçoar os algoritmos de IA para resolver estes problemas.
O papel do Copiloto do GitHub e o seu potencial impacto
Evan também partilhou a sua experiência com o GitHub Copilot, um assistente de codificação alimentado por IA que sugere código linha a linha. Ele achou que é menos provável que saia dos trilhos, pois opera dentro dos limites do código existente do usuário.
Desenvolvido pelo GitHub e pela OpenAI, o Copilot sugere código linha a linha com base no contexto fornecido pelo utilizador, tornando menos provável a produção de resultados errados.
O próximo lançamento do Copilot X, que integra o GPT-4 no Visual Studio Code e possui controlo por voz, é um grande avanço neste campo. Esta ferramenta funcionará como um assistente de codificação ativado por voz, marcando um passo significativo no sentido de integrar a IA de forma mais completa nos nossos fluxos de trabalho de codificação, uma tendência que está a ganhar força em toda a indústria tecnológica.
IA generativa: a Pedra de Roseta dos nossos dias
Durante a conversa da equipa sobre a IA generativa, o CEO Greggory Elias fez uma analogia interessante entre o código gerado pela IA e a Pedra de Roseta, ilustrando as capacidades e as limitações da tecnologia. Tal como a Pedra de Roseta serviu de mecanismo de tradução para línguas antigas, a IA generativa pode ser vista como um tradutor para linguagens de codificação.
A IA generativa, no contexto da codificação, funciona de forma muito semelhante a um tradutor. Trabalha para compreender a sintaxe, as convenções e as expressões idiomáticas de uma língua e recriá-las noutra. Vai além de uma simples tradução palavra por palavra, com o objetivo de captar a intenção, a lógica e a estrutura do código original.
No entanto, a exatidão e a eficácia deste processo de tradução dependem significativamente da disponibilidade e da riqueza da linguagem ou biblioteca de codificação específica nos dados de formação da IA. Por exemplo, se a IA tiver sido extensivamente treinada em Python e Java, mas tiver visto muito pouco de uma linguagem menos comum como Erlang, pode ter dificuldade em gerar ou traduzir com exatidão o código Erlang.
A qualidade dos dados de formação: Um fator crítico
Evan também sublinhou a importância da qualidade dos dados de treino que alimentam os modelos de IA. A Internet é abundante em código de qualidade variável, e garantir que o modelo de IA é treinado em código de alta qualidade é um desafio significativo. Observou-se que podem ser produzidas soluções subóptimas - funcionam, mas são demasiado simplistas.
Por exemplo, considere um modelo de IA generativa treinado para ajudar os utilizadores a gerar consultas SQL. No passado, a elaboração da consulta SQL correcta exigia anos de conhecimento especializado, mas agora, com a ajuda da IA generativa, centenas de milhares de utilizadores podem fazê-lo em meros segundos. Trata-se de um passo monumental na democratização do conhecimento e das capacidades. Este princípio pode estender-se para além da SQL e para ferramentas mais quotidianas, como o Microsoft Excel, ou mesmo ferramentas de Business Intelligence. Os utilizadores podem ser ajudados a criar folhas de cálculo, gráficos e painéis de controlo complexos com facilidade e precisão, algo que normalmente exigiria conhecimentos e experiência avançados.
No entanto, se uma biblioteca estiver mal documentada ou se os dados de treino da IA não incluírem exemplos abrangentes dessa biblioteca, a IA pode produzir um código menos exato ou menos funcional. Esta perceção é paralela a observações mais amplas feitas por investigadores de IA - o desempenho de um modelo de IA depende fortemente da riqueza, diversidade e qualidade dos dados com que foi treinado.
Essencialmente, a IA generativa, tal como os programadores humanos, trabalha melhor com linguagens e bibliotecas com as quais está mais familiarizada. Este facto sublinha a importância de dados de formação abrangentes e de alta qualidade no desenvolvimento de modelos de IA, para além de realçar a importância da formação e do aperfeiçoamento contínuos da IA à medida que surgem novas linguagens e evoluem as existentes. Em termos gerais, isto ajuda a melhorar continuamente a capacidade da IA para ajudar os utilizadores em várias tarefas, aumentando a sua eficiência e produtividade.
Início de uma nova era
As experiências de Evan com a IA generativa revelam um vislumbre fascinante do imenso potencial e dos desafios inerentes a esta tecnologia. À medida que o campo da IA continua a evoluir, são experiências como estas que irão orientar o seu desenvolvimento, garantindo que se torna uma ferramenta ainda mais eficaz para resolver problemas do mundo real
Notavelmente, os modelos de IA generativa, como o ChatGPT, começaram a reduzir significativamente a necessidade de centenas de milhares de horas de codificação e anos de especialização em bibliotecas, tanto para programadores como para utilizadores finais. Esta transformação representa um salto monumental na acessibilidade e usabilidade das aplicações de programação.
Um olhar sobre as conclusões do nosso artigo "ChatGPT e Bard representam um perigo para os programadores" sublinha este ponto. Ambos os modelos de IA demonstraram a sua capacidade de gerar código de forma eficaz, eliminando potencialmente inúmeras horas de esforço humano de codificação e apresentando resultados notáveis. À medida que estas tecnologias continuam a melhorar, podemos esperar um impacto ainda maior na facilidade e rapidez das tarefas de programação.
O aparecimento e o desenvolvimento contínuo da IA generativa poderão dar início a uma nova era no mundo da programação, caracterizada por uma inovação acelerada e pela inclusão. Ao reduzir as barreiras à entrada e ao simplificar o processo de codificação, estes modelos avançados de IA prometem um futuro em que os conhecimentos de codificação deixam de ser um pré-requisito para a criação de soluções digitais. À medida que navegamos neste futuro empolgante, temos de nos manter atentos a esta tecnologia em rápida evolução e continuar a tirar partido do seu potencial transformador.