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

安装LLaMA-Factory微调chatglm3,修改自我认知

安装git clone https://github.com/hiyouga/LLaMA-Factory.git
conda create -n llama_factory python=3.10
conda activate llama_factory
cd LLaMA-Factory
pip install -r requirements.txt

之后运行

单卡训练,

CUDA_VISIBLE_DEVICES=0 python src/train_web.py,按如下配置

demo_tran.sh

CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \--stage sft \--model_name_or_path /data/models/llm/chatglm3-lora/ \--do_train \--overwrite_output_dir \--dataset self_cognition \--template chatglm3 \--finetuning_type lora \--lora_target query_key_value \--output_dir export_chatglm3 \--overwrite_cache \--per_device_train_batch_size 4 \--gradient_accumulation_steps 4 \--lr_scheduler_type cosine \--logging_steps 10 \--save_steps 1000 \--learning_rate 1e-3 \--num_train_epochs 10.0 \--plot_loss \--fp16

 export_model.sh

python src/export_model.py \--model_name_or_path /data/models/llm/chatglm3-lora/ \--template chatglm3 \--finetuning_type lora \--checkpoint_dir /data/projects/LLaMA-Factory/export_chatglm3 \--export_dir lora_merge_chatglm3

 cli_demo.sh

python src/cli_demo.py \--model_name_or_path /data/models/llm/chatglm3-lora/ \--template default \--finetuning_type lora 

注意合并模型的时候,最后复制chatglm3的tokenizer.model和tokenizer_config.json到合并后模型覆盖之后,要修改

 不覆盖会有这个错误,

 Use DeepSpeed方法

deepspeed --num_gpus 3 --master_port=9901 src/train_bash.py \--deepspeed ds_config.json \--stage sft \--model_name_or_path /media/cys/65F33762C14D581B/chatglm2-6b \--do_train True \--finetuning_type lora \--template chatglm2 \--flash_attn False \--shift_attn False \--dataset_dir data \--dataset self_cognition,sharegpt_zh \--cutoff_len 1024 \--learning_rate 0.001 \--num_train_epochs 10.0 \--max_samples 1000 \--per_device_train_batch_size 4 \--gradient_accumulation_steps 4 \--lr_scheduler_type cosine \--max_grad_norm 1.0 \--logging_steps 10 \--save_steps 1000 \--warmup_steps 0 \--neft_alpha 0 \--train_on_prompt False \--upcast_layernorm False \--lora_rank 8 \--lora_dropout 0.1 \--lora_target query_key_value \--resume_lora_training True \--output_dir saves/ChatGLM2-6B-Chat/lora/train_2023-12-12-23-26-49 \--fp16 True \--plot_loss True

 ds_config.json的格式下面的:

{"train_batch_size": "auto","train_micro_batch_size_per_gpu": "auto","gradient_accumulation_steps": "auto","gradient_clipping": "auto","zero_allow_untested_optimizer": true,"fp16": {"enabled": "auto","loss_scale": 0,"initial_scale_power": 16,"loss_scale_window": 1000,"hysteresis": 2,"min_loss_scale": 1},  "zero_optimization": {"stage": 2,"allgather_partitions": true,"allgather_bucket_size": 5e8,"reduce_scatter": true,"reduce_bucket_size": 5e8,"overlap_comm": false,"contiguous_gradients": true}
}

 跑成功的效果图:

如果出现下面 这个问题,

[E ProcessGroupNCCL.cpp:916] [Rank 3] NCCL watchdog thread terminated with exception: CUDA error: the launch timed out and was terminated CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect. For debugging consider passing CUDA_LAUNCH_BLOCKING=1. Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

可能原因是显卡坏了或者显卡不是同一个型号!

相关文章:

  • 奥比中光 Femto Bolt相机ROS配置
  • strtok()的用法及实现哦
  • 逻辑回归的介绍和应用
  • es模板和索引简单操作简介
  • rust宏(macro)详解
  • Selenium+Unittest+HTMLTestRunner框架更改为Selenium+Pytest+Allure(一)
  • Sui承诺向流动性质押协议投入$SUI
  • TimescaleDB-1 安装
  • 3D渲染和动画制作软件KeyShot Pro mac附加功能
  • CRM客户管理系统-超详细介绍
  • 机器人视觉
  • OTP语音芯片与可重复擦写(Flash型)语音芯片:特性比较与应用差异
  • CanEasy多场景应用,让汽车总线测试更简单
  • 差分法详解
  • Java集合中的通用算法,开发效率翻倍
  • ➹使用webpack配置多页面应用(MPA)
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • docker-consul
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • java正则表式的使用
  • JS字符串转数字方法总结
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • vuex 笔记整理
  • 安装python包到指定虚拟环境
  • 分享几个不错的工具
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 跨域
  • 什么软件可以剪辑音乐?
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 数据科学 第 3 章 11 字符串处理
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 小李飞刀:SQL题目刷起来!
  • 学习JavaScript数据结构与算法 — 树
  • gunicorn工作原理
  • raise 与 raise ... from 的区别
  • ​iOS安全加固方法及实现
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #1015 : KMP算法
  • #define,static,const,三种常量的区别
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (篇九)MySQL常用内置函数
  • (七)c52学习之旅-中断
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (算法)求1到1亿间的质数或素数
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET Remoting学习笔记(三)信道
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .net6Api后台+uniapp导出Excel
  • .net和php怎么连接,php和apache之间如何连接
  • .NET开源快速、强大、免费的电子表格组件
  • [ MSF使用实例 ] 利用永恒之蓝(MS17-010)漏洞导致windows靶机蓝屏并获取靶机权限