Sari la conținutul principal
OpenAI

Am antrenat un model numit ChatGPT care interacționează într-un mod conversațional. Formatul de dialog face posibil ca ChatGPT să răspundă la întrebări ulterioare, să-și recunoască greșelile, să conteste premisele incorecte și să respingă solicitările nepotrivite.

ChatGPT este un model înrudit cu InstructGPT, care este antrenat să urmeze o instrucțiune dintr-o solicitare și să ofere un răspuns detaliat.

Suntem încântați să introducem ChatGPT pentru a obține feedback de la utilizatori și a învăța despre punctele sale forte și slabe. În perioada de previzualizare în scopuri de cercetare, utilizarea ChatGPT este gratuită. Încearcă-l acum pe chatgpt.com(se deschide într-o fereastră nouă).

Exemple

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?

Metode

Am instruit acest model folosind învățarea prin consolidare cu feedback uman (RLHF), utilizând aceleași metode ca și InstructGPT, dar cu mici diferențe în configurarea colectării datelor. Am instruit un model inițial folosind reglarea fină supervizată: instructori umani AI au oferit conversații în care au interpretat ambele roluri, utilizatorul și un asistent AI. Le-am oferit instructorilor acces la sugestii generate de model pentru a-i ajuta să-și compună răspunsurile. Am combinat acest nou set de date de dialog cu setul de date InstructGPT, pe care l-am transformat într-un format de dialog.

Pentru a crea un model de recompensă pentru învățare prin consolidare, a trebuit să colectăm date comparative, care constau în două sau mai multe răspunsuri ale modelului clasificate după calitate. Pentru a colecta aceste date, am preluat conversațiile pe care instructorii de inteligență artificială le-au avut cu chatbotul. Am selectat aleatoriu un mesaj scris pe baza unui model, am eșantionat mai multe variante de completare și le-am cerut instructorilor de inteligență artificială să le clasifice. Aceste modele de recompensă ne-au permis apoi să rafinăm modelul conform unei strategii de optimizare a politicii proximale. Am efectuat mai multe iterații ale acestui proces.

Diagrama care arată metodologia în trei pași care stă la baza instruirii ChatGPT.

ChatGPT este reglat fin dintr-un model din seria GPT‑3.5, care a terminat instruirea la începutul anului 2022. Poți afla mai multe despre seria 3.5 aici(se deschide într-o fereastră nouă). ChatGPT și GPT‑3.5 au fost instruite pe o infrastructură de supercalculatoare Azure AI.

Limitări

  • ChatGPT scrie uneori răspunsuri care par plauzibile, dar sunt incorecte sau lipsite de sens. Rezolvarea acestei probleme este dificilă, deoarece: (1) în timpul instruirii RL, nu există în prezent o sursă de adevăr; (2) instruirea modelului pentru a fi mai precaut îl face să refuze întrebările la care poate răspunde corect; și (3) instruirea supravegheată induce în eroare modelul, deoarece răspunsul ideal depinde de ceea ce știe modelul(se deschide într-o fereastră nouă), mai degrabă decât de ceea ce știe asistentul uman.
  • ChatGPT este sensibil la modificări ale frazelor de intrare sau la încercarea de mai multe ori a aceleiași solicitări. De exemplu, având în vedere o anumită formulare a unei întrebări, modelul poate pretinde că nu știe răspunsul, dar, în cazul unei ușoare reformulări, poate răspunde corect.
  • Modelul este adesea excesiv de prolific și folosește în exces anumite fraze, cum ar fi repetarea faptului că este un model lingvistic instruit de OpenAI. Aceste probleme apar din cauza prejudecăților din datele de instruire (instructorii preferă răspunsuri mai lungi care par mai cuprinzătoare) și a problemelor bine cunoscute de supraoptimizare.1, 2
  • La modul ideal, modelul ar pune întrebări de clarificare atunci când utilizatorul furnizează o interogare ambiguă. În schimb, modelele noastre actuale ghicesc de obicei ce a intenționat utilizatorul.
  • Deși am depus eforturi pentru ca modelul să refuze cererile nepotrivite, uneori va răspunde la instrucțiuni dăunătoare sau va manifesta un comportament părtinitor. Folosim API-ul de moderare pentru a avertiza sau bloca anumite tipuri de conținut nesigur, dar ne așteptăm să aibă unele rezultate fals negative și fals pozitive deocamdată. Suntem nerăbdători să colectăm feedback de la utilizatori pentru a ne ajuta în munca noastră continuă de a îmbunătăți acest sistem.

Implementare iterativă

Această versiune preliminară a ChatGPT marchează cel mai recent pas în implementarea treptată de către OpenAI a unor sisteme de inteligență artificială din ce în ce mai sigure și mai utile. Această versiune beneficiază de mecanisme de siguranță derivate din numeroasele lecții pe care le-am învățat din modelele noastre anterioare, cum ar fi GPT‑3 și Codex. În special, am redus semnificativ ieșirile periculoase și eronate prin învățarea prin consolidare bazată pe feedback uman (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.

Știm că mai există multe limitări, așa cum s-a discutat mai sus, și avem în plan să facem actualizări regulate ale modelului pentru a îmbunătăți aceste aspecte. Dar sperăm, de asemenea, că, oferind o interfață accesibilă pentru ChatGPT, vom obține feedback valoros de la utilizatori cu privire la probleme de care nu suntem deocamdată conștienți.

Utilizatorii sunt încurajați să ofere feedback despre ieșirile problematice ale modelului prin interfața de utilizare, precum și despre rezultatele fals pozitive/negative ale filtrului de conținut extern, care este, de asemenea, parte a interfeței. Suntem deosebit de interesați de feedback-ul referitor la ieșirile dăunătoare care ar putea apărea în condiții reale, non-conflictuale, precum și de feedback-ul care ne ajută să descoperim și să înțelegem riscuri noi și posibile măsuri de atenuare. Poți alege să participi la concursul de feedback ChatGPT(se deschide într-o fereastră nouă)3 pentru o șansă de a câștiga până la 500 USD în credite API.A Înscrierile pot fi trimise prin intermediul formularului de feedback accesibil din interfața ChatGPT.

Suntem încântați să aplicăm lecțiile din această versiune în implementarea unor sisteme mai performante, așa cum implementările anterioare au influențat-o pe aceasta.

Note de subsol

  1. A

    Nu este necesară nicio achiziție, nul acolo unde este interzis. Trebuie să ai cel puțin 18 ani pentru a participa. Pentru detalii despre concurs, vezi Regulamentul oficial(se deschide într-o fereastră nouă).

Referințe

  1. 1

    Stiennon, Nisan și col. „Learning to summarize with human feedback(se deschide într-o fereastră nouă).” Advances in Neural Information Processing Systems 33 (2020): 3008-3021.

  2. 2

    Gao, Leo, John Schulman și Jacob Hilton. „Scaling Laws for Reward Model Overoptimization(se deschide într-o fereastră nouă).” arXiv preprint arXiv:2210.10760 (2022).

  3. 3

    Inspirația pentru acest concurs provine parțial din lucrarea lui Kenway, Josh, Camille François, Sasha Costanza-Chock, Inioluwa Deborah Raji și Joy Buolamwini. Bug Bounties For Algorithmic Harms? Lessons from Cybersecurity Vulnerability Disclosure for Algorithmic Harms Discovery, Disclosure, and Redress. Washington, DC: Algorithmic Justice League. Ianuarie 2022. Disponibilă la https://ajl.org/bugs(se deschide într-o fereastră nouă). Vezi și lucrarea lui Brundage, Miles, Avin, Shahar, Wang, Jasmine, Belfield, Haydn și Gretchen Krueger și col. „Toward Trustworthy AI Development: Mechanisms for Supporting Verifiable Claims”, aprilie 2020. Disponibilă la https://arxiv.org/abs/2004.07213(se deschide într-o fereastră nouă). Vezi un exemplu anterior al unei astfel de competiții la HackerOne. 2021b. „Twitter Algorithmic Bias.” HackerOne. https://hackerone.com/twitter-algorithmic-bias?type=team(se deschide într-o fereastră nouă). În cele din urmă, vezi lucrarea publicată anterior pe acest subiect de Rubinovitz, JB, „Bias Bounty Programs as a Method of Combatting Bias in AI”, august 2018. Disponibilă la https://rubinovitz.com/2018/08/01/bias-bounty-programs-as-a-method-of-combatting(se deschide într-o fereastră nouă).

Autor

OpenAI

Mulțumiri

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