Andrea Veritas
Andrea Veritas
基于transformer的话就是这样的吧。如果想推理速度和context length无关的话,可以用RWKV。
> 4张3090,Zero3配置,内存128GB,可以完成run_clm_pt_with_peft.py训练,刚刚测试完,15Mtxt用时40分钟 好啊,我这也试试。之前用了3*V100 32G,看来确实是总显存不够了。
> 扩充后注意只要resize都可以训练。 如果不训练embed_tokens和lm_head,那新token是未经训练的,不清楚在你们的任务上影响有多大。 > > 多轮对话的格式可以参考[gradio_demo.py](https://github.com/ymcui/Chinese-LLaMA-Alpaca/blob/main/scripts/gradio_demo.py)中带有历史对话数据构造方式,总体来说就是把历史都拼起来。 好的,谢谢。13B如果开启embed_tokens和lm_head训练的话,单卡需要多少显存呢?(我现在就测试一批10MB的语料)之前不开embed_tokens和lm_head的时候是40GB,开了以后一张48GB的A40就直接爆显存了。
> > 13B开启embed_tokens和lm_head训练的,4张3090,Zero3配置,最高内存是112GB,4张3090显存大概占用在50% > > 这是第二阶段训练,精调还没测试完 你在用stage3训练的时候遇到过 > RuntimeError: 'weight' must be 2-D 这样的报错嘛? 我一开始用4*3090训练倒是能跑起来,但时间反而远比单卡A40还要长。然后就换用了4*V100 32G跑,结果就出现了这个报错。
> > > > 昨天我4张3090搞到夜里2点多,调各种DeepSpeed配置,ZeRO2/3配置都试过,进行精调训练报OOM,另外,3090单精度擅长,V100双精度擅长,如果有条件,最好V100,看您发出的情况,应该128GB显存能训练精调,可惜我的服务器只能插4张GPU卡,我还有一张,插不上去,今天准备进行7B训练,结果好的话,我准备去再搞一台dell服务器,两台试试 我刚试了V100 * 4 stage3是可以跑起来,grad_acc=4 per_device_batch_size=2,此时每张卡的显存占用在24G~28G之间,比较安全了。我这边是因为要扩充词表,所以可能得`embed_tokens`和`lm_head`也一起训练。但加上这两个模块以后,训练时间从3小时(A40 * 1)直线飙升到50小时(V100 * 4)
> 楼主请教下,合并了那两个权重(Chinese-LLaMA和Chinese-Alpaca)以后的新模型,是怎么继续在自己领域精调的?能否看一下脚本bash run_sft.sh文件的设置,我不太清楚,pretrained_model,chinese_tokenizer_path和peft_model都是合并后新模型的路径吗,此外生成的模型怎样和之前模型合并呢。望赐教,谢谢。 这个项目的WIKI里有写,找`指令精调.md`这个文件。特别提醒,peft一定要用项目指定的`13e53fc`版本从源码克隆安装,pip install直接安装的版本会在deepspeed上出现莫名其妙的错误。
> > > 楼主请教下,合并了那两个权重(Chinese-LLaMA和Chinese-Alpaca)以后的新模型,是怎么继续在自己领域精调的?能否看一下脚本bash run_sft.sh文件的设置,我不太清楚,pretrained_model,chinese_tokenizer_path和peft_model都是合并后新模型的路径吗,此外生成的模型怎样和之前模型合并呢。望赐教,谢谢。 > > > > > > 这个项目的WIKI里有写,找`指令精调.md`这个文件。特别提醒,peft一定要用项目指定的`13e53fc`版本从源码克隆安装,pip install直接安装的版本会在deepspeed上出现莫名其妙的错误。 > > 感谢楼主,我尝试训练了一下,得到了 输出模型,想问下是怎么合并起来,是使用WIKI手动模型合并中的多LoRA权重合并吗,即原版llama和Chinese-LLaMA,以及我得到的 输出模型吗?谢谢 WIKI里也有,用这个脚本scripts/merge_llama_with_chinese_lora
> > > > > 楼主请教下,合并了那两个权重(Chinese-LLaMA和Chinese-Alpaca)以后的新模型,是怎么继续在自己领域精调的?能否看一下脚本bash run_sft.sh文件的设置,我不太清楚,pretrained_model,chinese_tokenizer_path和peft_model都是合并后新模型的路径吗,此外生成的模型怎样和之前模型合并呢。望赐教,谢谢。 > > > > > > > > > > > > 这个项目的WIKI里有写,找`指令精调.md`这个文件。特别提醒,peft一定要用项目指定的`13e53fc`版本从源码克隆安装,pip install直接安装的版本会在deepspeed上出现莫名其妙的错误。 > > > > > > > > >...
> 楼主您好,请教一下,如果只是想对单独领域知识进行扩充回答的话,要必须要先进行预训练再进行精调,还是只是需要精调不需要预训练就可以呀? 以我个人实操的情况来看,最好是先继续预训练再做指令微调。我观察到的现象是SFT其实不会给模型增加新的知识,只是让模型学会了对话的套路。
> > > 楼主您好,请教一下,如果只是想对单独领域知识进行扩充回答的话,要必须要先进行预训练再进行精调,还是只是需要精调不需要预训练就可以呀? > > > > > > 以我个人实操的情况来看,最好是先继续预训练再做指令微调。我观察到的现象是SFT其实不会给模型增加新的知识,只是让模型学会了对话的套路。 > > 我现在发现的问题点是:我以一问一答的形式进行SFT精调过后,在对话的过程中,他的回答都是不准确的,完全是所问非所答的情况,没有精准的按照我给他的Stanford Alpaca的答案进行回复。 LLM不可能完全按照你的训练语料来的,除非你把同样的问题,重复n遍,才可能有近似的效果。如果你要的效果是知识问答类的话,建议用embedding方案试试。(比如langchain)