minimind icon indicating copy to clipboard operation
minimind copied to clipboard

学习代码的时候写了一个教程,希望可以帮到其他同学

Open pengqianhan opened this issue 4 months ago • 5 comments

本教程参考官方 readme不是Issue,一点个人训练minimind的记录 #26

由于本人手头只有一台Macbook (M1 Pro),因此这个项目只是用来debug和学习代码,完全没有训练出一个可用的模型。在大佬的代码基础上减少了epoch,同时在一个epoch内只用很少的数据进行训练,代码可正常运行从而可以学习代码运行的逻辑。以下是我学习代码的流程:

  1. train tokenizer

    • 下载 | 【tokenizer训练集】 | HuggingFace / 百度网盘 文件为 tokenizer_train.jsonl
    • 博客或视频讲解
    • 运行 train_tokenizer.py, 运行结束后,在’model/minimind_tokenizer/‘下得到merges.txt,tokenizer_config.json,tokenizer.json,vocab.json 四个文件
  2. data_process.py 处理数据,为pretrain 数据集做准备

    • 下载 | 【Pretrain数据】 | Seq-Monkey官方 / 百度网盘 / HuggingFace | 此处是从hugging face下载 mobvoi_seq_monkey_general_open_corpus.jsonl 文件,大小为 14.5GB,解压后为33.39GB
    • 运行 data_process.py ,处理mobvoi_seq_monkey_general_open_corpus.jsonl,
      • if process_type == 1:在dataset目录下生成了pretrain_data.bin和clean_seq_monkey.bin两个文件
      • process_type == 2:
      • process_type == 3:
  3. 预训练model,1-pretrain.py

    • 使用 ./dataset/pretrain_data.bin 来预训练,直接运行1-pretrain.py即可,运行结束后在./out 目录下保存一个pretrain_512.pth 的模型文件
  4. 有监督微调(Supervised Fine-Tuning,SFT)3-full_sft.py

    • 读取 './dataset/sft_data_single.csv' 文件来进行 full sft 训练,运行3-full_sft.py即可,结束后在./out 目录下保存一个 full_sft_512.pth 的模型文件
    • 读取 './dataset/sft_data_multi.csv' 文件来进行 full sft 训练,运行3-full_sft.py即可,结束后在./out 目录下保存一个 full_sft_512.pth 的模型文件,也可以修改‘ckp = f'{args.save_dir}/full_sft_{lm_config.dim}{moe_path}.pth’这行中文件名称
  5. 现在可以运行2-eval.py 来进行评估

  6. LoRA SFT,4-lora_sft.py

    • git clone https://huggingface.co/jingyaogong/minimind-v1-small
    • 在 https://huggingface.co/jingyaogong/minimind-v1-small/tree/main 下载 pytorch_model.bin, 然后放到 ./minimind_v1_small 目录下
    • 然后运行4-lora_sft.py即可,运行结束会在out文件夹下保存‘adapter_config.json’ 和 'adapter_model.safetensors'
    • note: 直接下载huggingface的模型,会报错,暂时没找到解决方法,因此下载模型到本地运行
    • 学习资料
    • peft 库
  7. 5-dpo_train.py

    • hugging face 下载 dpo_dpo_zh_demo.json,然后放在'./dataset/dpo/'
    • 这部分代码还没跑通

pengqianhan avatar Oct 23 '24 07:10 pengqianhan