记录微调chatglm3

news2024/9/20 18:39:19

用于记录chatglm3的过程,防止忘记

需要注意的

可以使用xtuner -h查看有哪些功能可以使用。

[2023-10-31 11:40:18,643] [INFO] [real_accelerator.py:158:get_accelerator] Setting ds_accelerator to cuda (auto detect)
10/31 11:40:22 - mmengine - INFO - 
    Arguments received: ['xtuner', '-h']. xtuner commands use the following syntax:

        xtuner MODE MODE_ARGS ARGS

        Where   MODE (required) is one of ('list-cfg', 'copy-cfg', 'log-dataset', 'check-custom-dataset', 'train', 'test', 'chat', 'convert', 'preprocess')
                MODE_ARG (optional) is the argument for specific mode
                ARGS (optional) are the arguments for specific command

    Some usages for xtuner commands: (See more by using -h for specific command!)

        1. List all predefined configs:
            xtuner list-cfg
        2. Copy a predefined config to a given path:
            xtuner copy-cfg $CONFIG $SAVE_FILE
        3-1. Fine-tune LLMs by a single GPU:
            xtuner train $CONFIG
        3-2. Fine-tune LLMs by multiple GPUs:
            NPROC_PER_NODE=$NGPUS NNODES=$NNODES NODE_RANK=$NODE_RANK PORT=$PORT ADDR=$ADDR xtuner dist_train $CONFIG $GPUS
        4-1. Convert the pth model to HuggingFace's model:
            xtuner convert pth_to_hf $CONFIG $PATH_TO_PTH_MODEL $SAVE_PATH_TO_HF_MODEL
        4-2. Merge the HuggingFace's adapter to the pretrained LLM:
            xtuner convert merge $NAME_OR_PATH_TO_LLM $NAME_OR_PATH_TO_ADAPTER $SAVE_PATH
        4-3. Split HuggingFace's LLM to the smallest sharded one:
            xtuner convert split $NAME_OR_PATH_TO_LLM $SAVE_PATH
        5. Chat with LLMs with HuggingFace's model and adapter:
            xtuner chat $NAME_OR_PATH_TO_LLM --adapter $NAME_OR_PATH_TO_ADAPTER --prompt-template $PROMPT_TEMPLATE --system-template $SYSTEM_TEMPLATE
        6-1. Preprocess arxiv dataset:
            xtuner preprocess arxiv $SRC_FILE $DST_FILE --start-date $START_DATE --categories $CATEGORIES
        7-1. Log processed dataset:
            xtuner log-dataset $CONFIG
        7-2. Verify the correctness of the config file for the custom dataset.
            xtuner check-custom-dataset

    Run special commands:

        xtuner help
        xtuner version

    GitHub: https://github.com/InternLM/xtuner

xtuner命令都有对应的python文件,可以在源码的xtuner/tools下找到,方便了解我们在运行命令时可以选择哪些参数

下载模型

这是我下载模型的地址。
上传到网盘上了

环境

主要是安装xtuner,使用xtuner工具继续微调。

pip install 'xtuner[deepspeed]'

也可以git上下载源码安装,就是使用命令方便一点

git clone https://github.com/InternLM/xtuner.git
cd xtuner
pip install -e '.[all]'

数据处理

之前微调Atom模型的时候使用自己收集的数据做了一个问答的csv文件,格式如下
在这里插入图片描述
需要把数据转为json格式,格式如下:

[{
    "conversation":[
        {
            "system": "xxx",
            "input": "xxx",
            "output": "xxx"
        }
    ]
},
{
    "conversation":[
        {
            "system": "xxx",
            "input": "xxx",
            "output": "xxx"
        }
    ]
}]

转换的代码如下:

import csv
import json

csv_file = 'data.csv'
json_file = 'output.json'

data = []  # 存储转换后的数据

# 读取CSV文件
with open(csv_file, 'r', encoding="utf-8") as file:
    reader = csv.DictReader(file)
    for row in reader:
        instruction = row['question']
        output = row['answer']
        item = {"conversation":[{
        	# system需要填入你认为合适的语句
            'system': '你是一个***专家。请回答我下面的问题。',
            'input': instruction,
            'output': output
        }]}
        data.append(item)

# 将转换后的数据写入JSON文件
with open(json_file, 'w', encoding="utf-8") as file:
    json.dump(data, file, indent=4, ensure_ascii=False)

print("转换完成!")

微调

XTuner 提供多个开箱即用的配置文件,用户可以通过下列命令查看:

xtuner list-cfg

通过xtuner copy-cfg 下载chatglm3的配置文件

xtuner copy-cfg chatglm3_6b_base_qlora_alpaca_zh_e3  .

这行命令会下载一个chatglm3_6b_base_qlora_alpaca_zh_e3_copy.py,接下来我们需要更改这个文件。

  • pretrained_model_name_or_path:改为chatglm3模型路径
  • alpaca_zh_path:改为json文件路径
  • max_epochs:改为你需要的训练轮数
  • evaluation_inputs:(可选)改成自己的问题

微调启动!!

NPROC_PER_NODE=2 xtuner train chatglm3_6b_base_qlora_alpaca_zh_e3_copy.py --work-dir 保存路径

pt转hf

xtuner convert pth_to_hf  chatglm3_6b_base_qlora_alpaca_zh_e3_copy.py  训练保存的pth模型路径  hf模型保存路径

合并模型

xtuner convert merge chatglm3模型路径  上面的hf模型保存路径  合并模型保存路径

测试

使用xtuner的chat进行测试,注意一定要填–prompt-template,不然他默认选择的是PROMPT_TEMPLATE的default的值,会报错,原因如下:
在这里插入图片描述
如果你是源码运行的话也可以把default的值改为’default’。

运行chat代码测试模型

xtuner chat 合并模型路径 --prompt-template default

在这里插入图片描述

参考

https://github.com/InternLM/xtuner/blob/151917720c7d57d02b78d9972e4b6ff755de93a0/README_zh-CN.md

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

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

相关文章

在Windows上安装Elasticsearch-8.x.x

前言 Elasticsearch 是一种流行的开源搜索和分析引擎,它提供了强大的全文搜索和实时数据分析功能,被广泛应用于各种领域,包括大数据分析、日志处理、企业搜索等。 一、下载 Elasticsearch 官方网站(https://www.elastic.co/dow…

R语言在生态环境领域中的实践技术应用

R语言作为新兴的统计软件,以开源、自由、免费等特点风靡全球。生态环境领域研究内容广泛,数据常多样而复杂。利用R语言进行多元统计分析,从复杂的现象中发现规律、探索机制正是R的优势。为此,以鱼类、昆虫、水文、地形等多样化的生…

Django开发实例总结(入门级、4.2.6、详细)

目录 概述 Django的核心组件包括 Django的项目结构 创建工程(4.2.6) 实例一:Hello world 实例二:访问一个自定义主页 实例三:通过登录跳转到主页 实例四:主页添加静态文件,包含js、css、…

学习Python,为什么可以轻松应对工作大小事?

Python,大名鼎鼎,它在工作中到底能发挥什么样的作用?在现代职场,Python如同一把瑰丽的多功能钥匙,能打开各行各业的大门。无论你是行政助手、财务分析师、电商经营者,还是数据研究员,Python都能…

pychram中cmd已导入docx库仍报错ModuleNotFoundError: No module named ‘docx‘

已经在cmd里pip install python-docx了,但是执行py文件时依然报错,解决方式是在File-Setting-Python Interpreter中点击号,搜索python-docx点击install package等待安装成功再执行文件就不会报错了。

SkyWalking官方文档-1-概述

概述 SkyWalking是一个开源的可观测平台,用于收集,分析,聚合,以及可视化处理来自服务和云原生框架的数据。SkyWalking提供了一种简单的方法来维护分布式系统的清晰视图,即使是跨云。 它是一种现代APM,专门…

手机app爬虫配置(模拟机)

近期在做某个项目,涉及到需要对手机app的进行数据爬取。 下面将讲述具体配置步骤 1、安装手机模拟器 在百度上搜索手机模拟器就可以啦,这里以夜神模拟器夜神安卓模拟器-安卓模拟器电脑版下载_安卓手游模拟器_手机模拟器_官网为例子。 下载后,直接点击安装即可。 2、安装…

多模态对比语言图像预训练CLIP:打破语言与视觉的界限

项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域):汇总有意义的项目设计集合,助力新人快速实…

美国人工智能政策公布

美国总统拜登 30 号上午发布了一项关于人工智能(AI)的行政命令(EO)。该行政命令最初以白宫情况说明书的形式向公众提供,“为人工智能安全和安保制定了新标准,保护美国人的隐私,促进公平和公民权…

【C++指针】类的指针

/*** file * author jUicE_g2R(qq:3406291309) * brief 类的指针* copyright 2023.10* COPYRIGHT 原创学习笔记:转载需获得博主本人同意,且需标明转载源* language C*/1 类 类 类 需要在 . h 文件 .h文件 .h文件 先声明 //…

MyBatis批量插入数据优化,新增参数大幅提升操作效率

项目中进行接口压测,发现批量插入的速度有点超出预期,感觉很奇怪,经过定位后发现mybatise-plus批量保存的处理十分缓慢,使用的是saveBatch方法,这点有点想不通。于是就进行了相关内容分析。 根据mybatise-plus中saveB…

ecplise中导入或更新项目之后出现的jsp文件一直显示红叉

解决办法:右键---build path或者properties中找java build path 先检查项目本身的jre版本是不是不与你本身的加热版本相同,如果不相同,则选中这个jre Systemlibrary -----右边有一个remove删除点。。。 (2)重新添加一…

(自适应手机端)厨师招聘信息发布类网站模板

(自适应手机端)厨师招聘信息发布类网站模板 PbootCMS内核开发的网站模板,该模板适用于信息发布网站等企业,当然其他行业也可以做,只需要把文字图片换成其他行业的即可; 自适应手机端,同一个后台,数据即时同…

chatgpt中文翻译英文

chatgpt中文翻译英文 chatgpt很适合用于将翻译英文,在英文论文写作上,日常翻译任务都有很大帮助。 使用方法 给出下面这段话: 下面我让你来充当翻译家,你的目标是把中文翻译成英文,请翻译时不要带翻译腔&#xff0c…

灯串上亚马逊加拿大合规标准CSA认证如何办理?

灯串 灯串和配件都是插头连接的便携式、临时性商品,最大额定输入电压为 120 伏。 本政策适用于季节性照明、装饰性灯具以及灯串。 亚马逊灯串政策 根据亚马逊的要求,所有季节性和装饰性灯串均应经过检测,并且遵守下列法规、标准和要求&…

【数电知识点_2023.10.28】

数制与码制 十进制转二进制 8 bits 1 Byte 2|12 //121100自下而上 商为0为止 2|_ 6_…0 2|_ 3_…0 2|1…1 0…1 0.375 //0.3750.011自上而下 小数点为0为止 x 2 ———— 0.75…0 x 2 ———— 1.5…1 x 2 ———— 1…1 BCD码:每4位二进制表示一位十进制 8421…

装修怎么快速除甲醛 房间装修除装修异味方法

装修怎么快速除甲醛 房间装修除装修异味方法 甲醛问题在装修中引起关注,装修房子是每个家庭都会经历的事情,而甲醛污染也是其中的一个难题。甲醛是一种有害物质,对人体健康造成严重影响,尤其对婴幼儿更为敏感。在装修过程中&#…

从零开始学习PX4源码0(固件下载及编译)

目录 文章目录 目录摘要1.重点学习网址2.固件下载1.下载最新版本固件2.下载之前版本固件 摘要 本节主要记录从零开始学习PX4源码1(固件下载)的过程,欢迎批评指正!!! 下载固件主要分为两个版本,之前稳定版本和最新官网…

【C++项目】高并发内存池项目第八讲 项目总结和面试问题分享

项目总结面试分享 1.项目总结1.1优点1.2不足1.3面试常见问题 2.面试分享项目部分C语法部分 项目源代码:高并发内存池 1.项目总结 1.1优点 增加动态申请的效率减少陷入内核的次数减少系统内存碎片提升内存使用率尽量减少锁竞争应用于多核多线程场景 1.2不足 当前…

西南建筑电气年会暨大运场馆电气设计技术论坛-安科瑞 蒋静

2023年10月19-20日,由中国建筑西南设计研究院有限公司、西南建筑电气工程设计情报网、四川省土木建筑学会建筑电气专业委员会、四川省电工技术学会工业与建筑供电专业委员会、建筑电气杂志社联合主办的第九届(2023年)“西南建筑电气年会暨大运场馆电气设计技术论坛”…