在矩池云使用微调ChatGLM3-6B教程

今天给大家介绍下如何在矩池云使用ChatGLM3-6B模型。

1 简介

GitHub:https://github.com/THUDM/ChatGLM3
魔搭:https://modelscope.cn/models/ZhipuAI/chatglm3-6b/

ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的新一代对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性:
更强大的基础模型: ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。
更完整的功能支持: ChatGLM3-6B 采用了全新设计的 Prompt 格式,除正常的多轮对话外,同时原生支持工具调用(Function Call)、代码执行(Code Interpreter)和 Agent 任务等复杂场景。
更全面的开源序列: 除了对话模型 ChatGLM3-6B 外,还开源了基础模型 ChatGLM3-6B-Base、长文本对话模型 ChatGLM3-6B-32K。以上所有权重对学术研究完全开放,在填写问卷进行登记后亦允许免费商业使用。

2 矩池云快速使用ChatGLM3

(1)选用机器

进入矩池云官网https://matpool.com/, 以此点击“产品服务”、“GPU”,如图所示
在这里插入图片描述

(2)租用机器

在列表中,选用还是的机器,需要选择显存大于 13G 的机器,比如 V100、A4000、RTX3090、RTX4090等,不然ChatGLM-6B模型会因为显存不够而报错(CUDA out of Memory)
在这里插入图片描述

(3)选择镜像

点击租用后,在搜索框中输入“chatglm”以快速查找镜像,在系统镜像中选择“ChatGLM3-6B”后,即可下单租用。
在这里插入图片描述

(4)Web UI

镜像启动完成后,机器状态更变为“运行中”,如下所示,打开8501端口对应链接,即可进入ChatGLM3-6B的Web UI
在这里插入图片描述

(5)测试

进入Web UI后,即可与模型对话,如下图所示
在这里插入图片描述

(6)使用

ChatGLM3 Demo 拥有三种模式,使用案例参考https://github.com/THUDM/ChatGLM3/blob/main/composite_demo/README.md
Chat: 对话模式,在此模式下可以与模型进行对话。
Tool: 工具模式,模型除了对话外,还可以通过工具进行其他操作。
Code Interpreter: 代码解释器模式,模型可以在一个 Jupyter 环境中执行代码并获取结果,以完成复杂任务。
在这里插入图片描述
在这里插入图片描述

(7)对话模式参数调整

Temperature:从生成模型中抽样包含随机性,因此每次点击“生成”时,相同的提示可能会产生不同的输出。温度是用于调整随机程度的数字。
Top_p: 从top token中挑选的贪心解码策略,该值越高,约有可能选中概率低的token,
repetition_penalty:重复惩罚参数,对先前生成过的token,又重复的生成了该token进行惩罚(降低概率),以减少生成文本中的重复性,越大重复性越小,一般推荐设置 >1
Output length: 输出文本的长度,默认256,该值越大则输出可能的文本长度越长

3 模型微调

微调教程参考https://github.com/THUDM/ChatGLM3/blob/main/finetune_chatmodel_demo/README.md

(1)

进入Jupyter notebook,找到在根目录找到ChatGLM3代码文件,并新建终端
在这里插入图片描述
在这里插入图片描述

(2)

进入目录 /ChatGLM3/finetune_chatmodel_demo
在这里插入图片描述

(3)

# /ChatGLM3/finetune_chatmodel_demo 
pip install -r requirements.txt 

在这里插入图片描述

(4)

进入scripts,新建text file
在这里插入图片描述

(5)

填入微调数据
在这里插入图片描述

[{"conversations": [{"role": "system","content": "矩池云如何租用机器"},{"role": "user","content": "矩池云如何租用机器"},{"role": "assistant","content": "进入矩池云官网后,注册账号,点击产品服务即可选用机器。矩池云是一家专注于人工智能领域的云服务商。提供稳定的人工智能云服务器、人工智能教学实训环境、高速网盘等服务。"}, {"role": "user","content": "矩池云如何租用机器"},{"role": "assistant","content": "进入矩池云官网后,注册账号,点击产品服务即可选用机器。矩池云是一家专注于人工智能领域的云服务商。提供稳定的人工智能云服务器、人工智能教学实训环境、高速网盘等服务。"}]},{"conversations": [{"role": "system","content": "如何使用矩池云"},{"role": "user","content": "如何使用矩池云"},{"role": "assistant","content": "进入矩池云官网后,注册账号,点击产品服务即可选用机器。矩池云是一家专注于人工智能领域的云服务商。提供稳定的人工智能云服务器、人工智能教学实训环境、高速网盘等服务。"}, {"role": "user","content": "如何使用矩池云器"},{"role": "assistant","content": "进入矩池云官网后,注册账号,点击产品服务即可选用机器。矩池云是一家专注于人工智能领域的云服务商。提供稳定的人工智能云服务器、人工智能教学实训环境、高速网盘等服务。"}]}]

(6)

Ctrl+S 保存文件,并将文件重命名, 这里的示例是my_data.json,用户可根据自己的喜好更改
在这里插入图片描述

(7)

修改微调的数据集路径,修改 /ChatGLM3/finetune_chatmodel_demo/scripts/finetune_pt_multiturn.sh
(如果使用全量微调,则修改 finetune_ds_multiturn.sh)

BASE_MODEL_PATH=/ChatGLM3/chatglm3-6b-32k
DATASET_PATH=/ChatGLM3/finetune_chatmodel_demo/scripts/my_data.json

在这里插入图片描述

(8)

执行微调,有全量微调和P-Tuning v2 微调两种
参考显存用量
P-Tuning V2: PRE_SEQ_LEN=128, DEV_BATCH_SIZE=1, GRAD_ACCUMULARION_STEPS=16, MAX_SEQ_LEN=2048 配置下约需要 21GB 显存。
全量微调:./scripts/finetune_ds_multiturn.sh 中的配置(MAX_SEQ_LEN=2048, DEV_BATCH_SIZE=16, GRAD_ACCUMULARION_STEPS=1)恰好用满 4 * 80GB 显存。

# ./scripts/finetune_ds_multiturn.sh  # 全量微调
# ./scripts/finetune_pt_multiturn.sh # P-Tuning v2 微调cd /ChatGLM3/finetune_chatmodel_demo
chmod 777 ./scripts/finetune_pt_multiturn.sh 
./scripts/finetune_pt_multiturn.sh 

在这里插入图片描述

(9)

启动微调后模型

cd /ChatGLM3/finetune_chatmodel_demo
python inference.py \--pt-checkpoint "/ChatGLM3/finetune_chatmodel_demo/output/tool_alpaca_pt-20240103-075859-128-2e-2" \--model /ChatGLM3/chatglm3-6b-32k

在这里插入图片描述
如果是全量微调,则执行下面的指令

python inference.py \--tokenizer /ChatGLM3/chatglm3-6b-32k \--model "/ChatGLM3/finetune_chatmodel_demo/output/tool_alpaca_pt-20240103-075859-128-2e-2"

(10)

在Web UI中部署
首先我们需要 kill 掉系统开启自启的 ChatGLM3-6B 服务,Jupyterlab 里新建一个 Terminal,然后输入下面指令查看 ChatGLM3 综合 Demo 服务器进程id,该程序通过 streamlit 启动,所以我们可以查下 streamlit 相关进程即可。

ps aux | grep streamlit

在这里插入图片描述
kill 掉相关进程,从上面运行结果可以看出,streamlit 相关进程id是963,执行下面指令即可 kill 相关进程

# 注意 963 换成你自己租用服务器里查出来的 streamlit 程序的进程id
# 注意 963 换成你自己租用服务器里查出来的 streamlit 程序的进程id
# 注意 963 换成你自己租用服务器里查出来的 streamlit 程序的进程id
kill 963

PT_PATH需要根据自己output下文件夹生成的名称做调整
在这里插入图片描述
在Web UI中部署
注意,MODEL_PATH和PT_PATH的设置要和 streamlit run main.py在同一行,不能将命令分开输入,否则不会加载我们微调后的模型

cd /ChatGLM3/composite_demo
MODEL_PATH="/ChatGLM3/chatglm3-6b-32k"  PT_PATH="/ChatGLM3/finetune_chatmodel_demo/output/tool_alpaca_pt-20240104-005002-128-2e-2" streamlit run main.py 

在这里插入图片描述

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

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

相关文章

租房别再傻傻的扯网线了!随身WiFi靠谱品牌推荐,哪个随身WiFi最好用

如果你是租房党,并且预算有限的话,拉网线太麻烦了,价格很贵,需要搬家的时候还要重新扯线,事儿很多。想买一个网速快,便捷的随身WiFi看电影、刷刷抖音、打打游戏,那一定一定要认真看完我这篇文章…

metrics安装异常原因【doesn‘t contain any IP SANs】

1、问题背景 安装好k8s后,安装metrics-server后发现对应的pod一直无法启动。 apiVersion: v1 kind: ServiceAccount metadata:labels:k8s-app: metrics-servername: metrics-servernamespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: Cl…

Jasper report InputStream动态生产Logo

第一步,新建一个Parameter 新建一个对象Parameter,类型为java.io.InputStream 第二步,拖拽Image对象 拖拽Image对象,并调整长宽,Image下选择Expression $P{Logo_Blue} 第三步,把图片转换成stream rptHea…

numpy100练习题,包含相应使用函数解释

取自github开源项目:numpy100题 文章目录 1. 导入numpy库并简写为 np (★☆☆)2. 打印numpy的版本和配置说明 (★☆☆)3. 创建一个长度为10的空向量 (★☆☆)4. 如何找到任何一个数组的内存大小? (★☆☆)5. 如何从命令行得到numpy中add函数的说明文档?…

D41|打家劫舍

198.打家劫舍 初始思路&&题解复盘: 确定dp数组(dp table)以及下标的含义 dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]。 2.确定递推公式 决定dp[i]的因素就是第i房…

Unity 实用方法 合集

Unity 实用方法 合集 Unity 打字机效果2D 坐标旋转计算球面坐标求值平滑移动鼠标位置获取2D屏幕坐标转世界坐标物体朝向目标多物体中心点生成本地图片加载画面线框显示画面线框显示 搭载效果 贝塞尔曲线绘制贝塞尔曲线绘制 搭载效果 网格弯曲网格弯曲 搭载效果 Delaunay 模型生…

安泰ATA-4014高压功率放大器在传感器脉冲涡流检测中的应用

传感器在工程领域起着至关重要的作用,能够实时获取各种物理量的信息。而功率放大器作为传感器信号处理的重要组成部分,广泛应用于各种测量和控制系统中。本文将探讨功率放大器在这一领域的重要性和作用。 首先,了解传感器脉冲涡流检测的基本原…

二、电脑备份

一、电脑备份 解释:window10目前有电脑备份的功能,一般备份C盘(因为系统在这里),这个功能挺重要的,能够帮你在危难的时候把电脑拉回来,在按照xxxx教程安装驱动,操作注册表,修改C盘里面跟系统有…

亚信安慧AntDB团队引领数据库创新浪潮

湖南亚信安慧科技有限公司,原亚信科技AntDB团队,近日获得信创工委会颁发的创新活跃度荣誉,充分肯定了其在科技创新领域的杰出表现。在当前全球经济下行的大环境中,创新正逐渐成为国家、企业和个人发展的关键因素。亚信安慧作为一家…

AI芯片:神经网络研发加速器、神经网络压缩简化、通用芯片 CPU 加速、专用芯片 GPU 加速

AI芯片: 神经网络研发加速器、神经网络压缩简化、通用芯片 CPU 加速、专用芯片 GPU 加速 神经网络研发加速器神经网络编译器神经网络编译器 神经网络加速与压缩(算法层面)知识蒸馏低秩分解轻量化网络剪枝量化 通用芯片 CPU 加速x86 加速arm 加…

【Linux】应用与驱动交互及应用间数据交换

一、应用程序与 Linux 驱动交互主要通过以下几种方式: 1. 系统调用接口(System Calls): 应用程序可以通过系统调用,如 open(), read(), write(), ioctl(), 等来与设备驱动进行交互。这些调用最终会通过内核转发到相应的驱动函数…

安装ubuntu22.04系统,GPU驱动,cuda,cudnn,python环境,pycharm

需要准备一个u盘,需要格式化,且内存不小于8g 1 下载ubuntu镜像 下载链接: https://cn.ubuntu.com/download/desktop 2下载rufus Rufus - 轻松创建 USB 启动盘Rufus: Create bootable USB drives the easy wayhttps://rufus.ie/zh/ 准备好这…

Abp 创建一个模版demo并运行

Demo效果 :简单的单表crud后台服务。不包含UI 项目类型是模块ABP。生成的结构和 多应用/单应用 有差异。 结合文档以及git的源码分享一下demo的理解 abp文档:API/Auto API Controllers | Documentation Center | ABP.IO 前置准备: Net8 环境…

鹅目标检测数据集VOC格式300张

鹅,一种家禽,以其独特的形态、生活习性和文化象征意义而备受人们喜爱。 鹅属于鸟纲、雁形目、鸭科,是一种大型水禽。它们的身体肥胖,羽毛洁白如雪,嘴部扁平且坚硬,脚部有蹼,适合在水中游动。 …

VBA_NZ系列工具NZ11:VBA光标跟随策略

我的教程一共九套及VBA汉英手册一部,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到数据库,到字典,到高级的网抓及类的应用。大家在学习的过程中可能会存在困惑,这么多知识点该如何组织…

【vue3中状态管理工具pinia的使用】pinia状态一(state)

1、安装 yarn add pinia//或者//npm install pinia2、在main.js中引入store // 引入piniaimport { createPinia } from piniaconst pinia createPinia()// 使用piniaapp.use(pinia)3、创建一个Store 在项目根目录的 src文件夹 —— 创建store文件夹 —— 创建 index.js 文件 …

MongoDB查找命令find,让数据返回称心如意

业务系统接入数据库后,每天都有大量的数据写入数据库。面对逐日增加的数据,开发人员或数据分析人员,该如何读取数据,怎样设置条件,从数据库中查询数据? 本文基于mongodb的官方文档,整理出find命…

​电脑技巧:​笔记本电脑电流声的原因和解决方案

目录 一、音频设备接口接触不良 二、笔记本电源问题 三、笔记本电脑驱动程序问题 四、音频硬件问题 五、操作系统内部电磁干扰 六、最后总结 大家在日常生活当中,笔记本电脑已经成为我们工作、学习和娱乐的重要工具。但有时我们在使用过程中可能会遇到一个令人…

机器学习中的隐马尔可夫模型及Python实现示例

隐马尔可夫模型(HMM)是一种统计模型,用于描述观测序列和隐藏状态序列之间的概率关系。它通常用于生成观测值的底层系统或过程未知或隐藏的情况,因此它被称为“隐马尔可夫模型”。 它用于根据生成数据的潜在隐藏过程来预测未来的观…

移动通信原理与关键技术学习(4)

1.小尺度衰落 Small-Scale Fading 由于收到的信号是由通过不同的多径到达的信号的总和,接收信号的增强有一定的减小。 小尺度衰落的特点: 信号强度在很小的传播距离或时间间隔内的快速变化;不同多径信号多普勒频移引起的随机调频&#xff…