ChatGLM2发布,位居C-Eval榜首!

文章目录

  • 中文大语言模型评估基准:C-EVAL
  • ChatGLM2-6B
  • 部署推理
    • 环境配置
    • 模型下载
      • git-lfs安装
    • 代码调用
    • 基于gradio的网页版Demo
      • 显存占用情况
      • 数理逻辑
  • 推理性能
    • 显存占用的减少
    • 量化对模型性能的影响
  • 基于 P-Tuning v2 的微调(官方)
    • 环境配置
    • 微调数据准备
    • 微调

ChatGLM自2023年3月发布以来,就已经爆火,如今6月25日,清华二代发布(ChatGLM2),位居C-Eval榜单的榜首(Rank0)!而ChatGLM2-6B则位居Rank6!

中文大语言模型评估基准:C-EVAL

C-EVAL: A Multi-Level Multi-Discipline Chinese Evaluation Suite for Foundation Models

论文地址:https://arxiv.org/pdf/2305.08322v1.pdf
在这里插入图片描述
不同颜色的主体表示四个难度等级:初中、高中、大学和专业。

github地址:https://github.com/SJTU-LIT/ceval

C-Eval榜单是一个全面的中文基础模型评估套件(多层次、多学科的语文评价基础模型套件)。它由13948个选择题组成 问题跨越52个不同的学科和四个难度级别,测试集用于模型评估(简单来说就是针对中文模型的综合测试机)

C-Eval榜单地址:https://cevalbenchmark.com/static/leaderboard.html
在这里插入图片描述
数据集地址:https://huggingface.co/datasets/ceval/ceval-exam

ChatGLM2-6B

项目地址:https://github.com/THUDM/ChatGLM2-6B

ChatGLM2-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,ChatGLM2-6B 引入了如下新特性:

更强大的性能:基于 ChatGLM 初代模型的开发经验,我们全面升级了 ChatGLM2-6B 的基座模型。ChatGLM2-6B 使用了 GLM 的混合目标函数,经过了 1.4T 中英标识符的预训练与人类偏好对齐训练,评测结果显示,相比于初代模型,ChatGLM2-6B 在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BBH(+60%)等数据集上的性能取得了大幅度的提升,在同尺寸开源模型中具有较强的竞争力。

更长的上下文:基于 FlashAttention 技术,我们将基座模型的上下文长度(Context Length)由 ChatGLM-6B 的 2K 扩展到了 32K,并在对话阶段使用 8K 的上下文长度训练,允许更多轮次的对话。但当前版本的 ChatGLM2-6B 对单轮超长文档的理解能力有限,我们会在后续迭代升级中着重进行优化。

更高效的推理:基于 Multi-Query Attention 技术,ChatGLM2-6B 有更高效的推理速度和更低的显存占用:在官方的模型实现下,推理速度相比初代提升了 42%,INT4 量化下,6G 显存支持的对话长度由 1K 提升到了 8K。

更开放的协议:依照 Apache-2.0 协议开源,ChatGLM2-6B 模型的权重的使用则需要遵循 Model License。ChatGLM2-6B 权重对学术研究完全开放,在获得官方的书面许可后,亦允许商业使用。

效果

相比于初代模型,ChatGLM2-6B在多个维度的能力上,都取得了巨大的提升。

不足:尽管模型在训练的各个阶段都尽力确保数据的合规性和准确性,但由于 ChatGLM2-6B 模型规模较小,且模型受概率随机性因素影响,无法保证输出内容的准确性,且模型易被误导。

部署推理

项目地址:https://github.com/THUDM/ChatGLM2-6B

HuggingFace地址:https://huggingface.co/THUDM/chatglm2-6b

环境配置

首先需要下载本仓库:

git clone https://github.com/THUDM/ChatGLM2-6B
cd ChatGLM2-6B

创建一个新的conda环境,并安装环境依赖

conda create -n chatglm2-6b python==3.9
pip install -r requirements.txt

在这里插入图片描述

模型下载

可以使用官方提供的地址,也可以从huggingface下载
官方提供模型下载地址:https://cloud.tsinghua.edu.cn/d/674208019e314311ab5c/
HuggingFace模型下载地址:
https://huggingface.co/THUDM/chatglm2-6b

下载命令(需要提前安装git-lfs):

git clone https://huggingface.co/THUDM/chatglm2-6b.git

我下载到了 /data/sim_chatgpt 路径下。

git-lfs安装

安装git-lfs两种方式,一种是通过命令直接安装,一种是下载到本地后安装:
直接通过命令安装:https://codeleading.com/article/2815391430/

# 先安装git(如已安装可忽略)
sudo apt-get install git
# 安装apt-get源
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
# 安装git-lfs
sudo apt-get install git-lfs
# 初始化git-lfs
git lfs install

如果上面方式出现网速慢等情况,可以尝试本地安装:https://www.cnblogs.com/allmignt/p/12353756.html

这里安装好git-lfs后,直接用git clone命令完成下载。
在这里插入图片描述

代码调用

如果想只通过几行代码来测试模型,可以用以下代码:

from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("/data/sim_chatgpt/chatglm2-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("/data/sim_chatgpt/chatglm2-6b", trust_remote_code=True, device='cuda')
model = model.eval()
response, history = model.chat(tokenizer, "你好", history=[])
print(response)
你好 !我是人工智能助手 ChatGLM2-6B,很高兴见到你,欢迎问我任何问题。
response, history = model.chat(tokenizer, "晚上睡不着应该怎么办", history=history)
print(response)
晚上睡不着可能会让你感到焦虑或不舒服,但以下是一些可以帮助你入睡的方法:1. 制定规律的睡眠时间表:保持规律的睡眠时间表可以帮助你建立健康的睡眠习惯,使你更容易入睡。尽量在每天的相同时间上床,并在同一时间起床。
2. 创造一个舒适的睡眠环境:确保睡眠环境舒适,安静,黑暗且温度适宜。可以使用舒适的床上用品,并保持房间通风。
3. 放松身心:在睡前做些放松的活动,例如泡个热水澡,听些轻柔的音乐,阅读一些有趣的书籍等,有助于缓解紧张和焦虑,使你更容易入睡。
4. 避免饮用含有咖啡因的饮料:咖啡因是一种刺激性物质,会影响你的睡眠质量。尽量避免在睡前饮用含有咖啡因的饮料,例如咖啡,茶和可乐。
5. 避免在床上做与睡眠无关的事情:在床上做些与睡眠无关的事情,例如看电影,玩游戏或工作等,可能会干扰你的睡眠。
6. 尝试呼吸技巧:深呼吸是一种放松技巧,可以帮助你缓解紧张和焦虑,使你更容易入睡。试着慢慢吸气,保持几秒钟,然后缓慢呼气。如果这些方法无法帮助你入睡,你可以考虑咨询医生或睡眠专家,寻求进一步的建议。

基于gradio的网页版Demo

安装gradio

pip install gradio

修改web_demo.py

vi web_demo.py

修改模型加载路径

tokenizer = AutoTokenizer.from_pretrained("/data/sim_chatgpt/chatglm2-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("/data/sim_chatgpt/chatglm2-6b", trust_remote_code=True).cuda()

将share设置为True

demo.queue().launch(share=True, inbrowser=True)

运行web_demo.py

python web_demo.py

在这里插入图片描述

显存占用情况

在这里插入图片描述

数理逻辑

在这里插入图片描述
还有知识推理,长文档理解等能力可以尝试,这里就不再演示。

推理性能

显存占用的减少

ChatGLM2-6B 使用了 Multi-Query Attention,提高了生成速度。生成 2000 个字符的平均速度对比如下,

Model推理速度 (字符/秒)
ChatGLM-6B31.49
ChatGLM2-6B44.62
  • Multi-Query Attention 降低了生成过程中 KV cache的显存占用;
  • ChatGLM2-6B 采用 Causal Mask 进行对话训练,连续对话时可复用前面轮次的 KV Cache,进一步优化了显存占用;
    显存占用的减小可以使得有限的显卡能审查各行更多的字符,如使用 6GB 显存的显卡进行 INT4 量化的推理时,初代的 ChatGLM-6B 模型最多能够生成 1119 个字符就会提示显存耗尽,而 ChatGLM2-6B 能够生成至少 8192 个字符。
量化等级编码 2048 长度的最小显存生成 8192 长度的最小显存
FP16 / BF1613.1 GB12.8 GB
INT88.2 GB8.1 GB
INT45.5 GB5.1 GB

量化对模型性能的影响

官方也测试了量化对模型性能的影响。结果表明,量化对模型性能的影响在可接受范围内。

量化等级Accuracy (MMLU)Accuracy (C-Eval dev)
BF1645.4753.57
INT443.1350.30

基于 P-Tuning v2 的微调(官方)

P-Tuning v2 将需要微调的参数量减少到原来的 0.1%,再通过模型量化、Gradient Checkpoint 等方法,最低只需要 7GB 显存即可运行。

环境配置

在原chatglm-6b的环境中安装以下依赖

pip install rouge_chinese nltk jieba datasets

微调数据准备

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

{ “content”: “类型#上衣版型#宽松版型#显瘦图案#线条衣样式#衬衫衣袖型#泡泡袖衣款式#抽绳”, “summary”:
“这件衬衫的款式非常的宽松,利落的线条可以很好的隐藏身材上的小缺点,穿在身上有着很好的显瘦效果。领口装饰了一个可爱的抽绳,漂亮的绳结展现出了十足的个性,配合时尚的泡泡袖型,尽显女性甜美可爱的气息。”
}

从 Google Drive 或者 Tsinghua Cloud 下载处理好的 ADGEN 数据集,将解压后的 AdvertiseGen 目录放到本 ptuning 目录下即可。

微调

修改train.sh文件。

  • 去掉最后的 --quantization_bit 4( 去掉后为FP16 精度加载)。
  • 修改模型路径,THUDM/chatglm-6b修改为/data/sim_chatgpt/chatglm2-6b

目前专业级GPU Tesla P100也不支持INT4或8量化。

执行train.sh文件

bash train.sh

报错:
wandb.errors.UsageError: api_key not configured (no-tty). call wandb.login(k…
解决:
在main.py文件中加入下面两行,禁用wandb即可。

import os
os.environ["WANDB_DISABLED"] = "true"

其中,train.sh 中的 PRE_SEQ_LEN 和 LR 分别是 soft prompt 长度和训练的学习率,可以进行调节以取得最佳的效果。

微调过程显存使用情况如下:
在这里插入图片描述
微调完成后,在./output/adgen-chatglm2-6b-pt-128-2e-2 下回生成微调好的模型文件。

我们可以对比下微调前后的效果。
以命令行 Demo为例,只需修改ptuning路径下web_demo.sh中的模型路径为/data/sim_chatgpt/chatglm2-6b,运行 web_demo.py即可:

bash web_demo.sh

Input:
类型#上衣材质#牛仔布颜色#白色风格#简约图案#刺绣衣样式#外套衣款式#破洞
Label:
简约而不简单的牛仔外套,白色的衣身十分百搭。衣身多处有做旧破洞设计,打破单调乏味,增加一丝造型看点。衣身后背处有趣味刺绣装饰,丰富层次感,彰显别样时尚。

Output[微调前]:
在这里插入图片描述
Output[微调后]:
乱码,待解决......

参考:
https://zhuanlan.zhihu.com/p/629864222
https://zhuanlan.zhihu.com/p/640301312
https://zhuanlan.zhihu.com/p/640219437

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

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

相关文章

最新ChatGPT GPT-4 文本推理技术详解(附ipynb与python源码及视频讲解)——开源DataWhale发布入门ChatGPT技术新手从0到1必备使用指南手册(二)

目录 前言最新ChatGPT GPT-4 文本推理技术详解1. 什么是推理(Reasoning)?2. 导入ChatGPT3. 测试ChatGPT的推理能力3.1 演绎推理(Deductive Reasoning)3.2 归纳推理(Inductive Reasoning)3.3 溯因…

火狐Merlin插件要登录谷歌账号

这个怎么破 谷歌又用不了

Edge 浏览器:隐藏功能揭秘与高效插件推荐

文章目录 一、前言二、Edge 的各种奇淫巧计2.1 开启 Edge 分屏功能2.2 启动 Edge 浏览器后直接恢复上次关闭前的页面2.3 解决 Edge 浏览器无法同步账号内容2.4 开启垂直标签页(推荐)2.5 设置标签分组(推荐)2.6 设置标签睡眠时间&a…

chatgpt注册报错:Oops!The email you provided is not supported. 根本原因是邮箱无效

如图所示,很多朋友在注册chatGPT是都会遇到这样的问题,显而易见就是邮箱不支持,openai为了保证数据安全限制了一些邮箱的注册。 目前已经知道的不再支持注册的有: QQ邮箱 163邮箱 微软邮箱 谷歌邮箱 CN结尾的邮箱都不支持 火…

GPT-4 Plugins插件的介绍与使用

OpenAI公司近期给ChatGPT PLUS用户推送了广受期待的插件(plugin)的功能,本文为对于各插件的功能进行总结,包括OpenAI自主托管的两款插件(网页浏览器web browser与代码解释器code interpreter)和一些第三方插件。 ChatGPT PLUS用户…

GPT4 Mobile可无限问答次数-支持Chrome/Firefox/Brave/Opera

GPT4 mobile的使用开源库:https://github.com/VictorZhang2014/gpt4-mobile-extension-chrome Talk is cheap, show me the code. 兄弟们,我直接上效果图,有需要的各位自行下载 目前支持谷歌浏览器(Chrome)、火狐浏览器(Firefox)、Brave、…

Claude使用教程

ChatGPT想必小伙伴们都已经很熟悉了,很多大佬已经介绍过了,这里来讲一下ChatGPT的竞品--Claude。这款工具无需翻墙,无需等待,无需付费直接使用,而且效果媲美ChatGPT!一个字:香! 下面…

如何用 Python 做自动化测试

本文来自作者 Vant 在 GitChat 上分享 「如何用 Python 做自动化测试」 编辑 | 哈比 一、Selenium 环境部署 1. window 环境部署 1.1 当前环境 Win10 64 位系统;Python3.6.2(官方已经更新到了 3.6.4) 官方下载地址:https://www.py…

chatgpt赋能python:如何使用Python操作软件按钮来提高工作效率

如何使用Python操作软件按钮来提高工作效率 作为一名有10年Python编程经验的工程师,我很清楚Python在提高工作效率方面的威力。Python可以轻松地操作软件按钮,无论是在Windows还是Linux系统中。在本篇文章中,我将与大家共享一些Python操作软…

痛点-调研-明确需求-实现-测试-发布 不需要手一步到位使用AGI生成去广告脚本,复制粘贴发布到Greasy Fork

总算又想起密码了, 自从用了语雀后, 其他平台基本都不再使用了 csdn 真的**, c h a t g p t 是禁词(已经改为了AGI, 通用型人工智能), 你倒是说清楚啊,直接来一句违反社区规定, 莫名其妙, 得靠猜…服了 今天来补上一篇利用AGI生成的js去广告脚本 前置知识(不看也问题不大) …

chatgpt赋能Python-python_helium

Python Helium: 简介与使用 Python Helium是Python语言下一个高效的UI自动化测试库。 它允许用户创建自动化测试,模拟用户对GUI应用程序的交互,从而确保应用程序在不同设备、浏览器和操作系统上的稳定性和可靠性。Helium非常易于使用,因为其…

chatgpt赋能python:用Python下载软件详解

用Python下载软件详解 在日常使用电脑时,我们不可避免地需要下载各种各样的软件。但是,在一些特殊的情况下,比如需要定期下载某些软件更新或者需要通过脚本自动化下载一些软件,使用浏览器下载就显得很麻烦。那么,这时…

Firefox火狐浏览器提示您的链接不安全的详细解决办法

Firefox火狐浏览器提示您的链接不安全该怎么办?出现这个问题,网页就打不开了,刷新没用,该怎么办呢?下面我们就来看看详细的教程,需要的朋友可以参考下 1、本办法主要针对以下这种状况,“您的链…

【AutoGPT】你自己运行,我先睡了—— ChatGPT过时了吗?

系列文章目录 【AI绘画】Midjourney和Stable Diffusion教程_山楂山楂丸的博客-CSDN博客 目录 系列文章目录 前言 一、AutoGPT是什么? 二、AutoGPT带来的利弊 三、AutoGPT和ChatGPT区别 四、未来 总结 前言 ChatGPT是否过时?AutoGPT的兴起&#…

Chatgpt:Your session has expired解决办法-中文首发

昨天晚上出现的情况,基本是登录chatgpt后一使用就会提示这个,然后让我重新登录,然后一直重复。 我以为是服务器出问题了,就没管。 因为我晚上自己有用api插件访问,发现没问题,加上微博上也没发现chatgpt崩了…

【论文阅读】InstructGPT: Training language models to follow instructions with human feedback

论文链接:InstructGPT 1. 摘要 把语言模型变大并不意味着会让模型更好的理解用户意图,例如大的语言模型会生成一些不真实、有害的、没有帮助的输出给用户,换句话说,这些模型并没有和用户的意图对齐(aligned&#xff…

AI2:仅凭开源数据,可达ChatGPT 83%表现

夕小瑶科技说 原创 作者 | Python ChatGPT强大的性能让人爱不释手,ChatGPT迟迟不开源让人恨得牙根痒痒。那仅通过开源数据,能够取得怎样的效果呢?近期,AI2的一篇论文显示,最好的65B规模的模型能够达到ChatGPT表现的8…

chatgpt中的强化学习 PPO

PPO? 强化学习 基本概念 强化学习五要素:智能体、行为、环境、状态、奖励。 先直接将五个要素映射到文本生成任务上: 智能体:生成模型。 行为: 获取当前step token的概率分布,并选取其中一个作为生成的token。 环…

ChatGPT1论文解读《Improving Language Understanding by Generative Pre-Training》(2018)

论文总结 以下是我阅读完整篇论文做的个人总结,基本包含了ChatGPT1设计的完整框架思路,可以仅看【论文总结】章节。 在GPT1实现的核心架构中,包含两个阶段。 第一阶段 在第一阶段基于一个包含7000本书籍内容的海量未标注文本数据集进行无…

投资者必读:巴菲特2023致股东信全文

省时查报告-专业、及时、全面的行研报告库 省时查方案-专业、及时、全面的营销策划方案库 【免费下载】2023年1月份热门报告合集 ChatGPT团队背景研究报告 ChatGPT的发展历程、原理、技术架构及未来方向 ChatGPT使用总结:150个ChatGPT提示此模板 ChatGPT数据集之谜 …