大模型(e.g., ChatGPT)里面的一些技术和发展方向

文章目录

      • 如何炼成ChatGPT
      • 如何调教ChatGPT
      • 如何武装ChatGPT
      • 一些大模型的其他方向
      • prompt tuning
      • Instruction tuning

这个是基于视频 https://www.bilibili.com/video/BV17t4218761,可以了解一下大模型里面的一些技术和最近的发展,基本都是2022你那以来的发展,比较新。然后本文需要一定的基础,比如知道啥是语言模型,知道深度学习以及怎么训练之类的。

如何炼成ChatGPT

  1. 先预训练一个生成语言模型,以自监督方式,也就是给定前面的单词预测下一个单词。得到模型A。

  2. 有监督微调,也就是给定问题和答案,对1中学习的预训练模型A进行微调。得到模型B。这叫做Fine-tuning,特点是涉及在模型头部引入新参数的情况(例如加一个分类器来做句子的情感分析,正向还是负面的情感),且都存在小样本场景过拟合的问题

  3. 2里面有一个问题,那就是需要标注数据,每一个问题,人类都要搞一个答案,所以有了强化学习的解决方案。具体来说,再训练一个模型C,这个模型学习如何给一个(问题,答案)打分,至于说给多少分,也是需要人类标注数据的,人类需要标注(问题,答案,打分),也就是说一个问题可能会有多个答案,好的不好的答案都有,但打分不同,这个模型C训练好了之后,就可以用来监督模型D了

  4. 在模型A的基础上,输入一个问题,模型A会输出一个答案,这个答案和问题一起交给模型C,我们可以得到一个得分,这个得分会反馈给模型A,从而模型A不断学习,想要提高得分,得到模型D。这个叫做强化学习,此时模型C叫做奖励模型。这种优化模型A的方式好像叫做instruction-tuning.

如何调教ChatGPT

  1. 小样本提示:给若干个问题,答案的示范,然后再问你的问题。
  2. 思维链chain of thought。先给一个示范:即给一个问题,自己给出答案,并且给出中间步骤是如何一步一步得到这个答案的,然后再问你想要问的问题。
  3. 分步骤思考,在问题后面加上一句:请你分步思考。

如何武装ChatGPT

1.检索增强生成:有些数据ChatGPT没有训练过,这个时候你问它它肯定不会,所以我们需要的就是给模型一个文档,然后让它根据文档来回答问题。

2.程序辅助语言模型:类似的,ChatGPT肯定也没有训练过一些比较冷门的数学计算,比如9283*31231.231,这个时候也要借助外部工具,不过不是文档了,而是计算器。这里不是你想的那样,调用一个在线计算器API,而是将计算的问题翻译成一段python代码,然后自己执行这段代码,得到计算结果。

3.推理行动结合:这个感觉就是思维链,甚至2其实也是思维链,只是这里的行动指的是访问外部API了,比如浏览器。推理就还是思维链,行动是根据推理的,然后行动之后有结果,这个结果又会进行推理,一直这样进行下去,直到模型认为回答完毕了(推理得到了)用户的问题。

其中3如下:
在这里插入图片描述

一些大模型的其他方向

这里来自于视频https://www.bilibili.com/video/BV1hM41157ZF。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

prompt tuning

这部分是来自https://zhuanlan.zhihu.com/p/624178660,讲得很好。

至于论文的话不知道是不是这一篇:The Power of Scale for Parameter-Efficient Prompt Tuning(21年4月)。

我们以二分类的情感分析作为例子,描述Prompt-tuning的工作原理。给定一个句子[CLS] I like the Disney films very much. [SEP] 传统的Fine-tuning方法是将其通过BERT的Transformer获得 [CLS]表征之后再喂入新增加的MLP分类器进行二分类,预测该句子是积极的(positive)还是消极的(negative),因此需要一定量的训练数据来训练。

而Prompt-Tuning则执行如下步骤:

构建模板(Template Construction):通过人工定义、自动搜索、文本生成等方法,生成与给定句子相关的一个含有[MASK]标记的模板。例如It was [MASK].,并拼接到原始的文本中,获得Prompt-Tuning的输入:[CLS] I like the Disney films very much. [SEP] It was [MASK]. [SEP]。将其喂入BERT模型中,并复用预训练好的MLM分类器(在huggingface中为BertForMaskedLM),即可直接得到[MASK]预测的各个token的概率分布;
标签词映射(Label Word Verbalizer):因为[MASK]部分我们只对部分词感兴趣,因此需要建立一个映射关系。例如如果[MASK]预测的词是“great”,则认为是positive类,如果是“terrible”,则认为是negative类。
此时会有读者思考,不同的句子应该有不同的template和label word,没错,因为每个句子可能期望预测出来的label word都不同,因此如何最大化的寻找当前任务更加合适的template和label word是Prompt-tuning非常重要的挑战。 - 训练:根据Verbalizer,则可以获得指定label word的预测概率分布,并采用交叉信息熵进行训练。此时因为只对预训练好的MLM head进行微调,所以避免了过拟合问题

Prompt tuning:提供示例实现few shot/zero shot, 或者给出前半句激发语音模型的补全能力(在没精调的模型上也有一定效果);

Instruction tuning: 通过给出明显的指令/指示, 让模型理解并做出正确的action。激发语言模型的理解能力(必须对模型精调,让模型知道这种指令模式)。

Instruction tuning

Google Research在2021年的论文《Finetuned Language Models Are Zero-Shot Learners》中提出了instruction-tuning。这个是21年9月。

Instruction的目的是告诉模型如何处理数据或执行某个操作,而不是简单地提供上下文或任务相关信息。

在这里插入图片描述
可以看到,必须精调,(input, target)有监督训练。啥是指令,我觉得就是那个问题。

所以和Instruction tuning和Prompt tuning的区别到底是什么?我没咋看出来。我的猜想是:Prompt tuning是给问题,然后mask答案,让模型回答Mask。这个在预训练模型的基础上可以直接运行,也可以再给一些(问题,答案)来进行训练微调。而Instruction tuning是。。。怎么感觉这么像。一个是21年4月提出的,一个是21年9月提出的,合理怀疑一下有没有可能只是同一个东西,不同名字,引用都是好几千。

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

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

相关文章

【超简单实用】Zotero 7 内置pdf背景颜色更改插推荐以及安装

Zotero beta7 pdf 内置颜色更换 zetore 6 很多成熟的插件在 zetore 7都不能用了。版本回退看起来内置文章的注释会被消除,所以又不想退回去。前几个月在找beta 7 的pdf 护眼色的插件一直没有,今天终于发现了!!!&#…

黑龙江—等保测评三级安全设计思路

需求分析 6.1、 系统现状 6.2、 现有措施 目前,信息系统已经采取了下述的安全措施: 1、在物理层面上, 2、在网络层面上, 3、在系统层面上, 4、在应用层面上, 5、在管理层面上, 6.…

STM32点灯大师(点了一颗LED灯,轮询法)

配置操作: 一、使用CubeMX配置到大致的操作 1.1 选择芯片 1.2 选择引脚(根据电路图) 1.3 配置gpio口 1.4 配置系统 1.5文件项目操作 最后就是点击 二、点击CubeMX生成的代码,并且修改代码 2.1 看看效果 2.2 写代码

听力知识|小耳朵,你了解多少?

每天接收好多讯息和知识 那么小耳朵是如何做到的呢? 我们每一个人都有一双独一无二的耳朵。 你知道吗? 即使每一个人的耳朵看起来都很相似, 可是从来也没有一模一样的耳朵 即便是你的左右耳也不完全相同。 人体五种感觉是指:…

【C++】C++中的构造函数和析构函数详解

欢迎来到CILMY23的博客 本篇主题为:C中的构造函数和析构函数详解 个人主页:CILMY23-CSDN博客 系列专栏:Python | C | C语言 | 数据结构与算法 感谢观看,支持的可以给个一键三连,点赞关注收藏。 写在前头&#xff1…

社交媒体数据恢复:KaokaoTalk

KaokaoTalk数据恢复方法 一、数据恢复的基本步骤 在进行KaokaoTalk数据恢复时,首先需要确保你已经停止使用该设备,以防止新的数据覆盖丢失的数据。接下来,你可以按照以下步骤进行操作: 备份数据:在尝试恢复数据之前&a…

【SpringCloud】OpenFeign服务接口调用快速入门

【SpringCloud】OpenFeign服务接口调用快速入门 文章目录 【SpringCloud】OpenFeign服务接口调用快速入门1. 概述2. 引入依赖3. 配置、测试 1. 概述 官网地址:点击跳转 Feign是一个声明性web服务客户端。它使编写web服务客户端变得更容易。使用 Feign 创建一个接口…

第十五届蓝桥杯省赛第二场C/C++B组A题【进制】题解(AC)

解题思路 按照题意进行模拟&#xff0c;计算 x x x 的 b b b 进制过程中&#xff0c;若出现余数大于 9 9 9&#xff0c;则说明 x x x 的 b b b 进制一定要用字母进行表示。 #include <iostream> #include <cstring> #include <algorithm> #include &l…

Python | Leetcode Python题解之第49题字母异位词分组

题目&#xff1a; 题解&#xff1a; class Solution:def groupAnagrams(self, strs: List[str]) -> List[List[str]]:mp collections.defaultdict(list)for st in strs:counts [0] * 26for ch in st:counts[ord(ch) - ord("a")] 1# 需要将 list 转换成 tuple …

ubuntu下boa服务器编译运行

一.下载boa源码并解压 官网网站&#xff1a;BOA源码 点击箭头所指的位置即可下载 解压&#xff1a; tar -xvf boa-0.94.13.tar.gz 解压完成得到目录&#xff1a; 二.安装环境所缺依赖&#xff0c;否则编译会报错 sudo apt install bison sudo apt install flex 三.编译 1…

利用地理矢量数据进行路径规划

文章目录 概要绘制osm安装和编译更改配置节点运行概要 地理矢量数据通常是指包括点(如地标、位置坐标)、线(如街道、河流)和多边形(如行政区划、建筑物轮廓)这样的基本几何构造,这些都是构成空间数据的基本要素。在路径规划中,这些矢量数据可以被用来表示网络中的节点…

PC-3000 Mobile Pro: 智能手机及平板设备数据提取工具

天津鸿萌科贸发展有限公司从事数据安全业务20余年&#xff0c;在数据恢复、数据取证、数据备份等领域有丰富的案例经验、前沿专业技术及良好的行业口碑。同时&#xff0c;公司面向取证机构及数据恢复公司&#xff0c;提供数据恢复实验室建设方案&#xff0c;包含数据恢复硬件设…

Maven:配置与使用指南1

https://mvnrepository.com Maven 1.maven简介 不同模块的jar包以及同时设计的功能的微小变化版本&#xff1b; 真实的开发环境&#xff1a;我们将我们的源代码在服务器上重新编译重新打包&#xff0c;工程升级维护过程繁琐 1.Maven是一个项目管理工具&#xff0c;将项目开…

matlab回归学习

前言 所谓回归学习即预测&#xff0c;便是由已知的数据推测未知的数据&#xff0c;利用转速与转矩来推测电流。 1、数据准备 下面虚拟一组转速转矩以及电流数据。 speed [100 220 330 440 550 660]; torque [200 300 400 500 700 900]; I [400 500 603 739 821 912]; arr …

DataGrip操作Oracle

一、创建表空间 表名任意起&#xff0c;路径自己指定 -- 创建表空间 create tablespace mydb1 -- 表名 datafile E:\Code\sql\oracle\oracle_tablespace\mydb1.dbf --指定表空间路径 size 100M --指定表空间大小 autoextend on next 50M --指定一次扩充多少mb extent managemen…

万兆以太网MAC设计(7)ARP协议报文格式详解以及ARP层模块设计

文章目录 前言&#xff1a;1、ARP协议详解2、ARP工作机制 二、ARP_RX模块设计三、ARP_TX模块设计四、ARP_table模块5、仿真5.1、发送端5.2、接收端5.3、缓存表 总结 前言&#xff1a; 1、ARP协议详解 ARP数据格式&#xff1a; 硬件类型:表示硬件地址的类型。它的值为1表示以太…

ocr文字识别软件是干什么的?

OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;文字识别软件是一种能够将图像或者扫描的文档中的文字内容转换为可编辑的文本格式的软件。它的主要功能包括&#xff1a; 1. **文字提取&#xff1a;**识别图像中的文字并提取出来&#xff0…

MAVEN的安装与配置

MAVEN的安装与配置 1 简介 1.1 什么是MAVEN? Maven是一个项目构建及管理工具&#xff0c;开发团队几乎不用花多少时间就能够自动完成工程的基础构建配置&#xff0c; Maven 使用了一个标准的目录结构在不同开发工具中也能实现项目结构的统一。Maven提供了清理&#xff0c;编…

Lambda表达式特点

Lambda 表达式是 Java 8 引入的一项重要特性&#xff0c;它们提供了一种更简洁的方式来表达匿名函数。Lambda 表达式允许你将一段代码传递给方法&#xff0c;而不是显式创建一个实现了接口的匿名内部类。Lambda 表达式通常用于实现单个抽象方法的接口&#xff08;即函数式接口&…

javaEE初阶——多线程(九)——JUC常见的类以及线程安全的集合类

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 小比特 大梦想 此篇文章与大家分享多线程专题的最后一篇文章:关于JUC常见的类以及线程安全的集合类 如果有不足的或者错误的请您指出! 目录 3.JUC(java.util.concurrent)常见的类3.1Callable接口3.2 RentrantLoc…