|原文章发布于2024年07月26日
面壁小钢炮 MiniCPM 全网下载量突破 100 万啦!感谢大家的支持与厚爱
期待携手各位开发者朋友们继续前行,欢迎大家跟小钢炮一起玩耍🌟
今天,为大家带来的是「MiniCPM微调教程」
➤ 面向人群:能使用基本的bash,会使用python处理数据
➤ 模型介绍:MiniCPM:揭示端侧大语言模型的无限潜力
➤ Github地址:https://huggingface.co/openbmb/MiniCPM-2B-sft-bf16
➤ 模型地址:https://huggingface.co/openbmb/MiniCPM-2B-sft-bf16
➤ B站配套视频 ,搭配食用更佳
🔗 https://space.bilibili.com/493282299/channel/collectiondetail?sid=3433564
「面壁小钢炮MiniCPM通关宝典」会在接下来一段时间内持续上新,从技术拆解到部署推理到量化微调,手把手教你速通MiniCPM模型!公众号后台回复“小钢炮”,可解锁知识库全文。
➤ 设备需求:最少一张24g以上,20系列以上显卡
1. 使用git获取官方代码
2. 准备数据集,并处理成以下json格式,每一条数据就是一个message
3. 修改MiniCPM/finetune/lora_finetune_ocnli.sh文件
4. (可选)使用lora\qlora训练
笔者使用1台4090,batchsize为1,deepspeed使用zero3_offload,数据集为官方提供的ocnli_public_chatml。显存使用结果如下lora:使用6-7G显存qlora: 使用5-6G显存
4.1 lora使用:
MiniCPM/finetune/lora_finetune_ocnli.sh文件中增加use_lora参数,
如不确定就把以下代码加到--deepspeed configs/ds_config_zero2_offload.json的前一行
4.2 qlora使用:
MiniCPM/finetune/lora_finetune_ocnli.sh文件中增加use_lora,qlora参数,如不确定就把以下代码加到--deepspeed configs/ds_config_zero2_offload.json的前一行
5. 修改以上bash文件后,输入以下指令开始训练:
➤ 设备需求:mac os 14 以上
1. 首先下载llama_format_mlx中所有文件到model_path
文件地址:https://huggingface.co/mlx-community/MiniCPM-2B-sft-bf16-llama-format-mlx
注意:model_path是自定义路径
运行MiniCPM/finetune/data_processing.ipynb进行数据处理,获得MiniCPM/finetune/data/mlx_AdvertiseGen路径下train.json和dev.json:
step1: 数据集目录存放train.json和dev.json的训练数据和测试数据:
step2: json数据保持以下格式,每行一个字典,每个字典是一条数据,字典存在prompt,input,output三个键
3. 处理数据后开始训练
4. 当前路径下找到adapters.npz,开启测试
5. 使用以下代码进行推理
dpo,ppo,kto,orpo等算法时推荐
1. 首先安装llama_factory依赖
2. 处理数据
将数据集处理成Minicpm/finetune/llama_factory_example/llama_factory_data文件夹中的格式,示例包括dpo,kto,sft三种微调方式并放置到llama_factory/data目录下
2.1 dpo数据格式
2.2 kto数据格式:其中每个messages代表一条数据,label代表是该条数据的回复是否合理
2.3 sft数据格式如下,每个字典组成一条数据
3. 将数据信息添加到dataset_info.json
在llama_factory/data/dataset_info.json中添加数据集信息,保证dataset_info.json中能找到你的数据集,如下例:
4. 设置训练脚本
4.1 将MiniCPM/finetune/llama_factory_example中文件复制到LLaMA-Factory/examples/minicpm目录下
4.2 根据你需要微调的方式,以dpo为例。LLaMA-Factory/examples/minicpm/minicpm_dpo.yaml必须修改的配置参数如下
4.3 修改LLaMA-Factory/examples/minicpm/single_node.sh文件中以下配置
5. 开始训练
➤ 欢迎加入 OpenBMB 社区一起讨论
后台回复“小钢炮”,解锁「面壁小钢炮MiniCPM通关宝典」全文。
官方网站
https://www.openbmb.org
GitHub
https://github.com/OpenBMBhttps://github.com/thunlp
长期开放招聘|含实习
开发岗 | 算法岗 | 产品岗
交流QQ群
735930538