中文| English
儘管預訓練語言模型在NLP 的各個領域裡得到了廣泛的應用,但是其高昂的時間和算力成本依然是一個亟需解決的問題。這要求我們在一定的算力約束下,研發出各項指標更優的模型。
我們的目標不是追求更大的模型規模,而是輕量級但更強大,同時對部署和工業落地更友好的模型。
基於語言學信息融入和訓練加速等方法,我們研發了Mengzi 系列模型。由於與BERT 保持一致的模型結構,Mengzi 模型可以快速替換現有的預訓練模型。
詳細的技術報告請參考:
Mengzi: Towards Lightweight yet Ingenious Pre-trained Models for Chinese
添加兩個已開源的GPT 架構模型:
@huajingyun
@hululuzhu 基於mengzi-t5-base 訓練了中文AI寫作模型,可以生成詩歌和對子。模型和具體用法請參考:chinese-ai-writing-share
一些生成例子:
上: 不待鸣钟已汗颜,重来试手竟何艰
下: 何堪击鼓频催泪?一别伤心更枉然
上: 北国风光,千里冰封,万里雪飘
下: 南疆气象,五湖浪涌,三江潮来
標題: 作诗:中秋
詩歌: 秋氣侵肌骨,寒光入鬢毛。雲收千里月,風送一帆高。
標題: 作诗:中秋 模仿:苏轼
詩歌: 月從海上生,照我庭下影。不知此何夕,但見天宇靜。
感謝由飛槳團隊@yingyibiao 提供的PaddleNLP 版本模型和文檔。
注意:PaddleNLP 版本的模型並非瀾舟科技的產品,我們也不為其結果和效果承擔相應責任。
| 模型 | 參數量 | 適用場景 | 特點 | 下載鏈接 |
|---|---|---|---|---|
| Mengzi-BERT-base | 110M | 文本分類、實體識別、關係抽取、閱讀理解等自然語言理解類任務 | 與BERT 結構相同,可以直接替換現有BERT 權重 | HuggingFace, 國內ZIP下載, PaddleNLP |
| Mengzi-BERT-L6-H768 | 60M | 文本分類、實體識別、關係抽取、閱讀理解等自然語言理解類任務 | 由Mengzi-BERT-large 蒸餾獲得 | HuggingFace |
| Mengzi-BERT-base-fin | 110M | 金融領域的自然語言理解類任務 | 基於Mengzi-BERT-base 在金融語料上訓練 | HuggingFace, 國內ZIP下載, PaddleNLP |
| Mengzi-T5-base | 220M | 適用於文案生成、新聞生成等可控文本生成任務 | 與T5 結構相同,不包含下游任務,需要在特定任務上Finetune 後使用。與GPT 定位不同,不適合文本續寫 | HuggingFace, 國內ZIP下載, PaddleNLP |
| Mengzi-T5-base-MT | 220M | 提供Zero-Shot、Few-Shot能力 | 多任務模型,可通過prompt完成各種任務 | HuggingFace |
| Mengzi-Oscar-base | 110M | 適用於圖片描述、圖文互檢等任務 | 基於Mengzi-BERT-base 的多模態模型。在百萬級圖文對上進行訓練 | HuggingFace |
| Mengzi-GPT-neo-base | 125M | 文本續寫類任務 | 基於中文語料從頭訓練,適合作為相關工作的baseline 模型 | HuggingFace |
| BLOOM-389m-zh | 389M | 文本續寫類任務 | 基於中文語料對多語言版本進行裁剪的BLOOM 模型,降低了對顯存的需求 | HuggingFace |
| BLOOM-800m-zh | 800M | 文本續寫類任務 | 基於中文語料對多語言版本進行裁剪的BLOOM 模型,降低了對顯存的需求 | HuggingFace |
| BLOOM-1b4-zh | 1400M | 文本續寫類任務 | 基於中文語料對多語言版本進行裁剪的BLOOM 模型,降低了對顯存的需求 | HuggingFace |
| BLOOM-2b5-zh | 2500M | 文本續寫類任務 | 基於中文語料對多語言版本進行裁剪的BLOOM 模型,降低了對顯存的需求 | HuggingFace |
| BLOOM-6b4-zh | 6400M | 文本續寫類任務 | 基於中文語料對多語言版本進行裁剪的BLOOM 模型,降低了對顯存的需求 | HuggingFace |
| ReGPT-125M-200G | 125M | 文本續寫類任務 | 通過https://github.com/Langboat/mengzi-retrieval-lm 在GPT-Neo-125M 上訓練的模型 | HuggingFace |
| Guohua-Diffusion | - | 國畫風文圖生成 | 基於StableDiffusion v1.5 進行DreamBooth 訓練 | HuggingFace |
# 使用 Huggingface transformers 加载
from transformers import BertTokenizer , BertModel
tokenizer = BertTokenizer . from_pretrained ( "Langboat/mengzi-bert-base" )
model = BertModel . from_pretrained ( "Langboat/mengzi-bert-base" )或者
# 使用 PaddleNLP 加载
from paddlenlp . transformers import BertTokenizer , BertModel
tokenizer = BertTokenizer . from_pretrained ( "Langboat/mengzi-bert-base" )
model = BertModel . from_pretrained ( "Langboat/mengzi-bert-base" )Integrated to Huggingface Spaces with Gradio. See demo:
# 使用 Huggingface transformers 加载
from transformers import T5Tokenizer , T5ForConditionalGeneration
tokenizer = T5Tokenizer . from_pretrained ( "Langboat/mengzi-t5-base" )
model = T5ForConditionalGeneration . from_pretrained ( "Langboat/mengzi-t5-base" )或者
# 使用 PaddleNLP 加载
from paddlenlp . transformers import T5Tokenizer , T5ForConditionalGeneration
tokenizer = T5Tokenizer . from_pretrained ( "Langboat/mengzi-t5-base" )
model = T5ForConditionalGeneration . from_pretrained ( "Langboat/mengzi-t5-base" )參考文檔
# 使用 Huggingface transformers 加载
pip install transformers或者
# 使用 PaddleNLP 加载
pip install paddlenlp| Model | AFQMC | TNEWS | IFLYTEK | CMNLI | WSC | CSL | CMRC2018 | C3 | CHID |
|---|---|---|---|---|---|---|---|---|---|
| RoBERTa-wwm-ext | 74.30 | 57.51 | 60.80 | 80.70 | 67.20 | 80.67 | 77.59 | 67.06 | 83.78 |
| Mengzi-BERT-base | 74.58 | 57.97 | 60.68 | 82.12 | 87.50 | 85.40 | 78.54 | 71.70 | 84.16 |
| Mengzi-BERT-L6-H768 | 74.75 | 56.68 | 60.22 | 81.10 | 84.87 | 85.77 | 78.06 | 65.49 | 80.59 |
RoBERTa-wwm-ext 的分數來自CLUE baseline
| Task | Learning rate | Global batch size | Epochs |
|---|---|---|---|
| AFQMC | 3e-5 | 32 | 10 |
| TNEWS | 3e-5 | 128 | 10 |
| IFLYTEK | 3e-5 | 64 | 10 |
| CMNLI | 3e-5 | 512 | 10 |
| WSC | 8e-6 | 64 | 50 |
| CSL | 5e-5 | 128 | 5 |
| CMRC2018 | 5e-5 | 8 | 5 |
| C3 | 1e-4 | 240 | 3 |
| CHID | 5e-5 | 256 | 5 |

wangyulong[at]langboat[dot]com
Q. mengzi-bert-base 保存的模型大小是196M。 但bert-base 的模型大小是在389M 左右,是定義的base 有區別,還是保存的時候,少了一些不必要的內容?
A: 這是因為Mengzi-bert-base 用FP16 訓練的。
Q. 金融預訓練模型的數據來源是什麼呢?
A: 網頁爬取的金融新聞、公告、研報。
Q. 是否有Tensorflow 版模型?
A: 可以自行轉換。
Q. 能否開源Training 代碼?
A: 由於和內部基礎設施耦合的比較緊,目前沒有計劃。
Q. 如何能做到Langboat 官方網站上文本生成Demo 一樣的效果呢?
A: 我們的文本生成核心模型基於T5 架構,基礎的文本生成算法可以參考Google 的T5 論文: https://arxiv.org/pdf/1910.10683.pdf。 我們開源的Mengzi-T5 模型與Google 的T5 預訓練模型架構相同是通用的預訓練模型,沒有專門的文本生成任務。我們的營銷文案生成功能是在其之上使用大量數據進行了具體的下游任務Finetune。而在此基礎上為了達到可控生成的效果,我們又構建了一整套文本生成Pipeline:從數據清洗、知識抽取、訓練數據構建到生成質量評價。其中大部分是按照商業落地場景進行訂製的:根據不同的業務需求、不同的數據形式構建不同的預訓練和Finetune 任務。這部分牽涉到比較複雜的軟件架構以及具體的業務場景,我們暫時還沒有進行開源。
Q. Mengzi-T5-base 能直接Inference 麼?
A: 我們參考了T5 v1.1,不包含下游任務。
Q: 用Huggingface Transformer 加載出錯了怎麼辦?
A: 加上force_download=True試試。
Q: Mengzi-T5-base 在做constrain generation的時候,似乎總是傾向於生成詞粒度的候選,而mT5 則相反,是字粒度優先,這個是訓練過程就是詞粒度處理了嗎?
A: 我們沒有用 mT5 的詞表,而是基於語料重新訓練了 Tokenizer,包含了更多詞彙。這樣同樣長度的文本 encode 之後 token 數會更少些,顯存佔用更小,訓練速度更快。
該項目中的內容僅供技術研究參考,不作為任何結論性依據。使用者可以在許可證範圍內任意使用該模型,但我們不對因使用該項目內容造成的直接或間接損失負責。技術報告中所呈現的實驗結果僅表明在特定數據集和超參組合下的表現,並不能代表各個模型的本質。 實驗結果可能因隨機數種子,計算設備而發生改變。
使用者以各種方式使用本模型(包括但不限於修改使用、直接使用、通過第三方使用)的過程中,不得以任何方式利用本模型直接或間接從事違反所屬法域的法律法規、以及社會公德的行為。使用者需對自身行為負責,因使用本模型引發的一切糾紛,由使用者自行承擔全部法律及連帶責任。我們不承擔任何法律及連帶責任。
我們擁有對本免責聲明的解釋、修改及更新權。
@misc{zhang2021mengzi,
title={Mengzi: Towards Lightweight yet Ingenious Pre-trained Models for Chinese},
author={Zhuosheng Zhang and Hanqing Zhang and Keming Chen and Yuhang Guo and Jingyun Hua and Yulong Wang and Ming Zhou},
year={2021},
eprint={2110.06696},
archivePrefix={arXiv},
primaryClass={cs.CL}
}