Pular para o conteúdo principal
OpenAI
Carregando…

Treinamos um modelo chamado ChatGPT, pensado para interagir com usuários dentro de um formato de conversa. Dessa forma, o ChatGPT consegue responder perguntas de acompanhamento, reconhecer ocasiões em que errou, esclarecer premissas incorretas e até recusar solicitações impróprias.

O ChatGPT é um modelo irmão do InstructGPT, que foi treinado para seguir a instrução de um prompt e oferecer uma resposta detalhada.

É com muita alegria que apresentamos o ChatGPT. Nosso objetivo agora é receber feedback dos usuários e entender quais são os pontos fortes e fracos do modelo. Durante essa prévia de investigação, o uso do ChatGPT é gratuito. Experimente agora em chagpt.com(abre em uma nova janela).

Amostras

User
this code is not working like i expect — how do i fix it?
resultWorkerErr := make(chan error) defer close(resultWorkerErr) go func() { defer cancel() resultWorkerErr <- b.resultWorker(ctx) }() err := b.worker(ctx) cancel() if err == nil { return <-resultWorkerErr } return multierror.Append(err, <-resultWorkerErr)
ChatGPT
It’s difficult to say what’s wrong with the code without more context. Can you provide more information about what the code is supposed to do and what isn’t working as expected? Also, is this the entire code or just a part of it?
User
just part of it — the error never surfaces. I think there is something wrong with the channel
ChatGPT
It’s difficult to say without more information about what the code is supposed to do and what’s happening when it’s executed. One potential issue with the code you provided is that the resultWorkerErr channel is never closed, which means that the code could potentially hang if the resultWorkerErr channel is never written to. This could happen if b.resultWorker never returns an error or if it’s canceled before it has a chance to return an error.
To fix this issue, you could close the resultWorkerErr channel after writing to it. For example, you could add the following line of code after the line that sends the error on the channel:
close(resultworkerErr)
This would ensure that the resultWorkerErr channel is always closed, even if b.resultWorker never returns an error. Again, it’s difficult to say whether this is the issue you’re experiencing without more information about the problem you’re seeing. Can you provide more details about what’s happening when you run the code?

Métodos

Treinamos este modelo com Aprendizagem por Reforço com Feedback Humano (RLHF) e usamos os mesmos métodos aplicados no InstructGPT, com pequenas diferenças na configuração de coleta de dados. Para o modelo inicial, o treinamento fez uso de um ajuste fino supervisionado. Nele, treinadores humanos de IA criavam conversas nas quais interpretavam os dois lados: o usuário e o assistente em IA. Oferecemos aos treinadores as sugestões escritas pelo modelo, até para ajudá-los a compor suas respostas. Depois, misturamos esse novo conjunto de dados de diálogos com o conjunto de dados do InstructGPT, que por sua vez foi transformado em formato de diálogo.

Para criar um modelo de recompensas para aprendizagem por reforço, era preciso coletar dados comparativos, elencando duas ou mais respostas do modelo de acordo com parâmetros de qualidade. Para coletar esses dados, usamos as conversas entre os treinadores de IA e o chatbot. Selecionamos aleatoriamente uma mensagem escrita pelo modelo, testamos várias opções possíveis de conclusão e pedimos para que os treinadores classificassem cada uma delas. Com esses modelos de recompensa, ajustamos o modelo final com a otimização da política proximal (PPO). O processo foi repetido diversas vezes.

Diagram showing the three-step methodology behind the training of ChatGPT.

O ChatGPT recebeu seu ajuste fino a partir de um modelo da série GPT‑3.5, que foi treinado no início de 2022. Saiba mais sobre a série 3.5 aqui(abre em uma nova janela). Já o chatGPT e o GPT‑3.5 foram treinados numa infraestrutura de supercomputação da Azure.

Limitações

  • Às vezes, o ChatGPT escreve respostas que têm um formato plausível, mas são incorretas ou não fazem sentido. É complicado corrigir esse problema, porque: (1) no momento, não existe uma fonte de verdade durante o treinamento de aprendizagem por reforço; (2) treinar o modelo para ser mais cauteloso faz com que ele recuse perguntas que sabe responder corretamente; e (3) o treinamento supervisionado desorienta o modelo, porque a resposta ideal depende daquilo que o modelo sabe(abre em uma nova janela) — e não do que o demonstrador humano sabe.
  • O ChatGPT responde a ajustes na formulação da pergunta e até mesmo à repetição da mesma pergunta. Por exemplo: se a pergunta for formulada de um jeito, o modelo pode dizer que não sabe a resposta, mas pode responder corretamente após uma pequena reformulação.
  • O modelo muitas vezes é prolixo e repete certas expressões, como por exemplo a afirmação de que é um modelo de linguagem treinado pela OpenAI. Esses problemas são resultado de enviesamento dos dados de treinamento (os treinadores preferem respostas mais longas, que parecem mais completas) e outros problemas conhecidos de hiperotimização.1, 2
  • Idealmente, o modelo deveria fazer perguntas para esclarecer a dúvida do usuário, sobretudo quando o prompt for ambíguo. Só que os modelos atuais geralmente tentam adivinhar a intenção do usuário.
  • Tentamos fazer o modelo recusar solicitações impróprias, mas às vezes ele responde a instruções prejudiciais ou apresenta um comportamento enviesado. Estamos usando a API Moderadora para alertar ou bloquear certos tipos de conteúdos indesejados, mas por enquanto é esperado que haja alguns falsos negativos e positivos. Queremos muito receber feedback de usuários para ajudar nosso trabalho de aprimoramento do sistema.

Implementação com iteração

A versão atual para pesquisa do ChatGPT é a novidade mais recente da implementação por iteração da OpenAI, que visa criar sistemas de IA cada vez mais seguros e úteis. Aprendemos muitas lições com os modelos anteriores, como o GPT‑3 e o Codex. Foram essas lições que guiaram as mitigações de segurança desta versão, incluindo a redução significativa de resultados falsos ou prejudiciais através da aprendizagem por reforço a partir de feedback humano (RLHF).

User
Tell me about when Christopher Columbus came to the US in 2015
ChatGPT
This question is a bit tricky because Christopher Columbus died in 1506, so he could not have come to the US in 2015. But let’s pretend for a moment that he did!
If Columbus arrived in the US in 2015, he would likely be very surprised at the changes that have occurred since he first landed in the “New World” in 1492. For one, he would probably be shocked to find out that the land he “discovered” was actually already inhabited by Native Americans, and that now the United States is a multicultural nation with people from all over the world. He would likely also be amazed by the advances in technology, from the skyscrapers in our cities to the smartphones in our pockets. Lastly, he might be surprised to find out that many people don’t view him as a hero anymore; in fact, some people argue that he was a brutal conqueror who enslaved and killed native people. All in all, it would be a very different experience for Columbus than the one he had over 500 years ago.
InstructGPT
Christopher Columbus came to the US in 2015 and he was very excited to be here. He had always wanted to visit the US and he was very curious about our country. He was very impressed with our country and he enjoyed his time here.

Sabemos que ainda há muitas limitações, como discutido acima, e o plano é fazer atualizações regulares do modelo para melhorar essas questões. Mas também esperamos receber feedback dos usuários sobre questões que ainda não conhecemos, sobretudo depois de fornecermos uma interface acessível ao ChatGPT.

O feedback de usuários sobre resultados problemáticos dos modelos é sempre bem-vindo e pode acontecer na própria interface, assim como comentários sobre falsos positivos ou negativos. Estes últimos podem ser enviados através do filtro de conteúdo externo, que também faz parte da interface. Temos especial interesse em feedback sobre resultados prejudiciais que possam ocorrer nas situações do mundo real e sem más intenções, além de qualquer comentário que nos ajude a descobrir e entender novos riscos e possíveis mitigações. Você pode participar do Concurso de Feedback do ChatGPT(abre em uma nova janela)3 para concorrer a até US$ 500 em créditos de API.A As entradas podem ser enviadas pelo formulário de feedback vinculado à interface do ChatGPT.

Será um prazer aplicar os aprendizados desta versão à implementação de sistemas mais capazes. Afinal, foram as versões anteriores que melhoraram esta.

Notas de rodapé

  1. A

    Não é necessário comprar, nulo onde houver proibição. É preciso ter pelo menos 18 anos para participar. Veja os detalhes do concurso nas Regras oficiais(abre em uma nova janela).

Referências

  1. 1

    Stiennon, Nisan, et al. “Learning to summarize with human feedback(abre em uma nova janela).” Advances in Neural Information Processing Systems 33 (2020): 3008-3021.

  2. 2

    Gao, Leo, John Schulman e Jacob Hilton. “Scaling Laws for Reward Model Overoptimization(abre em uma nova janela).” arXiv preprint arXiv:2210.10760 (2022).

  3. 3

    A inspiração para este concurso deve-se em parte a trabalhos de Kenway, Josh, Camille François, Sasha Costanza-Chock, Inioluwa Deborah Raji e Joy Buolamwini. Bug Bounties For Algorithmic Harms? Lessons from Cybersecurity Vulnerability Disclosure for Algorithmic Harms Discovery, Disclosure, and Redress. Washington, DC: Algorithmic Justice League. Janeiro de 2022. Disponível em https://ajl.org/bugs(abre em uma nova janela). Consulte também o trabalho de Brundage, Miles, Avin, Shahar, Wang, Jasmine, Belfield, Haydn e Gretchen Krueger et al. “Toward Trustworthy AI Development: Mechanisms for Supporting Verifiable Claims,” abril de 2020. Disponível em https://arxiv.org/abs/2004.07213(abre em uma nova janela). Veja uma versão anterior deste concurso na HackerOne. 2021b. “Twitter Algorithmic Bias.” HackerOne. https://hackerone.com/twitter-algorithmic-bias?type=team(abre em uma nova janela). Finalmente, consulte trabalhos anteriores publicados sobre este tópico por Rubinovitz, JB, “Bias Bounty Programs as a Method of Combatting Bias in AI,” agosto de 2018. Disponível em https://rubinovitz.com/2018/08/01/bias-bounty-programs-as-a-method-of-combatting(abre em uma nova janela).

Autor

OpenAI

Agradecimentos

John Schulman, Barret Zoph, Christina Kim, Jacob Hilton, Jacob Menick, Jiayi Weng, Juan Felipe Ceron Uribe, Liam Fedus, Luke Metz, Michael Pokorny, Rapha Gontijo Lopes, Shengjia Zhao, Arun Vijayvergiya, Eric Sigler, Adam Perelman, Chelsea Voss, Mike Heaton, Joel Parish, Dave Cummings, Rajeev Nayak, Valerie Balcom, David Schnurr, Tomer Kaftan, Chris Hallacy, Nicholas Turley, Noah Deutsch, Vik Goel, Jonathan Ward, Aris Konstantinidis, Wojciech Zaremba, Long Ouyang, Leonard Bogdonoff, Joshua Gross, David Medina, Sarah Yoo, Teddy Lee, Ryan Lowe, Dan Mossing, Joost Huizinga, Roger Jiang, Carroll Wainwright, Diogo Almeida, Steph Lin, Marvin Zhang, Kai Xiao, Katarina Slama, Steven Bills, Alex Gray, Jan Leike, Jakub Pachocki, Phil Tillet, Shantanu Jain, Greg Brockman, Nick Ryder, Alex Paino, Qiming Yuan, Clemens Winter, Ben Wang, Mo Bavarian, Igor Babuschkin, Szymon Sidor, Ingmar Kanitscheider, Mikhail Pavlov, Matthias Plappert, Nik Tezak, Heewoo Jun, William Zhuk, Vitchyr Pong, Lukasz Kaiser, Jerry Tworek, Andrew Carr, Lilian Weng, Sandhini Agarwal, Karl Cobbe, Vineet Kosaraju, Alethea Power, Stanislas Polu, Jesse Han, Raul Puri, Shawn Jain, Benjamin Chess, Christian Gibson, Oleg Boiko, Emy Parparita, Amin Tootoonchian, Kyle Kosic, Christopher Hesse