【LMM 008】Instruction Tuning with GPT-4

论文标题:Instruction Tuning with GPT-4
论文作者:Baolin Peng, Chunyuan Li, Pengcheng He, Michel Galley, Jianfeng Gao
作者单位:Microsoft Research
论文原文:https://arxiv.org/abs/2304.03277
论文出处:–
论文被引:254(12/31/2023)
论文代码:https://github.com/Instruction-Tuning-with-GPT-4/GPT-4-LLM,3.7k star
项目主页:https://instruction-tuning-with-gpt-4.github.io/

ABSTRACT

先前的工作表明,使用机器生成的指令遵循(instruction-following)数据对大型语言模型(LLM)进行微调,可使这些模型在新任务上实现出色的零样本能力,而且无需人类编写指令。在本文中,我们首次尝试使用 GPT-4 生成用于 LLM 微调的指令遵循数据。我们对经过指令微调的 LLaMA 模型进行的早期实验表明,GPT-4 生成的 52K 中英文指令遵循数据在新任务上的零样本性能优于之前最先进模型生成的指令遵循数据。我们还收集了来自 GPT-4 的反馈和对比数据,以便进行综合评估和奖励模型训练。

1 INTRODUCTION

大型语言模型(LLMs)已显示出令人印象深刻的泛化能力,如上下文学习(in-context learning)(Brown et al., 2020)和思维链推理(chain-of-thoughts reasoning)(Wei et al., 2022)。为了让 LLMs 遵循自然语言指令完成现实世界的任务,研究人员一直在探索对 LLMs 进行指令微调的方法。

  • 具体做法是利用人工标注的提示和反馈,在各种任务中对模型进行微调(Ouyang et al., 2022);
  • 或者利用人工或自动生成指令的公共基准和数据集进行有监督的微调(Wang et al., 2022b)。
  • 在这些方法中,Self-Instruct tuning(Wang et al., 2022a)是一种简单有效的方法,它通过学习最先进的指令微调教师 LLM 生成的指令遵循数据,使 LLM 与人类意图保持一致。

事实证明,指令微调研究已经产生了有效的方法来提高 LLMs 的零样本泛化能力和小样本泛化能力。

  • 最近,ChatGPT(OpenAI, 2023a)和 GPT-4(OpenAI, 2023b)的成功为利用指令微调改进开源 LLM 提供了巨大的机会。
  • LLaMA(Touvron et al., 2023)是一系列开源 LLM,其性能与 GPT-3 等专有 LLM 不相上下。为了让 LLaMA 遵循指令,Self-Instruct 微调技术以其卓越的性能和低廉的成本被迅速采用。
  • 斯坦福大学的 Alpaca(Taori et al., 2023)使用由 GPT-3.5 生成的 52K 指令遵循样本。
  • Vicuna(Vicuna,2023)使用 shared user-ChatGPT(ShareGPT,2023)的约 700K 指令遵循样本(70K 对话数据)。

为了提升 LLM 的指令微调技术水平,我们首次提出使用 GPT-4 作为self-instruct微调(self-instruct tuning)的教师。我们的论文有以下贡献:

  • GPT-4 数据。我们发布了由 GPT-4 生成的数据,包括 52K 中英文指令遵循数据集,以及由 GPT-4 生成的对三个指令微调模型的输出进行评级的反馈数据

  • 模型与评估。基于 GPT-4 生成的数据,我们开发了经过指令微调的 LLaMA 模型和奖励模型。为了评估经过指令微调的 LLM 的质量,我们使用了在测试样本(即未见过的指令)上进行评估的三个指标:

    • 根据三个对齐标准进行的人工评估
    • 使用 GPT-4 反馈进行的自动评估
    • 在非自然指令上进行的 ROUGE-L 评估(Honovich et al., 2022)

我们的研究验证了使用 GPT-4 生成的数据进行 LLM 指令微调的有效性,并提出了构建由 LLM 驱动的通用指令遵循智能体(Agent)的实用技巧

在这里插入图片描述

2 DATASET

Data Collection.

我们在 Alpaca 数据集(Taori et al., 2023) 中收集的指令遵循数据中重用了 52K 个独特的指令。每条 instruction 都描述了模型应该执行的任务。我们遵循相同的提示策略来考虑有和没有 input 入的情况,这是任务的可选上下文或输入。output 是使用 LLM 对指令实例的答案。在 Alpaca 数据集中,输出是使用 GPT-3.5(text-davinci-003)生成的,但我们改为考虑 GPT-4 进行数据生成。具体来说,我们使用 GPT-4 生成以下四个数据集:

  • 1)English Instruction-Following Data: 对于 Alpaca(Taori et al., 2023)中收集的 52K 条指令,我们为每条指令提供一个英文 GPT-4 答案。具体细节见 Algorithm 1。我们将在今后的工作中使用 GPT-4 和 self-instruct(Wang et al., 2022a)迭代构建我们自己的指令集。
  • 2)Chinese Instruction-Following Data: 我们使用 ChatGPT 将 52K 指令翻译成中文,并要求 GPT-4 用中文回答。这样,我们就可以建立一个基于 LLaMA 的中文指令遵循模型,并研究指令调优的跨语言泛化能力。
  • 3)Comparison Data: 我们要求 GPT-4 对自己的回答从 1 到 10 进行评分。此外,我们还要求 GPT-4 比较和对三个模型的响应进行评分,包括:GPT-4,GPT-3.5 和 OPT-IML (Iyer et al., 2022) 。这将用于训练奖励模型。
  • 4)Answers on Unnatural Instructions:GPT-4 答案是在 68K instruction-input-output 三元组的核心数据集上解码的(Honovich et al., 2022)。该子集用于量化 GPT-4 与我们的指令微调模型在规模上的差距。

Data Statistics.

图 1 比较了 GPT-4 和 GPT-3.5 的英语输出响应集合。提取了每个输出的动词词根和直接宾语名词;计算了每个响应集合上唯一的动词名词对的频率。

  • 图 1 (a) 和 (b) 显示了频率高于 10 的动名词对
  • 图 1 © 比较了两组中频率最高的 25 对动名词对
  • 图 1(d) 比较了序列长度的频率分布

GPT-4 产生的序列往往比 GPT-3.5 长。Alpaca 中的 GPT-3.5 数据显示的输出分布比 GPT-4 生成的输出分布的尾部更长,这可能是因为 Alpaca 数据集涉及一个迭代数据收集过程,每次迭代都会删除类似的指令实例,而我们目前的一次性数据生成过程中不存在这种情况。尽管过程简单,GPT-4 生成的指令遵循数据还是表现出了更出色的对齐性能,这一点在后面的实验中将有所体现

在这里插入图片描述

在这里插入图片描述

3 INSTRUCTION-TUNING LANGUAGE MODELS

3.1 SELF-INSTRUCT TUNING

我们使用 LLaMA 7B 检查点进行监督微调,训练了两个模型:

  • i)LLaMA-GPT4 是在由 GPT-4 生成的 52K 英文指令遵循数据上训练的,其分布如图 1 所示;
  • ii)LLaMA-GPT4-CN 是在由 GPT-4 生成的 52K 中文指令遵循数据上训练的。

为了进行公平比较,我们按照(Taori et al. 2023)中的训练计划进行公平比较。这些模型用于研究 GPT-4 的数据质量以及在一种语言中对 LLM 进行指令调优时的跨语言泛化特性。

3.2 REWARD MODELS

从人类反馈中强化学习(RLHF)旨在使 LLM 行为符合人类偏好,从而使其更加有用。奖励建模是 RLHF 的一个关键组成部分,它将问题表述为一项回归任务,即根据提示(prompt)和响应(response)预测标量奖励(Askell et al., 2021 ;Ouyang et al., 2022)。这种方法通常需要大规模的比较数据,对同一提示下的两个模型响应进行比较(Ouyang et al., 2022)。由于标注对比数据的成本较高,Alpaca,Vicuna,Dolly(Databricks,2023)等现有开源工作不涉及 RLHF。同时,最近的研究表明,GPT-4 能够识别和修正自身的错误,并准确判断响应的质量(Peng et al., 2023;Bai et al., 2022;Madaan et al., 2023;Kim et al., 2023)。因此,为了促进对 RLHF 的研究,我们使用 GPT-4 创建了对比数据,详见第 2 节。

为了评估数据质量,我们训练了一个基于 OPT 1.3B 的奖励模型(Iyer et al., 2022)来对不同的回答进行评分。对于涉及一个提示 x 和 K 个回答的每个对比数据实例,GPT-4 会为每个回答分配一个分数 s∈ [1, 10]。从这个实例中构建出 C 2 K C^K_2 C2K 个唯一的对,每个对为(yl, yh),其对应的分数为 sl < sh。以 θ 为参数的奖励模型 rθ 的训练目标为:min log(σ(rθ (x, yh) - rθ (x, yl))),其中 σ 为 sigmoid 函数。对比数据的分布如图 2 所示。

在这里插入图片描述

4 EXPERIMENTAL RESULTS

4.1 BENCHMARKS

众所周知,LLM 评估仍然是一项重大挑战。我们的目标是在 GPT-4 数据上对未见指令的self-instruct微调模型进行评估,以研究它们在任意任务中遵循指令的能力。具体来说,我们在研究中使用了三个已建立的数据集:

  • User-Oriented-Instructions-252(Wang et al., 2022a)是一个人工编辑的数据集,包含 252 个指令,其动机来自 71 个面向用户的应用程序,如 Grammarly,StackOverflow,Overleaf,而不是经过充分研究的 NLP 任务。
  • Vicuna-Instructions-80(Vicuna,2023)是由 gpt-4 合成的数据集,包含 80 个基线模型认为具有挑战性的问题。除通用指令外,还有 8 个类别,包括:knowledge, math, Fermi, counterfactual, roleplay, generic, coding, writing, common-sense。
  • Unnatural Instructions(Honovich et al., 2022)是由 text-davinci-002 根据 15 个手动构建的示例,使用 3-shot in-context-learning 合成的数据集,包含 68,478 个样本。

4.2 HUMAN EVALUATION WITH ALIGNMENT CRITERIA

为了评估经过指令微调的 LLM 的对齐质量,我们遵循了 Anthropic Askell et al.(2021)提出的对齐标准:如果一个助手是有益的,诚实的和无害的(Helpful, Honest, and Harmless,HHH),那么它就是对齐的。这些标准用于评估人工智能系统与人类价值观的一致性

  • Helpfulness:是否有助于人类实现目标。能准确回答问题的模型就是有用的。
  • Honesty:是否提供真实信息,并在必要时表达其不确定性,以避免误导人类用户。提供虚假信息的模型是不诚实的。
  • Harmlessness:是否不会对人类造成伤害。产生仇恨言论或宣扬暴力的模型不是无害的。

根据 HHH 对齐标准,我们使用 Amazon Mechanical Turk 对模型生成结果进行人工评估。界面见附录 A.1 节。按照(Wang et al., 2022a;Taori et al., 2023),我们考虑使用 252 个面向用户的指令进行评估。我们在图 3 中以饼图的形式显示了人工评估结果。

在这里插入图片描述

首先,我们比较了两个经过指令微调的 LLaMA 模型生成的响应质量,这两个模型分别根据 GPT-4 和 GPT-3 生成的数据进行了微调。请注意,将 LLaMA 与 GPT-3 对齐相当于斯坦福 Alpaca 模型。从图 3(a)中,我们可以观察到:

  • (i) 在 “Helpfulness” 标准方面,GPT-4 以 54.12% 的票数明显胜出。而 GPT-3 只赢得了 19.74% 的选票。
  • (ii) 在 “Honesty” 和 “Harmlessness” 标准方面,大多数投票属于平局(Tie)类别,大大高于获胜类别,但 GPT-3 (Alpaca) 略胜一筹。

其次,我们在图 3(b) 中比较了 GPT-4 和教师模型 GPT-4 的 LLaMA 模型。这三个标准的观察结果非常一致: 经过 GPT-4 指令微调的 LLaMA 与原始 GPT-4 的表现类似。我们的结论是,从 GPT-4 生成的数据中学习,可以在未见过的教学任务中获得与原始 GPT-4 非常相似的性能,这为开发最先进的指令遵循 LLM 提供了一个很好的方向

4.3 COMPARISONS WITH SOTA USING AUTOMATIC EVALUATION

Automatic Evaluation with GPT-4.

继(Vicuna, 2023)之后,我们使用 GPT-4 自动评估不同模型对(Vicuna, 2023)中 80 个未见问题生成的回答。我们首先收集了两个聊天机器人的回答,包括 LLaMA-GPT-4 (7B) 和 GPT-4,然后使用(Vicuna, 2023)中其他聊天机器人发布的回答,包括 LLaMA (13B),Alpaca (13B),Vicuna (13B),Bard (Google, 2023) 和 ChatGPT。在每次评估中,我们都会要求 GPT-4 对两个模型的响应质量进行评分,分数从 1 到 10 不等。我们将所有模型分别与 ChatGPT 和 GPT-4 等强有力的竞争模型进行比较。结果如图 4 所示。

在这里插入图片描述

对于使用 GPT-4 指令微调的 LLaMA,我们提供了两组解码结果:

  • i)每题一个答案,这被视为基准解码结果。
  • ii)每个问题五个答案。对于后者,我们使用奖励模型对回答进行排序,然后将其分为五个子集,从最前面的 1 到最前面的 5 依次排列。我们将这五个分组与基线进行比较,并在图 4(a,b)中显示了相对分数。

ChatGPT 和 GPT-4 的评估结果与我们的奖励模型所建议的顺序一致,这证明了反馈数据的价值和奖励模型的有效性。

我们在图 4(c,d)中对所有聊天机器人进行了比较。使用 GPT-4 对 LLaMA 进行指令微调后,其性能往往高于使用 text-davinci-003 进行微调(Alpaca)和不进行微调(LLaMA): 7B LLaMA GPT4 的性能优于 13B Alpaca 和 LLaMA。但是,与 GPT-4 等大型商业聊天机器人相比仍有差距。

在这里插入图片描述

我们在图 5 中进一步研究了所有聊天机器人的中文性能。我们首先使用 GPT-4 将聊天机器人的英文回复翻译成中文。我们还用 GPT-4 将英文问题翻译成中文,以获得答案。图 5(a)和(b)分别显示了与 GPT-4 翻译和生成的中文回复的对比。有两个有趣的观察结果:

  • i)我们发现 GPT-4 评估的相对分数指标(Vicuna,2023)在不同的对手模型(即 ChatGPT 或 GPT-4)和语言(即英语或中文)方面都是相当一致的;
  • ii)仅就 GPT-4 的结果而言,翻译的回答比生成的中文回答表现更优,这可能是因为 GPT-4 是在比中文更丰富的英语语料库中训练的,这导致了更强的英语指令遵循能力。在图 5(c)中,我们展示了所有被要求用中文回答的模型的结果。

在这里插入图片描述

我们在图 6 中比较了 LLaMA-GPT4 与 GPT-4 和 Alpaca 非自然指令。从平均 ROUGE-L 分数来看,Alpaca 优于其他两个模型。我们注意到,LLaMA-GPT4 和 GPT4 的性能随着真实响应长度的增加而逐渐提高,最终在长度超过 4 时表现出更高的性能。在不同的子集中,LLaMA-GPT4 都能紧跟 GPT-4 的行为。当序列长度较短时,LLaMA-GPT4 和 GPT-4 都能生成包含简单基本答案的回复,但会添加额外的单词使回复更像聊天,这可能会导致 ROUGE-L 分数较低。

5 RELATED WORK

Instruction Tuning.

LLM 的指令调优是 NLP 领域越来越热门的研究方向(Zhong et al., 2021;Ouyang et al., 2022;Weiet al., 2021)。现有工作旨在提高开发流水线中三个因素的质量和规模,包括:

  • 指令遵循数据
  • 基础语言模型
  • 评估基准

每个小组通常维护自己的流水线。例如,

  • 扩展指令微调语言模型(Chung et al., 2022)就是建立在 FLAN(Wei et al., 2021)之上的。
  • PromptSource 包含一个不断增长的提示集合(也称为 P3:Public Pool of Prompts)(Bach et al., 2022)。
  • T0 是通过多任务提示训练在 P3 上训练的一系列模型(Sanh et al., 2021)。
  • (Iyer et al., 2022)考虑了 OPT 模型的指令微调问题,采用了一个更大,更全面的基准 OPT-IML Bench,涵盖了 FLAN(Wei et al., 2021),Super-NaturalInstructions(Wang et al., 2022b)和 UnifiedSKG(Xie et al., 2022)。

Open-Source Efforts.

鉴于 ChatGPT 所展示的 LLMs 的广泛能力,开源模型引起了人们的极大兴趣,并推动了开发开放,通用,基于文本且符合人类价值观的助手的工作。早期的基础 LLMs 尝试包括:

  • BLOOM(Scao et al., 2022)
  • GPT-J(Wang 和 Komatsuzaki,2021)
  • GPT-NEO(Black et al., 2021)
  • OPT(Zhang et al., 2022)
  • LLaMA(Zhang et al., 2023)

为了对齐 LLM 与聊天助手,Open-Assistant(LAION-AI,2023)建立在 GPT-J 的基础上,而 Alpaca/Vicuna 则建立在 LLaMA 的基础上。此外,OpenFlamingo(Awadalla et al., 2023)和LLaMA-Adapter(Zhang et al., 2023)将LLaMA与图像输入连接起来,为构建开源多模态LLM铺平了道路。

6 CONCLUSIONS

本文展示了使用 GPT-4 进行指令微调的有效性。我们发布了使用 GPT-4 生成的 52K 个中英文指令遵循实例,以及由 LLaMA 微调的模型检查点。我们希望我们的经验观察和资源将有利于开源和通用 LLM 的开发,从而更好地配合人类完成任务的价值观。

这是一项正在进行的工作,可以从以下几个方面进行探索:

  • i)数据和模型规模。GPT-4 数据大小为 52K,基础 LLaMA 模型大小为 7B。Vicuna 收集了约 70 万个转换回合(根据多回合 ShareGPT 数据估算),并使用 13B 的 LLaMA 模型。因此,继续收集更多的 GPT-4 指令遵循数据,并与 ShareGPT 数据相结合,训练更大的 LLaMA 模型以获得更高的性能,将是大有可为的。
  • ii)RLHF。奖励模型仅用于解码阶段,这表明对比数据有望为 LLM 训练提供有用的反馈。继续使用奖励模型训练 LLM 是很自然的,例如使用机器生成的反馈进行强化学习。

A IMPLEMENTATION DETAILS

A.1 HUMAN EVALUATION

我们实现了HHH对齐标准(Askell et al.,2021),并使用Amazon Mechanical Turk来评估模型生成的响应,界面截图如图7所示。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

海外服务器2核2G/4G/8G和4核8G配置16M公网带宽优惠价格表

腾讯云海外服务器租用优惠价格表&#xff0c;2核2G10M带宽、2核4G12M、2核8G14M、4核8G16M配置可选&#xff0c;可以选择Linux操作系统或Linux系统&#xff0c;相比较Linux服务器价格要更优惠一些&#xff0c;腾讯云服务器网txyfwq.com分享腾讯云国外服务器租用配置报价&#x…

计算机组成原理 存储器概述,主存系统模型和RAM和ROM

文章目录 存储器概述基本概念存储器层次结构存储器分类性能指标 主存系统模型和结构存储元结构主存寻址 RAM和ROMRAM概念RAM对比DRAM刷新集中刷新分散刷新异步刷新 ROM 存储器概述 #mermaid-svg-EjCg9aMsdPUw7lra {font-family:"trebuchet ms",verdana,arial,sans-se…

Docker 安装Mysql

目录 Docker Mysql安装 ✨安装和配置mysql ✨远程连接mysql远程连接 MySQL 是世界上最流行的开源数据库。根据 DB-Engines的调查数据&#xff0c;MySQL 是第二受欢迎的数据库&#xff0c;仅次于 Oracle 数据库。MySQL在过去由于性能高、成本低、可靠性好&#xff0c;已经成…

计算机丢失mfc110.dll的5种常用解决方法分享

丢失动态链接库文件&#xff08;DLL&#xff09;是比较常见的一种情况&#xff0c;其中之一就是“计算机丢失mfc110.dll”。这个问题通常是由于系统文件损坏或缺失引起的&#xff0c;给计算机的正常运行带来了困扰。为了解决这个问题&#xff0c;我总结了以下五种方法&#xff…

项目进度管理:制定项目计划的要点

项目管理过程中不可避免项目实际进度和计划不一致的情况&#xff0c;无论是工作提前完成还是进度落后&#xff0c;一开始的进度计划都脱不了干系。 任务的明确性、计划的制定&#xff0c;皆有其规矩可循。一接到项目或任务便急匆匆地开始&#xff0c;边做边调整只会带来无尽的…

Acrel-EIoT能源物联网云平台助力电力物联网数据服务 ——安科瑞 顾烊宇

摘要&#xff1a;Acrel-EIOT能源物联网云平台是一个结合在线销售的互联网商业模式&#xff0c;为分布广泛的互联网用户提供PAAS服务的平台。安科瑞物联网产品安装完成后&#xff0c;用户可以通过手机扫描代码轻松实现产品访问平台&#xff0c;无需注意调试和平台运行过程&#…

内网离线搭建之----nginx配置ssl高可用

一、证书生成 1.生成服务端私钥 openssl genrsa -des3 -out server.key 2048 2.去除server.key密码 ps&#xff1a;否则每次用到都需要输入密码 openssl rsa -in server.key -out server.key 3.生成证书的签名 ps&#xff1a;使用机构颁发证书的到这一步就可以了&#xff…

【谷歌云】注册谷歌云 创建Compute Engine

文章目录 一、Google Cloud注册1.1 账号信息1.2 付款信息验证1.3 验证成功 二、Compute Engine创建2.1 启动Compute Engine API2.2 创建实例2.3 新建虚拟机实例2.4 等待实例创建完成2.5 查看虚拟机配置信息2.6 创建防火墙规则2.7 SSH远程连接虚拟机 三、参考链接 一、Google Cl…

c语言和python区别哪个难,c语言和python区别大不大

大家好&#xff0c;给大家分享一下c语言和python区别主要用来写什么&#xff0c;很多人还不知道这一点。下面详细解释一下。现在让我们来看看&#xff01; Python可以说是目前最火的语言之一了&#xff0c;人工智能的兴起让Python一夜之间变得家喻户晓&#xff0c;Python号称目…

基于双闭环PI和SVPWM的PMSM控制器simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 双闭环PI控制器设计 4.2 SVPWM技术 4.3 控制系统实现 5.完整工程文件 1.课题概述 基于双闭环PI和SVPWM的PMSM控制器simulink建模与仿真。系统包括逆变桥、PMSM、park变换、clark变换、SVPWM、PI控…

API集群负载统计 - 华为OD统一考试

OD统一考试 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 某个产品的RESTful API集合部署在服务器集群的多个节点上&#xff0c;近期对客户端访问日志进行了采集&#xff0c;需要统计各个API的访问频次&#xff0c;根据热点信息在服务器节点之间做负载…

快速打通 Vue 3(三):Vue3 中的 watch 监听器与新特性

很激动进入了 Vue 3 的学习&#xff0c;作为一个已经上线了三年多的框架&#xff0c;很多项目都开始使用 Vue 3 来编写了 这一组文章主要聚焦于 Vue 3 的新技术和新特性 如果想要学习基础的 Vue 语法可以看我专栏中的其他博客 Vue&#xff08;一&#xff09;&#xff1a;Vue 入…

原生JS做别踩白块游戏

思路 创建初始一个按钮并为他添加点击监听开始创建随机方块&#xff0c;并样式_box.offsetTop speed px结合setInterval使得方块不断下移创建和删除方块的原则&#xff1a;box.offsetTop>0&#xff08;可视区上部没有方块了&#xff09;时候需要创建一行方块&#xff0c;…

【HarmonyOS开发】通过媒体查询,实现一次开发,多端部署

媒体查询&#xff08;Media Queries&#xff09;是一种在CSS中使用的技术&#xff0c;用于根据设备的特性和属性&#xff08;如屏幕宽度、设备类型等&#xff09;来应用不同的样式规则。通过媒体查询&#xff0c;可以根据不同的设备或屏幕尺寸为用户提供优化的布局和样式。 1、…

three.js: gltf模型设置发光描边

效果&#xff1a; 代码 &#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red"></div><div style"padding: 10px…

C++Qt6 哈夫曼编码求解 数据结构课程设计 | JorbanS

一、 问题描述 在进行程序设计时&#xff0c;通常给每一个字符标记一个单独的代码来表示一组字符&#xff0c;即编码。在进行二进制编码时&#xff0c;假设所有的代码都等长&#xff0c;那么表示 n 个不同的字符需要 位&#xff0c;称为等长编码。如果每个字符的使用频率相等&…

【算法系列 | 11】深入解析查找算法之—插值查找

序言 心若有阳光&#xff0c;你便会看见这个世界有那么多美好值得期待和向往。 决定开一个算法专栏&#xff0c;希望能帮助大家很好的了解算法。主要深入解析每个算法&#xff0c;从概念到示例。 我们一起努力&#xff0c;成为更好的自己&#xff01; 今天第11讲&#xff0c;讲…

阿里云服务器端口PPTP 1723放行教程

阿里云服务器安装PPTP VPN需要先开通1723端口&#xff0c;阿里云服务器端口是在安全组中操作的&#xff0c;阿里云服务器网aliyunfuwuqi.com来详细说明阿里云服务器安全组开放PPTP VPN专用1723端口教程&#xff1a; 阿里云服务器放行1723端口教程 PPTP是点对点隧道协议&#…

八大算法排序@选择排序(C语言版本)

目录 选择排序概念算法思想示例步骤1步骤2步骤...n最后一步 代码实现时间复杂度空间复杂度特性总结 选择排序 概念 选择排序&#xff08;Selection Sort&#xff09;是一种简单直观的排序算法。基本思想是在未排序的序列中找到最小&#xff08;或最大&#xff09;元素&#xf…

数据库之索引

1. 索引的定义 索引是一个排序的列表&#xff0c;包含索引字段的值和其对应的行记录的数据所在的物理地址。 索引的作用&#xff1a; 加快表的查询速度&#xff0c;还可以对字段排序。 2. 索引的工作方式 有了索引后&#xff0c;要根据条件查询某行数据时&#xff0c;需要先…