大语言模型诞生过程剖析

过程图如下

📚 第一步:海量文本的无监督学习 得到基座大模型🎉

🔍 原料:首先,我们需要海量的文本数据,这些数据可以来自互联网上的各种语料库,包括书籍、新闻、科学论文、社交媒体帖子等等。这些文本将作为模型的“原料”,供模型学习。

🎯 目标:通过无监督学习,让模型能够基于上下文预测下一个token。这里用到了Transformer技术,它可以根据上下文预测被掩码的token。

💡 技术过程:无监督学习让模型在没有标签的数据上进行训练,通过比较正确答案和模型的预测结果,计算交叉熵损失,并使用优化算法更新模型的权重。随着见过的文本越来越多,模型生成的能力也会越来越好。

 

🔧 第二步:有监督微调➡️得到可以对话的大模型🎉

🔍 原料:虽然基座模型已经能够根据上下文生成文本,但它并不擅长对话。为了解决这个问题,我们需要使用人类撰写的高质量对话数据对基座模型进行有监督微调。

🎯 目标:通过微调,让模型更加适应对话任务,具备更好的对话能力。

💡 过程:微调的成本相对较低,因为需要的训练数据规模更小,训练时长更短。在这一阶段,模型从人类高质量的对话中学习如何回答问题,这个过程被称为监督微调(supervised fine tuning)。

思考:为啥是“微调”而不叫“中调”或者“大调”?

因为相比于基座模型所用到的巨量数据,这个过程里的大部分有监督学习,其所用到的数据,都像是冰山之一角,九牛之一毛!

🏆 第三步:奖励模型的训练➡️得到可以评价回答的模型🎉

🔍 原料:为了让模型的回答更加优质且符合人类道德与价值观,我们需要让模型一次性给出多个回答结果,并由人工对这些回答结果进行打分和排序。

🎯 目标:基于这些以评分作为标签的训练数据,训练出一个能对回答进行评分预测的奖励模型。

💡 过程:奖励模型能够对模型的回答进行评分,从而引导模型生成更符合人类期望的回答。这个过程也常被称为对齐(alignment)。

🎈 第四步:强化学习训练➡️得到更符合人类价值观的优秀模型🎉

🔍 原料:使用第二步得到的模型和第三步的奖励模型进行强化学习训练。

🎯 目标:让模型的回答不断被奖励模型评价,并通过优化策略获取更高的评分,从而改进自身的结构。

💡 过程:强化学习训练利用奖励模型的评分作为反馈信号,引导模型生成更高质量的回答。同时,C端用户的点赞或倒赞也为模型的升级提供了宝贵的评价数据

接下来我们用LLM来讲解。第一步:通过无监督学习得到基座大模型

第二步:通过监督学习得到微调后的基座大模型

第三步:通过人工评价和有监督学习得到评价模型

第四步:通过强化学习不断提升模型回复质量

 

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

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

相关文章

Object.assign方法有什么用?超详细测试用例、实例、可以在浏览器的控制台打印结果

Object.assign 是一个 JavaScript 方法,用于将一个或多个源对象的所有可枚举属性复制到目标对象中。它返回目标对象。这个方法常用于合并对象或浅复制对象。 语法 Object.assign(target, ...sources)target: 目标对象。sources: 一个或多个源对象。 示例 1. 合并…

【2024最新】C++扫描线算法介绍+实战例题

扫描线介绍:OI-Wiki 【简单】一维扫描线(差分优化) 网上一维扫描线很少有人讲,可能认为它太简单了吧,也可能认为这应该算在差分里(事实上讲差分的文章里也几乎没有扫描线的影子)。但我认为&am…

简单搭建卷积神经网络实现手写数字10分类

搭建卷积神经网络实现手写数字10分类 1.思路流程 1.导入minest数据集 2.对数据进行预处理 3.构建卷积神经网络模型 4.训练模型,评估模型 5.用模型进行训练预测 一.导入minest数据集 MNIST--->raw--->test-->(0,1,2...) 10个文件夹 MNIST--->raw-…

VRRP虚拟路由冗余技术

VRRP虚拟路由冗余技术:是一种路由容错协议,用于在网络中提供路由器的冗余备份。它通过将多个路由器虚拟成一个虚拟路由器并且多个路由器之间共享一个虚拟IP地址来实现冗余和高可用性。当承担转发业务的主路由器出现故障时,其他备份路由器可以…

git的下载流程,及使用方法,官网地址怎么找?

要下载git以及了解使用方法,可以按照以下步骤进行操作: 打开浏览器,输入git的官方网站地址:https://git-scm.com/(官网地址可能会有变动,请根据最新情况进行搜索)。 在官网上找到下载按钮或链接…

安全防御:防火墙概述

目录 一、信息安全 1.1 恶意程序一般会具备一下多个或全部特点 1.2 信息安全五要素: 二、了解防火墙 2.1 防火墙的核心任务 2.2 防火墙的分类 2.3 防火墙的发展历程 2.3.1 包过滤防火墙 2.3.2 应用代理防火墙 2.3.3 状态检测防火墙 补充防御设备 三、防…

uniapp微信小程序授权登录实现

我们在做小程序的时候用的最多的方式登录 就是原生的授权登录的功能 这个方法 也不是很难 首先我们要获取我们在小程序中的code值 我们小封装一个获取code 的方法 在页面中可以直接调用 封装在 js 中 export const wxlogin () > {return new Promise((resolve, reject…

骑士人才系统74cms专业版实现本地VUE打包和在线升级方法以及常见问题

骑士人才系统我就不多说了目前来说我接触的人才系统里面除了phpyun就是骑士人才了,两个历史都很悠久,总起来说功能方面各分伯仲,前几期我作过Phpyun的配置教程这次我们针对骑士人才系统说说怎么使用VUE源码本地一键打包后台和在线升级方式&am…

展开说说:Android之View基础知识解析

View虽不属于Android四代组件,但应用程度却非常非常广泛。在Android客户端,君所见之处皆是View。我们看到的Button、ImageView、TextView等等可视化的控件都是View,ViewGroup是View的子类因此它也是View。但是现在我们把View和ViewGroup当成两…

每日Attention学习10——Scale-Aware Modulation

模块出处 [ICCV 23] [link] [code] Scale-Aware Modulation Meet Transformer 模块名称 Scale-Aware Modulation (SAM) 模块作用 改进的自注意力 模块结构 模块代码 import torch import torch.nn as nn import torch.nn.functional as Fclass SAM(nn.Module):def __init__…

redisTemplate报错为nil,通过redis-cli查看前缀有乱码

public void set(String key, String value, long timeout) {redisTemplate.opsForValue().set(key, value, timeout, TimeUnit.SECONDS);} 改完之后 public void set(String key, String value, long timeout) {redisTemplate.setKeySerializer(new StringRedisSerializer()…

设计模式--工厂设计模式

什么是工厂模式? 工厂模式是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定要实例化的类是哪一个。这样,工厂方法模式让类的实例化延迟到子类。通过工厂方法模式,我们可以在不修改现有代码的情况下…

opencascade AIS_InteractiveContext源码学习8 trihedron display attributes

AIS_InteractiveContext 前言 交互上下文(Interactive Context)允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是,对于已经被交互上下文识别的交互对象,必须使用上下文方法进行…

数据湖仓一体(五)安装spark

上传安装包到/opt/software目录并解压 [bigdatanode106 software]$ tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/services/ 重命名文件 [bigdatanode106 services]$ mv spark-3.3.1-bin-hadoop3 spark-3.3.1 配置环境变量 [bigdatanode106 ~]$ sudo vim /etc/profile…

最优化(10):牛顿类、拟牛顿类算法

4.4 牛顿类算法——介绍了经典牛顿法及其收敛性,并介绍了修正牛顿法和非精确牛顿法; 4.5 拟牛顿类算法——引入割线方程,介绍拟牛顿算法以及拟牛顿矩阵更新方式,然后给出了拟牛顿法的全局收敛性,最后介绍了有限内存BFG…

Java中创建线程的方式

文章目录 创建线程ThreadRunnableCallable线程池创建方式自定义线程池线程池工作原理阻塞队列线程池参数合理配置线程池参数 创建线程 在Java中创建一个线程,有且仅有一种方式,创建一个Thread类实例,并调用它的start方法。 Thread 最经典也…

在Linux上设置MySQL允许远程连接的完整指南

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

构建图像金字塔遍历不同的大小

1、首先、构建金字塔,其中包括从原始图像到多层缩小后的图像。 import cv2# 读取原始图像 image cv2.imread(path_to_image)# 构建高斯金字塔 gaussian_pyramid [image] for i in range(6): # 这里假设构建6层image cv2.pyrDown(image) # 下采样gaussian_p…

【Linux】多线程_6

文章目录 九、多线程7. 生产者消费者模型生产者消费者模型的简单代码结果演示 未完待续 九、多线程 7. 生产者消费者模型 生产者消费者模型的简单代码 Makefile: cp:Main.ccg -o $ $^ -stdc11 -lpthread .PHONY:clean clean:rm -f cpThread.hpp: #i…

vue引入sm-crypto通过sm4对文件进行加解密,用户输入密码

对文件加密并保存: import { sm4 } from sm-cryptofetch("你的文件地址") .then(response > response.blob()) .then(byteStream > {const reader2 new FileReader();reader2.onload function(event) {const arrayBuffer event.target.result;l…