基于chatGLM-6B模型微调详细教程(linux版)(ptuning & lora)

2023-11-19

目录

准备工作

安装7z

ptuning预训练

ChatGLM-6B-Ptuning.7z 懒人包下载

上传文件并解压缩

拉取依赖

进行训练

启动服务

注意事项(揽睿星舟云算力平台)

lora预训练

chatGLM-All-In-One.7z 懒人包下载

上传文件并解压缩

拉取依赖

进行训练

启动服务

注意事项(揽睿星舟云算力平台)

展示


准备工作

安装7z

 sudo apt install p7zip-full p7zip-rar

ptuning预训练

ChatGLM-6B-Ptuning.7z 懒人包下载

链接:https://pan.baidu.com/s/1v-7qWwj28lc6r1qNBzdZjw?pwd=vd2u

提取码:vd2u

上传文件并解压缩

 # 提取完整路径文件
 7z x -y ChatGLM-6B-Ptuning.7z -o/home/user/data

拉取依赖

 pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
 pip3 install tensorboard gradio mdtex2html -i https://pypi.tuna.tsinghua.edu.cn/simple

进行训练

训练前先上传自己的数据集 answers.json

我的数据集如下

 {"prompt": "你们公司有哪些产品", "response": "公司主要业务包括系统集成、软件开发、应用软件销售、技术服务、IT人才培训、互联网金融等领域。公司已经为银行、证券、期货、基金、保险等金融机构提供了全面的信息化建设解决方案,并在国内金融行业享有良好声誉。", "history": []}
 {"prompt": "你是谁", "response": "我是*****科技有限公司智能助手小金,很高兴为您解答", "history": []}
 {"prompt": "可以介绍一下你嘛", "response": "我是*****科技有限公司智能助手小金,是由*****软件部基于清华大学chatGLM大语言模型研发的,我的职责是负责解答您的各种问题", "history": []}
 {"prompt": "谁开发的你", "response": "我是*****科技有限公司软件部开发的", "history": []}
 {"prompt": "可以介绍一下你们公司么", "response": "*****科技有限公司成立于1993年,是一家专业从事金融信息化解决方案提供商和服务商的高科技企业。公司总部位于北京,在上海、深圳、广州、成都、西安等地设有分支机构。公司致力于为金融行业提供完整的信息化解决方案和优质的服务。", "history": []}
 {"prompt": "你好", "response": "你好呀,我是*****科技有限公司智能助手小金,很高兴为您解答", "history": []}

编辑保存训练脚本

 # 编辑新脚本
vi 01Ptuning.sh
# 输入如下并保存
cd ptuning
python3 main.py --do_train --train_file ../answers.json --validation_file ../dev.json --prompt_column prompt --response_column response --overwrite_cache --model_name_or_path ../model --output_dir ../output --overwrite_output_dir --max_source_length 256 --max_target_length 256 --per_device_train_batch_size 1 --per_device_eval_batch_size 1 --gradient_accumulation_steps 16 --predict_with_generate --max_steps 500 --logging_steps 10 --save_steps 50 --learning_rate 2e-2 --pre_seq_len 128
 # 执行脚本
sh 01Ptuning.sh

启动服务

python3 web_demo.py

注意事项(揽睿星舟云算力平台)

使用揽睿星舟云算力平台启动服务时,需要使用 本机IP + 27777端口对外访问。

获取本机IP

hostname -I

然后复制本机IP,修改web_demo.py最后一行

 # 原始
 demo.queue().launch(share=True, inbrowser=True)
 ​
 # 改为
 demo.queue().launch(share=True, inbrowser=True, server_name='本机IP', server_port=27777)

然后再启动服务

lora预训练

chatGLM-All-In-One.7z 懒人包下载

链接:https://pan.baidu.com/s/1vBFhEVPgIm6qAVaE4Bdfyg?pwd=d6zz

提取码:d6zz

上传文件并解压缩

 # 提取完整路径文件
7z x -y chatGLM-All-In-One.7z -o/home/user/data

拉取依赖

 pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
 pip3 install tensorboard gradio mdtex2html -i https://pypi.tuna.tsinghua.edu.cn/simple

进行训练

训练前先上传自己的数据集 answers.json

编辑保存训练脚本

 # 编辑新脚本
 vi 03.sh
 # 输入如下并保存
 python3 finetune.py --dataset_path data --lora_rank 32 --per_device_train_batch_size 2 --gradient_accumulation_steps 1 --max_steps 400 --save_steps 50 --save_total_limit 2 --learning_rate 1e-4 --fp16 --remove_unused_columns false --logging_steps 50 --output_dir output
 # 执行脚本
sh 03.sh

启动服务

 python3 web_demo.py

注意事项(揽睿星舟云算力平台)

使用揽睿星舟云算力平台启动服务时,需要先获取本机IP

 hostname -I

然后复制本机IP,修改web_demo.py最后一行

 # 原始
 demo.queue().launch(share=True, inbrowser=True)
 ​
 # 改为
 demo.queue().launch(share=True, inbrowser=True, server_name='本机IP', server_port=27777)

然后再启动服务

展示

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于chatGLM-6B模型微调详细教程(linux版)(ptuning & lora) 的相关文章

  • Pygame读取MIDI输入

    我参考了Pygame MIDI 文档 https www pygame org docs ref midi html and 这段代码 https stackoverflow com questions 62983509 pygame mi
  • 查找 with: 块中定义的函数

    这是一些代码理查德 琼斯的博客 http www mechanicalcat net richard log Python Something I m working on 3 with gui vertical text gui labe
  • 使用 python 制作本地服务器应用程序的最佳方法

    我想要简单轻松地集成 python 和 vba 人们 如果他们在阅读本文后亲自见到我 阅读本文可能会杀了我 但我正在使用 django 开发服务器来实现此目的 有没有什么简单又好的方法 仅举个例子 我想使用 python 模块 openpy
  • Matplotlib 标准化颜色条 (Python)

    我正在尝试使用 matplotlib 当然还有 numpy 绘制轮廓图 它有效 它绘制了它应该绘制的内容 但不幸的是我无法设置颜色条范围 问题是我有很多图 并且需要所有图都具有相同的颜色条 相同的最小值和最大值 相同的颜色 我复制并粘贴了在
  • 如何在 Ubuntu 上安装 Python 模块

    我刚刚用Python写了一个函数 然后 我想将其做成模块并安装在我的 Ubuntu 11 04 上 这就是我所做的 创建 setup py 和 function py 文件 使用 Python2 7 setup py sdist 构建分发文
  • NLTK、搭配问题:需要解包的值太多(预期为 2)

    我尝试使用 NLTK 检索搭配 但出现错误 我使用内置的古腾堡语料库 I wrote alice nltk corpus gutenberg fileids 7 al nltk corpus gutenberg words alice al
  • python ttk treeview:如何选择并设置焦点在一行上?

    我有一个 ttk Treeview 小部件 其中包含一些数据行 如何设置焦点并选择 突出显示 指定项目 tree focus set 什么也没做 tree selection set 0 抱怨 尽管小部件明显填充了超过零个项目 但未找到项目
  • 唯一的图像哈希值即使 EXIF 信息更新也不会改变

    我正在寻找一种方法来为 python 和 php 中的图像创建唯一的哈希值 我考虑过对原始文件使用 md5 和 因为它们可以快速生成 但是当我更新 EXIF 信息 有时时区关闭 时 它会更改总和 并且哈希也会更改 有没有其他方法可以为这些文
  • 行为:如何从另一个文件导入步骤?

    我刚刚开始使用behave http pythonhosted org behave 一个Pythonic BDD框架 使用小黄瓜语法 http docs behat org guides 1 gherkin html 行为需要一个特征 例
  • 反加入熊猫

    我有两个表 我想附加它们 以便仅保留表 A 中的所有数据 并且仅在其键唯一时添加表 B 中的数据 键值在表 A 和 B 中是唯一的 但在某些情况下键将出现在表 A 和 B 中 我认为执行此操作的方法将涉及某种过滤联接 反联接 以获取表 B
  • 如何为多组精灵创建随机位置?

    我尝试使用 blit 和 draw 方法进行 for 循环 并为 PlayerSprite 和 Treegroup 使用不同的变量 for PlayerSprite in Treegroup surface blit PlayerSprit
  • Python While 循环,and (&) 运算符不起作用

    我正在努力寻找最大公因数 我写了一个糟糕的 运算密集型 算法 它将较低的值减一 使用 检查它是否均匀地划分了分子和分母 如果是 则退出程序 但是 我的 while 循环没有使用 and 运算符 因此一旦分子可整除 它就会停止 即使它不是正确
  • Python unicode 字符代码?

    有没有办法将 Unicode 字符 插入 Python 3 中的字符串 例如 gt gt gt import unicode gt gt gt string This is a full block s unicode charcode U
  • 我可以使用 dask 创建 multivariate_normal 矩阵吗?

    有点相关这个帖子 https stackoverflow com questions 52337612 random multivariate normal on a dask array 我正在尝试复制multivariate norma
  • Python int 太大,无法放入 SQLite

    我收到错误 OverflowError Python int 太大 无法转换为 SQLite INTEGER 来自以下代码块 该文件约25GB 因此必须分部分读取 length 6128765 Works on partitions of
  • 是否可以写一个负的python类型注释

    这可能听起来不合理 但现在我需要否定类型注释 我的意思是这样的 an int Not Iterable a string Iterable 这是因为我为一个函数编写了一个重载 而 mypy 不理解我 我的功能看起来像这样 overload
  • 使用 Doc2vec 后如何解释 Clusters 结果?

    我正在使用 doc2vec 将关注者的前 100 条推文转换为矢量表示形式 例如 v1 v100 之后 我使用向量表示来进行 K 均值聚类 model Doc2Vec documents t size 100 alpha 035 windo
  • Python模块单元测试的最佳文件结构组织?

    遗憾的是 我发现有太多方法可以在 Python 中保存单元测试 而且它们通常没有很好的文档记录 我正在寻找一种 终极 结构 它可以满足以下大部分要求 be discoverable by test frameworks including
  • Scrapy 蜘蛛无法工作

    由于到目前为止没有任何效果 我开始了一个新项目 python scrapy ctl py startproject Nu 我完全按照教程操作 创建了文件夹和一个新的蜘蛛 from scrapy contrib spiders import
  • 使用“pythonw”(而不是“python”)运行应用程序时找不到模块

    我尝试了这个最小的例子 from flask import Flask app Flask name app route def hello world return Hello World if name main app run deb

随机推荐

  • C++设计模式-State状态模式

    State状态模式作用 当一个对象的内在状态改变时允许改变其行为 这个对象看起来像是改变了其类 UML图如下 State类 抽象状态类 定义一个接口以封装与Context的一个特定状态相关的行为 ConcreteState类 具体状态 每一
  • Nodejs-Express框架

    1 认识Web框架 目前在Node中比较流行的Web服务器框架是express koa express早于koa出现 并且在Node社区中迅速流行起来 可以基于express快速 方便的开发自己的Web服务器 并且可以通过一些实用工具和中间
  • HttpResponse响应、render 响应、redirect 响应、JsonResponse 响应

    目录 HttpResponse介绍 常用属性 content 返回的内容 编辑 content type 返回给数据的MIME类型 status code 返回的HTTP响应状态码 render 返回网页 给网页传值 1 指名道姓方式传值
  • Mysql推荐书籍

    一 初级 1 MySQL必知必会 这本书英文原版名是很标题党的 Teach Yourself SQL in 10 Minutes 却是最好的数据库入门书 在Amazon上长期排在数据库销售榜首 建议想快速了解数据库原理和MySQL的新手阅读
  • sklearn机器学习:多项式朴素贝叶斯MultinomialNB

    多项式朴素贝叶斯MultinomialNB 多项式贝叶斯可能是除了高斯之外 最为人所知的贝叶斯算法了 它也是基于原始的贝叶斯 论 但假设概率分布是服从一个简单多项式分布 多项式分布来源于统计学中的多项式实验 这种实验可以具体解释为 实验包括
  • DDL语句--查看表

    查看表结构是指查看数据库中已经存在的表的定义 查看表结构的语句包括DESTRIBE语句和SHOW CREATE TABLE语句 通过这两个语句 可以查看表的字段名 字段的数据类型和完整性约束条件等 这篇博客将详细讲解查看表结构的方法 1 查
  • [Unity3D] Unity3D连接安卓设备调试unity程序

    目录 一 手机开启调试模式 确保adb能检测到手机 目的 确保adb能检测到手机 通过adb devices命令能够呈现如下效果 常见问题 二 unity配置工作 目的 配置unity中Build Settings界面与Player Set
  • FRIDA + Objection 内存漫游,HOOK,anywhere

    前言 VX Ays971124 大家一起吹水加群聊天哦 Friday 是一款很优秀的HOOK工具 不用过多介绍 objection功能强大 命令众多 而且不用写一行代码 便可实现诸如内存搜索 类和模块搜索 方法hook打印参数返回值 调用栈
  • 结构体定义.h与.c文件的问题

    首先一个问题 就是结构体声明与定义的问题 不过 感觉现在的我有点弄混了 那么下面我直接来说明 最开始的编程习惯 一直是用将结构体的定义 即struct xx 这个放在 h文件里 c文件只放置相关的函数实现 不过这几天看了一本相关的数据结构的
  • GD32F4xx MCU ADC+DMA 多通道采样

    1 GD32F4xx ADC GD32F4xx 的12位ADC是一种采用逐次逼近方式的模拟数字转换器 1 1 主要特征 可配置12位 10位 8位 6位分辨率 ADC采样率 12位分辨率为2 6MSPs 10位分辨率为3 0 MSPs 分辨
  • Golang最强大的访问控制框架casbin全解析

    开箱即用的访问控制框架casbin原理是啥 支持哪些权限模型 本文一一解答 本文非常长 适合边嗑瓜子边看 Casbin是一个强大的 高效的开源访问控制框架 其权限管理机制支持多种访问控制模型 目前这个框架的生态已经发展的越来越好了 提供了各
  • Geom_Geometry

    Geom hierarchy The virtual method will be discussed later
  • STM32与Python上位机通过USB虚拟串口通信

    文章目录 前言 1 查看原理图 2 新建工程 3 添加代码与烧录 4 python代码编写 总结 问题解决思路 前言 在详细阅读广大网友的教程之后 我对STM32和Python通过USB通信的流程烂熟于心 尝试用ST公司的NUCLEO L4
  • SpringMvc之@RequestParam详解

    RequestParam是传递参数的 RequestParam用于将请求参数区数据映射到功能处理方法的参数上 public String queryUserName RequestParam String userName 在url中输入
  • c++面向过程和面向对象

    include
  • mysql 插入行 无论是否已存在

    当需要插入新的一行 但是行内容中的标识unique字段可能已经存在 使用replace into方式插入 当插入内容的unique字段在已有数据中不存在则正常插入 当插入内容的unique字段在已有数据中存在 则更新该字段内容为新输入的内容
  • java resource注解_关于 java中的 @Resource注解和@Autowired注解

    Resource 建议用 类全称 javax annotation Resource 默认注入方式 byName 反射机制 指定注入方式 a 如果使用name属性 则使用byName自动注入策略 gt Resource name good
  • linux 动态库so相关操作

    1 查看库版本号 一般在文件名上有版本号 若文件名上没有版本号 使用如下命令查看 readelf d libstdc so 2 查看库内函数 a nm d libstdc so grep 内容 b objdump tT libstdc so
  • kafka问题解决:org.apache.kafka.common.errors.TimeoutException

    记录使用kafka遇到的问题 1 Caused by java nio channels UnresolvedAddressException null 2 org apache kafka common errors TimeoutExc
  • 基于chatGLM-6B模型微调详细教程(linux版)(ptuning & lora)

    目录 准备工作 安装7z ptuning预训练 ChatGLM 6B Ptuning 7z 懒人包下载 上传文件并解压缩 拉取依赖 进行训练 启动服务 注意事项 揽睿星舟云算力平台 lora预训练 chatGLM All In One 7z