GanjinZero / RRHF

[NIPS2023] RRHF & Wombat
780 stars 49 forks source link

有关训练模型细节 #17

Closed yanhan19940405 closed 1 year ago

yanhan19940405 commented 1 year ago

你好,请问您的代码里面所用的7B LLAMA模型,vocabsize有多大呢?是否都按照羊驼32001尺寸来的呢?目前我这里按照崔一鸣出的chinese -LLAMA-LORA 7B模型训练的时候,单卡A100跑1条样本,直接OOM了,麻烦了,想确定下这一点。(您使用的数据并行策略,单卡跑一条样本应该能训练的哇),这里附上7B LLAMA配置,麻烦确认下跟您实验所用LLAMA有无异同点: { "_name_or_path": "decapoda-research/llama-7b-hf", "architectures": [ "LlamaForCausalLM" ], "bos_token_id": 0, "eos_token_id": 1, "hidden_act": "silu", "hidden_size": 4096, "initializer_range": 0.02, "intermediate_size": 11008, "max_position_embeddings": 2048, "max_sequence_length": 2048, "model_type": "llama", "num_attention_heads": 32, "num_hidden_layers": 32, "pad_token_id": -1, "rms_norm_eps": 1e-06, "tie_word_embeddings": false, "torch_dtype": "float16", "transformers_version": "4.28.1", "use_cache": true, "vocab_size": 49953 }

GanjinZero commented 1 year ago

{"architectures": ["LlamaForCausalLM"], "bos_token_id": 1, "eos_token_id": 2, "hidden_act": "silu", "hidden_size": 4096, "intermediate_size": 11008, "initializer_range": 0.02, "max_sequence_length": 2048, "model_type": "llama", "num_attention_heads": 32, "num_hidden_layers": 32, "pad_token_id": 0, "rms_norm_eps": 1e-06, "torch_dtype": "float16", "transformers_version": "4.27.0.dev0", "use_cache": true, "vocab_size": 32000}

GanjinZero commented 1 year ago

您用的哪个数据集?因为batch size=1;代表1个query,但有几个response是看数据定的。 然后你的max length是多少? 我们只试过8卡A100;没有试过单卡Lora。您是full ft还是lora?

yanhan19940405 commented 1 year ago

您好,我用的上自己构建的样本数据,总数据200条,样本案例如下所示:(也是一个query,对应6个responds,6个scores) {"query": "新闻写作的概念是?", "responses": ["答:新闻写作是指记者把采访中搜集到的材料、信息,通过文字写作制成一定体裁的新闻作品的过程。新闻写作也有广义与狭义之分。广义上的新闻写作,包括新闻报道与新闻评论的写作。狭义的新闻写作,一般仅指新闻报道方面各种体裁的写作。新闻报道主要“记事”,新闻评论主要“记言”,但无论“记事”还是“记言”,它们都要遵循新闻传播的规律,因此同属于新闻作品这个大家族。", "新闻写作是指一种以传播信息为主要目的,通过撰写文章或报道等方式,对事件、人物、情况等进行描述、分析、评论和报道的艺术形式。它是新闻报道的一种重要形式,主要通过吸引读者的注意力,提高新闻的可读性和吸引力,来促进公众对事件的理解和认识。", " 什么是新闻写作的要素,包括哪些内容呢? 1、新闻写作概念:新闻写作是指通过文字、图片等形式报道事件的过程。 2、新闻写作的基本要素有以下几项:①标题; ②摘要(简要介绍); ③全文(详细叙述); 3、新闻写作的内容主要有五个方面:1.人物采访;2.事件调查;3.评论分析;4.专题研究;5.综合材料整理.4、新闻写作的主要任务在于反映社会现实,揭示问题和解决问题的方法,为读者提供有用的信息资料,使他们了解世界变化趋势,掌握最新信息,提高生活水平.5、新闻写作的特点1.具有很强的社会责任感。2.善于运用各种语言表达手段来表现事物。3.在处理复杂情况时能灵活地使用多种方法进行组合而成法。6.对事实真相负责任而客观公正地表达。7.注意准确性与完整性的同时兼顾简洁明快的风格特点。8.注重逻辑性和结构性。9.重视时间紧迫性。10.强调实用价值。11.关注公众利益。12.突出主题。13.用生动形象的方式描述事情发生的过程及结果。14.把故事写得像电影一样精彩动人。15.以最短最有效的形式写出所想说的话或事。16.保持良好的态度。17.坚持严谨的态度。18.尊重权威。19.正确把握新闻尺度。20.及时更新。21.多角度采编。22.善用比喻拟物化手法。23.善于利用对比论证。24.善于引用典故。25.善于运用夸张语气。26.善于运用比喻句。27.善于运用反问句。28.善于运用感叹句。29.善于运用疑问句。30.善于运用定语从句。31.善于运用宾语从句。32.善于运用主谓关系。33.善于运用并列关系。34.善于", " 什么是新闻写作的特征和特点? 1、新闻写作是指通过文字、图片等媒体形式,以事实为主要内容进行报道。 2、新闻写作的特点有:①具有很强的社会意义; ②具有较强的实用性与现实性的要求; 3、新闻写作一般采用以下几种方式:⒈直接采访的方式(即记者亲自去现场调查); ⒉间接采访的方式(即由其他单位或个人代为调查); 三者结合使用; 4、新闻写作的内容主要有两种类型:一是事件类的新闻稿件; 二是在新闻中所反映出来的人物心理状态及社会现象的变化情况。 5、新报编辑的基本任务就是把报纸中的各种信息组织成一个整体,使读者能够迅速了解当天发生的大事情以及其它一些重要的事情。 6、新报编辑的主要工作包括:ⅰ整理各类材料并对它们进行分类; 2编写标题; 3编排文案; 4撰写摘要; 5配图; 6审阅版面; 7检查印刷质量。 8.编辑出版时应注意的是:1、在制作上必须做到“一目了然”,不能出现杂乱无章的现象;2、要有一定的审美水平,能根据不同题材的不同风格来处理不同的文章;3、要善于发现新闻线索,把握热点话题,抓住重点问题,突出典型案例,挖掘细节,揭示真相,体现权威性和真实性;4、要掌握好语言表达技巧,用简明扼要的形式写出观点,避免冗长赘述,不加修饰,保持简洁流畅的风格;5、要注重图文配合,运用恰当的字体,适当地增加必要的标点符号,增强阅读效果,提高视觉冲击力;6、要重视整篇结构合理化,保证逻辑一致,防止混乱,确保全文完整性,减少", " 什么是新闻写作的要素,如何写好一个新闻稿子呢? 我认为,新闻写作是一个综合运用语言文字、图片等各种信息载体进行传播的一种活动。 它包括以下几个方面:1.编辑报章和报纸报道; 2.广播节目制作; 3.电视专题片编排; 4.网络媒体发布; 5.出版物撰写(如杂志)等等。 在以上几种形式中,我们常常会遇到一些问题需要解决的问题,比如:怎样把事件的信息组织成一篇完整的新闻稿子来发表出来? 怎样在一篇文章里尽可能地使读者感到最生动的感受到事情发生的过程与结果? 如何让文章能够吸引更多的人阅读并引起他们的共鸣? 这些都需要我们在创作过程中注意的一些细节之处。 我们可以从下面几条内容中得到帮助:1、标题要突出主题,用短明快语概括。 2、开头要有引言,以吸引人的眼球。 3、结尾要有总结或启示性。 4、结构合理,不要出现混乱现象。 5、字数不要太长,否则容易使人产生厌烦感。 6、文体应符合要求。 7、尽量避免使用“我”及第一人称词。 8、不加修饰词语。 9、别多引用他人的观点。 10.不要重复同一段话。 11.不要过多赘述。 12.不要对材料作过加工处理。 13.不要随意添加数字符号。 14.不要将名词改为动词。 15.不要脱离事实真相。 16.不要偏离主旨。 17.不要滥用感叹号。 18.不要乱入语法错误。 19.不要过分强调自己观点。 20.不要过度夸大自己的能力。 21.不要无端攻击", " 什么是新闻写作的特征和特点,以及如何进行新闻写作。 1、新报编辑:是指在报纸上发表的新闻报道或评论文章的一种形式。 2、新闻写作:指通过文字、图片等媒体手段来表达信息的方式。 3、新闻稿件:即记者所撰写的文章或者照片作品。 4、新闻稿件分类方法有以下几种:①按内容类别分; 如政治类、经济类、社会生活类等等; 二是对于作者身份的不同分为专业性(如新华社)与非专业的(如个人)两种; 三是由于不同报刊杂志性质而产生的不同的类型,例如日报、晚报、周刊、期刊、专刊、传单、广告宣传册及各种文摘书目等。 5、新闻稿件格式要求主要有如下几点:1.标题要准确简明明确,以吸引读者;2.第一段必须为引言部分,用简洁有力语言说明事件发生的时间地点及其原因.3.第二段应包括事实叙述,并指出其影响,必要时可附图(图)或表(表)。 4.第三段主要介绍有关人物,尤其是当事人,他们的姓名,年龄,职业,职位,家庭情况,重要事迹,荣誉称号,获奖证书,奖励金额,特长,爱好,兴趣,性格特点,缺点,优点,个性标志,对策意见,建议,结论,最后总结一下该篇题旨的内容即可.5.第四段一般写成议论句,但要注意把握好语气,使之生动活泼,富有说服力,使人产生共鸣,从而达到目的.6.第五段可以适当引用一些权威性的资料,证明自己的观点正确,增强信服度.7.第六段结尾处可用“综述”的形式加以概括,突出主题,强调意义,引起读者注意,引导他们思考问题.8.第七段如果需要补充材料的话,则可在"], "scores": [1.1, 1.1, 1.0, 0.9, 0.88, 0.9]}

yanhan19940405 commented 1 year ago

我的max-length是跟您一样的192,设置的也是512长度截断,然后用的是崔一鸣那边开源的LORA merge过的7B LLAMA模型,算是全参数微调

yanhan19940405 commented 1 year ago

export MODEL_PATH="/root/autodl-tmp/workspace/model/chinese-llama-lora-7b" export SAVE_PATH="model" export DATA_PATH="LLAMA.json" export MASTER_ADDR="localhost" export MASTER_PORT="29961" export WANDB_DISABLED=True export NCCL_DEBUG=INFO wandb offline

python3 -m torch.distributed.launch --master_addr ${MASTER_ADDR} --master_port ${MASTER_PORT} --nproc_per_node=1 --use_env train.py \ --model_name_or_path $MODEL_PATH \ --data_path $DATA_PATH \ --bf16 True \ --output_dir $SAVE_PATH \ --num_train_epochs 3 \ --per_device_train_batch_size 1 \ --per_device_eval_batch_size 1 \ --gradient_accumulation_steps 2 \ --evaluation_strategy "no" \ --save_strategy "steps" \ --save_steps 100 \ --save_total_limit 40 \ --learning_rate 2e-5 \ --weight_decay 0. \ --warmup_ratio 0.03 \ --lr_scheduler_type "cosine" \ --logging_steps 1 \ --tf32 True --model_max_length 198 --rrhf_weight 1

yanhan19940405 commented 1 year ago

请问您试过A100单卡单条样本训练吗?有无OOM报错呢?

GanjinZero commented 1 year ago

单卡/双卡 max length=192 OOM 四卡可以 但80GB也占满了

如果你只有单卡可能必须lora

yanhan19940405 commented 1 year ago

好的,谢谢您的验证,我这里在看看

yanhan19940405 commented 1 year ago

麻烦了,我最后在确认一下,好考虑下租卡问题。您在A100 80G单卡/双卡上,1个query对应K个答案,batch=1,maxlength=192,带入进去训练的时候,直接OOM了吗?

GanjinZero commented 1 year ago

K=6 batch=1 maxlen=192 单卡/双卡都是OOM

yanhan19940405 commented 1 year ago

好的,谢谢您

yanhan19940405 commented 1 year ago

您好,你可以在train.sh里面加入一个训练参数 --fsdp "full_shard auto_wrap offload" 就可以开启单卡训练了,在上述参数情况下,占用内存150G,显存占用60G左右,唯一缺点训练速度有点慢。您看看有无帮助,谢谢您。