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

editar

Em 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

editar

O 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

editar

Desde 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

editar

Embora 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

editar

Em 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

editar

Um 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

editar

Um 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

editar

Em 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
  1. 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 
  2. a b c d e f «GitHub Copilot · Your AI pair programmer». GitHub Copilot. Consultado em 7 de abril de 2022 
  3. «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 
  4. «GitHub Copilot - IntelliJ IDEs Plugin | Marketplace». JetBrains Marketplace. Consultado em 7 de abril de 2022 
  5. Copilot.vim, GitHub, 7 de abril de 2022, consultado em 7 de abril de 2022 
  6. «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 
  7. 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 
  8. «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 
  9. 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 
  10. «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 
  11. «OpenAI Announces 12 Billion Parameter Code-Generation AI Codex». InfoQ (em inglês). Consultado em 7 de abril de 2022 
  12. 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 
  13. 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] 
  14. 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 
  15. «Publication of the FSF-funded white papers on questions around Copilot». Free Software Foundation. 24 de fevereiro de 2022 
  16. 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 

Ligações externas

editar