Luka: Olá a todos e bem-vindos de volta.
Neste vídeo,
falaremos sobre o ChatGPT e como
usá-lo para implementar o mesmo algoritmo para Doom
que usaremos no curso, o Q-learning
profundo convolucional.
Portanto, nos próximos
minutos, vamos explicar como eu apontei e pedi ao ChatGPT
para obtermos nosso modelo.
Então, deixe-me ajudá-lo a entender como eu fiz isso
e por que fiz determinados prompts da maneira que fiz.
Portanto, a solicitação inicial foi muito bem elaborada de minha parte.
Eu disse: "Você é
um especialista sênior em aprendizado de máquina"
com anos de experiência trabalhando em projetos
"aplicando aprendizado de máquina a simulações e robótica". Essa é a primeira parte, preparando o cenário, dando-lhes
um papel.
Portanto, basicamente, o espaço vetorial de todo
o ChatGPT será mais solicitado em tópicos de aprendizado de máquina.
Agora, quero incluir em meu contexto o Doom.
E, na verdade, como chegar a esse ponto, eu disse: "Ok, contratei
você para me ajudar a implementar
um algoritmo Convolutional Deep
Q-Learning para o ambiente Doom.
"O objetivo é ter "um algoritmo de aprendizado
de reforço totalmente
funcional" que possa jogar Doom, um ambiente de jogo.
"Implementei classes "para experience_replay e processamento
de memória e imagem.
"Eu lhe fornecerei isso para que você possa incorporá-lo
ao código final.
Isso é muito importante, o que a maioria das pessoas não percebe.
Você precisa ter alguma forma de informar
a ele, ou ao ChatGPT, que você já tem algo e que deseja
usar esse código na implementação
final.
Portanto, se eu não fornecer isso como um contexto, ele gerará
algum código, alguma implementação de Q-learning
profundo convolucional que não considerará
o uso de experience_replay e nossa função de processamento
de imagem, mas queremos isso.
Então, continuo
dizendo: "Sua meta é implementar a solução
completa usando Python, "Torch for model", e otimizar o código
a ser executado no Google Colab "para que os alunos
que estiverem usando o código "possam executar aqueles com computadores não
tão potentes. Isso basicamente
informa ao ChatGPT qual é o formato da solução
final que você gostaria de ter.
E, por fim, "faça perguntas de esclarecimento,
se necessário" fornecerá mais contexto.
E, "Eh, se você não sabe, "se você não tem contexto suficiente,
por favor, me pergunte. E, por fim, perguntou: "Entendeu? Eu queria confirmar se ele conseguiu.
Essa é uma maneira inteligente de permitir que ele reflita
sobre isso e não vá estritamente para gerar os próximos prompts, as próximas respostas.
Se você não fizer isso,
se não perguntar "Entendeu? " ou "Clear? ou "Do you understand? " ou algo do gênero, ele
ignorará completamente algumas
das partes e começará a gerar.
Como você tem o limite de quantos
tokens tem nas perguntas
e na resposta, gostaria de quebrá-lo para
obter uma atualização da quantidade de tokens que pode gerar.
Portanto, a primeira resposta
é: "Eu entendi a tarefa.
"Vou fazer exatamente o que estou pedindo.
"Mas antes de prosseguir, tenho algumas perguntas. E foi aí que esse "se você tiver alguma dúvida, pergunte-me"
me fez perguntas muito boas.
Em primeiro lugar, você tem um ambiente personalizado
ou usa algo que já existe?
Portanto, OpenAI, VizDoom e coisas do gênero.
Em seguida, passamos a uma questão mais específica,
como: há alguma métrica de desempenho específica que você gostaria que
eu acompanhasse?
Existem requisitos para o modelo em si?
Quais versões do Python e do PyTorch?
E, por fim, há alguma restrição específica
quanto ao prazo?
Isso se refere principalmente aos planos
de negócios em que ele foi treinado,
mas para ele, por exemplo, isso não é realmente relevante, mas tudo bem.
Eu forneci: "Sim, usarei o OpenAI Gym, e aqui está
como carregá-lo". Isso é do curso.
Eu disse: ok, siga a recompensa média, sem
requisitos específicos, seja criativo desde que funcione,
use os modelos ou versões mais recentes
das bibliotecas e qual é o prazo.
Acabei de escrever "ASAP".
Além disso, aqui estão as aulas que mencionei.
Então, apenas colei as aulas que temos no curso.
Portanto, a reprodução
de experiências, tudo e, por fim, a memória de reprodução,
o processamento de imagens, e é isso.
Com isso, criei o contexto, e agora
ele começou a ser gerado.
Assim, ele gerou o código.
Basicamente, ele começou com o pré-processamento
da imagem e, em seguida, criou a rede Q profunda, que
é bastante semelhante à que temos.
Em seguida, ele começou
inicializando isso e, depois, treinando o código.
Até agora, tudo funcionou, mas depois ele quebra aqui.
Se você quiser continuar
a gerar algo mais longo, basta escrever "continue".
E ele dizia: "Continue? Sim, com certeza. Ele continua gerando e, pronto,
temos o código completo.
Incrível.
Ele informava como usá-lo,
a frequência, o que mudar e coisas do gênero.
Ele também me ajudou com isso.
E deixe-me levá-lo ao meu Google Colab.
Então, comecei colando o código aqui,
colando nossa função de pré-processamento.
Em um segundo momento, falarei sobre as alterações nessa função de pré-processamento.
Em seguida, colei esse replay da experiência, algumas
das instalações do meu lado.
Explicaremos isso em um segundo momento.
Eu brinquei com sua rede Q profunda e com o código de treinamento.
Portanto, definitivamente há maneiras de melhorar isso.
Especialmente se você tiver um ambiente local, isso funcionará.
Se você estiver usando isso no Google Colab, ele poderá falhar.
Então, deixe-me levá-lo a isso.
Então, fiz isso e recebi um erro.
Eu disse: "Ei, meu código inicial que ele forneceu não funcionou.
Acabei de colar o código,
essa mensagem de erro e a seguinte frase: "I can't resize an images. E se você der uma olhada no nosso código do curso, ele requer o redimensionamento
da imagem com isso.
Mas a versão mais recente do SciPy está removendo isso.
Então, ele disse: "Ah, sim", parece que isso pode ter
sido removido. "Aqui está a nova versão com o Pillow.
E, na verdade, isso não era necessário.
Basicamente, ele reescreveu toda a classe de
pré-processamento de imagens com o Pillow em vez do SciPy.
Então, eu o usei e, na verdade, está funcionando.
E então eu disse: "Ok, tenho um problema com o Environment
usando o Google Colab.
"Como resolver isso? Esse é o erro. E ele disse: "Ah, sim, peça desculpas.
"Parece que esse ambiente específico não está funcionando.
"Aqui está o que você deve fazer.
"Basicamente, você instala e faz isso. Recebi um erro, outro erro.
E esse erro realmente indicava
que a renderização não foi encontrada nessa versão específica.
E ele dizia: "Ok, instale esta versão. Eu disse. Outro erro.
E ele dizia: "Ah, sim, sim, "o Google Colab não oferece suporte a renderização,
bibliotecas OpenGL", o
que significa, para nós, que precisamos fazer, em vez do Google
Colab, outra coisa para fins
de visualização.
Basicamente, ele me deu uma orientação passo a passo
sobre o que fazer,
como mudar isso e coisas do gênero.
E se você fizer isso localmente, resolverá o problema.
Mas agora estamos basicamente
ensinando a você como usar corretamente o ChatGPT.
Por exemplo, aqui mesmo, você viu que recebi alguns erros, que fiz uma solicitação
com esses erros e assim por diante.
E agora você tem,
por exemplo, se rolar para trás, um código totalmente funcional
com uma rede Q profunda, com um
código de treinamento,
e você pode pedir que ele gere um código de teste,
e ele o fará.
Incrível, não é?
Então é isso.
Veja como usar o ChatGPT para resolver o Q profundo, ou rede
Q profunda convolucional para o Doom.
Obrigado. Aproveite o curso!