谷歌研究科学家:ChatGPT秘密武器的演进与局限

news2024/11/24 20:31:40

9977606974fa6b1b4ff0ca90e60d9221.png

来源|TalkRL

OneFlow编译
翻译|徐佳渝、贾川

 

同样是基于GPT预训练模型,为什么ChatGPT的效果要远远超出GPT-3等前几代模型?答案已经揭晓,成就ChatGPT的秘密武器在于RLHF,也就是人类反馈的强化学习

在预训练阶段,GPT模型学习关于这个世界的一切,而在RLHF阶段,ChatGPT更关注的让模型输出正确、有益的恰当结果,并对结果不断进行微调。

具体而言,RLHF阶段的调优又分为三大步骤:第一步:通过监督学习,用人类对不同提示的“理想”回答数据微调LLM;第二步:LLM 为每个提示提供多个答案,然后由人工评估员对这些答案进行排名(该排名用于训练奖励模型);第三步:用近端策略优化(PPO)模型来优化LLM的奖励模型。

此前,ChatGPT负责人John Schulman介绍了RLHF想法的起源,关键在于他们在语言模型中应用强化学习,使用人类反馈去定义奖励函数。此外,OpenAI的RLHF所使用的诸多技术也是基于前人研究基础上组合而成的成果,其中就包括Natasha Jaques的工作。

Natasha是Google Brain的高级研究科学家,OpenAI的不少工作引用了她所发表的与RLHF和对话模型相关的强化学习论文。在近期Robin Ranjit Singh Chauhan主持的TalkRL播客节目中,她从第三方视角,介绍了对RLHF及其奖励模型相关思路,以及对强化学习研究与AGI发展等方面的看法。

目前,她的研究重点是社交强化学习(Social Reinforcement Learning),开发结合来自社交学习和多智能体训练的见解的算法,以提高AI智能体的学习、泛化、协作以及人机交互能力。2024年1月,她将加入华盛顿大学计算机科学学院担任助理教授。

(以下内容经授权后由OneFlow编译发布,译文转载请联系OneFlow获得授权。来源:https://www.talkrl.com/episodes/natasha-jaques-2)

1

RLHF相关研究与成本效益

Robin Chauhan:你很早就开始了人类反馈的强化学习(RLHF)以及对话模型这方面的类似研究,而且OpenAI发表的许多重要论文引用了你的研究成果。能否谈谈你的研究与OpenAI当前的研究和这些模型之间的联系?

Natasha Jaques:回到2016年,当时我正在思考如何利用预训练语言模型进行微调。具体来说,我关注的是LSTM模型,并尝试使用强化学习对其进行微调。那时,我关注的点不在语言本身,而是音乐生成和分子生成之类的方法,例如生成类似药物分子的方法。

在我看来,分子生成是一个很好的示例。我们可以基于已知分子数据集去训练一个监督模型,并生成新的分子,但是这些分子可能缺乏我们所需的特性,如易于合成药物。因此,我们还需要对分子的“合成可及性(synthetic accessibility)”进行评估。但仅依靠数据集训练是不够的,因为这样无法得到优化的分子。如果仅仅优化分子的合成可及性,也可能会生成一些无用的分子。

因此,我们需要对这两个方面进行评估和优化。对于这一问题,我们可以使用强化学习来优化药物相似性(drug likeness)或合成可及性,但由于数据存在缺陷,这种方法并不完美。

我们提出了一个解决方案:首先在数据集上进行预训练,然后再使用强化学习来优化某些奖励,同时最小化预训练策略与当前策略之间的KL散度。这种方法可以灵活地结合监督学习和强化学习,使用监督学习来获得数据集中的有用信息,同时使用强化学习来优化在数据分布空间内具有高回报的序列。可以看出,这与当前使用的RLHF方法密切相关。

在该技术中,我们首先在数据集上对大型语言模型进行预训练,然后通过人类反馈来优化模型,同时最小化优化模型与预训练先验模型之间的KL散度,这对于RLHF框架有重要意义。

同时,我也在研究从人类反馈中学习的RLHF方法。2019年前后,我们采用了同样的KL控制方法,即让对话模型尝试优化与人类交谈获得的信号,而非让人类评价对话的好坏,同时采用与OpenAI的RLHF算法不同的方式来实现偏好排序。

我们的目标是从与人类对话的隐含信号中学习,而非仅仅依靠人类的评价来进行优化。我们不需要人们额外提供反馈,而是通过分析文本的情感等隐含信号来为模型提供奖励信号。

例如,当对话中的人听起来普遍高兴时,我们就会将其视为正面奖励信号来训练模型。反之,当他们听起来沮丧或困惑时,可能是模型说了一些胡话,我们会将其视为负面奖励信号。因此,我们使用同样的技术来优化这些信号,以提高模型的表现。

Robin Chauhan:这听起来很像ChatGPT现在正在进行的工作。也许函数逼近器(function approximator)略有不同,或是获得反馈的方式有所不同,但从底层原理来看,它实际上基于RLHF。

Natasha Jaques:没错,不过也有一些关键区别。OpenAI采用了不同的方法来处理人类反馈,该方法与我们在2019年的论文中所使用的有所不同,区别在于他们训练了一个奖励模型。他们的方法是请一群人为两个输出评分,然后通过训练模型来逼近这些评分。实际上,早在OpenAI探索使用人类偏好进行深度强化学习研究时,就已经提出过这个想法。

相比之下,我在2019年的研究是关于离线强化学习(offline RL)。当时,我使用了特定输出的实际人类评分作为奖励样本进行训练,但缺乏一个通用的奖励模型。由于训练奖励模型的方法可以进行多次采样,实际上具有良好的可扩展性。

Robin Chauhan:OpenAI联合创始人和PPO算法发明者John Schulman致力于研究RLHF。他谈到ChatGPT的兄弟模型InstructGPT需要大量的人类反馈。此外,需要详细而冗长的评分说明来评估人类反馈,而获取这些人类反馈需要付出相当大的成本。这种成本会限制RLHF的应用吗?还是说成本并不重要,从回报来看完全值得?

Natasha Jaques:在InstructGPT之前,OpenAI就已经在摘要(summarization)方面进行了大量的研究。而在摘要研究中,能够有效运用RLHF的关键因素之一,是投入大量精力获取高质量的人类数据。

在OpenAI的一篇摘要研究论文中,他们采用了一种更好的评估者招募方法,研究人员与评估者共享Slack群组,并回答评估者的问题以确保评估者与研究人员保持一致。这样的投入显然是非常昂贵的。

值得一提的是,在InstructGPT可以看到一个现象:使用RLHF训练的13亿参数模型的表现要优于使用监督学习训练的1750亿参数模型。也就是说,只需使用RLHF,效果就可以赶超100倍大小的模型,而训练100倍大小的模型所需的计算成本相当昂贵。虽然OpenAI并未公开他们用于收集人类数据和训练巨型模型的具体花费金额,但不难发现,由于RLHF可以降低训练更大型号模型的成本,实际上可能更具成本效益。

Robin Chauhan:在我看来,他们通常使用基于on-policy的PPO(Proximal Policy Optimization)方法来处理数据集。这种方法无法重复使用数据,因为它们依赖于当前模型样本数据或非常接近模型的数据。如果对这些数据进行训练后,模型出现偏差,那么该数据集是否仍然有效?或者说该数据集是否可以用于训练其他模型?

Natasha Jaques:这些数据集并非是一次性的。奖励模型的训练过程实际类似于对文本摘要进行比较。这种比较的结果不仅仅取决于策略模型本身,更是一种较为客观普遍的结果,所以具有off-policy特性,可以重复的使用这些数据。

2

奖励模型的局限性

Robin Chauhan:John Schulman指出,虽然人类反馈在训练过程中具有一定有效性,但如果使用相同的奖励模型进行长时间训练,性能可能在某个时刻下降。因此我认为,在每个阶段后需要继续收集额外的人类反馈,而为了进一步提高性能,则可能需要使用全新的数据集。你怎么看?

Natasha Jaques:我不太熟悉OpenAI的工作,不过在我的工作中发现了这一现象:我们尝试通过优化奖励来实现目标,同时也考虑到了数据的可行范围,但很容易被奖励函数所束缚,形成过度依赖。

例如,在训练对话模型时,我们使用了奖励函数,鼓励模型与人类进行对话,同时输出高情感度的文本来获取积极的反馈。但是由于数据资源有限,我们很可能会过度拟合数据和奖励,从而导致模型在新数据上表现不佳。

我们的目标是,在保持模型适应数据分布(data distribution)的同时最大化奖励。我们使用了最大熵强化学习(maximum entropy RL)算法来找到最优策略,行为是否受到限制并不重要,而是会重复使用奖励函数。因此,在使用奖励方式来训练智能体时,它可能会表现得过于积极、礼貌和愉悦。

智能体的行为多样性建立在输出文本的多样性基础之上。我想知道他们的结果是否存在类似的问题,即过度训练奖励模型实际上会导致收益递减,甚至最终变成负面收益(negative return)。此外,奖励模型本身似乎并不完美,通过验证数据(validation data),你会发现其准确率大约在七成左右。因此在训练时,很可能会发生过度拟合。尚不清楚奖励模型是否足够全面,以描述优质的输出。

Robin Chauhan:现有的模型并不擅长忽略干扰项,但这主要是函数逼近问题,而非强化学习的问题。我们似乎还没有找到解决干扰项问题的方法。

Natasha Jaques:可能需要更多基于符号的表示法来实现泛化,以便像卡车和草堆这样的物体能够被地理解。我们不能仅仅依赖归纳式的深度学习,例如只依赖训练数据集中的卡车示例来识别卡车,因为这种方法在面对超出训练数据范围的卡车时将失效。

将语言模型集成到强化学习智能体中很有发展潜力,因为语言是组合性的,或许可以提供组合表示法(compositional representation),从而有助于更好地进行泛化。用语言提示生成逼真图像就证明了组合表示法的潜在优势。

3

基于token级别的强化学习

Robin Chauhan:你之前在该领域做过类似的工作,在token级别上进行强化学习,将每个token视为一个独立的动作(action),并使用“Sequence Tutor”和“Side Learning”等方法。

Natasha Jaques:没错。如果你深入挖掘一下就会发现InstructGPT也是如此。使用策略梯度(policy gradient)的方法更容易,通过计算每个token的概率并对其进行求和,就可以获得整个序列的概率。然而,无论使用哪种方法,最终都是通过增加或减少token级别(token level)的概率来传递模型中的损失。

Robin Chauhan:你的论文中将它描述为一种“bandit算法”。在我看来,这可能会给人一种错觉,认为所有的tokens是一个整体动作(one action)。但你的看法是,其组织方式仍允许我们单独分析每个token的概率。

Natasha Jaques:你可以使用以下公式计算整个序列的奖励:每个单词的奖励相加,再乘以整个输出的概率。然而,在实际操作中,得到整个序列概率的方法是将token级别的概率相加。因此,影响模型的方法实际上是通过修改token级别的概率来实现的。

Robin Chauhan:那这是否意味着在token级别上进行分析没有任何好处?因为我记得John说过,将数据集作为一个整体进行分析更易于处理。

Natasha Jaques:他们采用了一种不同于token级别强化学习的方法。他们将贴现因子(discount factor)设为1,并没有对序列中的所有token应用的相同奖励进行贴现处理,也就是说,序列末尾收到的奖励与序列开头收到的奖励具有相同的价值。这种方法效果还不错。

如果我没记错的话,我们进行过这样的实验:尝试在序列级别和整个对话级别上进行奖励设计,比如说奖励对话的持续时间,这涉及到多个对话回合。

此外,我们还对句子中的token进行均匀分布,实施了在句子级别的奖励设计。然而,在涉及对话长度的问题上,我们仍然采用了贴现因子(discount factor)。这是因为无法确定对话会持续多久,因此需要对这些奖励进行贴现处理。不过对话的时间够长,奖励就会相应提高。虽然如此,优化对话中的贴现奖励(discounted reward)还是相当困难。

4

AGI与AI具身化

Robin Chauhan:你认为当前讨论和思考通用人工智能(AGI)是否有必要,还是说这只是一个遥远的梦想,不值一提?

Natasha Jaques:当谈论通用人工智能(AGI)时,我感到有些沮丧,因为人们通常并不清楚自己正在谈论什么。

AGI的定义并不清晰,试图澄清其含义又会导致循环论证。比如,有人可能会告诉我AGI将在五年内问世,但如果我问他们为何自动驾驶汽车公司的CEO认为推出全自动驾驶汽车需要20年时,就会出现自相矛盾的情况。

在我看来,AGI可以完成人类所能完成的一切,甚至比人类更出色,但如果它不能驾驶汽车,那就不能被视作AGI。尽管有些人认为AGI不需要具备任何具体的物理形态,但这意义何在呢?

撇开这些争论不谈,我确实对人工智能发展的速度感到非常惊讶,甚至有些担忧。如果我们将AGI定义为具有高度颠覆性和快速发展的人工智能技术,我们已经达到了这个阶段。以ChatGPT为例,现在大学不得不重新设计他们的写作课程,因为现在ChatGPT写出来的文章比部分本科生写得还要好。

Robin Chauhan:确实,AGI并不能替代所有工作,但像ChatGPT这样无疑具有巨大的发展前景,这也是我所见过的第一个真正实现通用性的技术。此外,你提到的自动驾驶汽车也是一个很好的例子。尽管许多人过去预测完全自动驾驶汽车将在两到三年内推出,但实际推出时间却一再被推迟。

Natasha Jaques:在短时间内推出全自动驾驶汽车确实很困难,从Andrej Karpathy提到的特斯拉事故就可看出。因为特斯拉自动驾驶系统不能感知一辆半挂车上装载另一个半挂车的情况,所以事故就发生了。简而言之,一辆车上装载了一辆半挂车,而后面这辆半挂车上又装载着另一辆半挂车,最终就造成了“堆砌”。

这些事故发生的原因是,特斯拉自动驾驶系统无法感知训练数据之外的情况。我们知道,如果模型超出了训练数据的支持范围,它们的性能通常会下降。那么如何才能创建一个数据集,能够包含现实世界中可能发生的所有情况呢?实际上这是不可能的,因为世界一直在变化,新的事物也在不断涌现。

我一直在研究如何通过对抗环境设计或者无监督环境设计的方法来训练强化学习智能体。在这些方法中,我们可以找到可能导致模型失败的问题,并针对性地进行训练。相比仅仅依靠有限数据集的监督学习方法,这些新的方法更具可行性。

Robin Chauhan:你提及的AI具身化(embodiment)仍然存在许多问题。但ChatGPT所展示的是,如果我们能够在抽象的文本世界中自由地创作和表达,问题就能迎刃而解了。

Natasha Jaques:对我来说,最吸引我的是具身化智能体,它可以在理解语言的同时做具身化,就拿AGI来说,如果我们要对它下定义,不仅要能理解文本,同时还要理解文本对世界的映射方式,只有这样我们才能对事情进行完整概括。有一个能在相同网络中编码所有东西的智能体是一件很不错的事。

Robin Chauhan:利用现有技术,我们的能力得到了极大提升,可以完成许多以前无法完成的事情。曾经我们主要关注的是文本、抽象思维、代码以及抽象符号等,但现实表明,机器人和动物智能(animal intelligence)才是真正难做的东西,相比之下,人类独有的抽象思维反而更容易实现。我们现在已经达成了之前认为遥不可及的目标,ChatGPT让我们看到了机器人身上缺乏的通用性。

Natasha Jaques:我记得有这样一种说法,对人类来说很难的活动(例如国际象棋和围棋),AI却能够轻松应对。对于AI来说,一些低水平的操纵活动(比如用手从地上捡起东西)才是真正挑战。

我想分享一件趣事,这件事可以较好地说明为什么具身化如此困难。我一直在研究语言条件强化学习智能体(language conditioned RL agents),旨在通过自然语言的指导,让机器完成实际事务。

当时我读了一篇DeepMind的论文,论文主要内容是模仿交互式智能,创造出一种模拟世界,在这个世界里,机器人可以随意走动,这个世界就像是低分辨率的视频游戏一样,机器人得到指令以后,可以做一些事情,比如拿起橘子把它放在床上,或者拿起杯子把它放在桌子上等等。

这个30人的研究团队在这个项目上花了两年时间,投入了数百万美元。他们收集了大量人类数据,并尝试在模拟环境中应用这些数据。由于收集的数据量过于庞大,所以其中可能有半数都是重复数据。而他们则基于这些数据去训练机器人。最后你猜他们成功执行指令的机率是50%。

我认为这个比例比较低。尽管“将橘子放到床上”等指令看似简单,但考虑到项目团队已经投入了大量资金,他们应该能够取得更高的成功率。这也表明了具身化任务的挑战性,即使我们已经成功实现了文本到图像的有效结合,文本到图像的组合生成模型也实现了良好运转,但是物理实体的操作却难以控制,让它们在接收视觉和文本信息的基础上完成简单任务的难度也非常大。

5

回归学界:研究社交强化学习

Robin Chauhan:我听说你打算回到学术界,担任华盛顿大学的助理教授。你打算研究什么?

Natasha Jaques:我已经有一个清晰的想法。在企业招聘时,如果你不能清晰地描述你的计划,他们就不会雇用你。我想做的是社交强化学习,即:当在多智能体环境中进行学习时,我们可以在哪些方面提升AI的性能。目前大多数AI活动都需要人类参与,而人类非常聪明,有多种方式来完成任务。

因此,我们不仅要思考如何使AI灵活地向人类学习,还要思考人类在社交学习方面的技能,即如何确认哪些模型值得学习,以及何时应该依赖向他人学习而不是独立探索。我想开发的是能够与人类交互并且有用的AI。

这就要解决以下问题,例如:如何与一个从未见过的人合作解决任务?如何理解人类想要解决的目标?如何从人类反馈(包括隐式反馈)中进行学习?如何使用自然语言与人类交流以解决任务?如何使用人类反馈训练语言?这些都是我一直在研究的语言条件下的强化学习。

Robin Chauhan:在业内领先实验室工作后再回到学术界是一个很有趣的选择,我敢打赌,很多人会做出相反的选择,特别是考虑到在学术预算有限的情况下,做顶尖AI研究是一个很大的挑战,因为规模化对于AI来说十分重要,但规模化扩展又十分昂贵。

Natasha Jaques:有人可能会认为,如果想要为AI做出贡献,就需要巨大的计算预算和训练大型模型,而学术界怎么可能承担得起这个成本?但实际上,业界常有30-50人组成的团队在致力于研究那些已经被证实可行的想法,所以研究人员可以加入其中,将其扩展成大规模项目。比如谷歌的一些大型团队就正在尝试开展RLHF项目。他们的做法与OpenAI都大同小异,都在尝试扩展编写自己的基础设施。

OpenAI和DeepMind现在越来越注重规模化扩展,而非仅仅发布研究成果。如果你想要从事创新性的、探索新想法的研究方向,并通过实验确认这些想法,那么在业界可能会有更多的挑战。

我比较关注的是研究自由度和能够独立思考并实验的能力。学术界的作用在于提出新的研究思路,并进行概念验证,而工业界则负责将这些思路转化为实用的系统。

以我从事KL控制为例,学术界的探索性工作就对工业界的技术发展起到了积极的推动作用。所以起决定作用的是看个人喜欢做什么,加入基础设施工作团队还是做更多研究。就我个人而言,我更喜欢从事更具有研究性质的工作。

Robin Chauhan:你对AI的贡献已经得到学术界的认可,但公众却鲜为人知。人们只看到OpenAI取得的成就,却不知道它也是站在前人的肩膀上才获得的。

Natasha Jaques:现状确实如此。不过我的目标是实践自己的想法并验证是否可行,进而为AI的发展作出贡献,而不只是追求荣誉。

相关论文

1. Way Off-Policy Batch Deep Reinforcement Learning of Implicit Human Preferences in Dialog(https://arxiv.org/abs/1907.00456

2. Sequence Tutor: Conservative Fine-Tuning of Sequence Generation Models with KL-control(https://arxiv.org/abs/1611.02796)

3. PsiPhi-Learning: Reinforcement Learning with Demonstrations using Successor Features and Inverse Temporal Difference Learning(https://arxiv.org/abs/2102.12

4. Basis for Intentions: Efficient Inverse Reinforcement Learning using Past Experience(https://arxiv.org/abs/2208.04919

5. Fine-Tuning Language Models from Human Preferences(https://arxiv.org/abs/1909.08593), Daniel M. Ziegler et al 2019

6. Learning to summarize from human feedback(https://arxiv.org/abs/2009.01325), Nisan Stiennon et al 2020  

7. Training language models to follow instructions with human feedback(https://arxiv.org/abs/2203.02155), Long Ouyang et al 2022  

其他人都在看

  • “ChatGPT们”的淘金时代

  • 大型语言模型的推理演算

  • GPT-4创造者:第二次改变AI浪潮的方向

  • ChatGPT作者Schulman:我们成功的秘密武器

  • 比快更快,开源Stable Diffusion刷新作图速度

  • OneEmbedding:单卡训练TB级推荐模型不是梦

  • GLM训练加速:性能最高提升3倍,显存节省1/3

欢迎Star、试用OneFlow: github.com/Oneflow-Inc/oneflow/icon-default.png?t=N2N8http://github.com/Oneflow-Inc/oneflow/

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

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

相关文章

SpringMVC的入门案例

三层架构和mvc 三层架构: 我们的开发架构一般都是基于两种形式,一种是C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就是测览器服务器。在 avaEE开发中,几乎全都是基于 B/S 架构的开发。那么在 B/S…

Dream 主题之 Halo 2.0 适配,以及适配前后的一些异同

经过一段时间的适配,目前 Dream 已经发布了基于 Halo 2.x 的第一个预发版本。目前对主题所有功能都完成了适配,但是由于 Halo 2.x 与 1.x 的一些不同,以及 Thyeleaf 模板引擎与 FreeMaker 模板渲染引擎的一些不同的特性,适配前与适…

Python机器学习、深度学习技术提升气象、海洋、水文领域实践应用能力

Python是功能强大、免费、开源,实现面向对象的编程语言,能够在不同操作系统和平台使用,简洁的语法和解释性语言使其成为理想的脚本语言。除了标准库,还有丰富的第三方库,Python在数据处理、科学计算、数学建模、数据挖…

redis docker 集群搭建

redis docker 集群搭建 1. 安装镜像 docker pull redis:latest2. 创建conf模板和脚本 # 创建模板目录 mkdir /data/redis_conf# 创建实际映射目录 mkdir /data/redis_data# 在/data/redis_conf创建conf模板 touch redis_cluster.conf.template# 编写redis_cluster.conf.temp…

详解TCP协议与模拟实现TCP版本的字典翻译客户端与服务器

文章目录TCP协议前言1.TCP协议介绍2. TCP协议的特点3. TCP协议的机制3.1 确认应答机制3.2 超时重传机制3.3 连接管理机制3.3.1 三次握手3.3.2 四次挥手3.4 滑动窗口3.5 流量控制3.6 拥塞控制3.7 延时应答机制3.8 捎带应答机制3.9 面向字节流3.10 异常处理4.TCP socket的介绍5.实…

SureX 全新投资矩阵推出,引领理财新潮流!

前言—— 随着加密货币市场的崛起,越来越多的投资者开始关注这个领域。但是,对于新手投资者来说,加密货币市场充满了各种不确定性和风险。如何在这个市场上游刃有余?SureX 零操作理财产品来袭,为新手投资者提供了一种…

[SWPUCTF] 2021新生赛之(NSSCTF)刷题记录 ①

[SWPUCTF] 2021 新生赛(NSSCTF刷题记录wp)[SWPUCTF 2021 新生赛]gift_F12[第五空间 2021]签到题[SWPUCTF 2021 新生赛]jicao[SWPUCTF 2021 新生赛]easy_md5[SWPUCTF 2021 新生赛]caidao[SWPUCTF 2021 新生赛]include[SWPUCTF 2021 新生赛]easyrce[SWPUCT…

机器人提示词工程师 Robotics Prompt Engineer

还没毕业,在校学习的各项技能都已经没用了,也别急着焦虑和忧伤,工业时代到信息时代,信息时代到智能时代,换代对每个普通人都是非常具有挑战性的,也是新一轮洗牌的开始。 机器人提示词工程师的核心竞争力包括…

【音视频第14天】webRTC协议(1)

目录协议ICESTUNNATTURNSDPSDP结构Signaling and ConnectingSignaling: How peers find each other in WebRTCConnecting and NAT Traversal with STUN/TURNSignalingsdp协议WebRTC如何使用sdpWebRTC会话示例Connecting为什么WebRTC需要一个专用的子系统来连接?Networking rea…

配置 Zabbix Server 监控 Kafka 集群

目录 第一章.环境安装部署 第一章.环境安装部署 1.1安装卡夫卡集群跟zabbix 第二章操作步骤 2.1.记录集群 Zabbix 监控节点地址 2.2.在kafka三个节点安装安装 zabbix-agent2 2.3在 Web 页面中添加 agent 主机 第一章.环境安装部署 1.1安装卡夫卡集群跟zabbix systemctl…

2023年想学习编程语言,该选哪种?

2023年想学习编程语言,该选哪种?在计算机广泛运用于社会的各个行业领域乃至生活日常每个角落的今天,选择学习一门计算机语言真的很不错,它会让你的生活从此与众不同,拥有另一番光景的未来。 根据最新的编程语言排行榜…

聚焦运营商信创运维,美信时代监控易四大亮点值得一试!

2021年11月《“十四五”信息通信行业发展规划》提出,到2025年,我国将建立高速泛在、集成互联、智能绿色、安全可靠的新型数字基础设施体系。 此《规划》让我国运营商信创进一步加速,中国移动、中国电信、中国联通等都先后加入信创大军&#x…

尚硅谷大数据技术Scala教程-笔记05【模式匹配、异常、隐式转换、泛型、scala总结】

视频地址:尚硅谷大数据技术之Scala入门到精通教程(小白快速上手scala)_哔哩哔哩_bilibili 尚硅谷大数据技术Scala教程-笔记01【Scala课程简介、Scala入门、变量和数据类型、运算符、流程控制】尚硅谷大数据技术Scala教程-笔记02【函数式编程】…

性能测试简介

性能测试是通过模拟真实的用户,对软件或系统进行操作,查看其响应时间、响应速度、负载能力等。并分析在不同的业务需求下,系统的负载情况是否满足要求。 性能测试主要从两个方面进行:一方面是性能测试本身,包括压力测试…

【Vue-cli】前端工程化环境准备

一、知识点整理 1、Vue-cli 是Vue官方提供的一个脚手架,用于快速生成一个 Vue 的项目模板。 2、Vue-cli提供了如下功能: 1)统一的目录结构 2)本地调试 3)热部署 4)单元测试 5)集成打包上线 3、需安装依赖…

2023年最新网络安全渗透工程师面试题汇总!不看亏大了!

技术面试问题 CTF 说一个印象深刻的CTF的题目 Padding Oracle->CBC->密码学(RSA/AES/DSA/SM) CRC32 反序列化漏洞 sql二次注入 第一次进行数据库插入数据的时候,仅仅只是使用了 addslashes 或者是借助get_magic_quotes_gpc 对其中的特殊字符进行了转义&…

Java中的文件操作

Java中通过java.io.File类对一个文件(包含目录)进行抽象的描述。注意有File对象,并不代表真实存在该文件。 1.File概述 我们先看看File类中的常见属性、构造方法和方法 1.1属性 修饰符及类型属性说明static StringpathSeparator依赖系统的…

利用ffmpeg源码安装+vscode开发环境搭建详解

前言: 大家好,今天给大家分享一篇ffmpeg开发环境的搭建,我在很早之前也给搭建过ffmpeg源码的安装,但是并没有给大家去搭建开发环境,而且当时的版本也比较老,很多细节问题没有给大家展示如何解决&#xff01…

win11破解以开启多用户同时登陆

1、简述 背景就是有一台电脑,windows11的专业版,上面有一套软件,但是这台电脑还有人需要用。电脑配置还不错,所以就想在创建一个账户,让需要用那套软件的人远程登陆使用。 步骤还不少,有一丢丢啰嗦。 2、首…

IP-GUARD如何通过设备管控策略单独禁用或启用笔记本插SD卡?

sd卡可以通过外置读卡器或者笔记本自带的sd卡槽进行插入使用,我们可以通过设备控制策略禁止sd插入的设备来实现控制; 在控制台-策略-设备控制: 动作:禁止/允许 设备描述:读卡器的设备描述(查看方法参考问题 2 ) 读卡器的描述信息可以在控制面板-设备管理中,usb相关的设…