ChatGPT技術國產化嘗試
全文目錄:
1. ChatGPT 相關技術
技術演進:GPT->InstructGPT->ChatGPT
存在什麼樣的問題?
學習三階段
資料組織和效果評估
背景與問題
解決思路
效果與實踐
中文開源模型
基於自有資料訓練出本地模型
可能的問題、差距和如何進一步提升效果
分享嘉賓|徐亮 元語AI 負責人
編輯整理|王來奇
出品社群|DataFun
01
ChatGPT 是一個通用功能型助手。2022 年 12 月 5 日,OpenAI 執行長 Sam Altman 在社交媒體上發文稱,ChatGPT 推出五天,已突破 100 萬使用者。AI 聊天機器人 ChatGPT 爆火出圈,已成為一個標誌性事件。微軟正洽談 100 億美元增持股份,並很快將其整合到微軟雲中。
上圖中展示了兩個例子,展現出了驚人的效果。
ChatGPT 之所以這麼受歡迎,一方面是由於其理解使用者意圖的能力和生成的效果比較好;另一方面,透過對話機器人的形式,使得人人都能使用。
下面將從模型演進、最初模型存在的問題、ChatGPT 模型學習的三個階段、訓練 ChatGPT 模型的資料組織和效果幾個方面進行介紹。
1. 模型演進
ChatGPT 技術也經過了幾代模型的演進,最初的 GPT 模型是在 2018 年提出的,模型引數只有 1.17 億;2019 年的時候 GPT-2 模型引數是 15 億;到了 2020 年 GPT-3 模型引數達到了 1750 億;透過幾代的模型更新迭代,到 2022 年出現了 ChatGPT 模型。
2. 之前的模型存在什麼樣的問題
在 ChatGPT 模型出來之前的模型存在什麼樣的問題呢?透過分析發現存在的一個比較顯著的問題是對齊問題,雖然大模型的生成能力比較強,但是生成的答案有時候不符合使用者意圖。透過研究發現造成對齊問題出現的主要原因是語言模型訓練的訓練目標是預測下一個詞,而不是按照使用者意圖來生成。為了解決對齊問題,在訓練 ChatGPT 模型過程中加入了基於人類反饋的強化學習(Reinforcement Learning from Human Feedback,RLHF)過程。
3. 學習三階段
ChatGPT 模型的訓練過程是按照三步驟走的形式進行的。
第一步是在 GPT 模型基礎上使用真實使用者的輸入進行監督學習,在這個過程中資料來自真實使用者,資料質量比較高也比較寶貴。
第二步是訓練一個獎勵模型,對於一個 query 透過不同模型會產生不同的輸出結果,標記者對所有模型的輸出結果進行一個排序,用這些排序後的資料訓練獎勵模型。
第三步是把模型生成的初步答案輸入到獎勵模型當中,獎勵模型會對這個答案進行一個評價,如果生成的答案符合使用者的意圖就給一個正向的反饋,否則就給一個負向的反饋,從而把模型調教的越來越好,這就是引入強化學習的目的,使得生成的結果更符合人類的需要。訓練 ChatGPT 模型過程中三步走的過程如下圖所示。
4. 資料組織和效果評估
在訓練模型之前我們需要準備好所用的資料集,在這個過程中就會遇到資料冷啟動的問題,可以透過以下三個方面來解決:
(1)蒐集舊系統使用者使用的資料集
(2)讓標註人員根據之前真實使用者輸入的問題標註一些相似的 prompt 和輸出
(3)資料標註人員從問答、寫故事、生成等自己想的一些 prompt。
訓練 ChatGPT 模型的資料包含三部分資料集(77k 真實資料):
(1)基於真實使用者 prompt 的監督學習資料,使用者 prompt,模型 response,資料量有 13k。
(2)用於訓練獎勵模型的資料集,這部分資料對於一個 prompt 對應多個response 的排序,資料量有 33k。
(3)基於獎勵模型使用強化學習技術進行模型訓練的資料集,只需要使用者prompt,資料量有 31k,對質量要求較高。
完成 ChatGPT 模型訓練後,對於模型的評價也是比較充分的,主要從以下幾個方面來評價:
(1)模型生成的結果是否符合使用者的意圖
(2)生成的結果能不能滿足使用者提到的約束
(3)模型在客服領域能否有好的效果
透過和 GPT 基礎模型進行對比的詳細實驗結果如下圖所示。
02
下面將從背景與問題、解決思路、效果與實踐三個方面介紹我們進行 ChatGPT 技術國產化的內容。
1. 背景與問題
為什麼要進行國產化,主要考慮了以下幾個方面:
(1)ChatGPT 技術本身是比較先進的,在許多工上效果比較好,但是不對中國大陸提供服務。
(2)可能不能滿足國內企業級客戶的需求,無法提供本地化技術支援和服務。
(3)價格是以歐美為主要市場的美元進行計價的,價格比較昂貴,國內多數使用者可能承受不起。透過測試發現對於每條資料約需要花費 0.5 元人民幣,對於擁有大量資料的客戶無法進行商業化。
由於以上三個問題,我們嘗試了 ChatGPT 技術國產化。
2. 解決思路
我們在進行 ChatGPT 技術國產化過程中,採用了分佈走的策略。
首先訓練了一個具有百億引數的中文預訓練模型;其次在億級別任務資料上使用 Prompt 的形式進行任務監督學習;然後把模型對話化,即以對話或人機互動的形式和人進行互動;最後我們再引入獎勵模型和使用者反饋的強化學習 RLHF 技術。
Prompt 多工學習模型(PromptCLUE)是一個支援全中文任務零樣本學習的模型。該模型實現了三大統一:統一模型、統一資料形式(所有任務都轉化為 prompt 形式)、統一使用方式(零樣本的形式進行使用)。該模型是基於 1000 億中文字詞級別 token 進行無監督學習,在億級下游任務資料上進行訓練,累積學習了 1.5 萬億中文字詞級別 token。支援 20 多種任務上的零樣本使用(文字理解類、抽取類、生成類任務)。
如何把模型進行對話化,即轉化為人機互動形式的模型,我們主要做了如下幾方面的工作:
首先為了使模型具有比較好的生成效果,我們移除了文字理解類和抽取類的任務,這樣就加強了問答、對話和生成類任務的學習;其次,轉變成對話模型後,生成結果會受到上下文的干擾,針對這個問題,我們加入了抗干擾資料,使得模型可以在必要時忽略無關的上下文;最後,我們基於真實使用者的反饋資料加入了學習過程,使得模型能夠更好地理解使用者的意圖。下圖是和模型進行單輪和多輪測試的形式。
3. 效果與實踐
下面是針對模型進行測試的效果,透過比較當前與 ChatGPT 模型相比還有1~2 年的差距,不過這種差距是可以逐步彌補的,目前我們進行了一些有益的嘗試,也有了一定的效果,目前可以進行一些對話、問答、寫作等互動。下圖展示了測試結果。
03
國產開源大模型
1. 中文開源模型
我們最近剛釋出的元語功能型對話大模型(ChatYuan)引數量有 7.7 億,線上的版本是具有 100 億引數量的模型,已經上線了多個平臺,包括 Huggingface、ModelScope、Github、paddlepaddle 都可以使用。模型可以下載到本地,根據自己的使用者資料集進行微調。它是基於 PromptCLUE-large 結合數億條功能對話多輪對話資料進一步訓練得到。
上面以 Huggingface 平臺為例,展示了模型本地使用方法。在平臺搜尋ChatYuan,載入模型,進行簡單的包裝。使用中有一些比較重要的引數,比如是否取樣 sample,如果需要生成的比較多樣就需要取樣。
2. 基於自有資料訓練本地模型
首先需要將資料組織成統一的形式,由兩部分構成:輸入(Input)和輸出(Output)。對於單輪問答或生成輸入(Input):任務描述+輸入文字(如:“使用者:你好\n小元:”),輸出(Output)是指系統需要預測的文字(如:“您好!我是元語AI...”)。對於多輪對話輸入(Input):任務描述+上文+輸入文字,輸出是指系統需要預測的文字,如下圖中"小元"後的內容。
下圖展示了基於自有資料進行訓練本地模型的一個示例。這一示例涵蓋了整個過程,從資料的準備,到開源資料的下載、轉化,還包括模型的訓練、預測和評估。其基礎使用的是 pCLUE 多工資料集。使用者可以使用自己的資料進行訓練,也可以使用 pCLUE 進行初步的訓練,來測試效果。
ChatYuan 和 ChatGPT 都是通用型功能型對話大模型,都能夠在閒聊或法律、醫療等專業領域進行問答、互動和生成。透過和 ChatGPT 模型相比較,目前還有一定的差距,主要體現在是以下幾個方面:
模型大小方面,ChatGPT 引數量是千億級別的,ChatYuan 是百億級別的;
學習到的資料量方面也存在很大差距,ChatYuan 模型還在學習過程中;
在強化學習方面,ChatGPT 模型已經引入了基於使用者反饋的強化學習,我們的模型還在引入過程中。
在使用模型過程中可能遇到生成效果和文字長度方面的問題,取決於資料格式是否正確,在生成過程中是否取樣 sample,輸出結果的長度控制 max_length 等。
要進一步提升模型效果,可以從如下幾個方面入手:
(1)結合行業資料進行進一步訓練,包括無監督預訓,以及使用大量高質量的資料進行有監督學習。
(2)使用真實使用者反饋資料的學習可以彌補分佈差異。
(3)引入強化學習,對齊使用者意圖。
(4)選用更大的模型,一般來說模型越大,模型能力越強。
ChatGPT 帶來的新技術和使用場景,讓人們看到了 AI 的巨大潛力。更多應用都將得到升級,也為一些新應用創造了可能。
元語智慧,作為大模型 Model-as-a-Service 服務商,在這一領域也在不斷探索中。歡迎感興趣的夥伴關注我們的網站和公眾號。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024923/viewspace-2936165/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- React最佳實踐嘗試(一)技術選型React
- 對 ChatGPT 做一次技術面試(ChatGPT 沒能透過)ChatGPT面試
- 晶片國產化替代加速佔領技術高地晶片
- 從IDA到NFR——NFT的中國化改良嘗試
- ChatGPT軟體技術棧解密ChatGPT解密
- ChatGPT-4 技術報告ChatGPT
- 有沒有完全自主的國產化資料庫技術資料庫
- MorningConsult:1/3的美國人嘗試過大麻二酚產品GC
- 杉巖引領國產分散式儲存廠商,堅持國產化技術路線分散式
- 對提高讀者反饋技術文章熱情的一點嘗試
- 以技術創新為引擎,打破國產化替代的侷限
- ChatGPT:是一項技術突破嗎ChatGPT
- 嘗試
- 雲南:首次嘗試應用“招標投標+量子技術”創新探索
- Docker技術筆記:Docker入門淺嘗Docker筆記
- EasyMR 基於國產化信創的適配實踐技術詳解
- 嘗試1
- 嘗試 LeetcodeLeetCode
- 嘗試Ghost
- 去中心化基礎架構安全嘗試中心化架構
- ChatGPT 背後核心技術的白話版ChatGPT
- ChatGPT怎麼下載?國產AI聊天機器人ChatGPT上線ChatGPTAI機器人
- 作業系統國產化步入深水區,小程式技術助力生態搭建作業系統
- 中國工業技術軟體化產業聯盟:2020年中國工業軟體產業白皮書產業
- AI每日精選:滴滴嘗試應用AI技術分析司機的疲勞狀態AI
- 聊聊技術面試 | 掘金技術徵文面試
- 嘗試 Leetcode(二)LeetCode
- ChatGPT資料洩露,技術細節公佈ChatGPT
- Docker技術( 容器虛擬化技術 )Docker
- 三分鐘看完關於 ChatGPT 的技術概括ChatGPT
- 我用ChatGPT做直播技術選型,卷死了同事ChatGPT
- 怎麼勸ChatGPT幹活效果最好?我們嘗試了100種方法,有圖有真相ChatGPT
- 通用測試技術
- Laravel 測試技術Laravel
- raft 高可用嘗試Raft
- 嘗試手寫promisePromise
- 做產品要嘗試去找使用者的“緊急需求”
- Unity 開源雙端框架 ET 中初嘗熱更新技術Unity框架