五月天成人小说,中文字幕亚洲欧美专区,久久妇女,亚洲伊人久久大香线蕉综合,日日碰狠狠添天天爽超碰97

cpm-bee-5b
CPM-Bee是一個完全開源、允許商用的百億參數(shù)中英文基座模型,也是CPM-live訓(xùn)練的第二個里程碑。它采用Transformer自回歸架構(gòu)(auto-regressive),在超萬億(trillion)高質(zhì)量語料上進(jìn)行預(yù)訓(xùn)練,擁有強大的基礎(chǔ)能力。開發(fā)者和研究者可以在CPM-Bee基座模型的基礎(chǔ)上
  • 模型資訊
  • 模型資料

CPM-Bee

百億參數(shù)的開源中英文雙語基座大模型

模型 ? OpenBMB體系 ? 性能表現(xiàn) ? 開源協(xié)議

? 模型介紹

CPM-Bee是一個完全開源、允許商用的百億參數(shù)中英文基座模型,也是CPM-live訓(xùn)練的第二個里程碑。它采用Transformer自回歸架構(gòu)(auto-regressive),在超萬億(trillion)高質(zhì)量語料上進(jìn)行預(yù)訓(xùn)練,擁有強大的基礎(chǔ)能力。開發(fā)者和研究者可以在CPM-Bee基座模型的基礎(chǔ)上在各類場景進(jìn)行適配來以創(chuàng)建特定領(lǐng)域的應(yīng)用模型。

  • ?? 開源可商用:OpenBMB始終秉承“讓大模型飛入千家萬戶”的開源精神,CPM-Bee基座模型將完全開源并且可商用,以推動大模型領(lǐng)域的發(fā)展。我們鼓勵全球范圍內(nèi)的科研機構(gòu)、企業(yè)和個人開發(fā)者在遵守開源許可協(xié)議的前提下,自由地在CPM-Bee基座模型上進(jìn)行創(chuàng)新。

  • ?? 中英雙語性能優(yōu)異: CPM-Bee基座模型在預(yù)訓(xùn)練語料上進(jìn)行了嚴(yán)格的篩選和配比,同時在中英雙語上具有亮眼表現(xiàn),具體可參見評測任務(wù)和結(jié)果

  • ?? 超大規(guī)模高質(zhì)量語料: CPM-Bee基座模型在超萬億語料進(jìn)行訓(xùn)練,是開源社區(qū)內(nèi)經(jīng)過語料最多的模型之一。同時,我們對預(yù)訓(xùn)練語料進(jìn)行了嚴(yán)格的篩選、清洗和后處理以確保質(zhì)量。

  • OpenBMB大模型系統(tǒng)生態(tài)支持: OpenBMB大模型系統(tǒng)在高性能預(yù)訓(xùn)練、適配、壓縮、部署、工具開發(fā)了一系列工具,CPM-Bee基座模型將配套所有的工具腳本,高效支持開發(fā)者進(jìn)行進(jìn)階使用。

  • ?? 對話和工具使用能力: 結(jié)合OpenBMB在指令微調(diào)和工具學(xué)習(xí)的探索,我們在CPM-Bee基座模型的基礎(chǔ)上進(jìn)行微調(diào),訓(xùn)練出了具有強大對話和工具使用能力的實例模型,API和內(nèi)測將于近期開放。

Read this in English.

?? 安裝和使用

您需要克隆該倉庫:

$ git clone -b master --single-branch https://github.com/OpenBMB/CPM-Bee.git

并確保您的環(huán)境符合要求:

- python>=3.7
- torch>=1.10

我們建議使用Anaconda管理環(huán)境并從PyPI安裝其他依賴項:

$ cd src
$ pip install -r requirements.txt

模型

  • 模型權(quán)重下載鏈接

  • CPM-Bee的基座模型可以準(zhǔn)確地進(jìn)行語義理解,高效完成各類基礎(chǔ)任務(wù),包括:文字填空、文本生成、翻譯、問答、評分預(yù)測、文本選擇題等等。

"填空":{"input": "心理學(xué)領(lǐng)域的研究人員發(fā)現(xiàn),做出重要決定的最好方法之一,比如選擇一所大學(xué)或<mask_0>,都涉及到使用決策工作表。研究優(yōu)化的心理學(xué)家將<mask_1>與理論理想決策進(jìn)行比較,看看它們有多相似。工作表程序的支持者認(rèn)為它會產(chǎn)生最優(yōu)的,也就是說,最好的決策。雖然有<mask_2>可以接受,但它們在本質(zhì)上都是相似的。","<ans>":{"<mask_0>":"","<mask_1>":"","<mask_2>":""}},
"文本生成": {"input": "今天天氣很好,我和媽媽一起去公園,<mask>", "prompt": "往后寫兩句話", "<ans>": ""}
"翻譯": {"input": "北京是中國的首都", "prompt": "中翻英", "<ans>": ""}
"問答": {"input": "NGC 6231是一個位于天蝎座的疏散星團,天球座標(biāo)為赤經(jīng)16時54分,赤緯-41度48分,視覺觀測大小約45角分,亮度約2.6視星等,距地球5900光年。NGC 6231年齡約為三百二十萬年,是一個非常年輕的星團,星團內(nèi)的最亮星是5等的天蝎座 ζ1星。用雙筒望遠(yuǎn)鏡或小型望遠(yuǎn)鏡就能看到個別的行星。NGC 6231在1654年被意大利天文學(xué)家喬瓦尼·巴蒂斯特·霍迪爾納(Giovanni Battista Hodierna)以Luminosae的名字首次紀(jì)錄在星表中,但是未見記載于夏爾·梅西耶的天體列表和威廉·赫歇爾的深空天體目錄。這個天體在1678年被愛德蒙·哈雷(I.7)、1745年被夏西亞科斯(Jean-Phillippe Loys de Cheseaux)(9)、1751年被尼可拉·路易·拉卡伊(II.13)分別再次獨立發(fā)現(xiàn)。", "question": "NGC 6231的經(jīng)緯度是多少?", "<ans>": ""}
"評分預(yù)測": {"input":"之前多次聚餐都選擇這里,有各種大小的包房同時能容納很多人,環(huán)境好有特色還有表演,整體聚餐氛圍一下被帶動起來。現(xiàn)在由于炭火改成了電烤羊,口感真的不如從前,不過其他菜品都還是不錯,烤羊剩下的拆骨肉最后還能再加工一下椒鹽的也很好吃。","question":"評分是多少?(1-5)","<ans>":""},
"選擇題": {"input": "父母都希望自己的孩子誠實、勇敢、有禮貌。要想讓孩子成為這樣的人,父母首先得從自己做起,要是連自己都做不到,又怎能要求孩子做到呢?", "options": {"<option_0>": "少提要求", "<option_1>": "降低標(biāo)準(zhǔn)", "<option_2>": "自己先做好", "<option_3>": "讓孩子拿主意"}, "question": "教育孩子時,父母應(yīng)該:", "<ans>": ""}

OpenBMB

基于OpenBMB的大模型系統(tǒng)生態(tài),我們在訓(xùn)練CPM-Bee的過程中實現(xiàn)了全流程高效。同時提供了繼續(xù)訓(xùn)練(基于BMTrain)、微調(diào)(基于OpenPrompt和OpenDelta)、工具使用(基于BMTools)、模型壓縮(基于BMCook)、高效推理(基于BMInf)的全套腳本,可以協(xié)助開發(fā)者快速上手和使用CPM-Bee。

預(yù)訓(xùn)練

我們提供了基于BMTrain加速的預(yù)訓(xùn)練腳本,大幅提升預(yù)訓(xùn)練效率。

模型微調(diào)

基于OpenDelta,我們給出了兩種微調(diào)方案:全參數(shù)微調(diào)和參數(shù)高效的增量微調(diào),可以將CPM-Bee適配到各類下游場景中。

  1. 全參數(shù)微調(diào):
$ torchrun --nnodes=1 --nproc_per_node=4 --rdzv_id=1 --rdzv_backend=c10d --rdzv_endpoint=localhost:12345 finetune_cpm_bee.py
  1. 增量微調(diào):
$ torchrun --nnodes=1 --nproc_per_node=4 --rdzv_id=1 --rdzv_backend=c10d --rdzv_endpoint=localhost:12345 finetune_cpm_bee.py \
--use-delta \

任務(wù)流程
要在特定任務(wù)上微調(diào)模型,您應(yīng)該準(zhǔn)備數(shù)據(jù)集并按如下方式執(zhí)行:

  • 重新調(diào)整數(shù)據(jù)格式。
    您可以將分類問題集成到選擇題的格式中。有關(guān)數(shù)據(jù)格式的更多信息,您可以查看CPM-Bee數(shù)據(jù)格式
  • 將數(shù)據(jù)集預(yù)處理為二進(jìn)制文件。
    要構(gòu)建預(yù)處理數(shù)據(jù)集,您可以運行
$ python preprocess_dataset.py --input your/reformated/data/path --output_path your/binary/data/path --output_name data_name
預(yù)處理后,您將獲得:
|-- your/binary/data/path
    |-- folder1
    |    |-- data_name
    |    |-- meta.bin
    |-- folder2
         |-- data_name
         |-- meta.bin
  • 微調(diào)CPM-Bee
    要開始微調(diào),您可以運行:
$ bash scripts/finetune_cpm_bee.sh

或者您可以直接通過torchrun運行finetune_cpm_bee.py。例如,您可以在具有4塊GPU的服務(wù)器上對CPM-Bee進(jìn)行微調(diào),如下所示:

torchrun --nnodes=1 --nproc_per_node=4 --rdzv_id=1 --rdzv_backend=c10d --rdzv_endpoint=localhost:12345 finetune_cpm_bee.py \
--model-config your/model/config/path \
--load your/model/checkpoint/path \
--dataset your/binary/data/path/folder1 \
--eval_dataset your/binary/data/path/folder2 \
--use-delta 

模型壓縮

基于BMCook,我們對原始的CPM-Bee基座模型進(jìn)行壓縮,提供了多種大小的CPM-Bee模型來適應(yīng)各種不同的場景。

模型 #Attn.層 #FFN層 Attn隱狀態(tài)維度 FFN隱狀態(tài)維度 下載
CPM-Bee-10B 48 48 4096 10240 鏈接
CPM-Bee-5B 19 24 4096 10240 鏈接
CPM-Bee-2B 19 24 2048 5120 鏈接
CPM-Bee-1B 19 24 1280 1024 鏈接

模型部署

對于壓縮后的CPM-Bee,普通的消費級顯卡即可完成快速推理,不同大小的模型所占用的推理資源如下:

模型 推理內(nèi)存占用 推薦硬件
CPM-Bee-10B 20GB RTX3090(24 GB)
CPM-Bee-5B 11 GB RTX3090(24 GB)
CPM-Bee-2B 6.7 GB GTX 1080(8 GB)
CPM-Bee-1B 4.1 GB GTX 1660(6 GB)

對于具體的推理任務(wù),您可以編寫自己的推理代碼。這里我們舉一個簡單的文本生成示例。

from cpm_live.generation.bee import CPMBeeBeamSearch
from cpm_live.models import CPMBeeTorch, CPMBeeConfig
from cpm_live.tokenizers import CPMBeeTokenizer
from opendelta import LoraModel
import torch

prepare your input data.
data_list = [
    {"input": "今天天氣是真的<mask>", "prompt": "往后寫一句話", "<ans>": {"<mask>": ""}},
    {"input": "北京市氣象臺提示,4月12日午后偏南風(fēng)加大,陣風(fēng)可達(dá)6級左右,南下的沙塵可能伴隨回流北上進(jìn)京,外出仍需注意<mask_0>,做好健康防護(hù)。天津市氣象臺也提示,受<mask_1>影響,我市4月12日有浮塵天氣,PM10濃度<mask_2>。請注意關(guān)好門窗,老人兒童盡量減少戶外活動,外出注意帶好<mask_3>?!?","<ans>":{"<mask_0>":"","<mask_1>":"","<mask_2>":"","<mask_3>":""}},
]

# load model
config = CPMBeeConfig.from_json_file("cpm-bee-5b.json")
ckpt_path = "cpm-bee-5b-ckpt.pt"
tokenizer = CPMBeeTokenizer()
model = CPMBeeTorch(config=config)

# insert LoRA
# delta_model = LoraModel(backbone_model=model, modified_modules=["project_q", "project_v"], backend="hf")

# load checkpoints
model.load_state_dict(torch.load(ckpt_path))
model.cuda()

# use beam search
beam_search = CPMBeeBeamSearch(
    model=model,
    tokenizer=tokenizer,
)
for data in data_list:
    inference_results = beam_search.generate([data], max_length=100)
    for res in inference_results:
        print(res)
# output:
# {'input': '今天天氣是真的<mask>', 'prompt': '往后寫一句話', '<ans>': {'<mask>': '好??!'}}
# {'input': '北京市氣象臺提示,4月12日午后偏南風(fēng)加大,陣風(fēng)可達(dá)6級左右,南下的沙塵可能伴隨回流北上進(jìn)京,外出仍需注意<mask_0>,做好健康防護(hù)。天津市氣象臺也提示,受<mask_1>影響,我市4月12日有浮塵天氣,PM10濃度<mask_2>。請注意關(guān)好門窗,老人兒童盡量減少戶外活動,外出注意帶好<mask_3>?!?', '<ans>': {'<mask_0>': '防風(fēng)', '<mask_1>': '沙塵天氣', '<mask_2>': '較高', '<mask_3>': '口罩'}}

我們還將上面的代碼集成到一個python文件text_generation.py中,為了便于推斷,可以直接運行該文件:

python text_generation.py

您可以設(shè)置不同的輸入格式,以適應(yīng)不同的推理任務(wù)。

示例代碼

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
# save_dir參數(shù)需要寫入模型下載到的位置
if __name__ == '__main__':
    text_generation_zh = pipeline(task=Tasks.text_generation, model='OpenBMB/cpm-bee-5b', save_dir='/mnt/workspace/.cache/modelscope/OpenBMB/cpm-bee-5b/', model_revision='v1.0.2')
    result_zh = text_generation_zh('{"input": "今天天氣是真的<mask>", "prompt": "往后寫一句話", "<ans>": {"<mask>": ""}}')
    print(result_zh)

如何執(zhí)行代碼

python modescope_test.py build_ext --inplace

?? 性能表現(xiàn)

零樣本評測

我們對CPM-Bee基座模型進(jìn)行了全方位的中英文能力評測。 在中文的Zero-CLUE評測基準(zhǔn)上,CPM-Bee可以大幅超越其他模型,位列中文大模型第一。在英文評測基準(zhǔn)上,CPM-Bee也展現(xiàn)出了和開源模型LLaMA相當(dāng)?shù)男Ч?/p>

ZeroClue中文評測

模型 Score EPRSTMT CSLDCP TNEWSF IFLYTEKF OCNLIF BUSTM CHIDF CSLF CLUEWSCF
CPM-Bee 78.184 85.52 58.99 78.2 58.81 77.73 83.85 89.65 83.6 87.24
Ctyun_Big_Model 76.217 87.25 48.02 77.13 59.62 75.5 90.05 84.6 82.9 81.72
PaddleNLP-UTC 70.547 85.92 58.92 68.27 40.15 74.79 76.7 82.75 70.6 74.48
二郎神-UnifiedMC 70.295 88.71 50.18 71.67 40.58 75.5 80.15 84.85 60.6 81.72

英文評測

模型 Average BoolQ PIQA SIQA HellaSwag WinoGrande ARC-e ARC-c OBQA
GPT-3 60.5 81 - 78.9 70.2 68.8 51.4 57.6
Gopher 79.3 81.8 50.6 79.2 70.1 - - -
Chinchilla 83.7 81.8 51.3 80.8 74.9 - - -
PaLM 84.8 80.5 - 79.7 77 75.2 52.5 50.4
LLaMA-7B 66.13 76.5 79.8 48.9 76.1 70.1 72.8 47.6 57.2
LLaMA-13B 68.08 78.1 80.1 50.4 79.2 73 74.8 52.7 56.4
CPM-Bee-0527 67.80 78.69 77.58 61.11 78.89 61.88 66.88 54.18 63.20

CPM-Bee+ Decoder Tuning

使用和OpenBMB和THUNLP聯(lián)合自研的Decoder Tuning(將發(fā)表于ACL 2023)技術(shù),可以僅僅使用API的情況下,不訪問和修改模型參數(shù)即可大幅提高下游任務(wù)的性能。
實現(xiàn)代碼鏈接。

樣本數(shù) 模型 SST2 IMDB Yelp AGNews DBpedia Yahoo RTE SNLI MNLI-m MNLI-mm FewNERD Avg.
0 CPM-Bee 80.5 89.1 96.6 74.6 71.3 46.7 84.1 45.4 45.6 45.6 1.6 61.9
16 T5-3B 89.9 92.7 94.9 87.7 96.2 66.5 55.8 52.0 52.8 52.2 51.9 72.1
LLaMA-7B 85.1 90.5 92.8 71.4 89.8 45.1 49.1 35.2 36.3 36.2 54.6 62.4
Vicuna-13B 82.1 88.8 95.6 86.4 74.4 55.3 62.5 61.4 54.3 48.6 52.1 69.2
CPM-Bee 92.7 96.2 97.5 85.5 89.8 65.2 86.0 86.4 76.3 76.3 54.6 82.4
64 LLaMA-7B 87.5 85.7 96.9 75.4 93.5 47.4 51.4 39.4 36.2 38.4 59.8 64.7
Vicuna-13B 92.0 90.8 96.5 87.7 87.8 58.7 59.1 58.7 56.7 48.4 56.8 72.1
CPM-Bee 94.3 96.5 98.3 88.5 93.5 68.7 87.1 88.9 78.0 79.0 59.8 84.8
256 LLaMA-7B 87.6 88.8 97.1 82.4 94.2 48.5 53.4 39.8 37.3 37.4 59.1 66.0
Vicuna-13B 93.1 88.7 96.8 89.9 89.1 58.6 58.5 58.7 57.5 48.3 56.6 72.3
CPM-Bee 94.5 96.7 98.4 89.7 94.2 69.9 87.7 89.4 81.7 80.6 59.1 85.6

??開源協(xié)議

模型協(xié)議

CPM-Bee基座采用協(xié)議為“通用模型許可協(xié)議-來源說明-宣傳限制-商業(yè)授權(quán)”,本模型允許商用,如需將模型用于商業(yè)用途,請聯(lián)系cpm@modelbest.cn來獲取書面授權(quán)。

聲明

作為一個語言模型,CPM-Bee通過學(xué)習(xí)大量的文本來生成內(nèi)容,但它無法理解、表達(dá)個人觀點或價值判斷,它所輸出的任何內(nèi)容都不代表模型開發(fā)者的觀點和立場。
因此用戶在使用CPM-Bee生成的內(nèi)容時,應(yīng)自行負(fù)責(zé)對其進(jìn)行評估和驗證。