廸昇25天學習營第30天 | MindNLP ChatGLM-6B StreamChat
今天是第30天,学习了MindNLP ChatGLM-6B StreamChat。
今天是参加打卡活动的最后一天,经过这些日子的测试,昇思MindSpore效果还是不错的。
ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,具有62亿参数,基于 General Language Model(GLM)架构。
它使用了和 ChatGPT 相似的技术,并针对中文问答和对话进行了优化。经过约1T标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,ChatGLM-6B 能够生成相当符合人类偏好的回答。
ChatGLM-6B 有如下特点:充分的中英双语预训练: ChatGLM-6B 在 1:1 比例的中英语料上训练了 1T 的 token 量,兼具双语能力。优化的模型架构和大小: 吸取 GLM-130B 训练经验,修正了二维 RoPE 位置编码实现,使用传统 FFN 结构。6B(62亿)的参数大小,也使得研究者和个人开发者自己微调和部署 ChatGLM-6B 成为可能。较低的部署门槛: FP16 半精度下,ChatGLM-6B 需要至少 13GB 的显存进行推理,结合模型量化技术,这一需求可以进一步降低到 10GB(INT8) 和 6GB(INT4), 使得 ChatGLM-6B 可以部署在消费级显卡上。更长的序列长度: 相比 GLM-10B(序列长度1024),ChatGLM-6B 序列长度达 2048,支持更长对话和应用。人类意图对齐训练: 使用了监督微调(Supervised Fine-Tuning)、反馈自助(Feedback Bootstrap)、人类反馈强化学习(Reinforcement Learning from Human Feedback) 等方式,使模型初具理解人类指令意图的能力。输出格式为 markdown,方便展示。
ChatGLM-6B 结合了模型量化技术,用户可以在消费级的显卡上进行本地部署。例如,在 int4 量化级别下最低只需 6GB 显存。为了方便下游开发者针对自己的应用场景定制模型,它还实现了基于 P-tuning v2 的高效参数微调方法,在 int4 量化级别下最低只需 7GB 显存即可启动微调。
不过,由于其规模较小,目前已知 ChatGLM-6B 具有一些局限性,如可能存在事实性/数学逻辑错误,或许会生成有害/有偏见内容,具有较弱的上下文能力、自我认知混乱,以及对英文指示生成与中文指示完全矛盾的内容等。
在实际应用中,需根据具体的硬件需求和使用场景进行选择和部署。其硬件需求如下:
FP16(无量化):推理最低需要 13GB GPU 显存,高效参数微调最低需要 14GB GPU 显存;
INT8:推理最低需要 8GB GPU 显存,高效参数微调最低需要 9GB GPU 显存;
INT4:推理最低需要 6GB GPU 显存,高效参数微调最低需要 7GB GPU 显存。
推荐阅读
-
[代码随机化第 30 天] 贪婪算法第 04 部分
-
C++语言学习(9):C++编程原理与实践 第4章笔记
-
第 2 章:信息技术发展(2.2 新一代信息技术及应用) - IV.区块链
-
第 39 章 创建安全对话
-
[60 天备战 2024 年 11 月软考高级系统架构设计师 - 第 37 天:系统安全设计 - 数据保护与合规性]
-
MISC - 第 12 天(pyc 反编译、图像宽度和高度恢复、Ziperello 强制破解工具) - 前言
-
第 16 讲 - 选择控件 QSpinBox-1.创建 QSpinBox
-
第 3 期 Notes | Web 安全基础知识:Web 1.0 - 3.0 发展史
-
Python 语言学习 - 应用 1.2 数字图像处理(第 2 节,变换)
-
VBA 数据库解决方案 第 15 讲:在记录集集合中准确处理单个数据