跳到主要內容
OpenAI
正在載入...

我們訓練了一個名為 ChatGPT 的模型,能以對話的方式互動。對話格式令 ChatGPT 可以回答跟進問題、承認錯誤、挑戰不正確的前提,並拒絕不當的要求。

ChatGPT 是 InstructGPT 的姊妹模型,經過訓練後可以遵循提示中的指令並提供詳細的回覆。

我們很高興推出 ChatGPT,希望能獲得用戶的意見,並了解模型的優缺點。在研究預覽期間,ChatGPT 可供免費使用。立即前往 chatgpt.com(在新視窗中開啟) 試用。

樣本

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?

方法

我們利用人類反饋強化學習 (RLHF) 訓練此模型,使用與 InstructGPT 相同的方法,但在資料收集設定上略有不同。我們使用監督微調來訓練初始模型:由人類 AI 訓練者提供對話,並在對話中扮演用戶和 AI 助手兩方。訓練者可以獲得模型編寫的建議,以幫助他們撰寫回覆。我們將這個新的對話資料集與 InstructGPT 資料集混合,然後轉換為對話格式。

為了建立強化學習的獎勵模型,我們需要收集比較資料,這些資料由兩個或多個按品質排序的模型回覆組成。為了收集這些資料,我們記錄了人工智能訓練者與聊天機器人的對話。我們隨機選取了一個模型編寫的訊息,抽樣了幾種替代的完成内容,然後請 AI 訓練者為完成內容排名。這些獎勵模型讓可以使用近端策略最佳化演算法來微調模型。我們對此流程進行了幾次迭代。

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

ChatGPT 根據 GPT‑3.5 系列中的模型進行微調,於 2022 年初完成訓練。您可在此處(在新視窗中開啟)進一步了解 3.5 系列。ChatGPT 和 GPT‑3.5 在 Azure AI 超級運算基礎架構上進行了訓練。

限制

  • ChatGPT 有時會寫出聽起來似乎合理但卻不正確或毫無意義的答案。要解決這個問題並不容易,因為:(1) 在 RL 訓練期間,目前沒有事實來源;(2) 如果想訓練模型變得更加謹慎,就會令模型拒絕本身有能力正確回答的問題;(3) 監督訓練會誤導模型,因為理想答案取決於模型所知道的內容(在新視窗中開啟),而不是人類演示者所知道的內容。
  • ChatGPT 對輸入詞句的調整或多次嘗試使用相同提示很敏感。例如,當用一種方式問問題,模型可能會聲稱不知道答案,但如果稍為改述一下,模型就能正確回答。
  • 模型通常過於冗長,並且過度使用某些短語,例如重申自己是由 OpenAI 訓練的語言模型。這些問題源於訓練資料的偏見(訓練者傾向選擇較長而看起來更全面的答案)以及過度最佳化問題,而後者是眾所周知的問題。12
  • 在理想情況下,當用戶查詢的内容較為模糊,模型會提出澄清問題。相反,我們目前的模型通常會猜測用戶的意圖。
  • 雖然我們已經努力讓模型拒絕不適當的要求,但模型有時會回覆有害的指示,又或者表現出偏見行為。我們正在使用 Moderation API 來攔截部分類型的不安全內容或提出警告,但我們預計目前會出現一些漏報和誤報的情況。我們希望能收集用戶意見,以幫助我們不斷改良此系統。

迭代部署

今天發佈的 ChatGPT 研究是 OpenAI 迭代部署中的最新一步,顯示 AI 系統日趨安全和更加有用。我們從 GPT‑3 和 Codex 等早期模型的部署中吸取了許多經驗教訓,為此次發佈的安全緩解措施提供了參考,包括透過使用人類反饋強化學習 (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.

我們知道以上討論的問題仍然有許多限制,所以計劃會定期更新模型以改善相關情況。但我們也希望透過為 ChatGPT 提供容易使用的介面,能有助我們獲得未知問題的寶貴用戶意見。

我們鼓勵用戶透過 UI 對有問題的模型輸出提供意見,以及在作為介面一部分的外部內容過濾器有誤報/漏報時報告問題。我們特別希望了解可能在現實世界中非對抗條件下出現的有害輸出,同時也有興趣知道有助我們發掘和了解新型風險和潛在緩解措施的意見。您可以選擇參加 ChatGPT 反饋比賽(在新視窗中開啟)3,有機會贏取高達 500 美元的 API 積分。A 參賽者可透過 ChatGPT 介面中連結的意見表提交作品。

我們希望能將此發佈所得的經驗,應用到功能更強大的系統部署,就像早期的模型部署促成了這次發佈一樣。

註腳

  1. A

    不需購買亦可參加,若所在地法律禁止則無效。參賽者必須年滿18歲。有關比賽詳情,請參閱官方規則(在新視窗中開啟)

參考文獻

  1. 1

    Stiennon, Nisan, 等。「透過人類回饋學習摘要技術(在新視窗中開啟)」。《神經資訊處理系統進展會議》第 33 屆會議論文集(2020): 3008-3021.

  2. 2

    Gao,Leo,John Schulman,和 Jacob Hilton。「獎勵模型過度優化的擴展法則(在新視窗中開啟)」。arXiv 預印本 arXiv:2210.10760 (2022)。

  3. 3

    本次競賽的靈感部分來自於 Kenway、Josh、Camille François、Sasha Costanza-Chock、Inioluwa Deborah Raji 和 Joy Buolamwini 的研究。 演算法傷害的錯誤懸賞制度?從資訊安全漏洞揭露機制中探討演算法傷害的發現、揭露與補救。華盛頓特區:演算法正義聯盟。2022 年 1 月。可於https://ajl.org/bugs(在新視窗中開啟)查閱。另請參閱 Brundage、Miles、Avin、Shahar、Wang、Jasmine、Belfield、Haydn 和 Gretchen Krueger 等人的研究。「邁向可信賴的 AI 發展:支持可驗證主張的機制」,2020 年 4 月。可於 https://arxiv.org/abs/2004.07213 查閱。請參閱 HackerOne 上此類競賽的早期案例。2021b.「Twitter 演算法偏差。」HackerOne。 https://hackerone.com/twitter-algorithmic-bias?type=team。最後,請參閱 Rubinovitz, JB 於 2018 年 8 月發表關於此主題的早期著作,「偏見懸賞計畫作為對抗 AI 偏見的方法。」可在 https://rubinovitz.com/2018/08/01/bias-bounty-programs-as-a-method-of-combatting 取得。

作者

OpenAI

致謝

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