Entre em contato

Explorando o intérprete de código ChatGPT da OpenAI: um mergulho profundo em seus recursos

Engenharia imediata

Explorando o intérprete de código ChatGPT da OpenAI: um mergulho profundo em seus recursos

mm

Os avanços da OpenAI em Processamento de Linguagem Natural (PNL) são marcados pelo surgimento de Grandes Modelos de Linguagem (LLMs), que sustentam produtos utilizados por milhões de pessoas, incluindo o assistente de codificação GitHub Copilot e o mecanismo de busca Bing. Esses modelos, por meio de sua capacidade única de memorizar e amalgamar informações, estabeleceram padrões de referência incomparáveis ​​em tarefas como geração de código e texto.

Compreendendo o interpretador de código do ChatGPT

Para entender a importância do ChatGPT Code Interpreter, é essencial primeiro entender o que ele é e como foi criado.

Em essência, o Interpretador de Código ChatGPT aproveita os recursos do ChatGPT, mas apresenta uma proficiência aprimorada na compreensão, interpretação e até mesmo geração de código em uma infinidade de linguagens de programação. Esse recurso transforma o ChatGPT de um gerador de texto em uma ferramenta inestimável para desenvolvedores, auxiliando na compreensão do código, na depuração e até na geração do código.

Treinamento GPT para codificação: a abordagem do Codex

Ambos Copiloto do GitHub e Interpretador de código do ChatGPT utilizar o modelo de códice desenvolvido pela OpenAI.

Codex, um modelo de linguagem GPT especializado, é projetado para ter recursos proficientes de escrita de código Python. Treinado em código de fonte pública do GitHub, o Codex mostra seu potencial potencializando recursos no GitHub Copilot. Quando avaliado por sua capacidade de sintetizar programas a partir de docstrings, uma medida de correção funcional, o Codex supera ambos GPT-3 e GPT-J.

Uma observação marcante é que a amostragem repetida aumenta a proficiência do Codex. Quando até 100 amostras por problema são utilizadas, a taxa de sucesso do modelo aumenta para 70.2%. Essa eficiência sugere a possibilidade de usar a classificação heurística para selecionar amostras de código precisas, sem a necessidade de uma avaliação completa de cada uma.

Para avaliar suas capacidades, o modelo foi encarregado de criar funções Python autônomas baseadas exclusivamente em docstrings. A precisão do código gerado foi então avaliada por meio de testes unitários. Em um conjunto de dados composto por 164 problemas de programação originais, que incluem compreensão de linguagem, algoritmos e testes básicos de matemática, o Codex, com 12B parâmetros, resolveu 28.8% deles em uma única tentativa.

Dados de treinamento para o modelo Codex - intérprete de código chatgpt

Dados de treinamento para o modelo Codex: https://arxiv.org/abs/2107.03374

Ao aprimorar ainda mais o modelo por meio do ajuste fino das funções autônomas implementadas corretamente, sua eficiência foi aumentada, resultando na resolução do Codex-S 37.7% de desafios na primeira tentativa. No entanto, no domínio prático da programação, uma abordagem de tentativa e erro é comum. Imitando este cenário do mundo real, o modelo Codex-S, quando dado 100 chances, abordou com sucesso 77.5% dos desafios.

Chatgpt arquitetura ajustada

Modelos generativos como o ChatGPT, que produzem código, geralmente são avaliados comparando amostras geradas com uma solução de referência. Essa comparação pode ser exata ou empregar uma medida de similaridade, como a pontuação BLEU. No entanto, essas métricas baseadas em correspondências frequentemente não conseguem captar as nuances da codificação. Uma crítica fundamental ao BLEU é sua ineficácia em capturar as características semânticas do código.

Em vez de depender apenas da correspondência, uma medida mais relevante foi proposta: correção funcional. Isso significa que o código produzido pelo modelo deve passar por um determinado conjunto de testes de unidade. A ideia está alinhada com as práticas de codificação padrão, pois os desenvolvedores costumam usar testes de unidade para avaliar a eficácia e a precisão de seu código.

Essa métrica avalia não apenas a precisão, mas a usabilidade funcional do código gerado.

A passar@k A métrica é introduzida como uma medida de correção funcional. Basicamente, significa que se qualquer um dos “k” exemplos de código gerados passar nos testes de unidade, o problema será considerado resolvido. No entanto, em vez de apenas usar isso em sua forma direta, um estimador imparcial é usado para calcular pass@k para evitar alta variância.

Para avaliar as capacidades do código do ChatGPT, a pesquisa utilizou o Avaliação Humana conjunto de dados. Este conjunto de dados consiste em problemas Python escritos à mão, cada um acompanhado por testes de unidade.

Exemplo de conjunto de dados de treinamento de AI aberto do Chatgpt

https://github.com/openai/code-align-evals-data/blob/main/human_eval

Dados os riscos associados à execução de código desconhecido ou não confiável, um ambiente de sandbox foi projetado para testar o código gerado com segurança. Este ambiente utilizado gVisor para emular recursos e criar uma barreira entre o sistema host e o código em execução. Assim, mesmo que o modelo produza código malicioso, ele permanece contido e não pode prejudicar o host ou a rede.

Usando o interpretador de código ChatGPT

O ChatGPT da OpenAI passou por inúmeras evoluções, com o Code Interpreter se destacando como um recurso revolucionário no modelo GPT-4. Ao contrário das interfaces de bate-papo tradicionais, o Code Interpreter permite que os usuários mergulhem mais profundamente nas tarefas computacionais, combinando perfeitamente as linhas entre conversas humano-IA e processos computacionais.

Em sua essência, o Code Interpreter é semelhante a ter um computador embutido no chatbot. Esse recurso dinâmico oferece aos usuários espaço em disco temporário para carregar uma infinidade de formatos de arquivo, desde tipos comuns como TXT, PDF e JPEG até formatos mais especializados, como CPP, PY e SQLite. Essa amplitude de suporte amplia sua versatilidade em várias tarefas, seja no processamento de documentos ou na manipulação de imagens.

Operando dentro de uma estrutura robusta e segura, o Code Interpreter conta com mais de 300 bibliotecas pré-instaladas. Esse ambiente de sandbox garante segurança e, ao mesmo tempo, oferece um poder computacional substancial. Curiosamente, quando solicitado, ele cria um script Python em tempo real para executar a solicitação do usuário. Considere, por exemplo, a conversão de um PDF baseado em imagem para um formato pesquisável usando OCR; tudo o que o usuário precisa fazer é enviar o documento, e o ChatGPT cuida do resto.

Um ponto intrigante é o limite de tamanho de arquivo para uploads. Embora as especificações definitivas ainda não tenham sido anunciadas, experimentos com usuários sugerem que o sistema pode processar com eficiência arquivos consideravelmente maiores que 100 MB. Independentemente do tamanho, é crucial observar que esses arquivos são temporários, sendo descartados após o término da sessão de bate-papo.

O brilhantismo do Code Interpreter não reside apenas em sua capacidade técnica, mas também em sua acessibilidade. A OpenAI oferece esse recurso aos assinantes do ChatGPT Plus, que acompanha o modelo GPT-4. Portanto, essa ferramenta transformadora não é apenas para a elite tecnológica, mas está gradualmente se tornando acessível a um público mais amplo.

A distinção entre o modelo ChatGPT padrão e o Code Interpreter reside em seus paradigmas de interação. Enquanto o primeiro gera principalmente respostas textuais, o último compreende e executa o código, oferecendo resultados diretos. Isso não apenas o torna um ativo valioso para profissionais de tecnologia, mas também capacita aqueles sem conhecimento de codificação para executar tarefas computacionais complexas.

Os recursos do ChatGPT Code Interpreter podem revolucionar vários aspectos do desenvolvimento de software e da ciência de dados:

  • Geração de código automatizada: para aplicativos de software e scripts de análise de dados, dada uma descrição de alto nível, o sistema pode produzir estruturas padronizadas ou fragmentos de código complexos, acelerando os processos de desenvolvimento e análise de dados.
  • Revisões de código e validação de dados: ferramentas orientadas por IA, como o ChatGPT, podem ajudar a melhorar a qualidade e a segurança das bases de código de software. Além disso, no campo da ciência de dados, essas ferramentas podem ser úteis na revisão e validação de scripts de processamento e transformação de dados, garantindo precisão e eficiência.
  • Assistência de análise de dados: para cientistas de dados, o interpretador de código ChatGPT pode ajudar na geração de código para exploração preliminar de dados, visualização e até mesmo testes estatísticos básicos, facilitando assim o fluxo de trabalho de análise de dados.

Se você estiver interessado em descobrir mais sobre as complexidades do ChatGPT e da engenharia rápida, a Unite AI oferece uma análise abrangente em 'ChatGPT: Engenharia de Prompt Avançada'.

Configurando o interpretador de código ChatGPT

A integração do Code Interpreter permite que a plataforma interprete as consultas do usuário, execute-as como código Python e exiba os resultados em um formato de bate-papo interativo. Para acessar esse recurso, os usuários podem navegar até o ChatGPT configurações, explore a seção de recursos beta e ative o interpretador de código.

O que o diferencia é o seu mecanismo transparente. À medida que os usuários solicitam uma tarefa, a plataforma revela cada etapa da jornada de processamento, oferecendo clareza sobre como os comandos são interpretados e executados. É importante ressaltar que, por motivos de privacidade e segurança, o Code Interpreter opera sem nenhuma conexão com a Internet.

Explorando os benefícios do intérprete de código ChatGPT

Visualização de dados & Análise

O ChatGPT vai além do escopo dos gráficos tradicionais, oferecendo representações gráficas convencionais e inovadoras. Isso garante que os usuários possam visualizar seus dados em formatos que fornecem os insights mais significativos.

No entanto, não se trata apenas de visualizar dados brutos. O modelo ChatGPT é especialista em processar e refinar dados. Embora poderoso, os usuários devem ter cautela.

Analistas financeiros acharão a capacidade do Code Interpreter de analisar e visualizar cotações de ações particularmente útil. Por meio da integração perfeita, os usuários podem carregar conjuntos de dados e visualizá-los em diversos formatos. A importância dessa função fica evidente quando os indivíduos conseguem realizar análises de dados complexas.

O vídeo abaixo demonstra como o interpretador de código do ChatGPT criou um abrangente TSLA análise de estoque.

Principais lições:

  • As ações da Tesla enfrentaram volatilidade, mas também mostraram resiliência em períodos de crescimento.
  • Altos volumes de negociação em dias específicos indicam interesse significativo do mercado ou reações a eventos importantes.
  • O retorno acumulado no ano (YTD) decrescente sugere que os investidores devem analisar os fatores internos da empresa e as condições externas do mercado ao considerar investimentos futuros.

Implementação de Visão Computacional e OCR

A detecção de rostos, uma função essencial na visão computacional, foi abordada com uma técnica clássica: o Classificador Haar Cascade da OpenCV.

A imagem abaixo mostra a utilização do clássico classificador Haar Cascade.

O processo de extração de texto de imagens, conhecido como reconhecimento óptico de caracteres (OCR), foi realizado de forma transparente usando o Tesseract, com o texto posteriormente estruturado por GPT-4, aumentando a compreensão.

No vídeo a seguir, veja como o Tesseract (OCR) extrai texto de uma imagem de certificado.

O Code Interpreter se destaca no domínio da manipulação de vídeo, áudio e imagem. Com comandos diretos, os usuários podem obter edições detalhadas, como converter GIFs em MP4s com aprimoramentos específicos. Basta carregar seu arquivo, inserir as modificações desejadas e observar a mágica acontecer.

Biblioteca externa Python dentro do seu interpretador de código ChatGPT

O ChatGPT Code Interpreter é uma plataforma de programação dinâmica equipada com um amplo conjunto de bibliotecas Python. Elas abrangem desde visualização de dados com o Seaborn até aprendizado de máquina avançado com o Torch. Mas é mais do que um kit de ferramentas estático.

Inspirado por isso página chatgpt de Korakot Chaovavanich.

Começando com o mais recente lançamento do nltk, carregamos um arquivo .whl no Interpretador. Em seguida, instruímos o ChatGPT a localizar o diretório site-packages adequado, analisando a localização de um pacote existente. O próximo passo envolveu descompactar o arquivo wheel em um local temporário e mover os arquivos para o diretório site-packages identificado. No entanto, isso encontrou um problema.

Buscando uma solução alternativa, solicitamos: “Por favor, certifique-se de que o NLTK seja instalado no ambiente Python e esteja acessível após a instalação”.

O ChatGPT respondeu, apresentando uma solução. Ele sugeriu adicionar o diretório temporário a sys.path, permitindo que o Python identificasse e extraísse os módulos do pacote nltk descompactado dentro desse local. Essa tática fez maravilhas, levando à instalação bem-sucedida do NLTK.

Com o uso de arquivos .whl, a instalação demonstrou uma mistura de engenhosidade e adaptabilidade. O Interpretador de Código ChatGPT, apesar dos desafios iniciais, demonstrou sua versatilidade e comprometimento em atender às necessidades dos programadores, garantindo tanto a novatos quanto a veteranos uma experiência de codificação refinada.

instalando bibliotecas personalizadas no interpretador de código chatgpt

Em uma demonstração fascinante das capacidades do intérprete, um tweet recente de @DominikPeters destacou uma demonstração única. Peters solicitou ao GPT-4 a geração de um quiz sobre os distritos de Paris, e o modelo gerou um site funcional. O quiz funcional está disponível para uma experiência prática em dominik-peters.de/gpt-arrondissement-quiz/.

Resumindo

O avanço da OpenAI com o interpretador de código ChatGPT é transformador para programadores e não programadores. Sua versatilidade em lidar com uma ampla gama de tarefas — desde auxiliar desenvolvedores na depuração até produzir quizzes parisienses sem esforço — é uma prova do potencial ilimitado da IA ​​para aprimorar nossas experiências digitais. Aqui está um resumo da nossa análise aprofundada:

Entenda sua ferramenta: Assim como você faria amizade com um colega, conheça o Code Interpreter. Ele foi desenvolvido com base no Codex, que foi aprimorado a partir do GPT-4. Sua proficiência abrange diversas linguagens de programação, tornando-o um companheiro ideal para todas as suas aventuras de programação.

Abrace a revolução da IA: As práticas de codificação tradicionais estão prestes a sofrer uma mudança sísmica. Com ferramentas orientadas por IA, como o ChatGPT Code Interpreter, tarefas como identificação de bugs, geração de código e até revisões de código podem ser agilizadas.

Além do Código Justo: A incursão do Interpretador não se restringe a texto ou código. Sua capacidade de lidar com vários formatos de arquivo, desde simples arquivos TXT até scripts PY complexos, ressalta sua utilidade em diversos domínios.

Nunca pare de experimentar: Nossa exploração com a instalação da biblioteca NLTK reflete a importância da persistência e da adaptabilidade, valores que o Interpretador de Código incorpora. Se houver um problema, geralmente há uma maneira de contorná-lo.

Junte-se à conversa de IA: Aplicações do mundo real, conforme demonstrado pelo questionário dos arrondissements de Paris, destacam a imensa utilidade da ferramenta no mundo real. Abrace-o, explore-o e deixe-o ampliar seus projetos.

O vídeo acima é feito usando Geração 2 e Meio da jornada.

Resumindo, o Interpretador de Código ChatGPT é mais do que apenas uma ferramenta; ele está mudando a maneira como nos conectamos com a tecnologia. Tanto para inovadores quanto para entusiastas, ele promete um mundo repleto de potencial de codificação.

Passei os últimos cinco anos mergulhando no fascinante mundo do Machine Learning e Deep Learning. Minha paixão e experiência me levaram a contribuir para mais de 50 projetos diversos de engenharia de software, com foco particular em AI/ML. Minha curiosidade contínua também me atraiu para o Processamento de Linguagem Natural, um campo que estou ansioso para explorar mais.