# OpenAI Codex

O OpenAI Codex é uma inteligência artificial desenvolvido pela instituição OpenAI em 2021 baseado no modelo de linguagem GPT-3, que analisa a linguagem natural (prompt engineering) e gera um código de programação em resposta, para auxiliar não programador a criar aplicativos e websites.
O Codex é um descendente do GPT-3 da OpenAI ajustado para uso em aplicativos de programação. A OpenAI lançou uma API para o Codex em uma versão beta. Em março de 2023, a OpenAI fechou o acesso ao Codex, mas, devido a apelos públicos de pesquisadores, a instituição reverteu a situação. O modelo do Codex ainda pode ser usado por pesquisadores do programa de acesso à pesquisa da OpenAI.

## Recursos

Com base no GPT-3, uma rede neural formada por textos, o Codex foi também formado por 159 gigabytes de código Python de 54 milhões de arquivos do GitHub. Além de auxiliar na programação de aplicativos e websites, também alimenta o GitHub Copilot, uma ferramenta de autocomplemento de programação para IDE selecionados, como o Visual Studio Code e o Neovim. Um caso de uso típico do Codex é um usuário digitar o comando (prompt engineering) na forma de um comentário python, como por exemplo:
"calcular a média variável de uma matriz para um determinado tamanho de janela" e, em seguida, usar a IA para sugerir um bloco de código que satisfaça esse prompt. A OpenAI afirmou que o Codex pode concluir aproximadamente 37% das solicitações e tem como objetivo tornar a programação humana mais rápida, em vez de substituí-la. A instituição afirmou que a IA destaca-se no "mapeamento de problemas simples para códigos existentes", que eles descrevem como "provavelmente a parte menos divertida da programação". Jeremy Howard, cofundador da Fast.ai, declarou que "o Codex é uma forma de escrever um código sem ter que escrever tanto código" e que "nem sempre está correto, mas está próximo o suficiente". De acordo com um artigo escrito por pesquisadores da OpenAI, quando o Codex tentou um teste por 100 vezes, ele gerou soluções funcionais para 70,2% das solicitações. A OpenAI afirma que o Codex pode criar um código em mais de uma dúzia de linguagens de programação, incluindo: Go, JavaScript, Perl, PHP, Ruby, Shell, Swift e, TypeScript (embora seja mais eficaz em Python). De acordo com a VentureBeat, as demonstrações apresentadas pela OpenAI mostraram recursos impressionantes de resolução de correferência; foram capazes de criar um jogo de navegador em JavaScript e gerar gráficos de dados científicos usando matplotlib. A instituição mostrou que esta IA pode interagir com serviços e aplicativos como: Mailchimp, Microsoft Word, Spotify e, Google Calendar. A Microsoft está interessada em explorar os recursos do Codex.
Mais um exemplo, para criar um personagem no estilo Minecraft usando uma biblioteca que o Codex não conhece, basta descrever a biblioteca da API para a IA no prompt; neste exemplo o Codex deve usar a API Simulated Player do Minecraft (biblioteca typescript para controlar um personagem no jogo através de comandos: mover, conversar, olhar o inventário, criar itens, etc). Pode informar comandos específicos desta API para a IA usar e autocompletar o código no contexto:

### Hiperparâmetros

É possível ajustar o comportamento dos modelos com vários hiperparâmetros, como número de tokens e temperatura. O hiperparâmetro temperatureinfluencia como o modelo pode mudar a cada comando, mesmo sendo a mesmo comando, se definir como 0 a IA deve fornecer a mesma resposta a cada vez dentro da mesma sessão. O stop sequenceé útil para impedi-lo de gerar variações de código semelhante, basta definir a sequência de parada no comando/comentário na linguagem de programação desejada: por exemplo, #para Python e //para JavaScript.

## Problemas

Demonstrativos da OpenAI mostraram falhas como a ineficiência de códigos e peculiaridades pontuais em algumas amostras de códigos. Em uma entrevista com o The Verge, o diretor técnico da OpenAI, Greg Brockman, disse que "às vezes o Codex não sabe exatamente o que você está pedindo" e que isso pode exigir algumas tentativas e erros. Os pesquisadores da instituição descobriram que o Codex tem dificuldades com solicitações de alto nível e de várias etapas, muitas vezes falhando ou produzindo um comportamento contra-intuitivo.
Além disso, eles apontaram vários problemas de segurança, como excesso de confiança por parte de programadores novatos, preconceitos com base nos dados de treinamento e impactos na segurança devido a códigos vulneráveis. A VentureBeat afirmou que, como o Codex é formado por dados públicos, ele pode ser vulnerável a "envenenamento de dados" por meio de uploads intencionais de códigos maliciosos. De acordo com um estudo realizado por pesquisadores da Universidade de Nova Iorque aproximadamente 40% do código gerado pelo GitHub Copilot (que usa o Codex) em cenários relevantes para CWEs de alto risco incluíam falhas ou outras passíveis falhas de projeto.

### Direitos autorais

A Free Software Foundation expressou preocupação com o fato de que os trechos de código gerados pelo Copilot e pelo Codex poderiam violar os direitos autorais, em particular a condição da GPL que exige que os trabalhos secundários sejam licenciados sob termos semelhantes. As questões levantadas incluem se o treinamento em arquivos públicos se enquadra no uso justo ou não, como os desenvolvedores poderiam descobrir códigos gerados com violações, se os modelos de aprendizado de máquina poderiam ser considerados código-fonte modificável ou uma compilação de dados do treinamento e se os próprios modelos de aprendizado de máquina poderiam ser protegidos por direitos autorais e por quem. Um estudo interno do GitHub descobriu que aproximadamente 0,1% do código gerado continha cópias diretas dos dados de treinamento. Em um exemplo, o modelo gerou o código de dados de treinamento implementando o algoritmo da raiz quadrada inversa rápida, incluindo comentários e um aviso de direitos autorais incorreto. Em resposta, a OpenAI declarou que "a incerteza jurídica sobre as implicações de direitos autorais do treinamento de sistemas de IA impõe custos substanciais aos desenvolvedores de IA e, portanto, deve ser resolvida com propriedade". As questões de direitos autorais do Codex foram comparadas ao processo judicial Authors Guild, Inc. v. Google, Inc., no qual os juízes decidiram que o uso de trechos de texto de milhões de livros digitalizados pelo Google Livros constituía uso justo.