【奶奶看了都会】云服务器ChatGLM模型fine-tuning微调,让你拥有自己的知识库

1.背景

大家好啊,上次给大家写了ChatGLM-6B的部署使用教程,【奶奶看了都会】云服务器部署开源ChatGLM-6B,让你拥有自己的ChatGPT

但是因为模型比较小的问题,所以日常工作中可能用不上。而且大家更希望的是模型能训练自己的数据,为自己服务。比如:公司内部用自己的知识库数据进行微调,训练成内部知识问答机器人,这样对于各种业务问题答疑,机器人立马就能给出对应的答案,比单纯的问题搜索好太多了。

还是老规矩,先让大家看看微调前后ChatGLM对不同业务问题的回答:

在这里插入图片描述

2.部署ChatGLM

详细部署教程可以参考上一篇文章:【奶奶看了都会】云服务器部署开源ChatGLM-6B,让你拥有自己的ChatGPT,这里我们简单说说部署步骤,重点讲微调教程

2.1创建空间

这里我们还是用揽睿星舟的云服务器进行操作,主要还是便宜嘛,一台3090-24G显存的机器只需要1.9元/小时,适合咱们这种口袋不鼓的小白玩家。

注册地址:揽睿云注册地址

注册账号时邀请码填写4104

通过我的链接注册的用户,登陆后点击右上角机器人图标,点击“充值”,选择其他金额输入“3.8“,即可获得免费3.8元算力

目前平台还有一个用户邀请用户的活动。如果邀请一个充值用户,平台会自动返 10元现金券。邀请方法就是在“个人设置”里面找到邀请码,分享出去,有用户通过个人邀请码充值,分享者就能获得10元的现金券~

在这里插入图片描述

然后我们选择一台3090-24G的服务器,创建工作空间,链接:
https://www.lanrui-ai.com/console/workspace/create?mode=after&resource_name=ark.gpu.3090

配置选择可以看下图,公有镜像、挂载网盘即可

在这里插入图片描述

2.2部署ChatGLM-6B

1.创建完工作空间后,进入jupyter页面,并创建一个终端,然后我们开始下载代码,执行命令

//1.进入data目录
cd data//2.下载代码
git clone https://github.com/THUDM/ChatGLM-6B.git

2.下载代码后,修改requirements.txt文件,加上需要安装的依赖

icetk
chardet
streamlit
streamlit-chat
rouge_chinese
nltk
jieba
datasets

然后执行 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

安装依赖

3.下载模型文件

//下载小文件
cd ChatGLM-6Bgit clone https://huggingface.co/THUDM/chatglm-6b// 删除不用的空文件
rm -rf ice_text.model
rm -rf pytorch_model-0000*

接着进入到chatglm-6b目录下,新建一个down.py的文件,把下面的代码拷贝进去。我们准备下载大文件了

import requestsurl='https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/files/?p=%2Fice_text.model&dl=1'
save_path='ice_text.model'
# 设置header
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
# 获取文件并写入
res = requests.get(url,headers=headers)
file1 =open(save_path,'wb')
file1.write(res.content)
file1.close()url1='https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/files/?p=%2Fpytorch_model-0000'
url2='-of-00008.bin&dl=1'
save_path1='pytorch_model-0000'
save_path2='-of-00008.bin'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
# 循环获取models,总共有8个基础模型
for i in range(8):url=url1+str(i+1)+url2save_path=save_path1+str(i+1)+save_path2res = requests.get(url,headers=headers)file1 =open(save_path,'wb')file1.write(res.content)file1.close()print("第{}个模型下载已完成".format(i+1))

保存后,命令行执行python3 down.py等待10分钟左右,文件下载完成后如下图:

在这里插入图片描述

下面我们开始微调的流程

3.模型微调

3.1数据集准备

要想训练自己的数据,需要准备提问和回答的内容,数据格式为Json,如下是示例:

ADGEN 数据集任务为根据输入(content)生成一段广告词(summary)

{"content": "类型#裤*版型#宽松*风格#性感*图案#线条*裤型#阔腿裤","summary": "宽松的阔腿裤这两年真的吸粉不少,明星时尚达人的心头爱。毕竟好穿时尚,谁都能穿出腿长2米的效果宽松的裤腿,当然是遮肉小能手啊。上身随性自然不拘束,面料亲肤舒适贴身体验感棒棒哒。系带部分增加设计看点,还让单品的设计感更强。腿部线条若隐若现的,性感撩人。颜色敲温柔的,与裤子本身所呈现的风格有点反差萌。"}

当然,我们想训练自己的数据时,也可以写脚本将自己内部数据洗成上面的Json格式,对于大批量数据可能需要用到大数据的知识了。

这里为了方便快速看到效果,我们直接用网上已有的数据集进行测试

下载过程如下:

//进入到ptuning目录下
cd ChatGLM-6B/ptuning//下载数据集文件
wget -O AdvertiseGen.tar.gz https://cloud.tsinghua.edu.cn/f/b3f119a008264b1cabd1/?dl=1//解压数据集
tar -xzvf AdvertiseGen.tar.gz

解压后在ptuning/AdvertiseGen目录下能看到train.jsondev.json两个文件,就是数据集了。

3.2修改训练脚本

详细说明可以看官方Github说明ChatGLM官方文档

我们使用train.sh脚本训练,需要修改2个参数

  • model_name_or_path 模型文件路径,修改为/home/user/data/ChatGLM-6B/chatglm-6b即刚才下载的模型文件
  • per_device_train_batch_size 每台设备训练的批处理大小,这里设成24,因为咱们的显存有24G,充分利用
  • gradient_accumulation_steps 修改为2

修改完后,脚本如下:

在这里插入图片描述

3.3训练数据

执行下面命令开始训练数据

bash train.sh

训练时间大概4个小时,训练完成后会生成output文件夹,在该文件夹下可看到生成的checkpoint文件夹

在这里插入图片描述

3.4推理

小卷毕竟不是专业算法工程师,这一步简单理解验证模型与自己预想的输出结果一致程度。我们这一步进行evaluate过程,修改evaluate.sh脚本,需要修改的内容如下:

//修改模型路径
--model_name_or_path /home/user/data/ChatGLM-6B/chatglm-6b \

然后执行bash evaluate.sh执行推理脚本,等待1小时后,生成的结果保存在./output/adgen-chatglm-6b-pt-8-1e-2/generated_predictions.txt

在这里插入图片描述

3.5使用

我们运行ptuning文件夹下的web_demo.sh文件,通过网页访问使用模型,脚本文件需要修改模型路径,修改后如下:

PRE_SEQ_LEN=128CUDA_VISIBLE_DEVICES=0 python3 web_demo.py \--model_name_or_path /home/user/data/ChatGLM-6B/chatglm-6b \--ptuning_checkpoint output/adgen-chatglm-6b-pt-128-2e-2/checkpoint-3000 \--pre_seq_len $PRE_SEQ_LEN

修改web_demo.py文件里的监听IP为0.0.0.0,端口号改为27777,方便我们从浏览器访问

修改后的启动代码是

    demo.queue().launch(share=True, inbrowser=True, server_port=27777, server_name="0.0.0.0")

如图:

在这里插入图片描述

接着命令行执行bash web_demo.sh开始运行模型,出现http://0.0.0.0:27777字样的日志说明运行成功

接着回到揽睿星舟的工作空间页面,复制调试地址后在浏览器打开,就能用我们微调后的模型玩耍了

3.6测试效果

我们输入预先设计的提问,对比微调前后的回答
在这里插入图片描述

可以看到微调后的回答,和我们喂给模型的回答是一样的

3.7其他注意

通过上图也可以发现,模型微调后出现了灾难性的遗忘,输入你好,开始胡言乱语了。

即除了你教它的东西外,它原本的知识已经混乱了。所以微调后的模型只能用于单一的场景了,非常适合知识库问答这种。

4.写在最后

AI技术的发展真是太快了,距离我上次写文才过去一个月,这个月的时间就涌现了各种新东西。AutoGPT、Midjourney、各种ChatGPT相关的课程、文心一言、讯飞大模型、Claude等等。

有微调需求的可以在 公众号卷福同学内联系

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

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

相关文章

沉痛悼念技术大牛左耳朵耗子(陈皓)

前言:今天转发一篇关于耗子叔的博文,个人觉得耗子叔是中文互联网世界的一个标杆,也是IT界重量级的人物,对于他的离去,深感遗憾和可惜。 版权声明:本文为CSDN博主「CSDN资讯」的原创文章,遵循CC …

突发!沉痛悼念技术大牛--左耳朵耗子

出品 | CSDN(ID:CSDNnews) 5 月 15 日早晨,一则意外消息打得我们猝不及防:MegaEase CEO、知名架构师、CSDN 资深博主(https://blog.csdn.net/haoel)陈皓老师(网名:左耳朵…

贝叶斯-这期内容非常重要!

这篇不仅对交易,而且对这个世界的认知有重要意义,有时间请一定把文章看完。 最近人工智能的普及让我昨天刷到中科院物理所发的这篇10w文章:封杀这个公式,ChatGPT智商将为零。看完我发现它对P(B)条件证据的解释欠佳,而…

纪念左耳朵耗子(陈皓)

5月17日,MegaEase 公司在 GitHub 创建了「纪念左耳朵耗子」仓库,用于记录关于陈皓本人的一些生平经历,您如果认识陈皓, 或曾经和陈皓打过交道,欢迎您通过PR来写出您和陈皓的故事。 仓库地址:https://githu…

ChatGPT揭示未来胜者的智能决策|小智AI

ChatGPT丨小智ai丨chatgpt丨人工智能丨OpenAI丨聊天机器人丨AI语音助手丨GPT-3.5丨OpenAI ChatGPT|GPT-4|GPT-3|人机对话|ChatGPT应用|小智ai|小智ai|小智ai|小智ai|小智AI|chatgpt小智AI 导语: 在当今快速变化的世界中,决策的重要性无可置疑。而随着人…

索引构造与信息检索:让 ChatGPT 成为 Selenium 问答助手

这是chatgpt为我生成的3个标题,我选了第3个。 利用 Langchain 和 GPT 实现 Selenium 机器人自动问答 向量化存储和检索:如何用相似度搜索匹配 Selenium 知识? 索引构造与信息检索:让 ChatGPT 成为 Selenium 问答助手 之前有很…

专利检索常用的网站有哪些?

科研文献浩如烟海,如何才能找到对自己有重要参考意义的文献,是每个科研工作者都必须要面对的课题,而从其中快速地、准确地获取最有用的信息,更是重中之重。 专利检索可以帮助看到你想要保护的发明创造是否已经有人在你之前申请、并…

专利检索大法,倾囊相受!

1.电脑端 中国及多国专利审查信息查询(单击跳转) 这是官方的一个查专利的网站。可以查询中国国家知识产权局、欧洲专利局、日本特许厅、韩国特许厅、美国专利商标局受理的发明专利审查信息。 第一次使用需要注册,按照引导即可。 可以搜索自…

专利说明书检索与PDF文件下载方法

专利说明书检索与PDF文件下载方法 专利检索说明书下载 专利检索 到国知网的专利检索与分析页面(https://pss-system.cponline.cnipa.gov.cn/conventionalSearch),注册登录之后,输入关键词进行检索。 检索得到的专利,…

干货 | 专利怎么检索?手把手教授指南来了

Hello, 这里是壹脑云科技圈,我是TingZhang~ 专利研究和申请切不能存有侥幸心理,据不完全统计,各国因未查阅专利文献、使研究课题失去价值,每年造成的损失数以十亿计,间接损失就更多了,我国在"七五&qu…

ChatGPT专业应用:自动生成课程简介

正文共 704 字,阅读大约需要 4 分钟 课程编辑/产品运营必备技巧,您将在4分钟后获得以下超能力: 1、自动生成课程简介 2、快速优化格式并附有丰富的emoji Beezy评级 :A级 *经过寻找和一段时间的学习,一部分人能掌握。…

产品经理之SOW、SOP怎么做?绘制流程推荐软件

在这里推荐一个叫“人鱼”,英文叫“Mermaid”的软件,它可以自动渲染流程图。 另外在Chatgpt里面也可以解析写的代码,对应的sop是什么,比较方便。 两者结合,进可攻退可守。另外再附录执行代码案例。 flowchart TDE…

GPT-4 的 6 个最佳使用场景

https://www.howtogeek.com/884077/best-uses-for-chatgpt-4/ 作者:SYDNEY BUTLER 无论是在 ChatGPT 中还是通过 API,对 OpenAI 的 GPT-4 模型的访问比 GPT-3.5 限制更多。这意味着你需要慎重考虑在何种情况下使用 GPT-4,并选择性地将最适合…

ChatGPT-4 救了我的狗命

上一篇:当 ChatGPT 被职场 PUA ,笑麻了! 这两天,一篇关于“GPT-4救了我狗的命”的帖子属实有点火: 短短一两天就有数千人转发,上万人点赞,网友在评论区讨论得热火朝天。 △ 是真狗命&#xff0c…

从学校到职场:在阿里的这7年

简介: 本文不仅希望能给一些初入职场的同学一些思考,也是通过自己阿里7年的总结,对自己未来的一种期望,也希望自己未来再遇到槽糕的处境迷茫的时候,可以回看下自己的心路历程,并做出更理性的选择。 引言&a…

老店迎新客:向量数据库选型与押注中,没人告诉你的那些事

‍ ‍原创:谭婧‍ ‍ (一)关键词:老店“迎”新客 某家云计算厂商员工告诉我,拜访客户,刚坐下,客户说的第一句话就是: “你先给我推荐一个向量数据库吧。” 大模型火了,把…

AI教父变成“吹哨人” 他到底在警觉什么?

“我现在对自己过去的工作感到后悔,我找借口来安慰自己:就算我没做,别人也会做的。”有AI“教父”之称的杰弗里辛顿 (Geoffrey Hinton)在接受媒体采访时透露出悔意。 作为AI深度学习领域的代表性人物,辛顿一生都在该领域深耕&…

可能是最有前途的国产大模型:讯飞星火认知大模型

大家好,我是可夫小子,关注AIGC、读书和自媒体。解锁更多ChatGPT、AI绘画玩法。加:keeepdance,备注:chatgpt,拉你进群。 昨天下午,科大讯飞发布了自己的大模型——星火认知大模型。在上周他们还在…