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模型尝鲜 - 知乎

相关推荐
HPC_fac1305206781639 分钟前
以科学计算为切入点:剖析英伟达服务器过热难题
服务器·人工智能·深度学习·机器学习·计算机视觉·数据挖掘·gpu算力
网易独家音乐人Mike Zhou3 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
安静读书3 小时前
Python解析视频FPS(帧率)、分辨率信息
python·opencv·音视频
小陈phd3 小时前
OpenCV从入门到精通实战(九)——基于dlib的疲劳监测 ear计算
人工智能·opencv·计算机视觉
Guofu_Liao4 小时前
大语言模型---LoRA简介;LoRA的优势;LoRA训练步骤;总结
人工智能·语言模型·自然语言处理·矩阵·llama
小二·5 小时前
java基础面试题笔记(基础篇)
java·笔记·python
小喵要摸鱼6 小时前
Python 神经网络项目常用语法
python
一念之坤8 小时前
零基础学Python之数据结构 -- 01篇
数据结构·python
wxl7812278 小时前
如何使用本地大模型做数据分析
python·数据挖掘·数据分析·代码解释器
NoneCoder8 小时前
Python入门(12)--数据处理
开发语言·python