从头训练小模型: 2 监督微调SFT
从头训练小模型是我个人对大语言模型(LLM)学习中的重要部分。通过对一个小规模模型的最小化复现实践,我不仅能够深入理解模型训练的基本流程,还可以系统地学习其中的核心原理和实际运行机制。这种实践性的学习方法让我能够直观地感受模型训练的每个环节,同时掌握相关的技术细节和实现方式。目前的工作中,确实存在某些任务是有这种小模型的需求, 也在学习过程中理解运作逻辑, 力求用最小的资源消耗情况下,实现某些子任
简介
从头训练小模型是我个人对大语言模型(LLM)学习中的重要部分。
通过对一个小规模模型的最小化复现实践,我不仅能够深入理解模型训练的基本流程,还可以系统地学习其中的核心原理和实际运行机制。这种实践性的学习方法让我能够直观地感受模型训练的每个环节,同时掌握相关的技术细节和实现方式。
目前的工作中,确实存在某些任务是有这种小模型的需求, 也在学习过程中理解运作逻辑, 力求用最小的资源消耗情况下,实现某些子任务的最小模型实现.
ALL in AI
代码已经上传 https://github.com/godzeo/miniGPT
SFT 有监督微调(Supervised Fine-Tuning):
为什么要这一步?
因为经过预训练之后,LLM已掌握了大量知识,但此时它只是一个无情的词语接龙机,还不能与人对话。
我们要它就不再盲目接龙,而是能够理解这是一段完整的对话。
那么我们就要这个指令微调的过程,让有了基础知识的学生, 会做题, 而不是一直背课文,成语结论, 需要他会根据学会根据提问, 回答问题做题. 理解什么是一问一答题.
训练命令:
torchrun --nproc_per_node=4 scripts/train_sft.py \
--model_path outputs/pretrain/final \
--tokenizer_path mistralai_tokenizer \
--output_dir outputs/sft \
--data_file /root/autodl-tmp/data/sft_mini_512.jsonl \
--batch_size 16 \
--gradient_accumulation_steps 8 \
--num_epochs 1
数据集
https://www.modelscope.cn/datasets/deepctrl/deepctrl-sft-data
主要是对 匠数大模型SFT数据集 数据清洗, 只保留了长度短一点的内容,超级精简之后的121w 的精简数据训练的
{"conversations":
[{"role": "user", "content": "写一篇关于人工智能发展历史的文章。"},
{"role": "assistant", "content": "好的,我将写一篇关于人工智能发展历史的文章。人工智能源于20世纪50年代的探索,经历了多次热潮和降温期。早期主要以符号推理为主,而后引入了机器学习和深度学习等技术,目前已广泛应用于图像识别、自然语言处理、游戏、机器人等领域。"},
{"role": "user", "content": "提取一下人工智能在游戏领域的应用。"},
{"role": "assistant", "content": "在游戏领域,人工智能主要应用于游戏智能代理、游戏设计辅助等。智能代理可以使玩家在游戏中享受更好的游戏体验,同时也可以提高游戏难度,增加游戏的挑战性。游戏设计辅助则主要应用于游戏开发中,帮助游戏开发者设计游戏难度、关卡等。"},
{"role": "user", "content": "我想要这篇文章的摘要。"},
{"role": "assistant", "content": "这篇文章主要介绍了人工智能的发展历史以及其在游戏领域的应用。人工智能的发展历程经历了多次的起落,随着技术的发展不断完善和创新,已经广泛应用于图像识别、自然语言处理、游戏、机器人等众多领域。在游戏领域,人工智能主要应用于游戏智能代理、游戏设计辅助等。智能代理可以使玩家在游戏中享受更好的游戏体验,同时也可以提高游戏难度,增加游戏的挑战性。游戏设计辅助则主要应用于游戏开发中,帮助游戏开发者设计游戏难度、关卡等。"}]}
但是效果一般, 后考虑使用 https://www.modelscope.cn/datasets/AI-ModelScope/R1-Distill-SFT 这个黑盒蒸馏的数据再试试
测试效果:
python test_model.py --model_path …/outputs/sft/final --tokenizer_path …/tokenizer
测试对话效果
其实效果不行, 由于我的 预训练轮次1 + SFT轮次11 ,都太少了,现在的模型像是一个小孩一样
这一篇比较枯燥,感觉只是在找数据集, 下一篇是比较重要的微调
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)