ChatGPT技術(shù)國(guó)產(chǎn)化嘗試
本次分享題目為 ChatGPT 技術(shù)、國(guó)產(chǎn)化嘗試和開源模型。分享包含三大部分的內(nèi)容,第一部分總體介紹 ChatGPT 相關(guān)的技術(shù):ChatGPT 技術(shù)的演進(jìn)、目前存在什么樣的問(wèn)題、ChatGPT 技術(shù)學(xué)習(xí)的三個(gè)階段、數(shù)據(jù)組織和效果評(píng)估;第二部分分享我們?cè)?ChatGPT 技術(shù)國(guó)產(chǎn)化方面進(jìn)行的嘗試,包含實(shí)驗(yàn)過(guò)程中我們遇到的問(wèn)題、進(jìn)行的思考以及模型的效果和應(yīng)用;第三部分介紹我們已經(jīng)發(fā)布的中文開源大模型,使用自有數(shù)據(jù)訓(xùn)練出本地模型如何進(jìn)行操作,在實(shí)驗(yàn)過(guò)程中可能遇到的問(wèn)題,和開源的先進(jìn)模型相比存在的差距以及如何進(jìn)一步提升模型的效果。
一、ChatGPT 相關(guān)技術(shù)
ChatGPT 是一個(gè)通用功能型助手。2022 年 12 月 5 日,OpenAI 首席執(zhí)行官 Sam Altman 在社交媒體上發(fā)文稱,ChatGPT 推出五天,已突破 100 萬(wàn)用戶。AI 聊天機(jī)器人 ChatGPT 爆火出圈,已成為一個(gè)標(biāo)志性事件。微軟正洽談 100 億美元增持股份,并很快將其整合到微軟云中。
上圖中展示了兩個(gè)例子,展現(xiàn)出了驚人的效果。
ChatGPT 之所以這么受歡迎,一方面是由于其理解用戶意圖的能力和生成的效果比較好;另一方面,通過(guò)對(duì)話機(jī)器人的形式,使得人人都能使用。
下面將從模型演進(jìn)、最初模型存在的問(wèn)題、ChatGPT 模型學(xué)習(xí)的三個(gè)階段、訓(xùn)練 ChatGPT 模型的數(shù)據(jù)組織和效果幾個(gè)方面進(jìn)行介紹。
1、模型演進(jìn)
ChatGPT 技術(shù)也經(jīng)過(guò)了幾代模型的演進(jìn),最初的 GPT 模型是在 2018 年提出的,模型參數(shù)只有 1.17 億;2019 年的時(shí)候 GPT-2 模型參數(shù)是 15 億;到了 2020 年 GPT-3 模型參數(shù)達(dá)到了 1750 億;通過(guò)幾代的模型更新迭代,到 2022 年出現(xiàn)了 ChatGPT 模型。
2、之前的模型存在什么樣的問(wèn)題
在 ChatGPT 模型出來(lái)之前的模型存在什么樣的問(wèn)題呢?通過(guò)分析發(fā)現(xiàn)存在的一個(gè)比較顯著的問(wèn)題是對(duì)齊問(wèn)題,雖然大模型的生成能力比較強(qiáng),但是生成的答案有時(shí)候不符合用戶意圖。通過(guò)研究發(fā)現(xiàn)造成對(duì)齊問(wèn)題出現(xiàn)的主要原因是語(yǔ)言模型訓(xùn)練的訓(xùn)練目標(biāo)是預(yù)測(cè)下一個(gè)詞,而不是按照用戶意圖來(lái)生成。為了解決對(duì)齊問(wèn)題,在訓(xùn)練 ChatGPT 模型過(guò)程中加入了基于人類反饋的強(qiáng)化學(xué)習(xí)(Reinforcement Learning from Human Feedback,RLHF)過(guò)程。
3、學(xué)習(xí)三階段
ChatGPT 模型的訓(xùn)練過(guò)程是按照三步驟走的形式進(jìn)行的。
第一步是在 GPT 模型基礎(chǔ)上使用真實(shí)用戶的輸入進(jìn)行監(jiān)督學(xué)習(xí),在這個(gè)過(guò)程中數(shù)據(jù)來(lái)自真實(shí)用戶,數(shù)據(jù)質(zhì)量比較高也比較寶貴。
第二步是訓(xùn)練一個(gè)獎(jiǎng)勵(lì)模型,對(duì)于一個(gè) query 通過(guò)不同模型會(huì)產(chǎn)生不同的輸出結(jié)果,標(biāo)記者對(duì)所有模型的輸出結(jié)果進(jìn)行一個(gè)排序,用這些排序后的數(shù)據(jù)訓(xùn)練獎(jiǎng)勵(lì)模型。
第三步是把模型生成的初步答案輸入到獎(jiǎng)勵(lì)模型當(dāng)中,獎(jiǎng)勵(lì)模型會(huì)對(duì)這個(gè)答案進(jìn)行一個(gè)評(píng)價(jià),如果生成的答案符合用戶的意圖就給一個(gè)正向的反饋,否則就給一個(gè)負(fù)向的反饋,從而把模型調(diào)教的越來(lái)越好,這就是引入強(qiáng)化學(xué)習(xí)的目的,使得生成的結(jié)果更符合人類的需要。訓(xùn)練 ChatGPT 模型過(guò)程中三步走的過(guò)程如下圖所示。
4、數(shù)據(jù)組織和效果評(píng)估
在訓(xùn)練模型之前我們需要準(zhǔn)備好所用的數(shù)據(jù)集,在這個(gè)過(guò)程中就會(huì)遇到數(shù)據(jù)冷啟動(dòng)的問(wèn)題,可以通過(guò)以下三個(gè)方面來(lái)解決:
(1)搜集舊系統(tǒng)用戶使用的數(shù)據(jù)集
(2)讓標(biāo)注人員根據(jù)之前真實(shí)用戶輸入的問(wèn)題標(biāo)注一些相似的 prompt 和輸出
(3)數(shù)據(jù)標(biāo)注人員從問(wèn)答、寫故事、生成等自己想的一些 prompt。
訓(xùn)練 ChatGPT 模型的數(shù)據(jù)包含三部分?jǐn)?shù)據(jù)集(77k 真實(shí)數(shù)據(jù)):
(1)基于真實(shí)用戶 prompt 的監(jiān)督學(xué)習(xí)數(shù)據(jù),用戶 prompt,模型 response,數(shù)據(jù)量有 13k。
(2)用于訓(xùn)練獎(jiǎng)勵(lì)模型的數(shù)據(jù)集,這部分?jǐn)?shù)據(jù)對(duì)于一個(gè) prompt 對(duì)應(yīng)多個(gè)response 的排序,數(shù)據(jù)量有 33k。
(3)基于獎(jiǎng)勵(lì)模型使用強(qiáng)化學(xué)習(xí)技術(shù)進(jìn)行模型訓(xùn)練的數(shù)據(jù)集,只需要用戶prompt,數(shù)據(jù)量有 31k,對(duì)質(zhì)量要求較高。
完成 ChatGPT 模型訓(xùn)練后,對(duì)于模型的評(píng)價(jià)也是比較充分的,主要從以下幾個(gè)方面來(lái)評(píng)價(jià):
(1)模型生成的結(jié)果是否符合用戶的意圖
(2)生成的結(jié)果能不能滿足用戶提到的約束
(3)模型在客服領(lǐng)域能否有好的效果
通過(guò)和 GPT 基礎(chǔ)模型進(jìn)行對(duì)比的詳細(xì)實(shí)驗(yàn)結(jié)果如下圖所示。
二、ChatGPT 技術(shù)國(guó)產(chǎn)化
下面將從背景與問(wèn)題、解決思路、效果與實(shí)踐三個(gè)方面介紹我們進(jìn)行 ChatGPT 技術(shù)國(guó)產(chǎn)化的內(nèi)容。
1、背景與問(wèn)題
為什么要進(jìn)行國(guó)產(chǎn)化,主要考慮了以下幾個(gè)方面:
(1)ChatGPT 技術(shù)本身是比較先進(jìn)的,在許多任務(wù)上效果比較好,但是不對(duì)中國(guó)大陸提供服務(wù)。
(2)可能不能滿足國(guó)內(nèi)企業(yè)級(jí)客戶的需求,無(wú)法提供本地化技術(shù)支持和服務(wù)。
(3)價(jià)格是以歐美為主要市場(chǎng)的美元進(jìn)行計(jì)價(jià)的,價(jià)格比較昂貴,國(guó)內(nèi)多數(shù)用戶可能承受不起。通過(guò)測(cè)試發(fā)現(xiàn)對(duì)于每條數(shù)據(jù)約需要花費(fèi) 0.5 元人民幣,對(duì)于擁有大量數(shù)據(jù)的客戶無(wú)法進(jìn)行商業(yè)化。
由于以上三個(gè)問(wèn)題,我們嘗試了 ChatGPT 技術(shù)國(guó)產(chǎn)化。
2、解決思路
我們?cè)谶M(jìn)行 ChatGPT 技術(shù)國(guó)產(chǎn)化過(guò)程中,采用了分布走的策略。
首先訓(xùn)練了一個(gè)具有百億參數(shù)的中文預(yù)訓(xùn)練模型;其次在億級(jí)別任務(wù)數(shù)據(jù)上使用 Prompt 的形式進(jìn)行任務(wù)監(jiān)督學(xué)習(xí);然后把模型對(duì)話化,即以對(duì)話或人機(jī)交互的形式和人進(jìn)行交互;最后我們?cè)僖氇?jiǎng)勵(lì)模型和用戶反饋的強(qiáng)化學(xué)習(xí) RLHF 技術(shù)。
Prompt 多任務(wù)學(xué)習(xí)模型(PromptCLUE)是一個(gè)支持全中文任務(wù)零樣本學(xué)習(xí)的模型。該模型實(shí)現(xiàn)了三大統(tǒng)一:統(tǒng)一模型、統(tǒng)一數(shù)據(jù)形式(所有任務(wù)都轉(zhuǎn)化為 prompt 形式)、統(tǒng)一使用方式(零樣本的形式進(jìn)行使用)。該模型是基于 1000 億中文字詞級(jí)別 token 進(jìn)行無(wú)監(jiān)督學(xué)習(xí),在億級(jí)下游任務(wù)數(shù)據(jù)上進(jìn)行訓(xùn)練,累積學(xué)習(xí)了 1.5 萬(wàn)億中文字詞級(jí)別 token。支持 20 多種任務(wù)上的零樣本使用(文本理解類、抽取類、生成類任務(wù))。
如何把模型進(jìn)行對(duì)話化,即轉(zhuǎn)化為人機(jī)交互形式的模型,我們主要做了如下幾方面的工作:
首先為了使模型具有比較好的生成效果,我們移除了文本理解類和抽取類的任務(wù),這樣就加強(qiáng)了問(wèn)答、對(duì)話和生成類任務(wù)的學(xué)習(xí);其次,轉(zhuǎn)變成對(duì)話模型后,生成結(jié)果會(huì)受到上下文的干擾,針對(duì)這個(gè)問(wèn)題,我們加入了抗干擾數(shù)據(jù),使得模型可以在必要時(shí)忽略無(wú)關(guān)的上下文;最后,我們基于真實(shí)用戶的反饋數(shù)據(jù)加入了學(xué)習(xí)過(guò)程,使得模型能夠更好地理解用戶的意圖。下圖是和模型進(jìn)行單輪和多輪測(cè)試的形式。
3、效果與實(shí)踐
下面是針對(duì)模型進(jìn)行測(cè)試的效果,通過(guò)比較當(dāng)前與 ChatGPT 模型相比還有1~2 年的差距,不過(guò)這種差距是可以逐步彌補(bǔ)的,目前我們進(jìn)行了一些有益的嘗試,也有了一定的效果,目前可以進(jìn)行一些對(duì)話、問(wèn)答、寫作等交互。下圖展示了測(cè)試結(jié)果。
三、國(guó)產(chǎn)開源大模型
1、中文開源模型
我們最近剛發(fā)布的元語(yǔ)功能型對(duì)話大模型(ChatYuan)參數(shù)量有 7.7 億,線上的版本是具有 100 億參數(shù)量的模型,已經(jīng)上線了多個(gè)平臺(tái),包括 Huggingface、ModelScope、Github、paddlepaddle 都可以使用。模型可以下載到本地,根據(jù)自己的用戶數(shù)據(jù)集進(jìn)行微調(diào)。它是基于 PromptCLUE-large 結(jié)合數(shù)億條功能對(duì)話多輪對(duì)話數(shù)據(jù)進(jìn)一步訓(xùn)練得到。
上面以 Huggingface 平臺(tái)為例,展示了模型本地使用方法。在平臺(tái)搜索ChatYuan,加載模型,進(jìn)行簡(jiǎn)單的包裝。使用中有一些比較重要的參數(shù),比如是否采樣 sample,如果需要生成的比較多樣就需要采樣。
2、基于自有數(shù)據(jù)訓(xùn)練本地模型
首先需要將數(shù)據(jù)組織成統(tǒng)一的形式,由兩部分構(gòu)成:輸入(Input)和輸出(Output)。對(duì)于單輪問(wèn)答或生成輸入(Input):任務(wù)描述+輸入文本(如:“用戶:你好\n小元:”),輸出(Output)是指系統(tǒng)需要預(yù)測(cè)的文本(如:“您好!我是元語(yǔ)AI...”)。對(duì)于多輪對(duì)話輸入(Input):任務(wù)描述+上文+輸入文本,輸出是指系統(tǒng)需要預(yù)測(cè)的文本,如下圖中"小元"后的內(nèi)容。
下圖展示了基于自有數(shù)據(jù)進(jìn)行訓(xùn)練本地模型的一個(gè)示例。這一示例涵蓋了整個(gè)過(guò)程,從數(shù)據(jù)的準(zhǔn)備,到開源數(shù)據(jù)的下載、轉(zhuǎn)化,還包括模型的訓(xùn)練、預(yù)測(cè)和評(píng)估。其基礎(chǔ)使用的是 pCLUE 多任務(wù)數(shù)據(jù)集。用戶可以使用自己的數(shù)據(jù)進(jìn)行訓(xùn)練,也可以使用 pCLUE 進(jìn)行初步的訓(xùn)練,來(lái)測(cè)試效果。
3、可能的問(wèn)題、差距和如何進(jìn)一步提升效果
ChatYuan 和 ChatGPT 都是通用型功能型對(duì)話大模型,都能夠在閑聊或法律、醫(yī)療等專業(yè)領(lǐng)域進(jìn)行問(wèn)答、交互和生成。通過(guò)和 ChatGPT 模型相比較,目前還有一定的差距,主要體現(xiàn)在是以下幾個(gè)方面:
- 模型大小方面,ChatGPT 參數(shù)量是千億級(jí)別的,ChatYuan 是百億級(jí)別的;
- 學(xué)習(xí)到的數(shù)據(jù)量方面也存在很大差距,ChatYuan 模型還在學(xué)習(xí)過(guò)程中;
- 在強(qiáng)化學(xué)習(xí)方面,ChatGPT 模型已經(jīng)引入了基于用戶反饋的強(qiáng)化學(xué)習(xí),我們的模型還在引入過(guò)程中。
在使用模型過(guò)程中可能遇到生成效果和文本長(zhǎng)度方面的問(wèn)題,取決于數(shù)據(jù)格式是否正確,在生成過(guò)程中是否采樣 sample,輸出結(jié)果的長(zhǎng)度控制 max_length 等。
要進(jìn)一步提升模型效果,可以從如下幾個(gè)方面入手:
(1)結(jié)合行業(yè)數(shù)據(jù)進(jìn)行進(jìn)一步訓(xùn)練,包括無(wú)監(jiān)督預(yù)訓(xùn),以及使用大量高質(zhì)量的數(shù)據(jù)進(jìn)行有監(jiān)督學(xué)習(xí)。
(2)使用真實(shí)用戶反饋數(shù)據(jù)的學(xué)習(xí)可以彌補(bǔ)分布差異。
(3)引入強(qiáng)化學(xué)習(xí),對(duì)齊用戶意圖。
(4)選用更大的模型,一般來(lái)說(shuō)模型越大,模型能力越強(qiáng)。
ChatGPT 帶來(lái)的新技術(shù)和使用場(chǎng)景,讓人們看到了 AI 的巨大潛力。更多應(yīng)用都將得到升級(jí),也為一些新應(yīng)用創(chuàng)造了可能。
元語(yǔ)智能,作為大模型 Model-as-a-Service 服務(wù)商,在這一領(lǐng)域也在不斷探索中。歡迎感興趣的伙伴關(guān)注我們的網(wǎng)站和公眾號(hào)。
今天的分享就到這里,謝謝大家。