分类 增量预训练 下的文章

文档可以参考:
https://juejin.cn/post/7301909180230074420

基于ChatGPT Training Pipeline,融入领域增量知识,进行训练预训练,需要进行四阶段训练:

第一阶段:PT(Continue PreTraining)增量预训练,在海量领域文档数据上二次预训练GPT模型,以注入领域知识
第二阶段:SFT(Supervised Fine-tuning)有监督微调,构造指令微调数据集,在预训练模型基础上做指令精调,以对齐指令意图
第三阶段:RM(Reward Model)奖励模型建模,构造人类偏好排序数据集,训练奖励模型,用来对齐人类偏好,主要是"HHH"原则,具体是"helpful, honest, harmless"
第四阶段:RL(Reinforcement Learning)基于人类反馈的强化学习(RLHF),用奖励模型来训练SFT模型,生成模型使用奖励或惩罚来更新其策略,以便生成更高质量、更符合人类偏好的文本

一、模型介绍

1、 训练数据集

50 万条中文 ChatGPT 指令 Belle 数据集:BelleGroup/train_0.5M_CN:https://huggingface.co/datasets/BelleGroup/train_0.5M_CN
100 万条中文 ChatGPT 指令 Belle 数据集:BelleGroup/train_1M_CN:https://huggingface.co/datasets/BelleGroup/train_1M_CN
5 万条英文 ChatGPT 指令 Alpaca 数据集:50k English Stanford Alpaca dataset:
https://github.com/tatsu-lab/stanford_alpaca#data-release
2 万条中文 ChatGPT 指令 Alpaca 数据集:shibing624/alpaca-zh:
https://huggingface.co/datasets/shibing624/alpaca-zh
69 万条中文指令 Guanaco 数据集 (Belle50 万条 + Guanaco19 万条):Chinese-Vicuna/guanaco_belle_merge_v1.0 :
https://huggingface.co/datasets/Chinese-Vicuna/guanaco_belle_merge_v1.0
240 万条中文医疗数据集 (包括预训练数据和指令微调数据集):shibing624/medical:
https://huggingface.co/datasets/shibing624/medical

2、继续预训练 Continual pretraining

参考 LLaMA 模型的增量预训练方法、资源和时间:
原始数据包含英文和中文,其中英文数据来自 openwebtext、Books、Wikipedia 和 Code,中文数据来自清洗后的悟道数据集、自建的中文数据集。在对原始数据进行去重、模型打分、数据分桶、规则过滤、敏感主题过滤和数据评估后,最终得到 125B tokens 的有效数据。
为了解决 LLaMA 原生分词对中文编解码效率低下的问题,我们在 LLaMA 词表的基础上增加了 7k + 个常见中文字,通过和 LLaMA 原生的词表去重,最终得到一个 39410 大小的词表,并通过复用 Transformers 里 LlamaTokenizer 来实现了这一效果。
在增量训练过程中,我们使用了 160 张 40GB 的 A100,采用 2.6M tokens 的训练集样本数量和 FP 16 的混合精度,吞吐量达到 118 TFLOP per GPU per second。因此我们能够在 8 天的时间里在原生的 LLaMA-13B 模型基础上,增量训练 110B tokens 的数据。
训练期间,虽然遇到了机器宕机、底层框架 bug、loss spike 等各种问题,但我们通过快速调整,保证了增量训练的稳定性。我们也放出训练过程的 loss 曲线,让大家了解可能出现的问题。

微信截图_20231124111636.png

Training Pipeline

Training Stage:

StageIntroductionPython scriptShell script
Continue Pretraining增量预训练pretraining.pyrun_pt.sh
Supervised Fine-tuning有监督微调supervised_finetuning.pyrun_sft.sh
Direct Preference Optimization直接偏好优化dpo_training.pyrun_dpo.sh
Reward Modeling奖励模型建模reward_modeling.pyrun_rm.sh
Reinforcement Learning强化学习rl_training.pyrun_rl.sh

一、基座模型选择指标

(1)模型大小 9分 :
(2)Token size 6分 :模型包含知识的能力
(3)各种官方测评 10分 :以中文测评为主
(4)支持上下文长度 3分:4K基本上都能满足要求
(5)base 7分 :生态支持
(6)测评排名 7分:模型综合能力体现
(7)开发难度 3分:预训练代码是否开源,官方是否有多机多卡示例
(8)可持续更新的前景8分 :是否满足本公司的生态
(9)基座公司实力:4分
(10)github的star数量 5分:模型受欢迎程度
(11)语言 2分 :所选模型都支持中英文

二、生态角度分类

1.LLaMa系列

(1)baichuan
(2)Yi
(3)TigerBot
(4)XuanYuan-70B
(5)Chinese-LLaMA-Alpaca、Chinese-LLaMA-Alpaca-2

2.bloom系列

(1)bloom
(2)Yuan-2.0
(3)BELLE

3.自研修改系列

(1)ChatGLM
(2)Qwen

三、官方测评排名

https://opencompass.org.cn/leaderboard-llm

微信截图_20240125172018.png

今年7月,上海AI实验室联合多家机构发布“书生通用大模型体系” ,包含三大基础模型及贯穿数据、预训练、微调、部署和评测五大环节的全链条工具体系。此次正式推出的OpenCompass,从评测角度进一步巩固了大模型创新的技术基石,以纯粹技术及中立视角为产学研界提供客观的大模型能力参考。

   加入评测及查看报告,可访问:

   官网链接 https://opencompass.org.cn

   开源链接 https://github.com/open-compass/opencompass

   六大亮点功能,提供专业模型评测
   作为高效、全面的大模型评测体系及开放平台,OpenCompass提供完整开源可复现的评测框架,支持大语言模型、多模态模型的一站式评测,基于分布式技术,对大参数量模型亦能实现高效评测。同时,通过零样本评测、小样本评测和思维链评测等多样化评测,OpenCompass可全方位量化模型在各个的维度能力。

底座选择

Model NameModel SizeToken size语言长度base选择
BLOOMZ560M/1.1B/1.7B/3B/7.1B/176B 多种,1%-bloomX
LLaMA7B/13B/33B/65B0.13%, LLaMaX
LLaMA-27B/13B/70Bllama2LLaMaX
Chinese-LLaMA-Alpaca7B/13B/33B120G LLaMaX
Baichuan7B/13B1.4 万亿 tokens LLaMaX
Baichuan27B/13B2.6 万亿 Tokens LLaMaX
InternLM2-Chat-20B 书生7B/20B3T tokens中英20kColossalAIX
XVERSE13B3.2 万 40多 X
ChatGLM6B1.4T中英-ChatGLMX
ChatGLM26B1.4T中英-ChatGLMX
ChatGLM36B1.4T中英-ChatGLMX
Yi6B/34B3T中英20kLLaMa
SUSChat-34B6B/34B3T中英20kLLaMa
OrionStar-Yi-34B-Chat6B/34B3T中英20kLLaMa
DeepSeek7B/67B2T中英4kLLaMa?
Yuan-2.02B/50B/102B288B中英4kbloom
TigerBot7B/13B/70B300B中英4kLLaMa
Qwen1.8B/7B/ 14B/74B3T tokens中英32kQwen
XuanYuan-70B13B/70B60G中英8kbloom->LLaMa
Yayi2-30B30B2T多语言8k?

首先可以排除几个备选模型:

(1)SUSChat-34B

SUS-Chat-34B模型是南方科技大学联合IDEA研究院CCNL团队开源的通用大模型, 2023-12-05在Huggingface的权威榜单上open_llm_leaderboard取得了同级别模型最好成绩。

SUS-Chat-34B是一个340亿参数规模的双语模型,基于01-ai/Yi-34B预训练模型通过数百万高质量、多语言的指令数据进行了微调。 在保持基础模型强大的语言能力的同时,SUS-Chat-34B模型通过高质量指令微调改善了模型对人类指令的响应方式,并擅长通过思维链的方式模仿人类思考过程。 与Yi-34B和Yi-34B-chat相比,它不仅在几乎所有基准测试中提升了性能,而且能够更好地满足了复杂多语言任务的实际需求。 在指令微调阶段,我们加入了大量高质量长文本和多轮对话指令数据,将文本窗口从基础模型的4K扩展到8K。 这种扩展有助于模型更有效地遵循多轮对话中的指令,显著减少在扩展对话和长文本理解中上下文丢失的问题。

SUS-Chat-34B模型具有以下亮点:

大规模复杂指令跟随数据:使用1.4B token的高质量复杂指令数据进行训练,涵盖中英文、多轮对话、数学、推理等多种指令数据;
强大的通用任务性能:SUS-Chat-34B模型在众多主流的中英文任务上表现出色,其效果超越了相同参数规模的其他开源的指令微调模型。即使与更大参数规模的模型相比,SUS-Chat-34B模型也具有不错的竞争力;
更长的上下文窗口与出色的多轮对话能力:目前,SUS-Chat-34B原生支持8K的上下文窗口,在大量多轮指令以及单多轮混合数据中进行训练,具有出色的长文本对话信息关注与指令跟随能力。
SUS-Chat-34B模型有力地证明了通过正确的指令微调,学术机构可以在不增加模型参数的情况下,通过开源的数据集和模型,获得更好的性能, 这弥合了学术界和工业界的在大语言模型上的差距,为学术界和工业界的合作提供了新的可能性。

(3)OrionStar-Yi-34B-Chat

OrionStar-Yi-34B-Chat 是猎户星空基于零一万物开源的Yi-34B模型,使用 15W+ 的高质量语料训练而来微调大模型,旨在为大模型社区用户提供卓越的交互体验。

Yi系列模型是由零一万物团队开源的大模型,在多个权威的中文、英文及通用领域 benchmark 上取得不错的效果。今天我们推出的Orionstar-Yi-34B-Chat更进一步挖掘了Yi-34B的潜力。通过对大量高质量微调语料库的深度训练,Orionstar-Yi-34B-Chat在评估数据上表现出色,我们致力于将其打造成为ChatGPT领域中的杰出开源替代品!

(4)XuanYuan-70B

第一版用了bloom,第二版用了llama,只是增量预训练的金融领域数据。
最懂金融领域的开源大模型“轩辕”系列,继176B、70B之后推出更小参数版本——XuanYuan-13B。这一版本在保持强大功能的同时,采用了更小的参数配置,专注于提升在不同场景下的应用效果。我们将在之后继续推出XuanYuan-13B量化版本
主要特点:

“以小搏大”的对话能力:在知识理解、创造、分析和对话能力上,可与千亿级别的模型相媲美
金融领域专家:在预训练和微调阶段均融入大量金融数据,大幅提升金融领域专业能力。在金融知识理解、金融业务分析、金融内容创作、金融客服对话几大方面展示出远超一般通用模型的优异表现
人类偏好对齐:通过人类反馈的强化学习(RLHF)训练,在通用领域和金融领域均与人类偏好进行对齐

30B左右模型选择

还剩下两个:(1)Yi (2) yayi-30B
从以下几个指标:基座模型选择指标 看Yi完胜

50B以上模型选择

可选的还剩下:
(1)Yuan-2.0(50B)
(2)DeepSeek(67B)、TigerBot(70B)、Qwen(74B)

DeepSeek(67B)

40126090036.png

四个模型的对比

英文:

1. MMLU:多任务语言理解:

“Mean Multi-Language Understanding”,中文意为“多语言理解均值(大规模多任务语言理解)是一种新的基准,旨在通过在zero-shot和few-shot设置中专门评估模型来衡量在预训练期间获得的知识。这使得基准更具挑战性,更类似于我们评估人类的方式。该基准涵盖 STEM、人文科学、社会科学等 57 个科目。它的难度从初级到高级专业水平不等,它考验着世界知识和解决问题的能力。科目范围从传统领域,如数学和历史,到更专业的领域,如法律和道德。主题的粒度和广度使基准测试成为识别模型盲点的理想选择。
MMLU是一个包含 57个多选问答任务的英文评测 数据集【多样性基准】,涵盖了初等数学、美国历史、计算机科学、法律等,难度覆盖高中水平到专家水平的人类知识,是目前主流的LLM评测数据集。

2、GSM8K :小学数学题

8.5千道高质量小学数学题,由人工编写答案。其中7.5K是训练集,1K是测试集。
论文:https://arxiv.org/pdf/2110.14168.pdf
排行榜:https://paperswithcode.com/sota/arithmetic-reasoning-on-gsm8k
一句话点评:GSM8K 由数学题组成,主要考察模型的理解和推理能力。

3、MATH

数据集包含 12,500 个数学问题(其中 7500 个属于训练集,5000 个属于测试集),这些问题收集自 AMC 10、AMC 12、AIME 等数学竞赛。

**4、HumanEval数据集
包括164个人工手写的编程问题,其中每个编程问题包括函数头、docstrings、函数体和几个unittests。HumanEval中的编程问题可以用来评估语言理解能力、推理能力、算法能力和简单的数学能力。
整个设计是标准数答案,设定通过的checkpoint。aigc类的task是不是可以借鉴这样的思路去评测。**

5、MBPP数据集
包含974个编程任务,人给出所需程序的描述,引导模型生成正确的代码。
与HumanEval不一样的是,H主要是通过docString,而MBPP是通过description来生产,更加接近自然语言的instruction。

6、BBH
BBH 是一个挑战性任务 Big-Bench 的子集。Big-Bench 目前包括 204 项任务。任务主题涉及语言学、儿童发展、数学、常识推理、生物学、物理学、社会偏见、软件开发等方面。

中文:
1.CEval:学科知识评测集

范围广泛:人文、社科、理工等52个学科。
数据形式:13948道单选题,涉及52个学科,4类不同难度(初中、高中、大学、专业)。
论文:https://arxiv.org/pdf/2305.08322.pdf
评测代码:https://github.com/hkust-nlp/ceval
排行榜:C-Eval: A Multi-Level Multi-Discipline Chinese Evaluation Suite for Foundation Models
一句话评价:C-Eval整体围绕学科知识,覆盖范围广、难度跨度合适,选择题适合快速评测,但是缺乏对生成表达能力的考察。

2、CMMLU 数据集
构建方式与C-EVAL貌似差不多。除了涵盖人文科学、社会科学、STEM(科学、技术、工程和数学)以及其他在人类日常生活中很重要的四个通用领域的知识外,还涵盖一些特定领域的知识,用于验证模型的中国知识的蕴含能力以及对中文的理解和适应能力。
范围广泛:常识类、人文、社科、理工等共67个主题(详见下图)
难易平衡:小学、中学、大学均有涉及
数据形式:11,528道单选题,其中67个主题每个主题至少105道题
论文:https://arxiv.org/pdf/2306.09212.pdf
评测代码:https://github.com/haonan-li/CMMLU
Huggingface: haonan-li/cmmlu · Datasets at Hugging Face
一句话评价:CMMLU整体围绕学科知识,覆盖范围广、难度跨度合适,选择题适合快速评测,但是缺乏对生成表达能力的考察。

ModelMMLUC-EvalGSM8KMATHHumanEvalMBPPBBHCMMLU
5-shot5-shot8-shot4-shot0-shot3-shot3-shot5-shot
LLaMA2-7B46.832.516.73.312.820.838.231.8
LLaMA2-13B55.041.429.65.018.930.345.638.4
LLaMA2-34B62.6-42.26.222.633.044.1-
ChatGLM2-6B47.951.732.46.5--33.7-
InternLM-7B51.053.431.26.310.414.037.051.8
InternLM-20B62.158.852.67.925.635.652.559.0
Baichuan2-7B54.756.324.65.618.324.241.657.1
Baichuan2-13B59.559.052.810.117.130.249.062.0
Yi-34B76.381.867.915.926.238.266.482.6
XVERSE-65B70.868.660.3-26.3---
Qwen-1.8B45.356.132.32.315.214.222.352.1
Qwen-7B58.263.551.711.629.931.645.062.2
Qwen-14B66.372.161.324.832.340.853.471.0
Qwen-72B77.483.378.935.235.452.267.783.6
DeepSeek LLM 67B Chat71.1 65.2 84.1- 73.8 - 71.7 67.8
TigerBot 68.03 67.75 84.91 - - - - -
Yuan-2.0(102B) - - 76.6 - 67.1 - - -

测评结果:
1.Yuan-2.0(102B) 论文和官网都是用102B进行测评,比不过DeepSeek(67B)、TigerBot(70B)、Qwen(74B),先排除
2.DeepSeek(67B)、TigerBot(70B)、Qwen(74B)三个排名,
Qwen(74B)排名第一
剩下:DeepSeek(67B)、TigerBot(70B)

DeepSeek:基座模型选择指标
(1)模型大小 5分 :
(2)Token size 8分 :模型包含知识的能力
(3)官方排序 4分 :以中文测评为主
(4)支持上下文长度 3分:4K基本上都能满足要求
(5)base 1分 :生态支持 (llama? issue:22个)
(6)测评排名 4分:模型综合能力体现
(7)开发难度 2分:预训练代码是否开源,官方是否有多机多卡示例
(8)可持续更新的前景3分 :是否满足本公司的生态
(9)基座公司实力:5分 (幻方量化)
(10)github的star数量 3分:(909)模型受欢迎程度
(11)语言 2分 :所选模型都支持中英文
总分:40分

TigerBot:基座模型选择指标
(1)模型大小 5分 :
(2)Token size 4分 :模型包含知识的能力
(3)官方排序 8分 :以中文测评为主
(4)支持上下文长度 3分:4K基本上都能满足要求
(5)base 5分 :生态支持 (llama ; issue:116个)
(6)测评排名 6分:模型综合能力体现
(7)开发难度 3分:预训练代码是否开源,官方是否有多机多卡示例
(8)可持续更新的前景5分 :是否满足本公司的生态
(9)基座公司实力:2分 (虎博科技几十人)
(10)github的star数量 5分:(2.1k)模型受欢迎程度
(11)语言 2分 :所选模型都支持中英文

总分:48分

Llama2

虽然Llama2的预训练数据相对于第一代LLaMA扩大了一倍,但是中文预训练数据的比例依然非常少,仅占0.13%,