ChatGLM2-6B模型尝鲜

一、前言

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

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

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

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

二、环境安装

环境配置链接:训练ChatGLM2-6B创作广告 | 趋动云社区 - 文档中心

GPU平台:趋动云,目前感觉还不错的GPU云资源平台

ChatGLM2-6B:GitHub - THUDM/ChatGLM2-6B: ChatGLM2-6B: An Open Bilingual Chat LLM | 开源双语对话语言模型

总结了下环境安装步骤:

  • ChatGLM2-6B代码下载

  • 预训练模型chatglm2-6b下载

  • ChatGLM2-6B代码的环境安装,进入代码目录,执行pip install -r requirements.txt

三、数据集准备

这里使用趋动云提供的AdvertiseGen数据集,dev.json格式如下:

{"content": "类型#上衣*版型#宽松*颜色#宝蓝色*风格#休闲*衣样式#卫衣", "summary": "适合装点春日的三色卫衣,通过把握色彩的饱和与明暗度,使其散发出暗藏的满满活力,柠檬黄、宝蓝色和紫外光,实用多样风格穿搭。而前襟处的英文字母点缀恰当,宽松的oversize版型更显洒脱,丰富从整体到细节的质感。在搭配舒适的面料,结合休闲与时髦理念,带来亲肤体验的同时也简洁大方。"} {"content": "类型#裙*颜色#纯色*风格#潮*图案#纯色*图案#刺绣*裙款式#抽褶", "summary": "衣身采取个性化的绣花点缀,增添时尚的韵味,让你举手投足间尽显妩媚的气息。自然的褶皱裙摆,极具潮流的味道,尽情演绎你专属的摩登气息。雅致的纯色系列,更好的为你勾勒出酷帅的气质。"} {"content": "类型#裙*版型#宽松*颜色#绿色*图案#线条*裙长#连衣裙*裙领型#圆领", "summary": "这款中长款式的连衣裙,经典的圆领设计,显得利落大方不失优雅,能够在穿着时增添女性的个人气质。精致的荷叶裙摆设计,让宽松的衣着轻松贴身,修饰腰部线条更添纤细之感。选用绿色调装饰,极具摩登时尚气。"}

以下是目前开源的微调数据集。

数据集名称

规模

描述

Stanford Alpaca

52k

斯坦福大学开源的 Alpaca 数据集,训练了 Alpaca 这类早期基于 LLaMA 的模型

Stanford Alpaca (Chinese)

51k

使用 ChatGPT 翻译的 Alpaca 数据集

GPT-4 Generated Data

100k+

基于 GPT-4 的 self-instruction 数据集

BELLE 2M

2m

包含约 200 万条由 BELLE 项目生成的中文指令数据

BELLE 1M

1m

包含约 100 万条由 BELLE 项目生成的中文指令数据

BELLE 0.5M

500k

包含约 50 万条由 BELLE 项目生成的中文指令数据

BELLE Dialogue 0.4M

400k

包含约 40 万条由 BELLE 项目生成的个性化角色对话数据,包含角色介绍

BELLE School Math 0.25M

250k

包含约 25 万条由 BELLE 项目生成的中文数学题数据,包含解题过程

BELLE Multiturn Chat 0.8M

800k

包含约 80 万条由 BELLE 项目生成的用户与助手的多轮对话

Guanaco Dataset

100k+

包含日文、简繁体中文、英文等多类数据,数据集原用于 Guanaco 模型训练

Firefly 1.1M

1.1M

中文对话大模型 firefly(流萤)的中文数据集,包含多个 NLP 任务

CodeAlpaca 20k

20k

英文代码生成任务数据集

Alpaca CoT

6M

用于微调的指令数据集集合

Web QA

36k

百度知道汇集的中文问答数据集

UltraChat

1.57M

清华 NLP 发布的大规模多轮对话数据集

注:BELLE 数据集是由 ChatGPT 产生的数据集,不保证数据准确性,所有类 GPT 模型产生的 self-instruction 数据集均不能保证其准确性。

四、模型加载

看了下显存,大概12G左右,用larger有点奢侈

ChatGLM2-6B代码目录如下:

  • ptuning:可以用来微调模型的文件夹

  • web_demo.py:实现网页访问chatglm

  • cli_demo.py:在命令行中进行交互式的对话

  • api.py:实现 OpenAI 格式的流式 API 部署

本文这里通过网页形式访问chatglm,在上述环境安装完成后,开始进入模型训练的过程,需要修改web_demo.py中的模型地址,即替换 THUDM/chatglm2-6b 为 /gemini/pretrain (模型实际挂载到环境的地址)。

添加图片注释,不超过 140 字(可选)

因为借助趋动云平台来加载模型,想暴露在公网,需要对web_demo.py做些修改,如下:

公网访问某程序,需借助 frcp 进行内网穿透生成公网访问地址,因 frcp 需从国外源下载,可能存在下载失败的情况。此时可设置该程序本地运行,进而通过平台提供的 外部访问 地址进行访问。

  1. 在 web_demo.py 最后一行增加 server_name='0.0.0.0', server_port=xx 设置为本地运行该程序。形如:

demo.queue().launch(share=False, inbrowser=True, server_name='0.0.0.0', server_port=77) 端口根据实际所填写的来

添加图片注释,不超过 140 字(可选)

2.等返回以下信息

添加图片注释,不超过 140 字(可选)

3.复制外部访问信息,并以 http 协议在浏览器中访问。

添加图片注释,不超过 140 字(可选)

4.网页界面如下:

添加图片注释,不超过 140 字(可选)

这些推理参数的意义:

  • temperature~:采样温度,[ 0.0,1.0 ]; 越大回答多样性越高;推荐0.95

  • top_p~: nucleus采样闽值,[ 0.0,1.0 ]; 越大回答多样性越高;推荐0.7

  • max length~:最大输出长度

temperature,top_p数值越小,随机性越小最优值对于不同任务或经过微调后可能发生变化

我的知乎:ChatGLM2-6B模型尝鲜 - 知乎

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值