Passer au contenu principal
OpenAI

Nous avons entraîné un modèle capable d’interagir de manière conversationnelle. Son nom ? ChatGPT. Cette capacité à dialoguer permet à ChatGPT de répondre à des questions de suivi, de reconnaître ses erreurs, de souligner les informations incorrectes et de rejeter les demandes inappropriées.

ChatGPT est un modèle dérivé d’InstructGPT, qui a lui-même été entraîné pour suivre l’instruction d’un prompt et fournir une réponse détaillée.

Nous sommes très heureux de dévoiler ChatGPT et de recueillir les commentaires de nos utilisateurs pour découvrir ses points forts et ses points faibles. Dans sa version préliminaire, ChatGPT est gratuit. Essayez-le sans plus attendre sur chatgpt.com(ouverture dans une nouvelle fenêtre).

Exemples

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éthodes

Ce modèle a bénéficié d’un apprentissage par renforcement à partir de rétroaction humaine (RLHF). Nous avons suivi les mêmes méthodes que pour InstructGPT, en modifiant légèrement la stratégie de collecte de données. Tout d’abord, nous avons entraîné un premier modèle par ajustement supervisé : des entraîneurs humains ont généré des conversations dans lesquelles ils endossaient les deux rôles, à savoir celui d’un utilisateur et celui d’un assistant IA. Ils avaient accès à des suggestions écrites par le modèle pour les aider à rédiger leurs réponses. Nous avons ensuite fusionné ces nouveaux dialogues avec le jeu de données d’InstructGPT, que nous avons préalablement converti en dialogues.

Ensuite, pour créer un modèle de récompense permettant de procéder à l’apprentissage par renforcement, nous avions besoin de données de comparaison, à savoir au moins deux réponses du modèle, classées par ordre de qualité. Pour obtenir ces données, nous avons repris les conversations que les entraîneurs avaient eu avec le chatbot. Nous avons sélectionné au hasard un message écrit par le modèle, avons échantillonné plusieurs variantes de suites possibles et avons demandé aux entraîneurs d’IA de les classer. Ces modèles de récompense nous ont alors permis d’affiner le modèle selon une stratégie d’optimisation de la politique proximale. Nous avons répété ce processus à plusieurs reprises.

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

ChatGPT a été affiné à partir d’un modèle de la série GPT‑3.5 dont l’entraînement s’est terminé début 2022. Pour en savoir plus sur les modèles de la série 3.5, cliquez ici(ouverture dans une nouvelle fenêtre). ChatGPT et GPT‑3.5 ont été entraînés sur une infrastructure de supercalculateurs d’IA Azure.

Limites

  • ChatGPT propose parfois des réponses crédibles, mais qui sont en réalité fausses ou dénuées de sens. Il est difficile de résoudre ce problème. En effet, pendant l’entraînement par renforcement, aucune source de vérité n’a été utilisée. De plus, si nous entraînons le modèle de sorte à le rendre plus prudent, il préfère ensuite refuser de répondre à des questions qu’il est pourtant en mesure de traiter. Enfin, l’entraînement supervisé induit le modèle en erreur, car la réponse optimale ne dépend pas de ce que l’entraîneur humain sait, mais de ce que le modèle sait(ouverture dans une nouvelle fenêtre).
  • ChatGPT est sensible aux variations et répétitions des prompts. Par exemple, il peut affirmer ne pas connaître la réponse à une question, mais y répondre correctement une fois qu’elle a été légèrement reformulée.
  • Le modèle est généralement bien trop bavard et abuse de certaines expressions. Il répète ainsi souvent qu’il est un modèle de langage entraîné par OpenAI. Ces problèmes proviennent de biais dans les données d’entraînement (les entraîneurs préfèrent les réponses longues qui paraissent plus complètes) et de problèmes de sur-optimisation bien connus.1, 2
  • Dans l’idéal, le modèle devrait poser des questions pour clarifier les points ambigus de la demande de l’utilisateur. En réalité, nos modèles actuels se contentent généralement de deviner l’intention de l’utilisateur.
  • Nous avons fait en sorte que le modèle refuse de répondre aux demandes inappropriées, mais il peut parfois répondre aux instructions dangereuses ou se montrer biaisé. Nous utilisons l’API Moderation pour alerter certains types de contenus dangereux ou les bloquer, mais nous nous attendons à un certain nombre de faux positifs et faux négatifs dans les premiers temps. Nous avons hâte de recueillir les commentaires de nos utilisateurs pour continuer à améliorer ce système.

Déploiement progressif

Cette version préliminaire de ChatGPT marque la dernière étape du déploiement progressif par OpenAI de systèmes d’IA toujours plus sûrs et utiles. Cette version bénéficie de mécanismes de sécurité nés des nombreuses leçons que nous avons tirées de nos modèles précédents, comme GPT‑3 et Codex. Nous avons notamment considérablement réduit les sorties dangereuses et erronées grâce à l’apprentissage par renforcement à partir de rétroaction humaine.

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.

Comme nous l’avons mentionné précédemment, nous avons conscience que ce modèle reste sujet à de nombreuses limites ; nous prévoyons donc de le mettre à jour pour y remédier. Nous espérons qu’en rendant ChatGPT accessible, nos utilisateurs nous aiderons à repérer des problèmes dont nous n’avons pas encore connaissance.

Nous encourageons les utilisateurs à nous faire des commentaires sur les sorties problématiques du modèle via l’interface, ainsi que sur les faux positifs et faux négatifs du filtre externe, également accessible via l’interface. Nous sommes particulièrement intéressés par les sorties dangereuses susceptibles d’être générées dans des conditions réalistes, sans pièges, ainsi que les commentaires permettant de découvrir et comprendre des risques inédits et d’y apporter des solutions. Vous pouvez participer au concours de commentaires ChatGPT(ouverture dans une nouvelle fenêtre)3 pour tenter de remporter jusqu’à 500 $ en crédits d’API.A Pour participer, envoyez vos commentaires via le formulaire dont le lien est indiqué dans l’interface de ChatGPT.

Nous avons hâte de tirer les leçons de cette version pour déployer des systèmes plus puissants, comme à notre habitude.

Notes de bas de page

  1. A

    Concours sans obligation d’achat et sous réserve de conformité à la législation locale. Vous devez avoir au moins 18 ans pour pouvoir y participer. Pour en savoir plus, consultez le règlement officiel(ouverture dans une nouvelle fenêtre).

Références

  1. 1

    Stiennon, Nisan, et al. « Learning to summarize with human feedback(ouverture dans une nouvelle fenêtre) ». Advances in Neural Information Processing Systems 33 (2020) : 3008-3021.

  2. 2

    Leo Gao, John Schulman et Jacob Hilton. « Scaling Laws for Reward Model Overoptimization(ouverture dans une nouvelle fenêtre) ». arXiv preprint arXiv:2210.10760 (2022).

  3. 3

    L’idée de ce concours est en partie venue des travaux de Josh Kenway, Camille François, Sasha Costanza-Chock, Inioluwa Deborah Raji et Joy Buolamwini. Bug Bounties For Algorithmic Harms? Lessons from Cybersecurity Vulnerability Disclosure for Algorithmic Harms Discovery, Disclosure, and Redress. Washington, DC : Algorithmic Justice League. Janvier 2022. Disponible sur https://ajl.org/bugs(ouverture dans une nouvelle fenêtre). Vous pouvez également consulter les travaux de Miles Brundage, Shahar Avin, Jasmine Wang, Haydn Belfield, Gretchen Krueger, et al. « Toward Trustworthy AI Development: Mechanisms for Supporting Verifiable Claims », avril 2020. Disponible sur https://arxiv.org/abs/2004.07213(ouverture dans une nouvelle fenêtre). Un concours du même type a déjà été organisé par HackerOne. 2021b. « Twitter Algorithmic Bias ». HackerOne. https://hackerone.com/twitter-algorithmic-bias?type=team(ouverture dans une nouvelle fenêtre). Enfin, vous pouvez consulter les travaux menés à ce sujet par JB Rubinovitz, « Bias Bounty Programs as a Method of Combatting Bias in AI », août 2018. Disponible sur https://rubinovitz.com/2018/08/01/bias-bounty-programs-as-a-method-of-combatting(ouverture dans une nouvelle fenêtre).

Auteur

OpenAI

Remerciements

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