当前位置: 首页 > article >正文

MiniMind——跑通项目

文章目录

  • 📌 Quick Start Train

MiniMind (ModelScope)

# step 1
git clone https://huggingface.co/jingyaogong/minimind-v1
# step 2
python 2-eval.py

或者启动streamlit,启动网页聊天界面

「注意」需要python>=3.10,安装 pip install streamlit==1.27.2

# or step 3, use streamlit
streamlit run fast_inference.py

📌 Quick Start Train

  • 0、克隆项目代码

    git clone https://github.com/jingyaogong/minimind.git
    cd minimind
    
  • 1、环境安装

    pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    
    # 测试torch是否可用cuda
    import torch
    print(torch.cuda.is_available())
    

    如果不可用,请自行去torch_stable
    下载whl文件安装。参考链接

  • 2、如果你需要自己训练

    • 2.1 下载数据集下载地址放到./dataset目录下

    • 2.2 python data_process.py处理数据集,例如pretrain数据提前进行token-encoder、sft数据集抽离qa到csv文件

    • 2.3 在./model/LMConfig.py 中调整model的参数配置

      这里仅需调整dim和n_layers和use_moe参数,分别是(512+8)(768+16),对应于minimind-v1-smallminimind-v1

    • 2.4 python 1-pretrain.py 执行预训练,得到 pretrain_*.pth 作为预训练的输出权重

    • 2.5 python 3-full_sft.py 执行指令微调,得到 full_sft_*.pth 作为指令微调的输出权重

    • 2.6 python 4-lora_sft.py 执行lora微调(非必须)

    • 2.7 python 5-dpo_train.py 执行DPO人类偏好强化学习对齐(非必须)

  • 3、测试模型推理效果

    • 确保需要使用的,训练完成的参数权重*.pth文件位于./out/目录下
    • 也可以直接去训练完成的模型权重下载使用我训练好的*.pth权重文件
      minimind/out
      ├── multi_chat
      │   ├── full_sft_512.pth
      │   ├── full_sft_512_moe.pth
      │   └── full_sft_768.pth
      ├── single_chat
      │   ├── full_sft_512.pth
      │   ├── full_sft_512_moe.pth
      │   └── full_sft_768.pth
      ├── pretrain_768.pth
      ├── pretrain_512_moe.pth
      ├── pretrain_512.pth
      
    • python 0-eval_pretrain.py测试预训练模型的接龙效果
    • python 2-eval.py测试模型的对话效果

🍭「Tip」预训练和全参微调pretrain和full_sft均支持多卡加速

假设你的设备只有1张显卡,使用原生python启动训练即可:

  • 执行预训练或指令微调训练
    python 1-pretrain.py
    # and
    python 3-full_sft.py
    

http://www.kler.cn/a/529217.html

相关文章:

  • 【上篇】-分两篇步骤介绍-如何用topview生成和自定义数字人-关于AI的使用和应用-如何生成数字人-优雅草卓伊凡-如何生成AI数字人
  • 跨域问题解决实践
  • 电子电气架构 --- 汽车电子拓扑架构的演进过程
  • 【算法】回溯算法专题① ——子集型回溯 python
  • JavaScript 入门教程
  • SAP SD学习笔记28 - 请求计划(开票计划)之2 - Milestone请求(里程碑开票)
  • Java知识速记 == 与equals
  • 截止到2025年2月1日,Linux的Wayland还有哪些问题是需要解决的?
  • 群晖搭建Gitea教程(使用系统自带的postgresql)
  • 用 JavaScript 打造交互式表格:添加与删除行功能
  • Linux文件类型
  • 台账思维和GIS思维在资产管理中的不同模式
  • 深度学习推理的整数量化:原理与实证评估
  • 知识管理系统推动企业知识创新与人才培养的有效途径分析
  • 【玩转全栈】--创建一个自己的vue项目
  • 海外问卷调查之渠道查,企业经营的指南针
  • C语言指针专题五 -- void和const指针
  • 【力扣】15.三数之和
  • 网络编程套接字(下)
  • CSS 样式化表格:从基础到高级技巧
  • 快速提升网站收录:利用网站FAQ页面
  • 人工智能入门课【手写自注意力机制】
  • 【回溯】目标和 字母大小全排列
  • 云服务器与Docker
  • 分布式事务组件Seata简介与使用,搭配Nacos统一管理服务端和客户端配置
  • 【华为OD-E卷 - 报数游戏 100分(python、java、c++、js、c)】