基于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) 的相关文章

  • Django 代理模型的继承和多态性

    我正在开发一个我没有启动的 Django 项目 我面临着一个问题遗产 我有一个大模型 在示例中简化 称为MyModel这应该代表不同种类的物品 的所有实例对象MyModel应该具有相同的字段 但方法的行为根据项目类型的不同而有很大差异 到目
  • 将数据从 python pandas 数据框导出或写入 MS Access 表

    我正在尝试将数据从 python pandas 数据框导出到现有的 MS Access 表 我想用已更新的数据替换 MS Access 表 在 python 中 我尝试使用 pandas to sql 但收到错误消息 我觉得很奇怪 使用 p
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • SQLALchemy .query:类“Car”的未解析属性引用“query”

    我有一个这里已经提到的问题https youtrack jetbrains com issue PY 44557 https youtrack jetbrains com issue PY 44557 但我还没有找到解决方案 我使用 Pyt
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • 如何使用 OpencV 从 Firebase 读取图像?

    有没有使用 OpenCV 从 Firebase 读取图像的想法 或者我必须先下载图片 然后从本地文件夹执行 cv imread 功能 有什么办法我可以使用cv imread link of picture from firebase 您可以
  • Python 的“zip”内置函数的 Ruby 等价物是什么?

    Ruby 是否有与 Python 内置函数等效的东西zip功能 如果不是 做同样事情的简洁方法是什么 一些背景信息 当我试图找到一种干净的方法来进行涉及两个数组的检查时 出现了这个问题 如果我有zip 我可以写这样的东西 zip a b a
  • 在f字符串中转义字符[重复]

    这个问题在这里已经有答案了 我遇到了以下问题f string gt gt gt a hello how to print hello gt gt gt f a a gt gt gt f a File
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • 向 Altair 图表添加背景实心填充

    I like Altair a lot for making graphs in Python As a tribute I wanted to regenerate the Economist graph s in Mistakes we
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • Python:如何将列表列表的元素转换为无向图?

    我有一个程序 可以检索 PubMed 出版物列表 并希望构建一个共同作者图 这意味着对于每篇文章 我想将每个作者 如果尚未存在 添加为顶点 并添加无向边 或增加每个合著者之间的权重 我设法编写了第一个程序 该程序检索每个出版物的作者列表 并
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • 使用其构造函数初始化 OrderedDict 以便保留初始数据的顺序的正确方法?

    初始化有序字典 OD 以使其保留初始数据的顺序的正确方法是什么 from collections import OrderedDict Obviously wrong because regular dict loses order d O
  • 使用 Python 的 matplotlib 选择在屏幕上显示哪些图形以及将哪些图形保存到文件中

    我想用Python创建不同的图形matplotlib pyplot 然后 我想将其中一些保存到文件中 而另一些则应使用show 命令 然而 show 显示all创建的数字 我可以通过调用来避免这种情况close 创建我不想在屏幕上显示的绘图
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • Python Selenium:如何在文本文件中打印网站上的值?

    我正在尝试编写一个脚本 该脚本将从 tulsaspca org 网站获取以下 6 个值并将其打印在 txt 文件中 最终输出应该是 905 4896 7105 23194 1004 42000 放置的动物 的 HTML span class

随机推荐

  • 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