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

相关推荐
逆向菜鸟2 分钟前
【摧毁比特币】椭圆曲线象限细分求k-陈墨仙
python·算法
Hello123网站8 分钟前
多墨智能-AI一键生成工作文档/流程图/思维导图
人工智能·流程图·ai工具
有Li40 分钟前
CLIK-Diffusion:用于牙齿矫正的临床知识感知扩散模型|文献速递-深度学习人工智能医疗图像
人工智能·深度学习·文献·医学生
有梦想的攻城狮42 分钟前
Java 11中的Collections类详解
java·windows·python·java11·collections
前端小趴菜051 小时前
python - input()函数
python
大唐荣华1 小时前
视觉语言模型(VLA)分类方法体系
人工智能·分类·机器人·具身智能
即兴小索奇1 小时前
AI应用商业化加速落地 2025智能体爆发与端侧创新成增长引擎
人工智能·搜索引擎·ai·商业·ai商业洞察·即兴小索奇
程序员三藏1 小时前
Selenium+python自动化测试:解决无法启动IE浏览器及报错问题
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
NeilNiu1 小时前
开源AI工具Midscene.js
javascript·人工智能·开源
瓦尔登湖5081 小时前
DAY 40 训练和测试的规范写法
python