Przejdź do treści głównej
OpenAI
Ładowanie…

Wytrenowaliśmy model o nazwie ChatGPT, który prowadzi konwersacje z użytkownikiem. Rozmowa z użytkownikiem pozwala ChatGPT odpowiadać na dodatkowe pytania, przyznawać się do błędów, podważać nieprawidłowe założenia i odmawiać odpowiedzi na niewłaściwe pytania użytkownika.

ChatGPT to siostrzane rozwiązanie modelu InstructGPT, który został wytrenowany do wykonywania instrukcji podanych w poleceniu i udzielania szczegółowych odpowiedzi.

Z przyjemnością udostępniamy model ChatGPT. Chcemy w ten sposób uzyskać opinie użytkowników na jego temat oraz poznać jego mocne i słabe strony. Podczas badawczego okresu poglądowego w ramach badań nad modelem korzystanie z ChatGPT jest bezpłatne. Wypróbuj już dziś na stronie chatgpt.com(otwiera nowe okno).

Przykłady

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?

Metody

Wytrenowaliśmy ten model przy użyciu techniki RLHF (Reinforcement Learning from Human Feedback), stosując te same metody, co w przypadku modelu InstructGPT. Wprowadziliśmy jednak niewielkie zmiany w sposobie zbierania danych. Początkowy model wytrenowaliśmy przy użyciu nadzorowanej konfiguracji precyzyjnej. Osoby będące trenerami AI prowadziły konwersacje, w których odgrywały zarówno rolę użytkownika, jak i asystenta AI. Udostępniliśmy im sugestie napisane przez model, aby pomóc im w tworzeniu odpowiedzi. Uzyskany w ten sposób nowy zestaw danych dialogowych wymieszaliśmy z zestawem danych modelu InstructGPT, który przekształciliśmy do formatu dialogu.

Aby stworzyć model nagrody dla uczenia przez wzmacnianie, musieliśmy zebrać dane porównawcze składające się z co najmniej dwóch odpowiedzi modelu posortowanych według jakości. W tym celu użyliśmy konwersacji trenerów AI z chatbotem. Losowo wybieraliśmy wiadomość napisaną przez model, tworzyliśmy próbkę złożoną z kilku alternatywnych ukończonych zdań i prosiliśmy trenerów AI o ich ocenę. Korzystając z tych modeli nagrody, możemy przeprowadzić konfigurację precyzyjną modelu przy użyciu algorytmu PPO Proximal Policy Optimization. Wykonaliśmy kilka iteracji tego procesu.

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

ChatGPT to model z serii GPT‑3.5 z konfiguracją precyzyjną, którego trening zakończył się na początku 2022 r. Więcej informacji na temat serii 3.5 można znaleźć tutaj(otwiera nowe okno). Modele ChatGPT i GPT‑3.5 zostały wytrenowane przy użyciu infrastruktury superkomputerowej Azure AI.

Ograniczenia

  • Model ChatGPT czasami generuje odpowiedzi, które brzmią wiarygodnie, ale są nieprawidłowe lub bezsensowne. Rozwiązanie tego problemu jest trudne, ponieważ: (1) podczas trenowania z uczeniem przez wzmacnianie nie istnieje obecnie źródło prawdy; (2) trenowanie modelu, aby był bardziej ostrożny, powoduje, że nie chce on odpowiadać na pytania, na które potrafi udzielić prawidłowej odpowiedzi; oraz (3) trening nadzorowany wprowadza model w błąd, ponieważ idealna odpowiedź zależy od tego, co wie model(otwiera nowe okno), a nie od tego, co wie osoba demonstrująca.
  • Model ChatGPT jest wrażliwy na zmiany w danych wejściowych polecenia i wielokrotne powtarzanie tego samego polecenia. Może na przykład stwierdzić, że nie zna odpowiedzi na dane pytanie, ale po niewielkiej zmianie treści tego pytania model może udzielić prawidłowej odpowiedzi.
  • Model często używa zbyt wielu słów i nadużywa niektórych zwrotów, np. powtarza, że jest modelem językowym wytrenowanym przez firmę OpenAI. Przyczyną jest brak obiektywnych danych treningowych (trenerzy preferują dłuższe odpowiedzi, które wyglądają na bardziej wyczerpujące) oraz dobrze znane problemy z nadmierną optymalizacją.1 i 2
  • Idealne rozwiązanie to zadawanie przez model pytań precyzujących w celu wyjaśnienia niejednoznacznego pytania użytkownika. Jednak nasze obecne modele zazwyczaj tylko zgadują intencje użytkownika.
  • Chociaż dołożyliśmy wszelkich starań, aby model nie odpowiadał na niewłaściwe pytania, czasem może on reagować na szkodliwe instrukcje lub jego zachowanie może być nieobiektywne. Używamy interfejsu API moderacji do ostrzegania o niektórych rodzajach niebezpiecznych treści albo ich blokowania. Obecnie to rozwiązanie może jednak generować wyniki fałszywie dodatnie lub ujemne. Chcemy poznać opinie użytkowników. Pomogą one nam w dalszym ulepszaniu tego systemu.

Wdrażanie iteracyjne

Udostępniona dzisiaj wersja badawcza ChatGPT to najnowszy krok w ramach wdrażania iteracyjnego przez firmę OpenAI coraz bezpieczniejszych i bardziej użytecznych systemów AI. Na wprowadzenie środków bezpieczeństwa w tej wersji, w tym znacznego ograniczenia szkodliwych i nieprawdziwych danych wyjściowych dzięki zastosowaniu techniki RLHF, wpłynęło wiele wniosków wyciągniętych z wdrożenia wcześniejszych modeli, na przykład GPT‑3 i Codex.

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.

Wiemy, że nadal istnieje wiele z powyższych ograniczeń. Planujemy regularnie wprowadzać aktualizacje i ulepszenia modelu. Mamy też nadzieję, że oferując łatwy sposób korzystania z ChatGPT, uzyskamy cenne opinie użytkowników na temat nieznanych problemów.

Zachęcamy użytkowników do dzielenia się opiniami na temat powodujących problemy danych wyjściowych modelu w interfejsie użytkownika oraz na temat fałszywych wyników dodatnich/ujemnych generowanych przez filtr treści zewnętrznych, który również jest częścią interfejsu. Szczególnie interesują nas opinie dotyczące szkodliwych danych wyjściowych w rzeczywistych neutralnych warunkach, a także opinie pomagające nam odkryć oraz zrozumieć nowe zagrożenia i możliwe sposoby ich ograniczenia. Zapraszamy do udziału w konkursie opinii na temat ChatGPT(otwiera nowe okno)3. Do wygrania 500 USD w postaci środków na korzystanie z interfejsu API.A Zgłoszenia można przesyłać przy użyciu linku do formularza w interfejsie ChatGPT.

Doświadczenia zdobyte podczas wprowadzania tej wersji będziemy mogli wykorzystać przy wdrażaniu bardziej zaawansowanych systemów, tak jak wcześniejsze doświadczenia pomogły nam wdrożyć tę wersję.

Przypisy

  1. A

    Zakup nie jest warunkiem udziału w konkursie. Konkurs nie jest przeprowadzany tam, gdzie zabrania tego prawo. W konkursie mogą brać udział tylko osoby, które ukończyły 18 lat. Szczegóły dotyczące konkursu zawiera Oficjalny regulamin(otwiera nowe okno).

Bibliografia

  1. 1

    Stiennon, Nisan, et al. „Learning to summarize with human feedback(otwiera nowe okno)”. 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(otwiera nowe okno)”. arXiv preprint arXiv:2210.10760 (2022).

  3. 3

    Konkurs został częściowo zainspirowany pracą Kenway, Josh, Camille François, Sasha Costanza-Chock, Inioluwa Deborah Raji, and Joy Buolamwini. Bug Bounties For Algorithmic Harms? Lessons from Cybersecurity Vulnerability Disclosure for Algorithmic Harms Discovery, Disclosure, and Redress. Washington, DC: Algorithmic Justice League. Styczeń 2022. Dostępna pod adresem https://ajl.org/bugs(otwiera nowe okno). Więcej informacji zawiera również praca Brundage, Miles, Avin, Shahar, Wang, Jasmine, Belfield, Haydn, and Gretchen Krueger et al. „Toward Trustworthy AI Development: Mechanisms for Supporting Verifiable Claims“, April 2020. Dostępna pod adresem https://arxiv.org/abs/2004.07213(otwiera nowe okno). Wcześniejszy przykład konkursu HackerOne. 2021b. „Twitter Algorithmic Bias”. HackerOne. https://hackerone.com/twitter-algorithmic-bias?type=team(otwiera nowe okno). Wczesna praca na ten temat: Rubinovitz, JB, „Bias Bounty Programs as a Method of Combatting Bias in AI”, sierpień 2018. Dostępna pod adresem https://rubinovitz.com/2018/08/01/bias-bounty-programs-as-a-method-of-combatting(otwiera nowe okno).

Autor

OpenAI

Podziękowania

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 i Christopher Hesse