使用免费魔搭资源训练MiniMind小模型
我想做一些模型的小型化,比如把模型安装在手机或笔记上 所以也想学学如何训练一个小模型的,
网上找了不少的资料 发现都不全 也尝试过几次 都失败了 我看到csdn上一个文字 又产生了想在试试的冲动
这次成功了!记录一下
方法还是比较简单的,过程大概就是
环境准备—>下载代码/数据集–>预训练—>有监督微调—>模型评估–>模型web交互
环境准备
硬件配置
• 云主机:ModelScope 免费提供的阿里云PAI-DSW实例(36小时免费,实际训练花费约4小时)
• CPU:8核
• 内存:32GB
• GPU:NVIDIA A10,24GB显存
• 操作系统:Ubuntu 22.04
• CUDA:12.1
• Python:3.10.16(Miniconda虚拟环境)

获取代码
1 | # 从 GitHub 下载代码并进入项目目录 |
下载数据
1 | # 安装 ModelScope 工具 |
• 数据集大小:约20GB
• 数据格式:jsonl

预训练
1 | # 执行预训练脚本 |
• 预训练数据:默认使用./dataset/pretrain_hq.jsonl
• 训练时间:每个 epoch 约2小时(根据硬件配置可能有所不同)

有监督微调
1 | # 执行有监督微调脚本 |
• 微调数据格式:对话形式,区分用户和助手
• 微调速度:比预训练略快

模型评估
自动评估
1 | # 比较预训练模型和微调模型 |
• 参数说明:
• --load 0:加载本地训练的模型(位于./out目录)
• --model_mode:
• 0:预训练模型
• 1:微调模型
• 2:RLHF模型(可选)

人工评测
• 提问两个模型相同的问题:
• 你是谁?
• 大模型是什么东西?
• 刘德华是谁?
• 结果:
• 微调模型的回答更具针对性,对话语气和意图更明显。
• 预训练模型的回答较为发散,有时无法终止对话。
模型交互
启动 Web 页面交互
1 | cd scripts |
• 使用 Streamlit 实现的简单 Web 界面,方便与模型进行交互。