当前位置: 首页 > news >正文

揭秘语言模型后训练:指令微调、偏好调优与强化学习的深度解析

揭秘语言模型后训练:指令微调、偏好调优与强化学习的深度解析

    • 前言
    • 1. 什么是后训练?
    • 2. 指令微调(Instruction Fine-Tuning, SFT)
      • 概念
      • 训练流程
      • 实践示例:TÜLU 3
    • 3. 偏好调优(Preference Tuning, DPO)
      • 概念
      • 关键步骤
      • DPO的优势
      • 实践示例:TÜLU 3
    • 4. 强化学习与可验证奖励(RLVR)
      • 概念
      • RLVR流程
      • RLVR的优势
      • 实践示例:TÜLU 3
    • 5. 多阶段后训练:协同优化
    • 6. 挑战与未来方向
      • 挑战
      • 未来方向
    • 参考资料

前言

人工智能领域的语言模型(Language Models)如GPT、Llama等,已经成为推动技术变革的核心力量。然而,预训练后的模型并非完美,它们仍需通过后训练(Post-training)来进一步优化性能,满足实际应用需求。

本文将深入解析后训练的核心技巧,包括指令微调(SFT)偏好调优(DPO)强化学习(RLVR),结合TÜLU 3的创新实践,展示如何通过后训练让模型更强大。


在这里插入图片描述

1. 什么是后训练?

后训练是指在语言模型大规模无监督预训练完成后,进一步针对特定任务、场景或用户需求进行的训练优化过程。

目标:

  • 提升模型的指令理解与执行能力。
  • 优化输出结果,更符合人类偏好
  • 解决特定任务上的性能瓶颈,如数学推理、代码生成等。

主要技术:

  1. 指令微调(SFT):通过监督学习优化模型的指令执行能力。
  2. 偏好调优(DPO):根据人类偏好数据优化输出质量。
  3. 强化学习(RLVR):针对可验证任务,通过奖励信号进一步优化结果。

2. 指令微调(Instruction Fine-Tuning, SFT)

概念

指令微调通过提供指令-响应对(prompt-response pairs),让模型学会理解并执行用户的自然语言指令。

训练流程

  1. 数据准备

    • 公开数据:如用户与模型的交互数据(WildChat)。
    • 合成数据:使用高级模型(如GPT-4)生成多样化指令。
    • 技能特定数据:数学推理、编程、精确指令遵循等领域的数据。
  2. 数据混合与调优

    • 平衡多种任务数据,避免模型“偏科”。
    • 通过实验不断调整数据比例,以提升整体性能。
  3. 训练方法

    • 基于交叉熵损失进行监督学习。
    • 模型通过学习高质量的指令响应对进行微调。

实践示例:TÜLU 3

TÜLU 3采用Persona驱动方法生成高质量指令数据,涵盖了25种约束类型(如字数、格式要求等)。经过SFT后,模型在多任务上性能显著提升。


3. 偏好调优(Preference Tuning, DPO)

概念

偏好调优通过比较模型生成结果的优劣,优化输出,使其更符合人类的期望。

关键步骤

  1. 偏好数据生成

    • On-Policy数据:当前模型生成的输出,由人类或自动标注器进行结果比较。
    • Off-Policy数据:其他模型输出的数据对比。
  2. 标注与优化

    • 通过胜者-败者(winner-loser)对比,生成偏好标签。
    • 使用直接偏好优化(DPO)PPO算法进行优化。

DPO的优势

  • 不需要单独的奖励模型,训练流程更简单。
  • 优化效率高,适合大规模数据和多任务训练。

实践示例:TÜLU 3

TÜLU 3在DPO阶段提出了长度归一化DPO,有效避免输出过长的问题,并构建了35万条高质量偏好数据,显著提升模型在指令遵循任务上的表现。


4. 强化学习与可验证奖励(RLVR)

概念

强化学习通过奖励信号优化模型的决策过程。TÜLU 3引入的**RLVR(Reinforcement Learning with Verifiable Rewards)**通过验证任务结果的正确性来提供奖励,替代传统的奖励模型。

RLVR流程

  1. 任务验证

    • 针对任务设计自动验证器,如:
      • 数学推理:验证答案是否正确。
      • 指令遵循:检查格式或字数约束是否满足。
  2. 奖励设计

    • 输出正确时给予正向奖励。
    • 输出错误时不给予奖励。
  3. 强化学习训练

    • 使用PPO算法或异步RL框架优化模型,最大化奖励信号。

RLVR的优势

  • 消除了奖励模型的偏差问题,验证结果更加真实。
  • 特别适用于数学推理、逻辑验证等有明确结果的任务。

实践示例:TÜLU 3

在数学基准测试(如GSM8KMATH)和精确指令任务上,RLVR取得了显著提升,使模型性能达到SOTA水平。


5. 多阶段后训练:协同优化

多阶段后训练流程是指将SFT、DPO和RLVR结合起来,逐步优化模型性能:

  1. 阶段一:监督微调(SFT)

    • 提供基础的指令理解与响应能力。
  2. 阶段二:偏好调优(DPO)

    • 优化输出结果,使其更符合用户偏好。
  3. 阶段三:强化学习(RLVR)

    • 针对特定任务进行强化训练,进一步提升结果的准确性。

优势:

  • 逐步优化:每个阶段解决不同的性能瓶颈。
  • 技能平衡:确保模型在多任务上表现均衡。

6. 挑战与未来方向

挑战

  • 数据质量:高质量的训练数据生成与标注仍是瓶颈。
  • 计算成本:后训练需要大量计算资源,尤其是RL阶段。
  • 任务泛化:如何让模型在未见任务上保持高性能。

未来方向

  1. 更高效的RL方法:进一步优化RLVR以减少计算开销。
  2. 自动化数据生成:结合更智能的合成方法,生成多样化的高质量数据。
  3. 多模态后训练:将后训练扩展到图像、音频等多模态数据,打造通用AI系统。


参考资料

  • TÜLU 3 代码库
  • TÜLU 3 数据与模型权重
  • RLVR 论文与实践

相关文章:

揭秘语言模型后训练:指令微调、偏好调优与强化学习的深度解析

揭秘语言模型后训练:指令微调、偏好调优与强化学习的深度解析 前言1. 什么是后训练?2. 指令微调(Instruction Fine-Tuning, SFT)概念训练流程实践示例:TLU 3 3. 偏好调优(Preference Tuning, DPO&#xff0…...

AIDD-人工智能药物设计-ChemDraw Mac版pojie安装

AIDD-人工智能药物设计-ChemDraw Mac版pojie安装 Mac系统12.X版本需要安装chemdraw v20及以上。 https://github.com/Z-H-Sun/CS_CCME_Posts/blob/hidden/cos/cdm2.md 一、准备工作 软件下载地址:https://pan.baidu.com/s/1SDZCriXsxPZvcHMoA7WzUA 提取码&#…...

MySQL 入门大全:运算符

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...

如何使用Kimi进行学术仿写?

目录 1.Kimi分析仿写选题 2.Kimi拆解论文框架 3.Kimi分析论证方法 学习如何从别的优秀论文中吸取精华是提高学术论文写作的一个高效的方法。适当的模仿能帮助理解研究方向相关内容,还可以借鉴一些可取的论证方法。当然我们也应该要知道,即使是在顶刊发…...

算法训练day2|209.长度最小的字符串,59.螺旋矩阵,

两道题都做过 209 没注意是大于等于&#xff0c;改了一下马上通过了。 class Solution {public int minSubArrayLen(int target, int[] nums) {int l 0, r 0, len nums.length;int count 0, ans len 1, now 0;while(r < len){count nums[r];//r是下一个要加的whil…...

网络安全问题概述

1.1.计算机网络面临的安全性威胁 计算机网络上的通信面临以下的四种威胁&#xff1a; (1) 截获——从网络上窃听他人的通信内容。 (2) 中断——有意中断他人在网络上的通信。 (3) 篡改——故意篡改网络上传送的报文。可应用于域名重定向&#xff0c;即钓鱼网站。 (4) 伪造——伪…...

Web 毕设篇-适合小白、初级入门练手的 Spring Boot Web 毕业设计项目:教室信息管理系统(前后端源码 + 数据库 sql 脚本)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 1.0 项目介绍 开发工具&#xff1a;IDEA、VScode 服务器&#xff1a;Tomcat&#xff0c; JDK 17 项目构建&#xff1a;maven 数据库&#xff1a;mysql 8.0 系统用户前台和管理…...

C# 模式匹配

文章目录 前言一、is模式二、switch语句中的模式三、解构模式四、总结 前言 在 C# 中&#xff0c;模式匹配是一种强大的技术&#xff0c;它允许你在代码中更简洁、更安全地检查和处理对象的类型和值。本教程将介绍 C# 中的模式匹配功能&#xff0c;包括is模式、switch语句中的模…...

JWT报CORSFilter错误原因(以Java SpringBoot为例)

JWT 报 CorsFilter 原因&#xff0c;通常是因为跨域请求未通过浏览器的同源策略检查&#xff0c;而 CorsFilter 是用来处理跨域问题的过滤器。如果后端未正确配置 CORS 或 JWT 的传递方式不符合跨域要求&#xff0c;可能导致此类问题。 以下是具体原因及解决方法&#xff1a; …...

百度智能云千帆AppBuilder升级,百度AI搜索组件上线,RAG支持无限容量向量存储!

百度智能云千帆 AppBuilder 发版升级&#xff01; 进一步降低开发门槛&#xff0c;落地大模型到应用的最后一公里。在千帆 AppBuilder 最新升级的 V1.1版本中&#xff0c;企业级 RAG 和 Agent 能力再度提升&#xff0c;同时组件生态与应用集成分发更加优化。 • 企业级 RAG&am…...

【bash】linux中打包某个可执行文件及其依赖文件

linux中打包某个可执行文件及其依赖文件 下面是一个 Bash 脚本&#xff0c;用于一键化地打包指定可执行文件及其依赖库&#xff1a; #!/bin/bash# 脚本用于打包可执行文件及其依赖库&#xff0c;并打印详细信息 # 使用方法&#xff1a; ./package_executable.sh <可执行文…...

FPGA 17 ,FPGA 与 SR-IOV虚拟化技术,高性能计算与虚拟化技术的结合(FPGA 与 SR-IOV 和 PCI,高性能计算与虚拟化的完美融合)

目录 前言 一. SR-IOV 的起源与发展 1. SR-IOV 的起源与时间线 2. SR-IOV 的诞生原因 3. SR-IOV 的详细介绍 二. SR-IOV 和 PCI 之间的关系 三. PCI 的起源与演进 1. PCI 的起源与时间线 2. PCI 的关键特性 四. FPGA 的独特魅力 1. FPGA 的定义与特性 2. FPGA 的内…...

RabbitMQ 安装、配置和使用介绍 使用前端js直接调用方式

1. 安装 RabbitMQ 1.1 安装 Erlang RabbitMQ 是基于 Erlang 语言开发的&#xff0c;因此首先需要安装 Erlang。 在 Ubuntu 上安装 Erlang&#xff1a; bash sudo apt-get update sudo apt-get install erlang 在 CentOS 上安装 Erlang&#xff1a; bash sudo yum insta…...

MySQL基础大全(看这一篇足够!!!)

文章目录 前言一、初识MySQL1.1 数据库基础1.2 数据库技术构成1.2.1 数据库系统1.2.2 SQL语言1.2.3 数据库访问接口 1.3 什么是MySQL 二、数据库的基本操作2.1 数据库创建和删除2.2 数据库存储引擎2.2.1 MySQL存储引擎简介2.2.2 InnoDB存储引擎2.2.3 MyISAM存储引擎2.2.4 存储引…...

芯品荟|SWM221系列芯片之TFTLCD彩屏显示及控制

“革新未来&#xff0c;智驭控制新纪元”&#xff0c;由广东华芯微特集成电路有限公司市场总监张琢&#xff0c;对SWM221系列的强大功能表现进行了整体介绍。 确实&#xff0c;华芯微特在TFTLCD显示及控制有十多年应用基础和积累的团队&#xff0c;仍勇于挑战&#xff0c;自我…...

贪心算法【1】

文章目录 860. 柠檬水找零题目解析算法原理代码实现交换论证法 2208. 将数组和减半的最少操作次数题目解析算法原理代码实现交换论证法 179. 最大数题目解析算法原理代码实现 860. 柠檬水找零 题目链接&#xff1a;860. 柠檬水找零 题目解析 一杯柠檬水5块钱&#xff0c;每个…...

Python PPT合并与拆分 – 详解

目录 使用工具 Python 合并 PPT 合并多个PPT文档 合并每个PPT文档中的特定幻灯片 Python 拆分 PPT 按幻灯片数量拆分 按幻灯片范围拆分 按幻灯片内容拆分 按节 (Section) 拆分 在日常工作或学习中&#xff0c;我们经常需要对PPT文件进行调整&#xff0c;比如将多个PPT…...

JSX:JavaScript的XML

简介 JSX是一种JavaScript的语法扩展&#xff0c;它允许你在JavaScript代码中写类似于HTML的标记。它被React框架广泛使用&#xff0c;以声明式地描述UI组件。JSX最终会被编译成JavaScript对象。 为什么使用JSX&#xff1f; 可读性&#xff1a;JSX使得组件的结构更加清晰&am…...

SAP ABAP-日期格式问题 SAP内部错误,反序列化JSON字符串时发生异常 值 20241215 不是根据 ABAP 的 XML 格式的有效日期

SAP ABAP-日期格式问题 SAP内部错误,反序列化JSON字符串时发生异常 值 20241215 不是根据 ABAP 的 XML 格式的有效日期 在SAP内部用 YYYYMMDD没有问题 外部传入参数...

Golang学习笔记_05——延迟调用

Golang学习笔记_02——函数 Golang学习笔记_03——匿名函数和闭包 Golang学习笔记_04——递归函数 文章目录 延迟调用1. 延迟调用1.1 使用场景1.2 示例 2. panic2.1 使用场景2.2 示例 3. recover3.1 使用场景3.2 示例 源码 延迟调用 在Go语言中&#xff0c;延迟调用&#xff0…...

C++:异常(下)

异常上&#xff1a;C&#xff1a;异常&#xff08;上&#xff09;-CSDN博客 一&#xff1a;异常的重新抛出 大家看下面如果不在里面处理一下的话delete没有运行过。 #include<iostream> #include<string> using namespace std; double division(int a, int b) {if…...

从〇开始深度学习(番外)——下载包

从〇开始深度学习(番外)——下载包 文章目录 从〇开始深度学习(番外)——下载包写在前面正文 写在前面 《从〇开始深度学习&#xff08;番外&#xff09;》系列主要记录一些细碎知识点和技能&#xff0c;与主线并不冲突。如果主线笔记中用得到番外篇的知识或技能&#xff0c;会…...

云原生是什么

云原生是一种构建和运行应用程序的方法&#xff0c;它充分利用了云计算的优势。它不仅仅是指在云上运行应用程序&#xff0c;更重要的是指应用程序的设计、开发、部署和运维方式都充分考虑了云环境的特性&#xff0c;从而能够更好地利用云的弹性、可扩展性和灵活性。 更详细地…...

构建Modbus TCP写多个寄存器指令详解

构建Modbus TCP写多个寄存器指令详解 在Modbus TCP通信中&#xff0c;构建正确的指令对于实现设备间的数据交换至关重要。本文将详细解释如何构建一个Modbus TCP指令&#xff0c;用于向设备地址为1的从站&#xff0c;从地址200&#xff08;0xC8&#xff09;开始&#xff0c;连…...

热更新解决方案3 —— xLua

概述 xLua框架导入和AB包相关准备 xLua导入 其它的导入 C#调用Lua 1.Lua解析器 using System.Collections; using System.Collections.Generic; using UnityEngine; //引用命名空间 using XLua;public class Lesson1_LuaEnv : MonoBehaviour {// Start is called before the fi…...

【Linux】——权限

文章目录 权限的概念创建与删除普通用户普通用户与root用户的切换权限管理权限设置 文件掩码权限的作用粘滞位 权限的概念 在Linux系统中&#xff0c;存在两种主要用户类型&#xff0c;即超级用户root与普通用户。超级用户拥有极高的权限&#xff0c;可以在 Linux 统下执行几乎…...

elasticsearch 使用enrich processor填充数据

文章目录 使用 POST 请求手动插入用户数据1. 创建 Enrich Policy步骤 1.1: 创建 Enrich Policy步骤 1.2: 执行 Enrich Policy 2. 创建 Ingest Pipeline步骤 2.1: 创建 Ingest Pipeline步骤 2.2: 配置 Enrich Processor 参数 3. 使用 Ingest Pipeline步骤 3.1: 使用 Pipeline 进…...

etcd性能调优

性能指标 决定 etcd 性能的关键因素&#xff0c;包括&#xff1a; 延迟 (latency)&#xff1a;延迟是完成操作的时间。吞吐量 (throughput)&#xff1a;吞吐量是在某个时间期间之内完成操作的总数量。当 etcd 接收并发客户端请求时&#xff0c;通常平均延迟随着总体吞吐量增加…...

docker离线安装、linux 安装docker

之前写过一篇docker的离线安装&#xff0c;现在从头再看繁琐了&#xff0c;服务器换了&#xff0c;既然要重搭一遍就要改进一下了。下面步入正题&#xff1a; 1.下载离线软件包 https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz 2.下载安装工具包…...

信息安全工程师-选择题考点总结

密码理论知识 基础理论 一个密码系统至少由明文、密文、加密算法、解密算法和密钥五个部分组成,而其安全性是由密钥决定的。 按照密钥特征的不同,密码体制分为:对称密码体制和非对称密码体制。 按照对明文加密方式的不同,密码体制分为:流密码和分组密码。 非对称密码体…...

【C++】四季分类题目分析与讨论

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目说明&#x1f4af;题目代码实现1.我的做法代码示例解析 2. 老师的类C解法代码示例解析 3. 老师的类C解法代码示例解析 4. 老师新增的基于if的解法代码示例解析 &#x…...

mysqlbinglog如何查看进度呢

要查看 MySQL binlog 的进度&#xff0c;通常是指查看 binlog 文件的当前位置&#xff0c;这对于了解复制进度或者进行恢复操作非常重要。以下是一些常用的方法和 SQL 语句来查看 binlog 进度&#xff1a; 查看当前 binlog 文件和位置&#xff1a; SHOW MASTER STATUS;这个命令…...

CSS系列(11)-- 滤镜与混合模式详解

前端技术探索系列&#xff1a;CSS 滤镜与混合模式详解 &#x1f3a8; 致读者&#xff1a;探索视觉效果的艺术 &#x1f44b; 前端开发者们&#xff0c; 今天我们将深入探讨 CSS 滤镜与混合模式&#xff0c;学习如何创建独特的视觉效果。 滤镜效果详解 &#x1f680; 基础滤…...

Cesium进阶教程——自定义图形、外观、绘图基础、现有着色器移植至Cesium、ShadowMapping、视频GIS、模型压平、卷帘

基础必看 WEBGL基础&#xff08;从渲染管线角度解读&#xff09; 参考路线 http://www.xt3d.online/tutorial/further/article.html 自定义图形 https://blog.csdn.net/m0_55049655/article/details/138908327 https://blog.csdn.net/m0_55049655/article/details/140306837 …...

搭建Tomcat(一)---SocketServerSocket

目录 引入1 引入2--socket 流程 Socket&#xff08;应用程序之间的通讯保障&#xff09; 网卡(计算机之间的通讯保障) 端口 端口号 实例 client端 解析 server端 解析 相关方法 问题1&#xff1a;ServerSocket和Socket有什么关系&#xff1f; ServerSocket Soc…...

Sublime Text 64位:前端及全栈开发利器

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;Sublime Text作为一款高效的文本编辑器&#xff0c;在前端网页开发领域受到广泛青睐&#xff0c;特别是其64位版本在处理大型项目和高内存需求的场景下表现出色。编辑器内置Emmet插件&#xff0c;提供代码高亮、…...

CNCF云原生生态版图-分类指南(一)- 观测和分析

CNCF云原生生态版图-分类指南&#xff08;一&#xff09;- 观测和分析 CNCF云原生生态版图-分类指南一、观测和分析&#xff08;Observability and Analysis&#xff09;&#xff08;一&#xff09;可观测性&#xff08;Observablility&#xff09;1. 是什么&#xff1f;2. 解决…...

Ubuntu本地快速搭建web小游戏网站,公网用户远程访问【内网穿透】

文章目录 前言1. 本地环境服务搭建2. 局域网测试访问3. 内网穿透3.1 ubuntu本地安装cpolar内网穿透3.2 创建隧道3.3 测试公网访问4. 配置固定二级子域名4.1 保留一个二级子域名4.2 配置二级子域名4.3 测试访问公网固定二级子域名前言 网:我们通常说的是互联网;站:可以理解成…...

VMware ubuntu12.04怎么设置静态IP联网

记得刚开始学习嵌入式就是从ubuntu12.04的环境开始学习的C语言&#xff0c;当时没有弄清楚怎么设置静态IP联网&#xff0c;现在写一篇文章。 1.首先&#xff0c;关闭ubuntu的网络&#xff1b; 2.电脑使用的是wifi,将VMware桥接到该网卡上&#xff1b; 3.在虚拟机设置里面选择桥…...

Qt WORD/PDF(一)使用 QtPdfium库实现 PDF 预览

文章目录 一、简介二、下载 QtPdfium三、加载 QtPdfium 动态库四、Demo 使用 关于QT Widget 其它文章请点击这里: QT Widget 姊妹篇: Qt WORD/PDF&#xff08;一&#xff09;使用 QtPdfium库实现 PDF 操作 Qt WORD/PDF&#xff08;二&#xff09;使用 QtPdfium库实现…...

UE5 C++ Subsystem 和 多线程

一.Subsystem先做一个简单的介绍&#xff0c;其实可以去看大钊的文章有一篇专门讲这个的。 GamePlay框架基础上的一个增强功能&#xff0c;属于GamePlay架构的范围。Subsystems是一套可以定义自动实例化和释放的类的框架。这个框架允许你从5类里选择一个来定义子类(只能在C定义…...

23.DDD与微服务

学习视频来源&#xff1a;DDD独家秘籍视频合集 https://space.bilibili.com/24690212/channel/collectiondetail?sid1940048&ctype0 文章目录 DDD与微服务的关系1. DDD可以用微服务实现&#xff0c;也可以不用微服务实现2. DDD是微服务拆分的必须参考项之一3. 微服务架构…...

vue3+ant design vue实现日期选择器不展示清除按钮

1、代码&#xff1a;只需设置:allowClear"false"即可 <a-date-pickerv-model:value"value1":disabledDate"disabledDate"change"queryRate":allowClear"false" />const disabledDate (current: Dayjs) > {// 获取…...

Amazon Bedrock与AWS服务的无缝集成,如何打造智能化应用

在AI和大数据飞速发展的今天&#xff0c;Amazon Bedrock作为AWS的一项新兴服务&#xff0c;正逐渐成为开发者和企业拥抱生成式AI的核心工具。那么&#xff0c;Amazon Bedrock与AWS其他服务结合&#xff0c;究竟能够带来哪些强大的应用场景呢&#xff1f;今天九河云就来和大家探…...

Rust之抽空学习系列(四)—— 编程通用概念(下)

Rust之抽空学习系列&#xff08;四&#xff09;—— 编程通用概念&#xff08;下&#xff09; 1、函数 函数用来对功能逻辑进行封装&#xff0c;能够增强复用、提高代码的可读 以下是函数的主要组成部分&#xff1a; 名称参数返回类型函数体 1.1、函数名称 在Rust中&…...

【Apache paimon】-- 集成 hive3.1.3 异常

目录 1、场景再现 Step1:在 hive cli beeline 执行创建 hive paimon 表 Step2:使用 insert into 写入数据 Step3:抛出异常 2、原因分析 Step1:在 yarn resource manager 作业界面查询 hive sql mr job 的 yarn log Step2:搜索job 使用的 zstd jar 版本 Step3:定…...

SpringCloud微服务实战系列:01让SpringCloud项目在你机器上运行起来

目录 项目选型 项目安装-本地运行起来 软件安装&#xff1a; 项目启动&#xff1a; 总结&答疑 项目选型 软件开发&#xff0c;基本上都不会从0开始&#xff0c;一般都是在其他项目或者组件的基础上进行整合优化迭代&#xff0c;站在巨人肩膀上才能看得更远&#xff0c…...

分布式锁【Redis场景分布式锁篇】

文章目录 1.Redis分布式锁2.分布式锁其它方案1.主动轮询型1.MySQL分布式锁2.Redis分布式锁 2.监听回调型1.Etcd2.Zookeeper 总结 1.Redis分布式锁 锁通常用来控制共享资源&#xff0c;比如一个进程内有多个线程竞争一个数据的使用权限&#xff0c;解决方式之一就是加锁。分布式…...

BGP协议

BGP&#xff08;Border Gateway Protocol&#xff0c;边界网关协议&#xff09;是一种用于在不同网络之间传输可达性信息的路由协议。它是互联网上使用的主要协议之一&#xff0c;用于连接不同的自治系统&#xff08;AS&#xff09;&#xff0c;即由单个实体控。边界网关协议_百…...

iframe webview打开外链内嵌video标签导致视频无法全屏展示

iframe webview打开外链内嵌video标签导致视频无法全屏展示 解决方法iframe 添加属性webview 添加属性 解决方法 iframe 添加属性 <iframe style"width: 100%;height: 100vh;" src"http://xxx.xxx........" allowfullscreen"true" w…...