赞
踩
当我们3月下旬微调完Mixtral 8x7B之后(更多详见:七月论文大模型:含论文的审稿、阅读、写作、修订 ),下一个想微调的就是llama2 70B
进入到4月份之后,我们先针对数据进行反复折腾「详见:提升大模型数据质量的三大要素:清洗prompt、数据溯源、数据增强(含Reviewer2的实现)」,毕竟数据质量通常是一个项目效果的天花板
然数据质量的提升不是短短一两周的事情,考虑到为并行加速,故三太子进入70B微调组,和apple一起继续拿之前处理好的数据继续微调70B,但这一次是用15K的数据量了
以下是训练过程中GPU的占用情况
观测到训练过程中显存最高占用为570GB,故建议使用80GB*8卡训练
- # 分别计算输入、输出合适的截断
- # `output_ids` 在整个序列(包括 `input_format_ids` 和 `output_ids`)中所占的比例,然后这个比例乘以最大序列长度,得到的结果就是输出序列的最大长度
- max_output_len = int(self.max_seq_length * (len(output_ids) / (len(input_format_ids) + len(output_ids))))
- max_output_len = max(max_output_len, 1) # 至少保留1个token的output
- max_input_len = self.max_seq_length - max_output_len
-
- # 对输入、输出进行截断
- if len(input_format_ids) > max_input_len:
- input_format_ids = input_format_ids[:max_input_len]
- if len(output_ids) > max_output_len:
- output_ids = output_ids[:max_output_len]
即如阿荀所说:“我的这个dataset是没实现padding的,所以要用datacollator来做”,故需要在train.py中更正使用DataCollatorForSeq2Seq - # 加载训练集和验证集
- if args.sft:
- # train_dataset = VicunaSFTDataset(args.train_file, tokenizer, args.max_seq_length)
- train_dataset = Llama2SFTDataset(args.train_file, tokenizer, args.max_seq_length)
- # data_collator = SFTCollator(tokenizer, args.max_seq_length, -100)
- data_collator = DataCollatorForSeq2Seq(tokenizer=tokenizer,
- pad_to_multiple_of=8 if tokenizer.padding_side == "right" else None, # for shift short attention
- label_pad_token_id=-100
- )
- else:
- train_dataset = PretrainDataset(args.train_file, tokenizer, args.max_seq_length)
- data_collator = PretrainCollator(tokenizer, args.max_seq_length, -100)
然并卵,修改后训练仍有index报错 - data_collator = DataCollatorForSeq2Seq(tokenizer=tokenizer,
- pad_to_multiple_of=8 if tokenizer.padding_side == "right" else None, # for shift short attention
- label_pad_token_id=-100
- )
- data_collator = DataCollatorForSeq2Seq(tokenizer=tokenizer,
- pad_to_multiple_of=8 if tokenizer.padding_side == "right" else None, # for shift short attention
- label_pad_token_id=tokenizer.eos_token_id
- )
我建议apple,既然是跑的5000多条数据,那可以
故apple便开始用二分定位法去排查那条引起异常的数据
考虑到可能是数据只有5K,效果不一定好上,故如本文开头所说,我们接下来准备一方面提高数据质量,一方面准备用更大的比如15K数据微调
一开始三太子先试下5k数据,截断的逻辑也用的七月官网首页的「大模型线上营」中讲的
更多细节及数据集、代码,见七月官网首页的:大模型商用项目之审稿微调实战营
暂见于七月官网首页的:大模型商用项目之审稿微调实战营
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。