jingyaogong/minimind: 🚀🚀 「大模型」2小时完全从0训练64M的小参数GPT!🌏 Train a 64M-parameter GPT from scratch in just 2h!

一、易嘉云服务器

易嘉云

1、注册,有12h免费额度。

2、点击算力市场

3、找到有空闲的,选择立即购买

4、选择pytorch-2.6.0,点击创建并开机

5、进入如下界面,图中的ssh和密码用于稍后的远程连接

二、VSCode

1、打开VSCode

2、安装remote-ssh

3、连接

点击左下角绿色方块,在出现的输入框选择connect to host--》configure ssh hosts--》选择类似C:\Users\Song\.ssh\config的一行,进入config文件

将易嘉云上的ssh复制到config文件中,按如图格式配置后再删除(只是为了不易出错)

再次点击左下角绿色方块,在出现的输入框选择connect to host--》刚刚的主机名test

将刚刚易嘉云上ssh旁边的密码复制到下面输入框,回车

可以看到“已连接到远程”

此时需要再次输入刚刚的密码

三、复现项目

(一)、环境准备

1、新建终端

2、在终端克隆项目

输入

git clone --depth 1 https://github.com/jingyaogong/minimind

3、创建虚拟环境

输入conda create -n minimind python==3.10

4、查看已创建环境(非必要,可跳过)

输入conda info --envs

5、激活环境

输入conda activate minimind,激活后最前面括号内会变成环境名

6、切换当前目录,下载requirements.txt

分别输入

cd minimind
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple

(二)、模型准备

1、下载模型

modelscope download --model gongjy/minimind-3 --local_dir ./minimind-3

2、CLI 推理

python eval_llm.py --load_from ./minimind-3

3、WebUI(非必须)

把minimind-3放到scripts文件夹下

cp -r minimind-3 ./scripts/minimind-3
cd scripts && streamlit run web_demo.py

在浏览器输入终端显示的Local URL,即可看到下面界面

(三)、准备数据集

注意:当前默认仅需下载 pretrain_t2t_mini.jsonl 与 sft_t2t_mini.jsonl,即可较快复现 MiniMind Zero 对话模型。

1、下载数据集

minimind_dataset · 数据集

这里我们复制的内容是这样的:

modelscope download --dataset gongjy/minimind_dataset README.md --local_dir ./dir

回到终端,按CTRL+C可以退出刚刚的web。将复制的内容粘贴到终端,将复制内容中的README.md替换为预训练数据集的名字(可直接复制粘贴,圈出的两个都可以,强烈建议用pretrain_t2t_mini.jsonl,否则后面还要改东西或者重新下,这里用了第一个pretrain_t2t.jsonl,数据量大些,会比较慢),然后修改保存路径,将./dir修改为../dataset/,也就是放在了与script同级的dataset目录下。

modelscope download --dataset gongjy/minimind_dataset pretrain_t2t_mini.jsonl --local_dir ../dataset/

modelscope download --dataset gongjy/minimind_dataset sft_t2t_mini.jsonl --local_dir ../dataset/

(四)、训练

1、添加断点情况(添加 --from_resume 1 参数后,即可自动检测并恢复训练进度)

输入下面内容(当前在/minimind/scripts下):

python ../trainer/train_pretrain.py --from_resume 1
python ../trainer/train_full_sft.py --from_resume 1

如果之前下载的是pretrain_t2t_mini.jsonl和sft_t2t_mini.jsonl,应该是没有问题的。

注意:我这里报错了,因为train_pretrain.py中默认的预训练数据集是pretrain_t2t_mini.jsonl,但我下的是pretrain_t2t.jsonl。改一下这个默认值或者重新下载数据集应该都可以,我重新下载了pretrain_t2t_mini.jsonl。然后输入python ../trainer/train_pretrain.py --from_resume 1进行预训练。

运行过程中,出现了以下异常:

2、预训练与指令微调(不添加)

cd trainer    //先切换到trainer目录下,然后执行下面命令

python train_pretrain.py

python train_full_sft.py

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐