小飞侠 - 增量预训练
type: channel
link: http://www.kexue.love/index.php/category/增量预训练/
items: 大模型增量预训练效果
items: 医疗大模型增量预训练的方法

大模型增量预训练效果
type: item
date: 2024-02-21T06:11:00+00:00
description: 参考：1.https://mp.weixin.qq.com/s/yhBMgmoJ2uzqc3JERrUhAw2.https://zhuanlan.zhihu.com/p/6544633313.https://www.cnblogs.com/Revelation/p/17787079.html

医疗大模型增量预训练的方法
type: item
date: 2023-11-24T02:59:00+00:00
description: 文档可以参考：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_CN100 万条中文 ChatGPT 指令 Belle 数据集：BelleGroup/train_1M_CN：https://huggingface.co/datasets/BelleGroup/train_1M_CN5 万条英文 ChatGPT 指令 Alpaca 数据集：50k English Stanford Alpaca dataset：https://github.com/tatsu-lab/stanford_alpaca#data-release2 万条中文 ChatGPT 指令 Alpaca 数据集：shibing624/alpaca-zh：https://huggingface.co/datasets/shibing624/alpaca-zh69 万条中文指令 Guanaco 数据集 (Belle50 万条 + Guanaco19 万条)：Chinese-Vicuna/guanaco_belle_merge_v1.0 ：https://huggingface.co/datasets/Chinese-Vicuna/guanaco_belle_merge_v1.0240 万条中文医疗数据集 (包括预训练数据和指令微调数据集)：shibing624/medical：https://huggingface.co/datasets/shibing624/medical2、继续预训练 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 曲线，让大家了解可能出现的问题。Training PipelineTraining Stage:StageIntroductionPython scriptShell scriptContinue Pretraining增量预训练pretraining.pyrun_pt.shSupervised Fine-tuning有监督微调supervised_finetuning.pyrun_sft.shDirect Preference Optimization直接偏好优化dpo_training.pyrun_dpo.shReward…