思路打開!騰訊造了10億個角色,驅動數據合成!7B模型效果打爆了

世界由形形色色的角色構成,每個角色都擁有獨特的知識、經驗、興趣、個性和職業,他們共同制造了豐富多元的知識與文化。

所謂術業有專攻,比如AI科學家專注于構建LLMs,醫務工作者們共建龐大的醫學知識庫,數學家們則偏愛數學公式與定理推導。

LLMs中也是如此,不同的知識是由不同的人類角色創建或者使用。因此在提示中加入角色描述如“你是一個xxx的計算機科學家”會極大提高模型響應準確度。

這一思路也可以用于構建合成數據。騰訊AI lab提出了一種新穎的(基于角色驅動的數據合成方法。即只需在數據合成提示中添加角色描述,就能引導LLM朝著相應的視角生成獨特的合成數據。

由于幾乎任何LLM的應用場景都可以關聯到特定的人格,只要構建一個全面的角色集合,就能實現大規模的全方位合成數據生成。為此作者構建了10億個角色,創建了Persona Hub(角色倉庫),里面包含“搬家公司的司機”、“化學動力學研究員”、“對音頻處理感興趣的音樂家”等多樣化的角色。并在大規模數學和邏輯推理問題生成、指令生成、知識豐富的文本生成、游戲NPC以及工具(功能)開發等場景中創建豐富且多樣化的合成數據:

通過對合成數據的微調,7B的模型在某些任務上甚至與gpt-4-turbo-preview的性能相當!

論文標題:
Scaling Synthetic Data Creation with 1,000,000,000 Personas

論文鏈接
https://arxiv.org/pdf/2406.20094

github鏈接
https://github.com/tencent-ailab/persona-hub

構建Persona Hub

作者提出兩種可擴展的方法來從海量網絡數據中生成多樣化的Persona Hub:Text-to-Persona(文本到角色)和Persona-to-Persona(角色到角色)。

文本到角色

具有特定專業經驗和文化背景的人在閱讀和寫作時往往展現出獨特的興趣。

通過分析特定文本,能夠推斷出可能對某段文本感興趣或創作該文本的特定人物。鑒于網絡上的文本數據極為豐富且多樣,因此只需簡單地提示LLM,即可從海量的網絡文本中提煉出廣泛的人物集合。如下圖所示:

對于"attention函數描述為將查詢和一組鍵-值對映射到輸出,其中查詢、鍵、值和輸出都是向量…"這樣一段文本,“一位計算機科學家”對其感興趣的可能性較大,而更細粒度人物則可以是“專注于神經網絡架構和注意力機制的機器學習研究者”。

除了通過提示指定人物描述的粒度外,輸入文本的內容也會直接影響人物描述的詳盡程度。如下圖所示,當輸入文本包含豐富的細節元素,如數學教科書的內容或關于超導的深入學術論文時,生成的人物描述往往會更加具體和細致。

角色到角色

Text-to-Persona是一種高度可擴展的方法,能夠生成幾乎涵蓋各個領域的角色。但是,對于網絡上曝光較少或不易被文本分析捕獲的角色,如兒童、乞丐以及電影幕后工作人員,它可能存在局限性。為了彌補這一不足,作者提出從Text-to-Persona生成的角色中衍生出更多元化的新角色。

通過提示““誰與給定的角色關系密切?””,如下圖所示,“兒科護士”可能與“患病兒童”、“醫藥公司代表”等有聯系。

根據六度分隔理論:“你和世界上任何一個陌生人之間,最多只需要通過六個人就能建立聯系”。作者對通過Text-to-Persona獲取的每個角色進行六輪關系擴展,從而進一步豐富了角色庫。

通過以上方式獲得在獲得數十億個角色后,通過MinHash(根據角色描述的n-gram特征進行去重)與使用文本嵌入模型計算相似性兩種方式去重,過濾低質量的角色描述,最后得1,015,863,523個角色。

角色驅動的數據合成

角色倉庫構建完畢夠,作者將人物角色融入到數據合成提示的適當位置,輕松地生成規模達億級的多樣化合成數據。為此,提出了三種角色驅動的數據合成提示方法:0-shot, few-shot and 角色增強的 few-shot提示,如下圖所示:

合成數據創建示例

數學問題

數據創建

當提示LLM創建數學問題時,加入角色會讓模型生成與該角色相關的問題。如下圖所示:當提供語言學家的人格時,模型會生成與計算語言學相關的數學問題。

此外,添加角色并不影響提示的靈活性,仍然可以輕松地在提示中指定我們所需數學問題的焦點或難度。

數學能力評估

整個評估過程首先從Persona Hub中選取了31,090,000個角色,并借助GPT-4的0-shot提示方法,根據這些角色生成了1,090,000道全新的數學問題,全程未參考MATH等基準數據集中的實例,僅使用GPT-4為這些問題生成了答案。

測試集分為域內和域外,其中域內為從合成數據中隨機抽取20,000道,域外測試集選用經典的評測集MATH。

使用剩下的1,070,000道數學問題微調Qwen2-7B,并在上述兩個測試集上評估其貪心解碼輸出。

下表展示了域內評估結果。可以看到,借助107萬個合成數學問題,微調模型Qwen2-7B實現了近80%的準確率,超越了所有開源大語言模型

另外再MATH基準上進行評測發現,合成數據微調的7B模型也取得了64.9的好成績!并超過了超越gpt-4-turbo-preview(1106/0125)的性能! 而且文本在數據合成或訓練過程中并未使用MATH數據集的任何實例,顯示出該方法的優越性.

下圖還展示了模型在訓練不同規模合成數學問題后在MATH數據集上的性能。其性能趨勢大體上與規模法則相符。

邏輯推理問題

同樣基于角色驅動方法合成的典型邏輯推理問題,如下圖所示:

此外,作者還展示了幾個以“弱智吧”風格創建的邏輯推理問題。

所有示例都表明,只要能夠清晰描述要創建的邏輯推理問題的要求,就可以使用多種角色來引導LLM生成不僅滿足要求,而且與角色高度相關的多樣化邏輯推理問題,連“弱智吧”風格的問題也能輕松應對。

指令生成任務

還可以利用Persona Hub模擬各種用戶,理解他們對LLM的請求,從而生成多樣化的指令。如下圖所示。這對于提升LLM的指令遵循和對話能力非常有價值。此外甚至可以采用類似的方法,從Persona Hub中選擇兩個角色,讓LLM扮演兩個角色,模擬兩個真實人之間的對話。

知識豐富文本生成

除了能夠生成增強LLMs指令調優的合成指令外,也可以輕松地創建有益于預訓練和后訓練的豐富知識的純文本。如下圖,提示LLM使用從Persona Hub中采樣的角色,撰寫Quora文章。

創建游戲NPC

Persona Hub還能大量創建游戲中的NPC。將游戲的背景和世界觀信息提供給LLM,LLM就能將Persona Hub中的人物(通常是現實世界中的人物)投影到游戲世界中的角色上。

比如為游戲《魔獸世界》創建游戲NPC:

《天涯明月刀》的NPC:

工具開發

使用Persona Hub來預測用戶可能需要的工具,以提前構建這些工具(功能)。當真實用戶提出類似請求時,LLM可以直接調用這些預構建的工具來返回結果,而無需每次都從頭開始構建工具。

如下圖所示,為不同角色需要的工具定義接口,然后輕松轉換為代碼,(例如,出租車司機需要查看交通狀況),從而極大地擴展了LLM提供的服務范圍。

Persona Hub的影響與挑戰

Persona Hub帶來的優勢

范式轉變:

傳統上,LLM主要用于處理數據,而數據創建主要由人類完成。引入Persona Hub后,LLM不僅可以處理數據,還可以從多種角度創建新數據。雖然LLM目前尚不能完全替代人類的數據創建任務,但其能力不斷進步,未來可能完全承擔數據創建任務。

現實模擬:

Persona Hub可以通過10億個角色模擬大量現實世界個體的需求和行為。這可以幫助公司預測用戶反應、政府預見公眾反應,并緩解在線服務中的冷啟動問題。角色中心還可以用于虛擬社會的測試,為新政策和社會動態提供無風險的實驗場。

全面記憶訪問:

  • Persona Hub有助于全面訪問LLM的知識,通過多樣化的查詢生成合成數據。

  • 雖然目前Persona Hub和LLM的能力有限,但隨著改進,未來可能實現幾乎無損地提取LLM的全面記憶。

倫理問題

訓練數據的安全性:

  • Persona Hub可能會帶來訓練數據安全性問題,因為通過LLM合成的數據本質上是其訓練數據的一種形式。

  • 大規模提取LLM的記憶可能會導致其他LLM的知識、智能和能力被復制,威脅最強大LLM的主導地位。

誤導信息和假新聞:

  • 合成數據可能會加劇誤導信息和假新聞的問題,多樣化角色的寫作風格增加了檢測難度。

  • 數據污染問題可能會扭曲研究結果和公眾信息。

結論

本文提出了一種新穎的角色驅動數據合成方法,并推出了Persona Hub,一個包含10億個角色的集合,展示了其在多種場景下促進合成數據創建的潛力,可能為發掘LLM的超級智能提供一種新途徑。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41980.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41980.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41980.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

lvgl 本地化

生成語言包文件: lv_i18n compile -t en-GB.yml -o ui 正則匹配中文 "[\u4e00-\u9fa5]" _("[\u4e00-\u9fa5]") https://www.cnblogs.com/jerryqi/p/9604828.html 查找多個漢字體的 ("[\u4e00-\u9fa5]"[)]) _($1) "科室:"…

數據分析與挖掘實戰案例-電商產品評論數據情感分析

數據分析與挖掘實戰案例-電商產品評論數據情感分析 文章目錄 數據分析與挖掘實戰案例-電商產品評論數據情感分析1. 背景與挖掘目標2. 分析方法與過程2.1 評論預處理1. 評論去重2. 數據清洗 2.2 評論分詞1. 分詞、詞性標注、去除停用詞2. 提取含名詞的評論3. 繪制詞云查看分詞效…

昇思25天學習打卡營第12天 | LLM原理和實踐:MindNLP ChatGLM-6B StreamChat

1. MindNLP ChatGLM-6B StreamChat 本案例基于MindNLP和ChatGLM-6B實現一個聊天應用。 ChatGLM-6B應該是國內第一個發布的可以在消費級顯卡上進行推理部署的國產開源大模型,2023年3月就發布了。我在23年6月份的時候就在自己的筆記本電腦上部署測試過,當…

UI自動化測試框架:PO 模式+數據驅動(超詳細)

1. PO 設計模式簡介 什么是 PO 模式? PO(PageObject)設計模式將某個頁面的所有元素對象定位和對元素對象的操作封裝成一個 Page 類,并以頁面為單位來寫測試用例,實現頁面對象和測試用例的分離。 PO 模式的設計思想與…

Python學習中進行條件判斷(if, else, elif)

條件判斷是編程中必不可少的一部分,它讓程序可以根據不同的條件執行不同的代碼塊。在Python中,主要使用if、elif和else語句來實現條件判斷。 基本語法 在Python中,條件判斷的基本語法如下: if condition:# 當condition為True時…

一篇讀懂128陷阱

128陷阱 128陷阱的概念包裝器類自動裝箱自動拆箱128陷阱 Intager源碼equals 128陷阱的概念 首先想要清楚什么是128陷阱,需要了解一些概念 包裝器類 包裝器類(Wrapper classes)是Java中的一組類,它們允許將基本數據類型&#xf…

NCCL 中的一些輔助debug 知識點

1&#xff0c;調試nccl 啟動kernel的方法 ncclLaunchKernel cuLaunchKernelEx ncclStrongStreamLaunchKernel cudaLaunchKernel ncclLaunchOneRank cudaLaunchKernel 在 nccl lib 中&#xff0c;不存在使用<<<grid, block,,>>> 這種類似方式啟…

算法題型歸類整理及同類題型解法思路總結(持續更新)

1、最優路線 通用思路 1、遞歸 #案例1-最優路測路線 題目描述 評估一個網絡的信號質量&#xff0c;其中一個做法是將網絡劃分為柵格&#xff0c;然后對每個柵格的信號質量計算。 路測的時候&#xff0c;希望選擇一條信號最好的路線&#xff08;彼此相連的柵格集合&#x…

12種增強Python代碼的函數式編程技術

前言 什么是函數式編程&#xff1f; 一句話總結&#xff1a;函數式編程(functional programming)是一種編程范式&#xff0c;之外還有面向對象&#xff08;OOP&#xff09;、面向過程、邏輯式編程等。 函數式編程是一種高度抽象的編程范式&#xff0c;它倡導使用純函數&#x…

算法·二分

二分枚舉 適用條件&#xff1a; 答案有明顯上下界答案具有單調性:a滿足,若b>a可以知b必定滿足。本質上是枚舉的對數優化 思維技巧 解決問題->>驗證答案,明顯前者比后者更加困難若題目有最大值最小&#xff0c;最小值最大這種經典條件&#xff0c;隱含著答案有界 …

Docker-11☆ Docker Compose部署RuoYi-Cloud

一、環境準備 1.安裝Docker 附:Docker-02-01☆ Docker在線下載安裝與配置(linux) 2.安裝Docker Compose 附:Docker-10☆ Docker Compose 二、源碼下載 若依官網:RuoYi 若依官方網站 鼠標放到"源碼地址"上,點擊"RuoYi-Cloud 微服務版"。 跳轉至G…

深入理解計算機系統 CSAPP 家庭作業8.22

書本知識夠你寫出答案,但是如果你想驗證你寫的答案,就要一些額外的東西.這本書很多題目都是如此 /** mysystem.c*/ #include <stdio.h> #include "csapp.h"int mysystem(char* command) {pid_t pid;int status;if ((pid Fork()) 0) {/*這里是關鍵用子程序去…

新加坡工作和生活指北:工作篇

文章首發于公眾號&#xff1a;Keegan小鋼 一年多以前&#xff08;2022 年 8 月初&#xff09;&#xff0c;那時我過來新加坡才 4 個多月&#xff0c;就寫了篇文章分享了當時在新加坡的生活和工作體驗。文章得到的反響不錯&#xff0c;但也反饋出了一些新的問題&#xff0c;比如…

預訓練對齊:數學理論到工程實踐的橋梁

在人工智能和機器學習領域&#xff0c;預訓練模型的對齊是一個至關重要的概念。本篇博客源自聽了一場黃民烈老師關于大模型對齊的分享&#xff0c;整理內容如下&#xff0c;供大家參考。 數學理論中的預訓練對齊 數學理論上&#xff0c;預訓練對齊是什么&#xff1f; 序列…

Java-關鍵字(static,final)

1.1 static關鍵字 static關鍵字 : 靜態的意思 , 可以修飾變量 , 也可以修飾方法 , 被static修飾的成員 , 我們叫做靜態成員 static特點 : 靜態成員被所類的所有對象共享 隨著類的加載而加載 , 優先于對象存在 可以通過對象調用 , 也可以通過類名調用 , 建議使用類名 1. 靜…

Keepalived+HAProxy 集群及虛IP切換實踐

1、軟件介紹 ①Keepalived keepalive是一個用c語言編寫的路由軟件&#xff0c;這個項目的主要目標是為Linux系統和基于Linux的基礎設施提供簡單而健壯的負載平衡和高可用性設施。負載均衡框架依賴于眾所周知且廣泛使用的Linux Virtual Server (IPVS)內核模塊提供第4層負載均衡…

srs直播內網拉流帶寬飆升問題記錄

問題背景 srs部署在云服務器上&#xff0c;32核cpu&#xff0c;64G內存&#xff0c;帶寬300M. 客戶端從srs拉流&#xff0c;發現外網客戶端拉流&#xff0c;cpu和帶寬都正常。然而內網客戶端拉流&#xff0c;拉流人數超過5人以上&#xff0c;帶寬就會迅速飆升。 排查 用srs…

數學建模論文寫作文檔word

目錄 1. 摘要寫法1.1 確定題目與方法1.2 編寫開頭段落1.3 填寫問題一1.4 重復步驟3填寫其他問題1.5 編寫結尾段落1.6 編寫關鍵詞 2. 問題重述2.1 問題背景2.2 問題提出 3. 問題分析4. 問題X模型的建立與求解5. 模型的分析5.1 靈敏度分析5.2 誤差分析&#xff08;主要用于預測類…

Milvus lite start 及存儲策略

背景 今天開始寫下Milvus&#xff0c;為了方便&#xff0c;我直接使用的是 milvus-lite 版本&#xff0c;default 情況下&#xff0c;你可能不知道他到底將 db 存儲到什么位置了。啟動 default-server&#xff0c;看下Milvus 的start及存儲邏輯 主邏輯 def start(self):sel…

adb參數詳解

文章目錄 1. -d2. -e3. -s4. -t5. -H6. -P7. -L8. --one-device9. --exit-on-write-error10. connect / disconnect11. pair12. forward13. forward --list14. reverse15. mdns check16. mdns services17. push18. pull19. sync20.shell21. install22. uninstall23. bugreport2…