阿里云部署ChatGLM-6B及ptuning微调教程

一、模型部署

1.进入阿里云人工智能平台PAI。

2.申请免费试用。

3.打开交互式建模 PAI-DSW。

4.新建实例。

5.填写配置。

6.实例准备完成后点击打开。

7.打开实例后点击Teminal。

8.在Teminal中依次输入以下命令并执行。

apt-get update
apt-get install git-lfs
git lfs install
git init
git-lfs init
git lfs install

9.继续在Teminal中输入以下命令来获取项目文件,执行完成后点击Notebook检查项目文件是否成功获取。

https://github.com/THUDM/ChatGLM-6B.git

如果获取太慢或者获取失败,就在github上下载好代码的压缩包到本地上传并进行解压。

unzip ChatGLM-6B-main_0515.zip

10.回到Teminal进入项目文件创建一个model文件夹用于存放模型,创建完成后进入model文件夹拉取模型,由于huggingface可能连接不稳定,这里采用国内的modelscope社区来拉取模型。对应的命令如下。

cd ChatGLM-6B
mkdir model
cd model
git clone https://www.modelscope.cn/ZhipuAI/ChatGLM-6B.git

11.执行完成后点击Notebook进入model文件夹检查模型是否拉取完整,发现模型与项目文件同名,我们将其改为小写。(记得仔细检查下模型是否拉取完整)

若拉取失败,也可用上述方法将文件下载到本地再上传。

12.回到Teminal输入以下命令返回上一级项目文件目录安装依赖。

cd ..
pip install -r requirements.txt

13.安装完成后点击Notebook,在项目文件目录下修改web_demo.py文件(主要是修改模型路径),修改完成后使用 Ctrl + s 保存。

14.最后回到Teminal运行web_demo.py文件。

python web_demo.py

15.执行后可能会出现以下报错,原因是gradio版本过高,需安装一个低版本的gradio。

pip install gradio==3.39.0

16.再次尝试执行web_demo.py文件,得到了一个url,点击url进入模型的web界面,再进行问答测试发现成功部署。

二、模型微调

1.首先来看下github上给出的微调数据集格式。

我们根据其格式编写一些自己的微调数据并保存为train.json文件到桌面,具体如下图所示。

2.回到项目文件,我们看到项目文件已经给了一个ptuning的文件夹。

3.将自己编写的微调数据文件train.json从桌面拖入到ptuning文件夹中。

4.修改ptuning目录下的train.sh文件。

5.点击Teminal输入以下命令进入ptuning目录下运行train.sh文件,进行微调训练。

cd ChatGLM-6B
cd ptuning
bash train.sh

如果提示出现缺少模块错误,提示缺啥就装啥(使用 pip install xx 安装)。训练的过程和训练完成后的界面如下图所示。

6.训练完成后点击Notebook,发现ptuning目录下多出了一个output文件夹,进入output文件夹看到的checkpoint-500 就是我们最后训练得到的微调模型。

7.(该步骤可以跳过)可以对evaluate.sh文件进行修改并运行来对训练得到的微调模型进行评估。

修改完成后点击Teminal,还是在ptuning目录下执行。评估完成后会在output文件中生成generated_prediction.txt文件来汇报评估结果。

bash evaluate.sh

8.最后修改ptuning目录下的web_demo.sh文件,再去Teminal中ptuning目录下输入命令运行。修改的参数和运行的命令如下。

bash web_demo.sh

9.运行完成后同样也得到一个url,点击url进入微调好的模型的web界面,进行问答测试。问的姓名与自己编写的数据有点差别,但星座准确地答出来了,这与训练过程有关,不过也算有点微调效果了。

最后说下自己也是入门学习大模型,可能理解表述有问题,欢迎指教。以上内容学习于B站up主:Joker大金宝。视频链接如下,如有侵权,联系删除。

在阿里云上部署chatGLM-6B_哔哩哔哩_bilibili

在阿里云上微调chatGLM-6B_哔哩哔哩_bilibili

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

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

相关文章

SQLite利用事务实现批量插入(提升效率)

在尝试过SQLite批量插入一百万条记录,执行时长高达20多分钟后,就在想一个问题,这样的性能是不可能被广泛应用的,更不可能出现在真实的生产环境中,那么对此应该如何优化一下呢? 首先分析一下批量插入的逻辑 …

蓝桥杯-地宫取宝

X 国王有一个地宫宝库,是 nm 个格子的矩阵,每个格子放一件宝贝,每个宝贝贴着价值标签。 地宫的入口在左上角,出口在右下角。 小明被带到地宫的入口,国王要求他只能向右或向下行走。 走过某个格子时,如果那个…

网络工程师----第二十四天

计算机基础 第一章:概述 互联网的组成: (1)边缘部分:由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。 (2…

Python大数据分析——Logistic回归模型

Logistic回归模型 概念理论分析模型评估混淆矩阵ROC曲线KS曲线 函数示例 概念 之前的回归的变量是连续的数值变量;而Logistics回归是二元离散值,用来解决二分类问题。 理论分析 上式中的hβ(X)也被称为Loqistic回归模型,它是将线性回归模型…

2-1 EXTI外部中断(gd32)

中断的概念 中断硬件结构/软件结构 EXTI中断 EXTI硬件结构 注:EXTI线在同一时刻只能连接一个GPIO口,如果我们先连接了PA0,然后又连接了PB0那么此时PA0这个IO口就失去作用。 中断触发函数 中断优先级 中断优先级 数值越小优先级越高,抢占优先级…

247 基于matlab的梁的振型仿真

基于matlab的梁的振型仿真。利用有限元理论,求二维梁的固有频率和振型。短边固定,给定长度、横截面积,弹性模量及材料密度已知。并对比理论计算结果进行分析。各参数自己设定。程序已调通,可直接运行。 247 梁的振型仿真 固有频率…

Unity2D 模拟手柄实现玩家移动

1,创建控制器UI 2,挂载脚本 3,脚本编写 基本要素 [Tooltip("玩家游戏体")]public Rigidbody2D player;[Tooltip("玩家速度")]public float speed 1f;[Tooltip("玩家动画")]public Animator animator;public …

企业级复杂前中台项目响应式处理方案

目录 01: 前言 02: 响应式下navigtionBar实现方案分析 数据 视图 小结 03: 抽离公用逻辑,封装系列动作 04: PC端navigationBar私有逻辑处理 05: 分析 navigationBar 闪烁问题 06: 处理 navigationBar 闪烁问题 07: category数据缓存,覆盖…

Android 13 系统自定义安全水印

效果 源码实现 frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java public final void showSafeModeOverlay() {View v LayoutInflater.from(mContext).inflate(com.android.internal.R.layout.safe_mode, null);WindowManager.Layout…

程序员工作中常见问题,你遇到过几个?

在赛博朋克2077玩后感中,我提到,即便是在严谨的机制下,依然可能出现让人匪夷所思或是贻笑大方的问题。 那么今天,就以后端程序员的视角,盘点下从设计开发到上线的常见问题,看看大家中过几个。 01 设计与开…

问题与解决:大华视频后台播放报错

大华播放器接到BI系统后,实时监控视频后台播放一段时间后,报错如下: The play() request was interrupted because video-only background media was paused to save power. 在谷歌浏览器下,直接用代码运行系统,视频在…

python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解

这篇文章主要介绍了python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 JDBC Request 这个 Sampler 可以向数据…

正点原子Linux学习笔记(九)在 LCD 上显示字符

在 LCD 上显示字符 23.1 原始方式:取模显示字符23.2 freetype 简介23.3 freetype 移植下载 FreeType 源码交叉编译 FreeType 源码安装目录下的文件移植到开发板 23.4 freetype 库的使用初始化 FreeType 库加载 face 对象设置字体大小加载字形图像 23.5 示例代码 前面…

FPGA第2篇,FPGA与CPU GPU APU DSP NPU TPU 之间的关系与区别

简介:首先,FPGA与CPU GPU APU NPU TPU DSP这些不同类型的处理器,可以被统称为"处理器"或者"加速器"。它们在计算机硬件系统中承担着核心的计算和处理任务,可以说是系统的"大脑"和"加速引擎&qu…

需求规格说明书设计规范(编制实际项目案例-word)

二、 项目概述 2.1 项目背景 2.2 现状分析 2.2.1 业务现状 2.2.2 系统现状 三、 总体需求 3.1 系统范围 3.2 系统功能 3.3 用户分析 3.4 假设与依赖关系 四、 功能需求 五、 非功能性需求 5.1 用户界面需求 5.2 软硬件环境需求 5.3 产品质量需求 5.4 接口需求 5.5 其他需求 六、…

Django国际化与本地化指南

title: Django国际化与本地化指南 date: 2024/5/12 16:51:04 updated: 2024/5/12 16:51:04 categories: 后端开发 tags: Django-i18n本地化-L10n多语言国际化翻译工具表单验证性能优化 引言 在数字化时代,网站和应用程序必须跨越地域限制,服务于全球…

Qt---事件

一、Qt中的事件 鼠标事件 鼠标进入事件enterEvent 鼠标离开事件leaveEvent 鼠标按下mousePressEvent ( QMouseEvent ev) 鼠标释放mouseReleaseEvent 鼠标移动mouseMoveEvent ev->x():坐标 ev->y():y坐标 ev->bu…

【JS红宝书学习笔记】第3章 语言基础

第3章 语言基础 1. 语法 标识符(变量、函数、属性或函数参数的名称):一般使用驼峰法命名,关键字、保留字、true、false 和 null 不能作为标识符。 标识符的第一个字符必须是一个字母、下划线(_)或美元符号…

docker 部署SSM项目(包含打包)

一:SSM项目打包 1.这个一定要勾选防止静态资源没打包上 2.第二步 3.第三步 4.更改名字(注意部署到线上的时候这里如果用docker或者window部署的话需要带这个项目名,不然会出现找不到接口的情况) ![在这里插入图片描述](https://img-blog.csdnimg.cn/dir…

MCU通过UART/SPI等接口更新flash的方法

MCU可提供一种方便的方式来更新flash内容以进行错误修复bugfix或产品更新update。可以使用以下任何模式更新flash内容: •系统内编程(ISP,In-System Programming):用于使用内部bootloader程序和UART/SPI对片上闪存进行编程program或重新编程reprogram。 •应用程序内编程…