【LLM大模型】LLM模型指令微调(更新中)

news2024/10/7 18:21:43

note

文章目录

  • note
  • 零、AIGC生成式模型
    • 1. 核心要素
    • 2. LLM evolutionary tree
  • 二、LLM大模型
    • 1. ChatGLM
      • (1)GLM-130B
      • (2)ChatGLM-6B
    • 2. LLaMA
    • 3. Chinese-LLaMA-Alpace
    • 4. Bloom
    • 5. PaLM
  • 三、模型指令微调
  • Reference

零、AIGC生成式模型

1. 核心要素

在这里插入图片描述
AIGC模型:
NLP:GPT、chatGLM、其他常见LLM模型参考下图
CV:stable diffusion等

2. LLM evolutionary tree

在这里插入图片描述

二、LLM大模型

  • 当前主流的大预言模型都是decoder-only结构
  • OPT、BLOOM、LLaMA 三个模型是主要面向开源促进研究和应用的,中文开源可用的是 GLM,后续很多工作都是在这些开源的基础模型上进行微调优化的

1. ChatGLM

(1)GLM-130B

ChatGLM 参考了 ChatGPT 的设计思路,在千亿基座模型 GLM-130B中注入了代码预训练,通过有监督微调(Supervised Fine-Tuning)等技术实现人类意图对齐。ChatGLM 当前版本模型的能力提升主要来源于独特的千亿基座模型 GLM-130B。它是不同于 BERT、GPT-3 以及 T5 的架构,是一个包含多目标函数的自回归预训练模型。2022年8月,向研究界和工业界开放了拥有1300亿参数的中英双语稠密模型 GLM-130B,该模型有一些独特的优势:

  • 双语: 同时支持中文和英文。
  • 高精度(英文): 在公开的英文自然语言榜单 LAMBADA、MMLU 和 Big-bench-lite 上优于 GPT-3 175B(API: davinci,基座模型)、OPT-175B 和 BLOOM-176B。
  • 高精度(中文): 在7个零样本 CLUE 数据集和5个零样本 FewCLUE 数据集上明显优于 ERNIE TITAN 3.0 260B 和 YUAN 1.0-245B。
  • 快速推理: 首个实现 INT4 量化的千亿模型,支持用一台 4 卡 3090 或 8 卡 2080Ti 服务器进行快速且基本无损推理。
  • 可复现性: 所有结果(超过 30 个任务)均可通过我们的开源代码和模型参数复现。
  • 跨平台: 支持在国产的海光 DCU、华为昇腾 910 和申威处理器及美国的英伟达芯片上进行训练与推理。

(2)ChatGLM-6B

ChatGLM-6B 是一个具有62亿参数的中英双语语言模型。通过使用与 ChatGLM(chatglm.cn)相同的技术,ChatGLM-6B 初具中文问答和对话功能,并支持在单张 2080Ti 上进行推理使用。具体来说,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 具备了一定条件下较好的对话与问答能力。当然,ChatGLM-6B 也有相当多已知的局限和不足:

  • 模型容量较小: 6B 的小容量,决定了其相对较弱的模型记忆和语言能力。在面对许多事实性知识任务时,ChatGLM-6B 可能会生成不正确的信息;她也不擅长逻辑类问题(如数学、编程)的解答。
  • 可能会产生有害说明或有偏见的内容:ChatGLM-6B 只是一个初步与人类意图对齐的语言模型,可能会生成有害、有偏见的内容。
  • 较弱的多轮对话能力:ChatGLM-6B 的上下文理解能力还不够充分,在面对长答案生成,以及多轮对话的场景时,可能会出现上下文丢失和理解错误的情况。
  • 英文能力不足:训练时使用的指示大部分都是中文的,只有一小部分指示是英文的。因此在使用英文指示时,回复的质量可能不如中文指示的回复,甚至与中文指示下的回复矛盾。
  • 易被误导:ChatGLM-6B 的“自我认知”可能存在问题,很容易被误导并产生错误的言论。例如当前版本模型在被误导的情况下,会在自我认知上发生偏差。即使该模型经过了1万亿标识符(token)左右的双语预训练,并且进行了指令微调和人类反馈强化学习(RLHF),但是因为模型容量较小,所以在某些指示下可能会产生有误导性的内容。

2. LLaMA

LLaMA-7B

ChatGLM-6B是Prefix LM(PLM),LLaMA-7B是Causal LM(CLM)。
(参考google的论文《UL2: Unifying Language Learning Paradigms》)

LLaMA 是 Meta AI 发布的包含 7B、13B、33B 和 65B 四种参数规模的基础语言模型集合,LLaMA-13B 仅以 1/10 规模的参数在多数的 benchmarks 上性能优于 GPT-3(175B),LLaMA-65B 与业内最好的模型 Chinchilla-70B 和 PaLM-540B 比较也具有竞争力。

链接:https://github.com/facebookresearch/llama

3. Chinese-LLaMA-Alpace

论文链接:https://arxiv.org/pdf/2304.08177.pdf
github链接:https://github.com/ymcui/Chinese-LLaMA-Alpaca

4. Bloom

  • BLOOM 是 BigScience(一个围绕研究和创建超大型语言模型的开放协作研讨会)中数百名研究人员合作设计和构建的 176B 参数开源大语言模型,同时,还开源了BLOOM-560M、BLOOM-1.1B、BLOOM-1.7B、BLOOM-3B、BLOOM-7.1B 其他五个参数规模相对较小的模型。
  • BLOOM 是一种 decoder-only 的 Transformer 语言模型,它是在 ROOTS 语料库上训练的,该数据集包含 46 种自然语言和 13 种编程语言(总共 59 种)的数百个数据来源。
  • 链接:https://huggingface.co/bigscience

在这里插入图片描述

5. PaLM

PaLM 是使用谷歌提出的 Pathways[10] 系统(一种新的 ML 系统,可以跨多个 TPU Pod 进行高效训练)在 6144 块TPU v4 芯片上训练完成的。作者在 Pod 级别上跨两个 Cloud TPU v4 Pods 使用数据并行对训练进行扩展,与以前的大多数 LLM 相比,是一个显著的规模增长。
在这里插入图片描述

三、模型指令微调

在这里插入图片描述

  • 高效指令微调:ChatGLM-6B官方支持的p-tuning-v2,以及最常见的LoRA方式都可以微调,节省显存又高效。
  • 参数微调后的常见问题:原有能力可能受损,或循环输出重复文本
  • 微调后,可以合并模型为单一模型:根据LoRA的论文,训练得到低秩的权重delta矩阵,所以支持合并
  • finetune阶段的batch size通常远小于pretrain阶段,微调的数据量也远小于预训练的数据量。(参考MPT-7B模型的实验)
  • 基于LLM大模型构建应用:llama-index(原gpt-index)做文档式的对话系统。或者使用MOSS的思路,把大语言模型做成各种插件

Reference

[1] mT5: A Massively Multilingual Pre-trained Text-to-Text Transformer https://arxiv.org/pdf/2010.11934.pdf
[2] Language Models are Few-Shot Learners https://link.zhihu.com/?target=https%3A//arxiv.org/pdf/2005.14165.pdf
[3] LaMDA: Language Models for Dialog Applications:https://arxiv.org/pdf/2201.08239.pdf
[4] Jurassic-1: Technical Details and Evaluation https://uploads-ssl.webflow.com/60fd4503684b466578c0d307/61138924626a6981ee09caf6_jurassic_tech_paper.pdf
[5] Using DeepSpeed and Megatron to Train Megatron-Turing NLG 530B, the World’s Largest and Most Powerful Generative Language Model https://arxiv.org/pdf/2201.11990.pdf
[6] Scaling Language Models: Methods, Analysis & Insights from Training Gopher https://storage.googleapis.com/deepmind-media/research/language-research/Training%20Gopher.pdf
[7] Training Compute-Optimal Large Language Models https://arxiv.org/pdf/2203.15556.pdf
[8] PaLM: Scaling Language Modeling with Pathways https://arxiv.org/pdf/2204.02311.pdf
[9] Pathways: Asynchronous Distributed Dataflow for ML https://arxiv.org/pdf/2203.12533.pdf
[10] Transcending Scaling Laws with 0.1% Extra Compute https://arxiv.org/pdf/2210.11399.pdf
[11] UL2: Unifying Language Learning Paradigms https://arxiv.org/pdf/2205.05131.pdf
[12] OPT: Open Pre-trained Transformer Language Models https://arxiv.org/pdf/2205.01068.pdf
[13] LLaMA: Open and Efficient Foundation Language Models https://arxiv.org/pdf/2302.13971v1.pdf
[14] BLOOM: A 176B-Parameter Open-Access Multilingual Language Model https://arxiv.org/pdf/2211.05100.pdf
[15] GLM-130B: An Open Bilingual Pre-Trained Model https://arxiv.org/pdf/2210.02414.pdf
[16] ERNIE 3.0 Titan: Exploring Larger-scale Knowledge Enhanced Pre-training for Language Understanding and Generation https://arxiv.org/pdf/2112.12731.pdf
[17] ERNIE 3.0: Large-scale Knowledge Enhanced Pre-training for Language Understanding and Generation https://arxiv.org/pdf/2107.02137.pdf
[18] Is Prompt All You Need? No. A Comprehensive and Broader View of Instruction Learning https://arxiv.org/pdf/2303.10475v2.pdf
[19] T0 Multitask Prompted Training Enables Zero-Shot Task Generalization https://arxiv.org/pdf/2110.08207.pdf
[20] Finetuned Language Models Are Zero-shot Learners https://openreview.net/pdf?id=gEZrGCozdqR
[21] Scaling Instruction-Finetuned Language Models https://arxiv.org/pdf/2210.11416.pdf
[22] Crosslingual Generalization through Multitask Finetuning https://arxiv.org/pdf/2211.01786.pdf
[23] GPT-3.5 https://platform.openai.com/docs/models/gpt-3-5
[24] Evaluating Large Language Models Trained on Code https://arxiv.org/pdf/2107.03374.pdf
[25] Training language models to follow instructions with human feedback https://arxiv.org/pdf/2203.02155.pdf
[26] OpenAI Blog: Introducting ChatGPT https://openai.com/blog/chatgpt
[27] mT5: A Massively Multilingual Pre-trained Text-to-Text Transformer
[28] OpenAI Blog: GPT-4 https://openai.com/research/gpt-4
[29] Alpaca: A Strong, Replicable Instruction-Following Model https://crfm.stanford.edu/2023/03/13/alpaca.html
[30] ChatGLM:千亿基座的对话模型开启内测 https://chatglm.cn/blog
[31] UC伯克利发布大语言模型排行榜
[32] https://zhuanlan.zhihu.com/p/624918286
[33] https://xv44586.github.io/2023/03/10/llm-inf/
[34] 大语言模型调研汇总
[45] Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer https://arxiv.org/pdf/1910.10683.pdf
[46] 论文解读 Chinese-LLaMA-Alpaca 中文版大语言模型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/499279.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法记录 | Day53 动态规划

1143.最长公共子序列 思路: 本题和动态规划:718. 最长重复子数组 (opens new window)区别在于这里不要求是连续的了,但要有相对顺序,即:“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序…

搭建DHCP、PXE、DNS、HTTP以及NFS服务综合实验的超详细讲解

文章目录 1.实验要求2.实验步骤2.1 步骤解答问题(1)2.1 步骤解答问题(2)2.1 步骤解答问题(3)2.1 步骤解答问题(4)2.1 步骤解答问题(5) 1.实验要求 &#xff…

Hadoop入门篇01---基础概念和部署教程

Hadoop入门篇01---基础概念和部署教程 Hadoop是什么Hadoop发展史Hadoop特点有哪些Hadoop版本Hadoop架构Hadoop 3.0新特性 Hadoop集群搭建集群简介集群部署方式standalone mode(独立模式)Pseudo-Distributed mode(伪分布式模式)Clu…

webpack的核心概念分别是什么,如何理解

这篇文章主要介绍了 title ,小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望大家通过这篇文章可以有所收获。 webpack 是一种前端资源构建工具,一个静态模块打包器(module bundler)&…

UE5.1.1C++从0开始(4.虚幻的接口以及交互功能)

这一个章节对于第一次接触虚幻的人来说可以说是最绕的一个点,因为老师突然给你塞了很多的概念,对于这一块的学习,我个人的推荐是:先把蓝图搞明白了,再对应到C的代码中,不然一定会被整的晕头转向。还是&…

安装ms sql server2000提示安装失败详见sqlstp.log日志

安装ms sql server2000提示安装失败详见sqlstp.log日志 目录 安装ms sql server2000提示安装失败详见sqlstp.log日志 一、可能的情况-其它位置不能有对它的引用 1.1、先安装了Delphi其options-环境变量-其中path中有sql,注册表将其清除 1. 2、注册表搜索-Micro…

【Unity3d】Unity3d在Android平台上输入框的实现源码分析

一、前言 Unity3d引擎中有很多与Android原生交互的功能,比如如何调用Android渲染、Unity输入框的实现、Unity权限的申请、Unity调用相机功能等等,其实这些就是调用Android的api实现的。所有Java层的实现代码都是在unity-classes.jar这个jar包中。这篇文…

chatgpt的150个指令大全

chatGPT输出结果的质量高低,和你使用什么样质量的输入内容有关。 今天,小编整理了一些常用的ChatGPT指令,可以通过这些指令让AI帮你整理资料、撰写报告、知识学习、准备面试等等,赶紧收藏起来吧! 如果还没有找到工具…

两万字详解!Netty经典32连问

两万字详解!Netty经典32连问! 前言 Netty是什么,它的主要特点是什么? Netty 应用场景了解么? Netty 核心组件有哪些?分别有什么作用? Netty的线程模型是怎样的?如何优化性能&…

四、Spring Cloud Alibaba-Ribbon

一、什么是Ribbon 目前主流的负载方案分为以下两种: 集中式负载均衡,在消费者和服务提供方中间使用独立的代理方式进行负载,有硬件的(比如 F5),也有软件的(比如 Nginx) 。客户端根据自己的请求情况做负载均衡,Ribbon 就属于客户…

2023年全国硕士研究生入学统一考试英语(一)试题

2023年全国硕士研究生入学统一考试英语(一)试题 Section I Use of Englis Directions: Read the following text. Choose the best word(s) for each numbered blank and mark A, B , C or D on the ANSWER SHEET.(10 points) Caravanserais were roads…

【P9】JMeter 用户定义的变量(User Defined Variables)

一、准备工作 慕慕生鲜&#xff1a; http://111.231.103.117/#/login 进入网页后&#xff0c;登录&#xff0c;页面提供了账户和密码 右键检查或按F12&#xff0c;打开调试工具&#xff0c;点击搜索 二、测试计划设计 &#xff08;1&#xff09;、Test Plan 右键 <<…

Linux cgroup

前言 Cgroup和namespace类似&#xff0c;也是将进程进程分组&#xff0c;但是目的与namespace不一样&#xff0c;namespace是为了隔离进程组之前的资源&#xff0c;而Cgroup是为了对一组进程进行统一的资源监控和限制。 Cgroup的组成 subsystem 一个subsystem就是一个内核模…

【HCIP】VLAN实验(Hybrid模式)

目录 需求&#xff1a; 一、设计 二、VLAN配置 三、交换机间实现trunk的功能 四、路由器配置 五、验证 需求&#xff1a; 1、PC1和PC3所在接口为access 2、PC2/4/5/6处于同一网段&#xff0c;其中PC2可以访问PC4/5/6&#xff1b;但PC4可以访问PC5&#xff0c;不能访问PC…

ARM嵌入式编译器-volatile关键字对编译器优化的影响

volatile限定符告知计算机&#xff0c;其他agent&#xff08;而不是变量所在的程序&#xff09;可以改变该变量的值。通常它被用于硬件地址以及在其他程序或同时运行的线程中共享数据。要求编译器不要对其描述的对象作优化处理&#xff0c;对它的读写都需要从内存中访问。 使用…

文献阅读:LLaMA: Open and Efficient Foundation Language Models

文献阅读&#xff1a;LLaMA: Open and Efficient Foundation Language Models 1. 文章简介2. 模型训练 1. 训练数据2. 模型结构3. 模型训练 1. Optimizer2. 效率优化 3. 效果评估 1. 经典任务下效果 1. Commen Sense Reasoning2. Closed-book Question Answering3. Reading Co…

数据分析03——矩阵常用计算方法和函数

0、前言&#xff1a; 数组&#xff1a;计算机领域的概念矩阵&#xff1a;数学领域的概念对于Numpy而言&#xff0c;矩阵是数组的分支 1、创建矩阵&#xff1a; 字符串创建矩阵&#xff1a;mat1 np.matrix(‘1 2;3 4’)列表形式创建矩阵&#xff1a;mat2 np.matrix([[5, 6],…

MySQL基础(八)聚合函数

上一章讲到了 SQL 单行函数。实际上 SQL 函数还有一类&#xff0c;叫做聚合&#xff08;或聚集、分组&#xff09;函数&#xff0c;它是对一组数据进行汇总的函数&#xff0c;输入的是一组数据的集合&#xff0c;输出的是单个值。 1. 聚合函数介绍 什么是聚合函数 聚合函数作…

深度学习目标检测项目实战(五)—基于mobilenetv2和resnet的图像背景抠图及其界面封装

深度学习目标检测项目实战(五)—基于mobilenetv2和resnet的图像背景抠图及其界面封装 该项目很有意思&#xff0c;也是比较前沿&#xff0c;项目主要参考了开源代码&#xff1a; https://github.com/PeterL1n/BackgroundMattingV2 环境搭建 kornia0.4.1 tensorboard2.3.0 to…

图像修复_criminis算法及改进算法学习小结

摘要 对图像修复专题学习情况的一个总结&#xff0c;学习内容包括&#xff1a; &#xff08;1&#xff09;综述文献的阅读及对图像修复的理解。 &#xff08;2&#xff09;criminis算法的仿真情况。 &#xff08;3&#xff09;criminis算法的改进算法的仿真 一、 前言 1&…