GitHub Copilot
As referências deste artigo necessitam de formatação. (Abril de 2022) |
O GitHub Copilot é uma ferramenta de inteligência artificial desenvolvida pelo GitHub em conjunto com a OpenAI, afim de auxiliar usuários de ambientes de desenvolvimento integrados (IDEs ou Integrated Development Environments) como Visual Studio Code, Visual Studio, Neovim e JetBrains por meio de sugestão de código para preenchimento automático.[1] Atualmente está disponível apenas na versão beta, a ferramenta foi anunciada pela primeira vez pelo GitHub em 29 de junho de 2021 e oferece melhor suporte para usuários que desenvolvem em linguagens como Python, JavaScript, TypeScript, Ruby e Go .[2][3]
História
editarEm 29 de Junho de 2021, o GitHub anunciou o GitHub Copilot na versão beta para o ambiente de desenvolvimento Visual Studio Code.[1][4]
Em 26 de Outubro de 2021, o GitHub Copilot foi liberado por meio de um plug-in para JetBrains.[5]
Em 27 de Outubro de 2021, o GitHub liberou um plugin do GitHub Copilot para o Neovim plugin como um repositório publico.[6]
Em 27 de Março de 2022, o GitHub anunciou oficialmente a disponibilidade do GitHub Copilot para o Visual Studio IDE 2022.[7]
Recursos
editarO GitHub Copilot é mantido pelo OpenAI Codex, um modelo de inteligência artificial criado pela OpenAI, que nada mais é do que um laboratório de pesquisa de inteligência artificial.[8] O OpenAI Codex é uma versão de produção modificada do Generative Pre-trained Transformer 3 (GPT-3), um modelo de linguagem que usa deep-learning para produzir texto semelhante ao humano.[9] Por exemplo, quando se é fornecido um problema de programação em linguagem natural, o Codex é capaz de gerar o código da solução.[10] É também capaz de descrever o código de entrada em inglês e traduzir o código entre linguagens de programação.[10] O GPT-3 do Codex é licenciado exclusivamente para a Microsoft, empresa detentora do GitHub.[11]
O OpenAI Codex da Copilot é treinado com base no idioma inglês, em repositórios públicos do GitHub e outros códigos-fonte disponíveis publicamente.[3] Isso inclui um conjunto de dados filtrado de 159 gigabytes de código Python proveniente de 54 milhões de repositórios públicos do GitHub.[12]
De acordo com seu site, o GitHub Copilot inclui recursos para auxiliar programadores, como a conversão de comentários de código em código executável e preenchimento automático para trechos de código, seções repetitivas de código e métodos e/ou funções inteiros.[3][13] O GitHub expõe que o recurso de preenchimento automático do Copilot é preciso em cerca de metade das vezes; com um código de cabeçalho de uma função Python, por exemplo, o Copilot completou automaticamente o restante do corpo código da função em 43% das vezes na primeira tentativa e 57% das vezes após dez tentativas.[3]
O GitHub afirma que os recursos disponibilizados pelo Copilot permitem que os programadores naveguem em estruturas e linguagens de codificação desconhecidas, reduzindo a quantidade de tempo que os usuários gastam lendo a documentação .[3]
Recepção
editarDesde o lançamento do Copilot, houve preocupações em relação a sua segurança e o impacto educacional, bem como controvérsias em relação do licenciamento do código produzidos pela ferramenta.[2][10][14]
Controvérsia sobre o licenciamento
editarEmbora a maior parte do código produzido pelo Copilot possa ser classificado como um trabalho inovador, o próprio GitHub admitiu que uma pequena parte é de fato copiada literalmente, o que levou a um receio no sentido de que o código gerado não seja suficientemente inovador para ser classificado como uso justo e possa infringir os direitos autorais do autor original.[2] Isso deixa o Copilot em um terreno legal desconhecido, embora o GitHub afirme que "treinar modelos de aprendizado de máquina em dados disponíveis publicamente é considerado uso justo em toda a comunidade de aprendizado de máquina".[2]
White papers da FSF
editarEm 28 de julho de 2021, a Free Software Foundation (FSF) publicou uma chamada financiada para white papers sobre questões filosóficas e jurídicas em torno do Copilot.[15] Donald Robertson, Gerente de Licenciamento e Conformidade da FSF, afirmou que "o Copilot levanta muitas [...] questões que exigem uma analise mais profunda".[15] Em 24 de fevereiro de 2022, a FSF anunciou que recebeu 22 artigos sobre o assunto e, usando um processo de revisão anônima, escolheu 5 artigos para destacar.[16]
Preocupações com a segurança
editarUm artigo aceito para publicação no IEEE Symposium on Security and Privacy (Simpósio sobre Segurança e Privacidade) em 2022 avaliou a segurança do código gerado pelo Copilot para as 25 principais fraquezas enumeradas no código do MITRE (por exemplo, cross-site scripting, path traversal e etc) em 89 contextos diferentes e em 1.689 programas.[14] Isso foi feito ao longo dos eixos de diversidade de pontos fracos (a sua capacidade de responder a cenários que podem conduzir a vários pontos fracos do código), diversidade de sugestões (sua capacidade de responder à mesma fraqueza de código com variações sutis) e diversidade de domínios (sua capacidade de gerar especificações de hardware em nível de transferência de registro em Verilog).[14] O estudo descobriu que nesses eixos em vários idiomas, 39,33% das principais sugestões e 40,73% do total de sugestões levam a vulnerabilidades de código. Além disso, descobriram também que pequenas alterações não semânticas (ou seja, comentários) feitas no código podem afetar a segurança do mesmo.[14]
Preocupações com a educação
editarUm artigo de fevereiro de 2022 divulgado pela Association for Computing Machinery avalia o impacto que o Codex, a tecnologia usada pelo Github Copilot, pode ter na educação de programadores iniciantes.[10] O estudo utiliza questões de avaliação de uma aula introdutória de programação na Universidade de Auckland e compara as respostas do Codex com o desempenho dos alunos.[10] Os pesquisadores descobriram que o Codex, em média, teve um desempenho melhor do que a maioria dos alunos; no entanto, seu desempenho diminuiu em questões que limitavam os recursos que poderiam ser usados na resolução (por exemplo, condicionais, coleções e laços de repetição).[10] Dado esse tipo de problema, “apenas duas das 10 soluções [do Codex] produziram a saída correta, mas ambas [...] violaram [a] restrição”. O artigo conclui que o Codex pode ser útil para fornecer uma variedade de soluções aos alunos, mas também pode levar ao excesso de confiança e ao plágio.[10]
Planos futuros
editarEm seu site, o GitHub afirma que, se a versão beta do Copilot for bem-sucedida, eles planejam comercializar a ferramenta no futuro.[3] Além disso, a Microsoft – empresa dona do GitHub – declarou seus planos futuros de comercializar o Copilot como parte de seus produtos Visual Studio.[17]
Referências
editar- ↑ a b Gershgorn, Dave (29 de junho de 2021). «GitHub and OpenAI launch a new AI tool that generates its own code». The Verge. Consultado em 6 de julho de 2021
- ↑ a b c d «GitHub's automatic coding tool rests on untested legal ground». The Verge. 7 de julho de 2021. Consultado em 11 de julho de 2021
- ↑ a b c d e f «GitHub Copilot · Your AI pair programmer». GitHub Copilot. Consultado em 7 de abril de 2022
- ↑ «Introducing GitHub Copilot: your AI pair programmer». The GitHub Blog (em inglês). 29 de junho de 2021. Consultado em 7 de abril de 2022
- ↑ «GitHub Copilot - IntelliJ IDEs Plugin | Marketplace». JetBrains Marketplace. Consultado em 7 de abril de 2022
- ↑ Copilot.vim, GitHub, 7 de abril de 2022, consultado em 7 de abril de 2022
- ↑ «GitHub Copilot now available for Visual Studio 2022». The GitHub Blog (em inglês). 29 de março de 2022. Consultado em 7 de abril de 2022
- ↑ Krill, Paul (12 de agosto de 2021). «OpenAI offers API for GitHub Copilot AI model». InfoWorld (em inglês). Consultado em 7 de abril de 2022
- ↑ «OpenAI Releases GPT-3, The Largest Model So Far». Analytics India Magazine (em inglês). 3 de junho de 2020. Consultado em 7 de abril de 2022
- ↑ a b c d e f g Finnie-Ansley, James; Denny, Paul; Becker, Brett A.; Luxton-Reilly, Andrew; Prather, James (14 de fevereiro de 2022). «The Robots Are Coming: Exploring the Implications of OpenAI Codex on Introductory Programming». New York, NY, USA: Association for Computing Machinery. Australasian Computing Education Conference. ACE '22: 10–19. ISBN 978-1-4503-9643-1. doi:10.1145/3511861.3511863
- ↑ «OpenAI is giving Microsoft exclusive access to its GPT-3 language model». MIT Technology Review (em inglês). Consultado em 7 de abril de 2022
- ↑ «OpenAI Announces 12 Billion Parameter Code-Generation AI Codex». InfoQ (em inglês). Consultado em 7 de abril de 2022
- ↑ Sobania, Dominik; Schweim, Dirk; Rothlauf, Franz (2022). «A Comprehensive Survey on Program Synthesis with Evolutionary Algorithms». IEEE Transactions on Evolutionary Computation: 1–1. ISSN 1941-0026. doi:10.1109/TEVC.2022.3162324
- ↑ a b c d Pearce, Hammond; Ahmad, Baleegh; Tan, Benjamin; Dolan-Gavitt, Brendan; Karri, Ramesh (16 de dezembro de 2021). «Asleep at the Keyboard? Assessing the Security of GitHub Copilot's Code Contributions». arXiv:2108.09293 [cs]
- ↑ a b «FSF-funded call for white papers on philosophical and legal questions around Copilot». Free Software Foundation. 28 de julho de 2021. Consultado em 11 de agosto de 2021
- ↑ «Publication of the FSF-funded white papers on questions around Copilot». Free Software Foundation. 24 de fevereiro de 2022
- ↑ Novet, Jordan (29 de junho de 2021). «Microsoft and OpenAI have a new A.I. tool that will give coding suggestions to software developers». CNBC (em inglês). Consultado em 5 de abril de 2022