什么情况用Bert模型,什么情况用LLaMA、ChatGLM类大模型,咋选?
什么情况用Bert模型,什么情况用LLaMA、ChatGLM类大模型,咋选?答:Bert 的模型由多层双向的Transformer编码器构成,由12层构成,768隐藏单元,12个head,总参数目110M,约1.15亿参数目。NLU(自然语言明白)任务结果很好,单卡GPU可以部署,速率快,V100GPU下1秒能处理2千条以上。
ChatGLM-6B, LLaMA-7B模型分别是60亿参数目和70亿参数目的大模型,基本可以处理所有NLP任务,结果好,但大模型部署成本高,必要大显存的GPU,并且预测速率慢,V100都必要1秒一条。
所以建议:
\1. NLU相干的任务,用BERT模型能处理的很好,如实体识别、信息抽取、文天职类,没须要上大模型;
\2. NLG任务,纯中文任务,用ChatGLM-6B,必要处理中英文任务,用 chinese-llama-plus-7b 大概 chinese-alpaca-plus-7b-hf
ChatGLM-6B与LLaMA-7B的区别?
答:ChatGLM-6B是用的GLM模型结构,prefix LM,它的attention mask部分,prefix部分的token是互相能看到,模型设计之初考虑NLU任务和NLG任务。
GLM 模型结构:
https://i-blog.csdnimg.cn/blog_migrate/a373e9456855846a19c6d3bbfd2414be.png
LLaMA-7B是GPT模型结构,causal LM,它的attention mask部分,只有后面的token能看到前面的token,单向的从左到右,decoder only。
当前的主流大模型,除了T5是双向结构,GLM是prefix LM, 其他的全部是causal LM。
指令微调的作用?
答:有以下利益:
\1. 对齐人类意图,能够明白自然语言对话(更有人情味)
\2. 经过微调(fine-tuned),定制版的GPT-3在差别应用中的提升非常明显。OpenAI表现,它可以让差别应用的准确度能直接从83%提升到95%、错误率可低落50%。解小学数学题目的正确率也能提高2-4倍。(更准)
\3. 踩在巨人的肩膀上、直接在1750亿参数的大模型上微调,不少研发职员都可以不消再重头训练本身的AI模型了。(更高效)
关于指令微调的作用明白,增补一下下面的情形就明白了。
我们有个大模型训练好了,本领也很强,但是有个题目,模型不一定知道人类想干什么。举个例子:
假如我们问 GPT 一个问题: 世界上最高的山是哪座山?我
们想要的回答是: 喜马拉雅山。
但是预训练数据集中的数据可能是: "世界上最高的山是哪座山? 哪位小朋友知道呢, 告诉老师有小红花哦"
所以 GPT 很可能回复 "哪位小朋友知道呢, 告诉老师有小红花哦",因为预训练阶段就是要求 GPT 去预测下一个词(next-word prediction)的任务。
这时间就表现了微调的须要性。
微调方法是啥?如何微调?
答:当前主流微调方法分为:Fine-tune和prompt-tune
\1. fine-tune,也叫全参微调,bert微调模型一直用的这种方法,全部参数权重参与更新以适配领域数据,结果好。
\2. prompt-tune, 包括p-tuning、lora、prompt-tuning、adaLoRA等delta tuning方法,部分模型参数参与微调,训练快,显存占用少,结果可能跟FT(fine-tune)比会稍有结果损失,但一般结果能打平。
链家在BELLE的技术陈诉《A Comparative Study between Full-Parameter and LoRA-based Fine-Tuning on Chinese Instruction Data for Instruction Following Large Language Model》中实验显示:FT结果稍好于LoRA。
https://i-blog.csdnimg.cn/blog_migrate/267bd5ca79415eeab529b72aed2c120d.png
peft的论文《ADAPTIVE BUDGET ALLOCATION FOR PARAMETER- EFFICIENT FINE-TUNING》显示的结果:AdaLoRA结果稍好于FT。
https://i-blog.csdnimg.cn/blog_migrate/b23300ccf3ade3ba8329960640c6d403.png
关于lora微调多增补几点:
\1. 基础模型的选择对基于LoRA微调的有效性有显著影响。
\2. 训练集越多结果越好
\3. LoRA微调的方法在模型参数越大时表现的优势越明显
此结论参考技术陈诉《A Comparative Study between Full-Parameter and LoRA-based Fine-Tuning on Chinese Instruction Data for Instruction Following Large Language Model》。
LoRA微调方法为啥能加快训练?
答:有如下几个原因:
\1. 只更新了部分参数:好比LoRA原论文就选择只更新Self Attention的参数,现实使用时我们还可以选择只更新部分层的参数;
\2. 镌汰了通信时间:由于更新的参数目变少了,所以(尤其是多卡训练时)要传输的数据量也变少了,从而镌汰了传输时间;
\3. 采用了各种低精度加快技术,如FP16、FP8大概INT8量化等。
这三部分原因确实能加快训练速率,然而它们并不是LoRA所独有的,究竟上险些都有参数高效方法都具有这些特点。LoRA的长处是它的低秩分解很直观,在不少场景下跟全量微调的结果一致,以及在预测阶段不增长推理成本。
如何训练本身的大模型?
答:假如我现在做一个sota的中文GPT大模型,会分2步走:1. 基于中文文本数据在LLaMA-65B上二次预训练; 2. 加CoT和instruction数据, 用FT + LoRA SFT。
提炼下方法,一般分为两个阶段训练:
第一阶段:扩充领域词表,好比金融领域词表,在海量领域文档数据上二次预训练LLaMA模型;
第二阶段:构造指令微调数据集,在第一阶段的预训练模型基础上做指令精调。还可以把指令微调数据集拼起来成文档格式放第一阶段里面增量预训练,让模型先明白下游任务信息。
固然,有低成本方案,由于我们有LoRA利器,第一阶段和第二阶段都可以用LoRA训练,假如不消LoRA,就全参微调,大概7B模型必要8卡A100,用了LoRA后,只必要单卡3090就可以了。
第一阶段数据格式:
[
{
"content":"中华人民共和国最高人民法院 驳 回 申 诉 通 知 书(2022)最高法刑申122号 袁某银、袁某财:你们因原审被告人袁德银故意伤害一案,对江苏省南京市溧水区人民法院(2014)溧刑初字第268号刑事判决、南京市中级人民法院(2015)宁刑终字第433号刑事裁定不服,以被害人朱宽荣住院期间的CT(136678号)报告并未显示其左侧4、5、6、7、8肋骨骨折,出院记录及137470号、143006号CT报告均系伪造,江苏省高级人民法院(2019)苏刑申172号驳回申诉通知书对137470号CT报告的形成时间认定错误为由,向本院提出申诉,请求撤销原判,依法重新审理本案。本院依法组成合议庭认真审查后认为,原审认定原审被告人袁德银因邻里纠纷,殴打被害人朱宽荣致其左胸多发肋骨骨折,构成轻伤二级,其行为构成故意伤害罪,并无不当。关于你们提出的原审认定被害人朱宽荣轻伤二级的证据系伪造的申诉理由。首先,根据你们提供的136678号CT报告,朱宽荣于2015年2月12日入院时经CT检查被诊断为左侧多发肋骨骨折,该份CT报告虽未明确骨折的具体位置,但与出院记录记载的“左侧多发肋骨骨折(4、5、6、7、8)”并不矛盾。根据《人体损伤程度鉴定标准》的规定,肋骨骨折2处以上即构成轻伤二级,故鉴定意见认定朱宽荣的损伤构成轻伤二级并无不当。其次,你们主张出院记录、137470号和143006号CT报告系伪造,但并未提供证据证实。即使排除这两份CT报告,也不影响对本案事实的认定。再次,我院对申诉进行复查的对象是已经发生法律效力的判决、裁定,本案的生效裁判是(2014)溧刑初字第268号刑事判决和(2015)宁刑终字第433号刑事裁定,江苏省高级人民法院作出的驳回申诉通知书不属于我院复查的范围。综上,本院认为,你们的申诉不符合《中华人民共和国刑事诉讼法》第二百五十三条规定的应当重新审判的情形,予以驳回。望你们尊重人民法院的生效裁判,自觉服判息诉。特此通知。二〇二二年十二月十四日"
}
]
第二阶段的数据样例:
[
{
"instruction": "酒驾撞人要判多久?",
"input": "",
"output": "《刑法》第一百三十三条规定:违反交通运输管理法规,因而发生重大事故,致人重伤、死广或者使公私财产遭受重大损失的,处三年以下有期徒刑或者拘役;交通运输肇事后逃逸,致人重伤的,处三年以上七年以下有期徒刑。交通肇事后逃逸致人死亡的,处七年以上有期徒刑。"
},
{
"instruction":"偷狗被派出所抓到,会怎么处理?",
"input":"",
"output":"取决于偷盗的狗的价值,可能按盗窃罪的罪名处理。如果价值达到犯罪标准,就构成盗窃罪,要承担刑事责任;如果不到犯罪标准,就是治安处罚、罚款或者拘留治安处罚这会涉嫌构成盗窃。如果不到一千元,则不会构成犯罪。如果超过一千元,则可能会是构成犯罪的。"}
]
给一个法律模型训练的参考示例:
https://github.com/pengxiao-song/LaWGPT
训练中文大模型有啥履历?
答:链家技术陈诉《Towards Better Instruction Following Language Models for Chinese: Investigating the Impact of Training Data and Evaluation》中,介绍了开源模型的训练和评估方法:
https://i-blog.csdnimg.cn/blog_migrate/b32c6c0133a27d1fcb7901c36a3df50a.png
还对比了各因素的消融实验:
https://i-blog.csdnimg.cn/blog_migrate/594f49b7a18b186032a760c3c079e270.png
消融实验结论:
\1. 扩充中文词表后,可以增量模型对中文的明白本领,结果更好
\2. 数据质量越高越好,而且数据集质量提升可以改善模型结果
\3. 数据语言分布,加了中文的结果比不加的好
\4. 数据规模越大且质量越高,结果越好,大量高质量的微调数据集对模型结果提升最明显。表明下:数据量在训练数据量方面,数据量的增长已被证明可以显著提高性能。值得注意的是,如此巨大的改进可能部分来自belle-3.5和我们的评估数据之间的相似分布。评估数据的类别、主题和复杂性将对评估结果产生很大影响
\5. 扩充词表后的LLaMA-7B-EXT的评估表现到达了0.762/0.824=92%的程度
他们的技术陈诉证明中文大模型的训练是可行的,虽然与ChatGPT还有差距。这里必要指出后续RLHF也很紧张,我罗列在这里,抛砖引玉。
微调必要多少条数据?
答:取决于预训练数据和微调任务的数据分布是否一致,分布一致,100条就够,分布差异大就必要多些数据,千条大概万条以上为佳。
本身的任务复杂大概下游任务行业比较冷门,如药品名称识别任务,则必要较多监视数据。还有微调大模型时,一遍是记不住的。100条的微调数据,epochs=20才能稳固拟合任务要求。
涌现本领是啥原因?
答:根据前人分析和论文总结,大致是2个意料:
\1. 任务的评价指标不够平滑;
\2. 复杂任务 vs 子任务,这个其实好明白,好比我们假设某个任务 T 有 5 个子任务 Sub-T 构成,每个 sub-T 随着模型增长,指标从 40% 提升到 60%,但是终极任务的指标只从 1.1% 提升到了 7%,也就是说宏观上看到了涌现现象,但是子任务结果其实是平滑增长的。
如何在已有LoRA模型上继续训练?
答:我明白此题目的情形是:已有的lora模型只训练了一部分数据,要训练另一部分数据的话,是在这个lora上继续训练呢,还是跟base 模型归并后再套一层lora,大概从头开始训练一个lora?
我以为把之前的LoRA跟base model 归并后,继续训练就可以,为了保留之前的知识和本领,训练新的LoRA时,加入一些之前的训练数据是必要的。别的,每次都重头来成本高。
大模型怎么评测?
答:当前superGLUE, GLUE, 包括中文的CLUE 的benchmark都在不太合适评估大模型。可能评估推理本领、多轮对话本领是核心。
论文《C-EVAL: A Multi-Level Multi-Discipline Chinese Evaluation Suite for Foundation Models》提出了中文大语言模型评估基准:C-EVAL,有一定借鉴意义。
github链接:https://github.com/SJTU-LIT/ceval
论文:https://arxiv.org/pdf/2305.08322v1.pdf
benchmark:https://cevalbenchmark.com/static/leaderboard.html
大模型的honest原则是如何实现的?模型如何判断答复的知识是训练过的已知的知识,怎么训练这种本领?
答:大模型必要遵照的helpful,honest, harmless的原则。
可以有意构造如下的训练样本,以提升模型准守honest原则,可以算trick了:
\1. 微调时构造知识问答类训练集,给出不知道的不答复,加强honest原则;
\2. 阅读明白题,读过的要答复,没读过的不答复,不要颠三倒四。
各个专业领域是否必要各自的大模型来服务?
答:是,各行各业的大模型是趋势。
大模型有推理本领吗?
答:大模型有推理本领。有下面2个方面的表现:
\1. ChatGPT拥有in-context correction的本领,即假如说错了,给出改正,ChatGPT能“听懂”错在哪儿了,并向正确的方向修正。in-context correction要比in-context learning难了太多,形貌越具体清楚,ChatGPT答复得越好。要知道,越具体的形貌,在预训练的文本里越难匹配到的。
\2. 在询问ChatGPT互联网上并不存在内容的时间,能给出较好答案(如用ChatGPT学建模);ChatGPT能通过信息猜你心中的想法;你可以制定一个全新的游戏规则让ChatGPT和你玩,ChatGPT可以明白。
预训练和微调哪个阶段注入知识的?
答:预训练阶段注入知识的,微调是在特定任务训练,以使预训练模型的通用知识跟特定任务的要求结合,使模型在特定任务上表现更好。
我想让模型学习某个领域或行业的知识,是应该预训练还是应该微调?
答:可以使用预训练和微调相结合的方式,先用篇章数据进行预训练以获取广泛的知识,再用问答对数据进行微调,使模型更好的学习到特定领域的知识。
固然,GPT大模型的预训练和微调,从实现方式来讲是没有什么差别的,都是decoder only的语言模型训练并更新参数,假如样本集小,没有大量的篇章文档数据,我以为只进行微调也能注入知识的,不必太纠结预训练。而且特定领域跟预训练模型的分布差别不大,也不消二次预训练。
多轮对话任务如何微调模型?
答:跟正常的指令微调方法一样,只是构造数据的时间把历史谈天记录拼接起来,作为上下文信息喂给模型。
{"prompt": "长城h3风扇不转。继电器好的。保险丝好的传感器新的风扇也新的这是为什么。就是继电器缺一个信号线", "response": "用电脑能读数据流吗?水温多少", "history": []}
{"prompt": "95", "response": "上下水管温差怎么样啊?空气是不是都排干净了呢?", "history": [["长城h3风扇不转。继电器好的。保险丝好的传感器新的风扇也新的这是为什么。就是继电器缺一个信号线", "用电脑能读数据流吗?水温多少"]]}
{"prompt": "是的。上下水管都好的", "response": "那就要检查线路了,一般风扇继电器是由电脑控制吸合的,如果电路存在断路,或者电脑坏了的话会出现继电器不吸合的情况!", "history": [["长城h3风扇不转。继电器好的。保险丝好的传感器新的风扇也新的这是为什么。就是继电器缺一个信号线", "用电脑能读数据流吗?水温多少"], ["95", "上下水管温差怎么样啊?空气是不是都排干净了呢?"]]}
微调后的模型出现本领劣化,劫难性遗忘是怎么回事?
答:所谓的劫难性遗忘:即学习了新的知识之后,险些彻底遗忘掉之前习得的内容。这在微调ChatGLM-6B模型时,有同学提出来的题目,表现为原始ChatGLM-6B模型在知识问答如“失眠怎么办”的答复上是正确的,但引入特定任务(如拼写纠错CSC)数据集微调后,再让模型预测“失眠怎么办”的结果就答非所问了。
我明白ChatGLM-6B模型是走完 “预训练-SFT-RLHF” 过程训练后的模型,其SFT阶段已经有上千指令微调任务训练过,现在我们只是新增了一类指令数据,相对大模型而已,微调数据量少和微调任务类型单一,不会对其原有的本领造成大的影响,所以我以为是不会导致劫难性遗忘题目。
有几个trick方法可以改善此现象:
\1. 调解微调训练参数,微调初始学习率不要设置太高,lr=2e-5大概更小,可以避免此题目,不要大于预训练时的学习率。
\2. 微调训练集设置:应该选择多个有代表性的任务,每个任务实例数目不应太多(好比几百个)否则可能会潜伏地导致过拟合题目并影响模型性能 。
\3. 应该均衡差别任务的比例,并且限定整个数据集的容量(通常几千或几万),防止较大的数据集压倒整个分布。
微调模型必要多大显存?
https://i-blog.csdnimg.cn/blog_migrate/e82fd0e68971034df9388527bd319476.png
有哪些大模型的训练集?
答:预训练数据集togethercomputer/RedPajama-Data-1T「红寝衣」开源计划统共包括三部分:
\1. 高质量、大规模、高覆盖度的预训练数据集;
\2. 在预训练数据集上训练出的基础模型;
\3. 指令调优数据集和模型,比基本模型更安全、可靠。
预训练数据集RedPajama-Data-1T已开源,包括七个子集,经过预处理后得到的token数目大致可以匹配Meta在原始LLaMA论文中陈诉的数目,并且数据预处理相干脚本也已开源。
完整的RedPajama-Data-1T数据集必要的存储容量为压缩后3TB,解压后5TB。
CoT微调数据集:Alpaca-CoT 里面包括常用的alpaca,CoT等数据集,有中文的。
模型生成时的参数怎么设置?
答:生成模型预测调参建议:
1.建议去调解下 top_p, num_beams, repetition_renalty, temperature, do_sample=True;
\2. 数据生成有重复,调高repetition_renalty;
\3. 生成任务表达单一的,样本也不多的,可适当调低 temperature,生成的样子跟训练集的比较像;假如要复现训练集的结果,temperature=0.01即可。
以上是履历参数,具体调参根据任务而定,不是固定的。
参数表明:
top_p=0.9,
#Moderately increase the probability threshold of nucleus sampling to increase the quantity of candidate tokens and increase generation diversity.
temperature=1.0,
#The previous low temperature parameter could lead to a severe polarization in the probability distribution of generated words, which degenerates the generation strategy into greedy decoding.
do_sample=True,
#do_sample parameter is set to False by default. After setting to True, the generation methods turn into beam-search multinomial sampling decoding strategy.
no_repeat_ngram_size=6,
#Configure the probability of the next repeating n-gram to 0, to ensure that there are no n-grams appearing twice. This setting is an empirical preliminary exploration.
repetition_penalty=1.8,
#For words that have appeared before, in the subsequent prediction process, we reduce the probability of their reoccurrence by introducing the repetition_penalty parameter. This setting is an empirical preliminary exploration.
ChatGPT为啥用RL,PPO的作用是啥?
答:这是个开放性题目,现在在处理讨论中。
先阐明RL后模型结果是提高的:
https://i-blog.csdnimg.cn/blog_migrate/c46fa5ef5b64d73e39d822527d131a15.png
引用一下迩来 Yoav 在他 gh-gist (许多干货)里面的观点,感爱好的可以看下原文:https://gist.github.com/yoavg/6bff0fecd65950898eba1bb321cfbd81
\1. 多样性角度:RL 能提供更多样的答复,由于对于 Supervised Learning(SL),模型训练时只要稍微偏离训练样本就会受到惩罚,而现实上人类语言是会用各种差别方式表达相同意思,SL 这样就会让模型感到困惑,特殊是泛化明白本领较好的模型。
\2. 负反馈角度:监视学习里只有正反馈,而 RL 可以提供负反馈信号,从情势学习理论来看,负反馈信号会更好些(说实话没看懂)。
\3. 自我知识感知角度:最有说服力的一条,起首按照现在 ChatGPT 主要应用场景,其中有一大类题目为”知识获取型“,这块和 RL 训练关系比较大。
由于对于此类题目,我们希望模型能给出一个真实有佩服力的答案,同时不知道地时间拒绝答复,不要鬼扯。
模型最好能根据本身内部知识往返答,也就是知道本身知道什么,和不知道什么。这就必要用 RL 来训了,由于监视学习会教模型撒谎。
为什么呢,由于 SL 中心会出现两种情况:
模型本身有相干知识,知道答案,那么训练过程中就是给答案和题目接洽起来,之后也能看到雷同题目给出相干知识答复,还会以为泛化性好,这是好的情况
模型本身没有相干知识,相当于学习了之前完全不知道的知识,由于数据量比较少,可能只是单纯地去记住少量数据,那么之后遇到雷同题目,模型现实上没有相干知识,但模型还是会倾向于去答复,那么就只能去胡编乱造了,这就是为什么 SL 会教模型撒谎的表明
这里也放下John Schulman在UCB的talk:https://www.youtube.com/watch?v=hhiLw5Q_UFg,感爱好的同学可以看下。
原文链接:https://blog.csdn.net/mingzai624/article/details/130735366
如何学习AI大模型?
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给各人。 至于能学习到多少就看你的学习毅力和本领了 。我已将紧张的AI大模型资料包括AI大模型入门学习头脑导图、佳构AI大模型学习册本手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋侪们假如必要可以微信扫描下方CSDN官方认证二维码免费领取【包管100%免费】
https://i-blog.csdnimg.cn/blog_migrate/5c2b7b4573113e6b2320956f89e11192.png 一、全套AGI大模型学习路线
AI大模型期间的学习之旅:从基础到前沿,把握人工智能的核心技能!
https://i-blog.csdnimg.cn/blog_migrate/88364745a21655bfcd37f027c18079f5.png
二、640套AI大模型陈诉合集
这套包罗640份陈诉的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研职员、工程师,还是对AI大模型感爱好的爱好者,这套陈诉合集都将为您提供宝贵的信息和启示。
https://i-blog.csdnimg.cn/blog_migrate/65b8d4a2456d7e87091dd30dd77b9506.png
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热门。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强盛的语言明白和生成本领,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
https://i-blog.csdnimg.cn/blog_migrate/f24835641125fd8514ca947213ceb376.png
四、AI大模型商业化落地方案
https://i-blog.csdnimg.cn/blog_migrate/f0f3a6d06d3f05c037af554a955041ee.png
作为普通人,入局大模型期间必要持续学习和实践,不停提高本身的技能和认知程度,同时也必要有责任感和伦理意识,为人工智能的康健发展贡献力量。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]