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

相关推荐
满怀10154 分钟前
Python入门(5):异常处理
开发语言·python
莓事哒5 分钟前
使用pytesseract和Cookie登录古诗文网~(python爬虫)
爬虫·python·pycharm·cookie·pytessarct
赵钰老师9 分钟前
【Deepseek、ChatGPT】智能气候前沿:AI Agent结合机器学习与深度学习在全球气候变化驱动因素预测中的应用
人工智能·python·深度学习·机器学习·数据分析
AIGC-Lison9 分钟前
【CSDN首发】Stable Diffusion从零到精通学习路线分享
人工智能·ai·stable diffusion·aigc·sd
AI绘画咪酱10 分钟前
Stable Diffusion|Ai赋能电商 Inpaint Anything
人工智能·ai·ai作画·stable diffusion·sd·ai教程·sd教程
ruokkk11 分钟前
Spring AI MCP 客户端实战:轻松连接高德地图等工具
人工智能
_一条咸鱼_12 分钟前
AI Agent 工作原理深入剖析
人工智能
飞哥数智坊14 分钟前
AI编程实战:数据大屏生成初探
人工智能
蚝油菜花15 分钟前
Cua:Mac用户狂喜!这个开源框架让AI直接接管你的电脑,快速实现AI自动化办公
人工智能·开源
蚝油菜花15 分钟前
AutoAgent:无需编程!接入DeepSeek用自然语言创建和部署AI智能体!港大开源框架让AI智能体开发变成填空题
人工智能·开源