Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
pengqianhan opened this issue Oct 23, 2024 · 3 comments

Comments

@pengqianhan
Copy link

本教程参考官方 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

  7. 5-dpo_train.py

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

image

很不错的记录,谢谢!

@clevertension
Copy link

LoRA SFT, 这个怎么用前面自己训练好的模型,不要从hf上下载

@jingyaogong
Copy link
Owner

LoRA SFT, 这个怎么用前面自己训练好的模型,不要从hf上下载

export_model 把你的模型导出成transformers格式,再按照from_pretrained加载它

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants