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

news2024/9/27 7:44:38

安装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.

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1310107.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MagicAnimate:Temporally consistent human image animation using diffusion model

1.Introduction 本文研究了任务形象动画人物,旨在根据特定的运动序列生成一个具有特定参考身份的视频。现有的人物图像动画的数据驱动方法可以基于所使用的生成主干模型分为两类,1.基于GAN,通常使用变形函数将参考图变形为目标姿态&#xff0…

Linux-----6、文件操作管理

# 文件操作管理 重要:Linux下,一切皆文件!!! 说在前面: 接下来所有的命令需要在一个载体上执行,这个载体就叫做终端。 终端上所有命令都需要一个东西翻译解析一下,计算机才能理解…

同义词替换工具在论文降重中的应用 神码ai

大家好,今天来聊聊同义词替换工具在论文降重中的应用,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧: 标题:同义词替换工具在论文降重中的应用 一、引言 在撰写论文时&#xff0c…

LeetCode力扣每日一题(Java):67、二进制求和

一、题目 二、解题思路 1、我的思路(残缺版) 好家伙,又是一道我盯着屏幕看了半天还没思路的题目 我只有一部分残缺的思路,在这里先写下来吧 我们可以先创建一个空字符串(后文称新字符串),用…

Linux-----5、文件系统

# 文件系统 # 终端的基本操作 ㈠ 打开多个终端 ㈡ 快速清屏 新建标签:command T 新建窗口:command N 关闭标签:command Q 关闭窗口:command W 放大:command 缩小:command - 清屏&#xff…

API绘画API:分分钟让你成为创作艺术家

引言 近几年,AI技术已经取得了显著的进步,尤其是在绘画领域。现在,通过使用API绘画API,普通人也可以像专业艺术家一样创作出令人惊叹的艺术作品。本文将向你介绍API绘画API的工作原理、如何使用它以及它对艺术创作的影响。 一、…

Java面向对象思想以及原理以及内存图解

文章目录 什么是面向对象面向对象和面向过程区别创建一个对象用什么运算符?面向对象实现伪代码面向对象三大特征类和对象的关系。 基础案例代码实现实例化创建car对象时car引用的内存图对象调用方法过程 成员变量和局部变量作用范围在内存中的位置 关于对象的引用关系简介相关…

js Intl.DateTimeFormat() 格式化时间利器

效果 案例 const options { year: numeric, month: 2-digit, day: 2-digit, hour: 2-digit, minute: 2-digit, second: 2-digit, hour12: false }; const now new Intl.DateTimeFormat(zh, options).format(new Date()).replace(/[/]/g,"-") console.log("当…

算法Day31 房间收纳

房间收纳 Description 对于零落的玩具,你需要进行收纳,为了将最多的玩具进行收纳,请你合理分配收纳柜和房间数量。 请你将一些玩具收纳在一个房间中,给你一个二维数组 roomTypes,其中的roomTypes[i] {numberOfBoxes_…

Java反射,枚举讲解

💕"理想者最可能疯狂。"💕 作者:Mylvzi 文章主要内容:Java反射,枚举讲解 "💕 作者:Mylvzi 文章主要内容:数据结构之Map/Set讲解硬核源码剖析 一.反射 1.概念 …

调用函数(打印素数)

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int is_prime(int n) {for (int j 2; j < n; j){if (n % j 0)return 0;}return 1; } void main() {for (int n 101; n < 200; n){int ret is_prime(n);if(ret1)printf("%d ", n);} }

Unity | Shader基础知识(第四集:Shader结构体)

目录 一、本节介绍 1 上集回顾 2 本节介绍 二、结构体的需求 1 数据的接入 2 开始写结构体 三、unity封装好的结构体 1 unity封装好了很多结构体 2 如何使用封装好的结构体 四、下集预告 一、本节介绍 1 上集回顾 上一集&#xff0c;我们做了一个可以改变颜色的案例…

Linux 线程池源码剖析

1 了解线程池 1-1线程池的概述 由一个任务队列和一组处理队列的线程组成。一旦工作进程需要处理某个可能“阻塞”的操作,不用自己操作,将其作为一个任务放到线程池的队列,接着会被某个空闲线程提取处理。 1-2线程池的组件 任务 待处理的工作,通常由标识、上下文和处理…

D92-02-ASEMI快恢复二极管20A 200V

编辑&#xff1a;ll D92-02-ASEMI快恢复二极管20A 200V 型号&#xff1a;D92-02 品牌&#xff1a;ASEMI 封装&#xff1a;TO-247 特性&#xff1a;插件、快恢复二极管 最大平均正向电流&#xff1a;20A 最大重复峰值反向电压&#xff1a;200V 恢复时间&#xff1a;35ns…

QQ音乐评论爬虫程序【原创】

先找到一首歌&#xff0c;把请求参数替换到下面程序中 例如&#xff1a; ‘g_tk_new_20200303’: ‘5381’, ‘g_tk’:‘5381’, ‘topid’:‘102636799’, //歌曲ID ‘cv’:‘4747474’ … #此处修改请求的页数 if page >10: break import requests from urllib import p…

多组别cellchat

不同分组之间的配对分析 ⚠️&#xff1a;配对分析必须保证细胞类型是一样的&#xff0c;才可以进行配对。如果 两个样本的细胞类型不一样又想进行配对分析时&#xff0c;可以用subset把两个样本的细胞类型取成一致的。 1. 数据准备&#xff0c;分别创建CellChat对象 Sys.set…

Antd Select 添加中框

默认antd 的 Select中间并没有竖框&#xff0c;但是ui design设计了&#xff0c;所以记录一下如何添加 默认&#xff1a; CSS&#xff1a; .custom-select-suffix-icon {display: flex;align-items: center; }.custom-select-suffix-icon::before {content: ;height: 31px; …

1. Prism系列之数据绑定

Prism系列之数据绑定 文章目录 Prism系列之数据绑定一、安装Prism二、实现数据绑定三、更换数据源 一、安装Prism 创建一个WPF工程&#xff0c;创建名为 PrismNewSample 的WPF项目。 使用管理解决方案的Nuget包 在上面或许我们有个疑问&#xff1f; 为啥安装prism会跟Pri…

ICC2:如何调整floorplan原点位置

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 使用virtuoso layout或calibredrv改变原点位置可以参考专栏文章: Virtuoso layout如何改变原点坐标 ICC2中改变原点位置需要使用move_block_orgin命令,使用方法如下: move_block_origin -to [lind…

Epicypher:CUTANA™ E. coli Spike-in DNA

来源于Escherichia coli&#xff08;E.coli&#xff09;的片段DNA可以用作核酸酶靶向切割和释放&#xff08;CUT&RUN&#xff09;的实验标准化的spike-in对照。产品CUTANA™ E. coli Spike-in DNA含有足够的材料&#xff0c;可用于100-200个CUT&RUN样本&#xff08;高丰…