部署國(guó)產(chǎn)ChatGPT僅需6G顯存!ChatYuan模型開(kāi)放下載:業(yè)內(nèi)首個(gè)功能型對(duì)話開(kāi)源中文大模型
前段時(shí)間,元語(yǔ)智能開(kāi)發(fā)團(tuán)隊(duì)訓(xùn)練了一個(gè)類似ChatGPT的功能型對(duì)話大模型ChatYuan,并在網(wǎng)頁(yè)版中開(kāi)放了試玩接口。
現(xiàn)在你也可以在自己的機(jī)器上部署一個(gè)ChatYuan了!
模型可用于問(wèn)答場(chǎng)景,能夠結(jié)合上下文做對(duì)話、做各種生成任務(wù),包括創(chuàng)意性寫(xiě)作,也能回答法律、新冠等領(lǐng)域類問(wèn)題。
并且在全中文任務(wù)中支持零樣本學(xué)習(xí),用戶可以通過(guò)提供prompt的方式來(lái)使用,支持文本生成、信息抽取和理解大類下近30多種中文任務(wù)。
ChatYuan基于PromptCLUE-large結(jié)合數(shù)億條功能問(wèn)答和多輪對(duì)話數(shù)據(jù)進(jìn)一步訓(xùn)練得到,模型參數(shù)量7.7億,顯存6G左右,一張民用顯卡即可加載使用,目前模型已開(kāi)放下載。
PromptCLUE在1000億token中文語(yǔ)料上預(yù)訓(xùn)練,累計(jì)學(xué)習(xí)1.5萬(wàn)億中文token,并且在數(shù)百種任務(wù)上進(jìn)行Prompt任務(wù)式訓(xùn)練。
針對(duì)理解類任務(wù),如分類、情感分析、抽取等,可以自定義標(biāo)簽體系;針對(duì)多種生成任務(wù),可以進(jìn)行采樣自由生成。
如何使用
1. Github
項(xiàng)目地址:https://github.com/clue-ai/ChatYuan
2. Huggingface
項(xiàng)目地址:https://huggingface.co/ClueAI/ChatYuan-large-v1
3. ModelScope
項(xiàng)目地址:https://modelscope.cn/models/ClueAI/ChatYuan-large
加載模型:
使用模型進(jìn)行預(yù)測(cè)推理方法:
4. PaddlePaddle
項(xiàng)目地址:https://aistudio.baidu.com/aistudio/projectdetail/5404182
模型地址:https://huggingface.co/ClueAI/ChatYuan-large-v1-paddle?
使用自有數(shù)據(jù)訓(xùn)練模型
1. 組織數(shù)據(jù)
將數(shù)據(jù)組織成統(tǒng)一的格式,由兩部分構(gòu)成:輸入(Input)和輸出(Output)。
針對(duì)單輪問(wèn)答或生成:
輸入(Input):任務(wù)描述+輸入文本
輸出(Output):系統(tǒng)需要預(yù)測(cè)的文本,如下圖中「小元」后的內(nèi)容。
針對(duì)多輪對(duì)話:
輸入(Input):任務(wù)描述+上文+輸入文本
輸出(Output):系統(tǒng)需要預(yù)測(cè)的文本,如下圖中「小元」后的內(nèi)容。
單輪對(duì)話數(shù)據(jù)格式:
多輪對(duì)話數(shù)據(jù)格式:
2. 訓(xùn)練模型
訓(xùn)練代碼可以參考:
使用pCLUE數(shù)據(jù)集進(jìn)行訓(xùn)練、預(yù)測(cè)和效果驗(yàn)證, pytorch實(shí)現(xiàn)——在線colab。
Github項(xiàng)目:https://colab.research.google.com/drive/1lEyFhEfoc-5Z5xqpEKkZt_iMaojH1MP_?usp=sharing
舉個(gè)例子
==========示例1==========
用戶:
你能干什么
小元:
您好!我是元語(yǔ)AI。我可以回答您的問(wèn)題、寫(xiě)文章、寫(xiě)作業(yè)、翻譯,對(duì)于一些法律等領(lǐng)域的問(wèn)題我也可以給你提供信息。
==========示例2==========
用戶:
寫(xiě)一個(gè)詩(shī)歌,關(guān)于冬天
小元:
冬夜寂靜冷,
云在天邊飄,
冰封白雪上,
寒冷像一場(chǎng)雪。
雪花融化成冰,
像那雪花飄灑,
在寒冷的冬天,
感受春天的喜悅。
冬日里,
風(fēng)雪漸消,
一片寂靜,
把快樂(lè)和溫暖帶回家。
==========示例3==========
用戶:
學(xué)前教育專業(yè)崗位實(shí)習(xí)中,在學(xué)生方面會(huì)存在問(wèn)題,請(qǐng)?zhí)岢龈倪M(jìn)措施。800字
小元:
在學(xué)前教育專業(yè)崗位實(shí)習(xí)中,在學(xué)生方面會(huì)存在一些問(wèn)題,如學(xué)生缺少專業(yè)知識(shí)、缺乏合作意識(shí)、缺乏基本的責(zé)任心等等,需要我們采取措施,來(lái)解決這些問(wèn)題。
首先,在實(shí)習(xí)過(guò)程中,我們需要培養(yǎng)學(xué)生的團(tuán)隊(duì)意識(shí),加強(qiáng)學(xué)生與老師之間的合作,加強(qiáng)與家長(zhǎng)之間的溝通,提高他們的溝通能力。另外,我們也需要加強(qiáng)學(xué)生的獨(dú)立性,讓學(xué)生學(xué)會(huì)獨(dú)立思考,學(xué)會(huì)和老師、家長(zhǎng)進(jìn)行溝通,培養(yǎng)其獨(dú)立性。
此外,在日常的工作中,我們也要為學(xué)生提供適當(dāng)?shù)臋C(jī)會(huì)和機(jī)會(huì),讓學(xué)生多接觸社會(huì)、多參加社會(huì)活動(dòng),加深他們對(duì)社會(huì)、學(xué)校的認(rèn)識(shí),培養(yǎng)他們主動(dòng)、積極和創(chuàng)新的精神。
最后,我們還需要重視學(xué)生在實(shí)習(xí)中出現(xiàn)的問(wèn)題,尤其是學(xué)生缺乏合作,有依賴心理,不懂得分享,有拖延行為等,這些學(xué)生應(yīng)該引起我們的重視,制定合理的改進(jìn)措施,改善這些問(wèn)題。
技術(shù)與訓(xùn)練過(guò)程
ChatYuan是在PromptCLUE基礎(chǔ)上進(jìn)一步訓(xùn)練獲得的模型。它去掉了文本理解、信息抽取類任務(wù),加強(qiáng)了問(wèn)答、對(duì)話和各種生成式任務(wù)的學(xué)習(xí)和訓(xùn)練;
針對(duì)多輪對(duì)話容易受到上下文的干擾,加入了抗干擾數(shù)據(jù)使得模型可以在必要時(shí)忽略無(wú)關(guān)的上下文;加入了用戶反饋數(shù)據(jù)的學(xué)習(xí),使得模型不僅具有一定的通用語(yǔ)言理解能力、特定任務(wù)上的生成能力,也能更好的響應(yīng)用戶的意圖。
PromptCLUE的學(xué)習(xí)過(guò)程
- 三大統(tǒng)一:統(tǒng)一模型框架(text-to-text),統(tǒng)一任務(wù)形式(prompt),統(tǒng)一應(yīng)用方式(zero-shot/few-shot)(T0)
- 大規(guī)模預(yù)訓(xùn)練:在t5-large版基礎(chǔ)上,使用數(shù)百G中文語(yǔ)料,訓(xùn)練了100萬(wàn)步,累積訓(xùn)練了1.5萬(wàn)億個(gè)中文字詞級(jí)別token
- 大規(guī)模任務(wù)數(shù)據(jù):使用了16種任務(wù)類型,數(shù)百種任務(wù),累積億級(jí)別任務(wù)數(shù)據(jù)
- 混合預(yù)訓(xùn)練:一方面將下游任務(wù)作為預(yù)訓(xùn)練語(yǔ)料,另一方面將下游任務(wù)和預(yù)訓(xùn)練語(yǔ)料一起訓(xùn)練,減少任務(wù)災(zāi)難遺忘以及縮短預(yù)訓(xùn)練和下游任務(wù)的距離,更好的適應(yīng)下游任務(wù)(ExT5)
- 混合采樣:針對(duì)眾多數(shù)據(jù)量差異極大的任務(wù),采用在每個(gè)訓(xùn)練batch內(nèi)對(duì)所有的任務(wù)進(jìn)行按照比例采樣,根據(jù)任務(wù)的數(shù)據(jù)量進(jìn)行平滑采樣,并且同時(shí)限制任務(wù)數(shù)據(jù)量采樣池的上限。平滑采樣可以減少任務(wù)訓(xùn)練有偏危害,在每一batch內(nèi)訓(xùn)練可以減少異質(zhì)任務(wù)之間訓(xùn)練負(fù)遷移的情況(T5)
- 分階段訓(xùn)練:一方面指在預(yù)訓(xùn)練分階段,涉及訓(xùn)練序列長(zhǎng)度的分階段(128和512),加快預(yù)訓(xùn)練速度(Bert);另一方面,在下游訓(xùn)練分階段, 涉及學(xué)習(xí)率和序列長(zhǎng)度的變化以及遞減式對(duì)下游任務(wù)的數(shù)據(jù)量限制,更好的適應(yīng)下游的不同任務(wù)。
- 增加語(yǔ)言模型的訓(xùn)練:參考t5.1.1, 除了使用Span Corrpution構(gòu)建的方式進(jìn)行無(wú)監(jiān)督訓(xùn)練,同時(shí)在使用prefix LM的方式訓(xùn)練,增強(qiáng)生成任務(wù)的能力(LM adapted)
- 增加對(duì)模型的encoder以及decoder的訓(xùn)練:根據(jù)下游任務(wù)數(shù)據(jù)分別構(gòu)建Data_text,Data_target預(yù)訓(xùn)練數(shù)據(jù)語(yǔ)料,加入到預(yù)訓(xùn)練中,分別增強(qiáng)模型的encoder理解能力和 decoder的生成能力(見(jiàn)UIE)
- 重新構(gòu)建模型中文字典:使用sentencepiece上在千億token上學(xué)習(xí)并構(gòu)建模型字典,更加符合中文語(yǔ)言習(xí)慣
后續(xù)工作
目前版本可以進(jìn)行問(wèn)答、對(duì)話和各種創(chuàng)意性寫(xiě)作或文本生成,相對(duì)于線上的版本,它的意圖理解和生成能力在一些場(chǎng)合還有比較大的提升空間;它也還不能較好實(shí)現(xiàn)推理或復(fù)雜的任務(wù)。之后,會(huì)根據(jù)反饋進(jìn)一步改進(jìn)現(xiàn)有版本。