MedicalGPT:基于LLaMA13B的中英医疗问答模型(LoRA)汀人工智能

****训练医疗大模型,实现包括二次预训练、有监督微调、奖励建模、强化学习训练。

版本迭代

V1:发布中文医疗LoRA模型,基于Ziya-LLaMA-13B-v1模型,SFT微调了一版医疗模型,医疗问答效果有提升,发布微调后的LoRA权重,

V0:以医疗为例,训练领域大模型,实现了四阶段训练:包括二次预训练、有监督微调、奖励建模、强化学习训练。

基于ChatGPTTrainingPipeline,本项目实现了领域模型--医疗模型的四阶段训练:

trainingargs:

evaluateloss:

本项目开源在githubrepo:

Installpackage:

First,youpassyourinputthroughthetransformermodel,thenyougetthegeneratedsentence.

姜子牙通用大模型V1是基于LLaMa的130亿参数的大规模预训练模型,具备翻译,编程,文本分类,信息抽取,摘要,文案生成,常识问答和数学计算等能力。目前姜子牙通用大模型已完成大规模预训练、多任务有监督微调和人类反馈学习三阶段的训练过程。

TheZiya-LLaMA-13B-v1isalarge-scalepre-trainedmodelbasedonLLaMAwith13billionparameters.Ithastheabilitytoperformtaskssuchastranslation,programming,textclassification,informationextraction,summarization,copywriting,commonsenseQ&A,andmathematicalcalculation.TheZiya-LLaMA-13B-v1hasundergonethreestagesoftraining:large-scalecontinualpre-training(PT),multi-tasksupervisedfine-tuning(SFT),andhumanfeedbacklearning(RM,PPO).

为了解决LLaMA原生分词对中文编解码效率低下的问题,我们在LLaMA词表的基础上增加了7k+个常见中文字,通过和LLaMA原生的词表去重,最终得到一个39410大小的词表,并通过复用Transformers里LlamaTokenizer来实现了这一效果。

训练期间,虽然遇到了机器宕机、底层框架bug、lossspike等各种问题,但我们通过快速调整,保证了增量训练的稳定性。我们也放出训练过程的loss曲线,让大家了解可能出现的问题。

在多任务有监督微调阶段,采用了课程学习(curiculumlearning)和增量训练(continuallearning)的策略,用大模型辅助划分已有的数据难度,然后通过“EasyToHard”的方式,分多个阶段进行SFT训练。

SFT训练数据包含多个高质量的数据集,均经过人工筛选和校验:

在多任务学习的监督微调(SFT)阶段,我们使用了课程学习和增量训练策略。我们利用大模型辅助对现有数据进行难度划分,然后采用“由易到难”的方法分阶段进行SFT训练。

为了进一步提升模型的综合表现,使其能够充分理解人类意图、减少“幻觉”和不安全的输出,基于指令微调后的模型,进行了人类反馈训练(Human-FeedbackTraining,HFT)。在训练中,我们采用了以人类反馈强化学习(RM、PPO)为主,结合多种其他手段联合训练的方法,手段包括人类反馈微调(Human-FeedbackFine-tuning,HFFT)、后见链微调(Chain-of-HindsightFine-tuning,COHFT)、AI反馈(AIFeedback)和基于规则的奖励系统(Rule-basedRewardSystem,RBRS)等,用来弥补PPO方法的短板,加速训练。

我们在内部自研的框架上实现了HFT的训练流程,该框架可以利用最少8张40G的A100显卡完成Ziya-LLaMA-13B-v1的全参数训练。在PPO训练中,我们没有限制生成样本的长度,以确保长文本任务的奖励准确性。每次训练的总经验池尺寸超过100k样本,确保了训练的充分性。

我们提供了一个简洁的基于gradio的交互式web界面,启动服务后,可通过浏览器访问,输入问题,模型会返回答案。

启动服务,命令如下:

pythongradio_demo.py--model_typebase_model_type--base_modelpath_to_llama_hf_dir--lora_modelpath_to_lora_dir参数说明:

Thefollowingmodelsaretested:

bloom:

llama:

chatglm:

baichuan:

第一阶段:PT(ContinuePreTraining)增量预训练

使用百科类文档类数据集,用来在领域数据集上增量预训练或二次预训练,期望能把领域知识注入给模型,以医疗领域为例,希望增量预训练,能让模型理解感冒的症状、病因、治疗药品、治疗方法、药品疗效等知识,便于后续的SFT监督微调能激活这些内在知识。

这里说明一点,像GPT3、LLaMA这样的大模型理论上是可以从增量预训练中获益,但增量预训练需要满足两个要求:1)高质量的预训练样本;2)较大的计算资源,显存要求高,即使是用LoRA技术,也要满足block_size=1024或2048长度的文本加载到显存中。

其次,如果你的项目用到的数据是模型预训练中已经使用了的,如维基百科、ArXiv等LLaMA模型预训练用了的,则这些数据是没有必要再喂给LLaMA增量预训练,而且预训练样本的质量如果不够高,也可能会损害原模型的生成能力。

tips:PT阶段是可选项,请慎重处理。

基于llama-7b模型,使用医疗百科类数据继续预训练,期望注入医疗知识到预训练模型,得到llama-7b-pt模型

Continuepretrainingofthebasellama-7bmodeltocreatellama-7b-pt:

第二阶段:SFT(SupervisedFine-tuning)有监督微调

基于llama-7b-pt模型,使用医疗问答类数据进行有监督微调,得到llama-7b-sft模型

Supervisedfine-tuningofthebasellama-7b-ptmodeltocreatellama-7b-sft

第三阶段:RM(RewardModel)奖励模型建模

RM(RewardModel)奖励模型,原则上,我们可以直接用人类标注来对模型做RLHF微调。

然而,这将需要我们给人类发送一些样本,在每轮优化后计分。这是贵且慢的,因为收敛需要的训练样本量大,而人类阅读和标注的速度有限。一个比直接反馈更好的策略是,在进入RL循环之前用人类标注集来训练一个奖励模型RM。奖励模型的目的是模拟人类对文本的打分。

构建奖励模型的最佳实践是预测结果的排序,即对每个prompt(输入文本)对应的两个结果(yk,yj),模型预测人类标注的比分哪个更高。RM模型是通过人工标注SFT模型的打分结果来训练的,目的是取代人工打分,本质是个回归模型,用来对齐人类偏好,主要是"HHH"原则,具体是"helpful,honest,harmless"。

基于llama-7b-sft模型,使用医疗问答偏好数据训练奖励偏好模型,训练得到llama-7b-reward模型

Rewardmodelingusingdialogpairsfromtherewarddatasetusingthellama-7b-sfttocreatellama-7b-reward:

第四阶段:RL(ReinforcementLearning)基于人类反馈的强化学习(RLHF)

RL(ReinforcementLearning)模型的目的是最大化奖励模型的输出,基于上面步骤,我们有了微调的语言模型(llama-7b-sft)和奖励模型(llama-7b-reward),可以开始执行RL循环了。

这个过程大致分为三步:

基于llama-7b-reward模型RL微调训练llama-7b-sft模型,得到llama-7b-rl模型

ReinforcementLearningfine-tuningofllama-7b-sftwiththellama-7b-rewardrewardmodeltocreatellama-7b-rl

pythoninference.py\--model_typebase_model_type\--base_modelpath_to_llama_hf_dir\--lora_modelpath_to_lora\--with_prompt\--interactive

THE END
1.古典中国成语大全+解释”示例:吾想西伯侯姬昌自在安然,违避旨意,按兵不动,~,真是可恨。★明·许仲琳《封神演义》第二回坐怀不乱拼音:zuòhuáibùluàn释义:春秋时鲁国的柳下惠将受冻的女子裹于怀中,没有发生非礼行为。形容男子在两性关系方面作风正派。出处:《诗经·小雅·巷伯》毛亨传子何不若柳下惠然,妪不逮门之女,国人不称其乱...http://www.360doc.com/document/12/0219/18/832759_187865452.shtml
1.防骗热点!“Jing.Dongapp”真实吗?被骗曝光!真相不能提现让人懊悔...近期,一款名为“Jing.Dongapp”的手机应用引起了大量关注,并成为了诈骗的新热点。许多网友在使用这款应用后纷纷表示被骗,甚至无法提现,让不少用户深感懊悔。那么,这款“Jing.Dongapp”到底是真是假?为何会有人上当受骗?本文将为大家揭开真相,帮助大家提高警惕,避免上当。 https://www.jianshu.com/p/cdf4881f965f
2.精选动物说明文作文汇总10篇小鸟站在树枝上,注视着远方,这个世界真是美丽,它赞叹着。突然,它觉得真该动身去旅行了,要不去大海边吧!大海边很美的! 它为自己准备了很多东西,比如说:指南针、苹果、面包等等。它刚要走的时候,它的好朋友松鼠跑了过来,小松鼠问:“我可以和你们一起去吗?”小鸟乐意的说:“当然可以啦!正好有个朋友陪我说话...https://www.ruiwen.com/zuowen/shuomingwen/5296874.html