首頁  >  文章  >  科技週邊  >  使用多個ChatGPT API實現清華UltraChat多輪對話

使用多個ChatGPT API實現清華UltraChat多輪對話

WBOY
WBOY轉載
2023-04-22 20:37:061033瀏覽

自 ChatGPT 發布以來,這段時間對話模型的熱度只增不減。當我們讚嘆這些模型表現驚豔的同時,也應該猜到背後巨大的算力和海量數據的支持。

單就數據而言,高品質的數據至關重要,為此 OpenAI 對數據和標註工作下了很大力氣。有多項研究表明,ChatGPT 是比人類更可靠的數據標註者,如果開源社群可以獲得 ChatGPT 等強大語言模型的大量對話數據,就可以訓練出表現更好的對話模型。這一點羊駝系列模型 ——Alpaca、Vicuna、Koala—— 已經證明過。例如,Vicuna 使用從 ShareGPT 收集的使用者共享資料對 LLaMA 模型進行指令微調,就復刻了 ChatGPT 九成功力。越來越多的證據表明,資料是訓練強大語言模型的第一個生產力。

ShareGPT 是一個 ChatGPT 資料分享網站,使用者會上傳自己覺得有趣的 ChatGPT 答案。 ShareGPT 上的資料是開放但瑣碎的,需要研究者自行收集整理。如果能夠有一個高品質的,涵蓋廣泛的資料集,開源社群在對話模型研發方面將會事半功倍。

基於此,最近一個名為 UltraChat 的專案就係統建立了一個超高品質的對話資料集。專案作者嘗試用兩個獨立的 ChatGPT Turbo API 進行對話,從而產生多輪對話資料。

调用多个ChatGPT API相互对话,清华开源的多轮对话数据UltraChat来了

  • 專案網址:https://github.com/thunlp/UltraChat
  • 資料集位址:http://39.101.77.220/
  • 資料集互動位址:https://atlas. nomic.ai/map/0ce65783-c3a9-40b5-895d-384933f50081/a7b46301-022f-45d8-bbf4-98107eabdbac

调用多个ChatGPT API相互对话,清华开源的多轮对话数据UltraChat来了

  • ##家項目!在建立一個開源、大規模、多輪的基於Turbo APIs 的對話數據,方便研究者開發具有通用對話能力的強大語言模型。此外,考慮到隱私保護等因素,該項目不會直接使用網路上的資料作為提示。為了確保產生資料質量,研究者在生成過程中採用了兩個獨立的 ChatGPT Turbo API,其中一個模型扮演使用者角色來產生問題或指令,另一個模型產生回饋。
  • 如果直接使用ChatGPT 基於一些種子對話和問題讓其自由生成,容易出現話題單一、內容重複等問題,從而難以保證數據本身的多樣性。為此,UltraChat 對對話資料覆蓋的主題和任務類型進行了系統的分類和設計,也對使用者模型和回復模型進行了細緻的提示工程,它包含三個部分:

關於世界的問題(Questions about the World):這部分對話來自於對現實世界中的概念、實體和物件相關的廣泛詢問。所涉及的主題涵蓋科技、藝術、金融等多個領域。

######寫作與創作(Writing and Creation):這部分對話資料著重於指示AI 從頭進行創作一個完整的文本材料,並在此基礎上進行後續的提問或進一步指導以完善寫作,撰寫的材料內容類型包括文章、部落格、詩歌、故事、戲劇,電子郵件等等。 ############對於現有資料的輔助改寫(Writing and Creation):此對話資料是基於現有資料產生的,指令包括但不限於改寫、續寫、翻譯、歸納、推理等,涵蓋主題同樣非常多元。 ###############這三部分資料涵蓋了大部分使用者對於 AI 模型的要求。同時,這三類資料也會面臨不同的挑戰,為此需要不同的構造方法。 ######

例如,第一部分的資料主要挑戰在於如何在總量為數十萬組對話中盡量廣泛地涵蓋人類社會中的常見知識,為此研究者從自動生成的主題和來自於Wikidata的實體兩個面向進行了篩選和建構。

第二、三部分的挑戰主要來自於如何模擬使用者指令,並在後續對話中讓使用者模型的生成盡量多樣化的同時又不偏離對話的最終目標(按照要求生成材料或改寫材料),為此研究者對使用者模型的輸入提示進行了充分的設計和實驗。在構造完成之後,作者也對資料進行了後處理以削弱幻覺問題。

目前,該專案已經發布了前兩部分的數據,數據量為 124 萬條,應該是目前開源社群內規模最大的相關數據集。內容包含在現實世界中豐富多彩的對話,最後一部分數據將在未來發布。

世界問題資料來自30 個具有代表性和多樣性的元主題,如下圖所示:

调用多个ChatGPT API相互对话,清华开源的多轮对话数据UltraChat来了


  • 基於以上元主題,該專案產生了1100 子主題用於資料建構;
  • 對於每個子主題,最多產生10 個具體問題;
  • 然後使用Turbo API 為10 個問題中的每一個產生新的相關問題;
  • 對於每個問題,如上所述迭代地使用兩個模型產生3~7 輪對話。

此外,專案從維基資料中收集了最常用的10000 個命名實體;使用ChatGPT API 為每個實體產生5 元問題;對於每個元問題,產生10 個更具體的問題和20 個相關但一般的問題;採樣20w 個特定問題和25w 個一般問題以及5w 個元問題,並為每個問題產生了3~7 輪對話。

接下來我們來看一個具體的例子:

调用多个ChatGPT API相互对话,清华开源的多轮对话数据UltraChat来了

我們在UltraChat 平台上測試了數據搜尋效果。例如,輸入「音樂(music)」,系統會自動搜尋出10000 組與音樂相關的ChatGPT 對話數據,並且每組都是多輪對話

调用多个ChatGPT API相互对话,清华开源的多轮对话数据UltraChat来了

调用多个ChatGPT API相互对话,清华开源的多轮对话数据UltraChat来了

调用多个ChatGPT API相互对话,清华开源的多轮对话数据UltraChat来了

#輸入關鍵字「數學(math)」的搜尋結果,有3346 組多輪對話:

调用多个ChatGPT API相互对话,清华开源的多轮对话数据UltraChat来了

目前,UltraChat 涵蓋的資訊領域已經非常多,包括醫療、教育、運動、環保等多個議題。同時,筆者嘗試使用開源的LLaMa-7B 模型在UltraChat 上進行監督的指令微調,發現僅訓練10000 步後就有非常可觀的效果,一些例子如下:

调用多个ChatGPT API相互对话,清华开源的多轮对话数据UltraChat来了

##########世界知識:分別列出10 個很好的中國和美國大學####################### ##########想像問題:當時空旅行成為可能後,有什麼可能的後果? ##################

三段论:鲸鱼是鱼吗?

调用多个ChatGPT API相互对话,清华开源的多轮对话数据UltraChat来了

假设问题:证明成龙比李小龙更出色

调用多个ChatGPT API相互对话,清华开源的多轮对话数据UltraChat来了

总体来说,UltraChat 是一个高质量、范围广的 ChatGPT 对话数据集,可以和其它数据集结合,显著地提升开源对话模型的质量。目前 UltraChat 还只放出了英文版,但也会在未来放出中文版的数据。感兴趣的读者快去探索一下吧。

以上是使用多個ChatGPT API實現清華UltraChat多輪對話的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除