首页 > 其他分享 >ChatGLM2-6B模型的微调

ChatGLM2-6B模型的微调

时间:2023-12-14 10:13:49浏览次数:38  
标签:文件 6B GLM ChatGLM2 微调 ChatGLM 模型

概述

GLM、ChatGLM的相关基础知识说明:

  1. GLM模型底层还是基于Transformer,因此其设计、优化都是围绕Transformer的各个组件的。从注意力层的掩码、位置编码等方面优化与设计。
  2. ChatGLM3/ChatGLM2的源码中,比如finetune、trainer等代码,其实是copy自HuggingFace,而且其使用流程与调用机制,与HuggingFace的开发流程是一致的。
  3. 对GLM-130B,ChatGLM千亿模型,ChatGLM-6B的区分不够清楚,这里给出说明:
    • GLM-130B:于2022年8月由清华智谱AI开源放出。该大语言模型基于之前提出的GLM(General Language Model),在Norm处理、激活函数、Mask机制等方面进行了调整,目的是训练出开源开放的高精度千亿中英双语稠密模型,能够让更多研发者用上千亿模型。
    • ChatGLM千亿模型: 该模型是为了解决大基座模型在复杂问题、动态知识、人类对齐场景的不足,基于GLM-130B,引入面向对话的用户反馈,进行指令微调后,得到的对话机器人。
    • ChatGLM-6B:于2023年3月开源。在进行ChatGLM千亿模型内测的同时,清华团队也开放出了同样技术小参数量的版本,方便研发者们进行学习和开发(非商用)。

ChatGLM对话模型的微调需要用到两个部分;一是已预训练的模型文件,二是ChatGLM的源码文件。

模型文件

Huggingface平台下载到本地或直接用远程的文件。
image.png
已预训练的模型,其开发调用模式遵循Huggingface的开发规范。

微调

在github上托管的ChatGLM源码包中,详细的介绍了基于p-tuning的微调策略
image.png
其源码模块中已经准备好了脚本文件 train.sh ,该文件包含所有相关的配置参数,根据微调后的配置调整脚本文件,一键运行即可。
微调并执行后,会保存并生成checkpoint-xxx文件。这就是新的权重超参数。

模型部署

有两种方式用来运行微调后的模型:

  1. 基于Huggingface的开发规范,将原模型超参数文件与微调后的超参数文件一起加载,并调用。
  2. 调整 web_demo.sh 文件中的路径配置,运行即可。

参考

ChatGLM2-6B微调视频讲解
基于第二代 ChatGLM2-6B P-Tuning v2 微调训练医疗问答任务
官方p-tuning微调文档

标签:文件,6B,GLM,ChatGLM2,微调,ChatGLM,模型
From: https://www.cnblogs.com/zhiyong-ITNote/p/17900540.html

相关文章

  • 一文带你了解LoRa微调语言大模型的实用技巧
    微调定制化的大型语言模型需要投入大量时间和精力,但掌握恰当的微调方法和技巧能显著提高效率。比如用LoRa(LLM的低秩适配Low-RankAdaptation)微调大模型,能够利用少量显卡和时间对大模型进行微调,降低成本。通过矩阵秩的分解,将原始模型的参数分解成两个小的矩阵乘积,仅训练这两个矩阵......
  • C++ Qt开发:SpinBox数值微调框组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QSpinBox精度数值组件的常用方法及灵活运用。QSpinBox是Qt框架中的一个部件(Widget),用于提供一个方......
  • 使用双卡/8卡3090微调llama2-70B/13B模型
    写在前面本篇博文将会教大家如何在消费级的设备(或者各种超级便宜的洋垃圾上)实现13B/70B等无法在单张消费级显卡上加载(但可以在一台机器上的多张卡上加载)的模型的微调。由于绝大部分做实验,仅要求实现推理,或者在微调时没有资源上到全量/13B+级别的真·大模型的微调,没有涉及到将一......
  • CF1886B
    迄今为止我认为写的最详细的一篇。考虑二分。思路我们把两盏灯分别命名为\(A\)和\(B\)。如何走回家?走回家有四种走法。最开始在\(A\)所照的区域内,家也在\(A\)所照的区域内,这样就可以直接走到家。最开始在\(A\)所照的区域内,家在\(B\)所照的区域内,先走到\(B\)......
  • 使用8卡3090微调llama2-70B模型
    写在前面很多问题尚未弄清,还在进一步调整目前已知我用8卡的3090采用deepspeedZeRO3进行运行,下面是deepspeed3的配置1{2"fp16":{3"enabled":"auto",4"loss_scale":0,5"loss_scale_window":1000,6......
  • CF1886B Fear of the Dark
    这道题只有两种情况:\(O\)点和\(P\)点都在同一个圆圈里;或者\(O\)点在一个圆圈里,\(P\)点在另外一个圆圈里。让我们用\(d(P,Q)\)来表示\(P\)点到\(Q\)点之间的距离,\(R\)记为半径。我们先来看第一种情况:\(O\)点和\(P\)点都在同一个圆圈\(A\)里。这种情况下,应满足......
  • 未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicK
    报错内容 解决办法:在Web.config的<configuration></configuration>中添加如下代码即可。<configuration><runtime><assemblyBindingxmlns="urn:schemas-microsoft-com:asm.v1"><dependentAssembly><assembly......
  • chatglm3-6b尝试
    十月底智谱开元路chatglm3,果断来尝试一下。1.ChatGLM3亮点ChatGLM3是智谱AI和清华大学KEG实验室联合发布的新一代对话预训练模型。ChatGLM3-6B是ChatGLM3系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B引入了代码执行(Code......
  • ChatGLM3-6B:新一代开源双语对话语言模型,流畅对话与低部署门槛再升级
    ChatGLM3-6B:新一代开源双语对话语言模型,流畅对话与低部署门槛再升级1.ChatGLM3简介ChatGLM3是智谱AI和清华大学KEG实验室联合发布的新一代对话预训练模型。ChatGLM3-6B是ChatGLM3系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6......
  • 解决Few-shot问题的两大方法:元学习与微调
    基于元学习(Meta-Learning)的方法:Few-shot问题或称为Few-shot学习是希望能通过少量的标注数据实现对图像的分类,是元学习(Meta-Learning)的一种。Few-shot学习,不是为了学习、识别训练集上的数据,泛化到测试集,而是为了让模型学会学习。也就是模型训练后,能理解事物的异同、区分不同的......