上海品牌logo设计公司/北京百度seo排名点击器

上海品牌logo设计公司,北京百度seo排名点击器,行业网站开发费用,做网站一定需要虚拟主机吗大模型推理时的尺度扩展定律 FesianXu at 20250212 at Wechat Search Team 前言 大模型的尺度扩展定律告诉我们:『LLM的性能会随着模型的参数量、模型的训练量、模型的训练数据量的增加而增加』。训练存在尺度扩展定律,测试也存在尺度扩展定律&#xff…
大模型推理时的尺度扩展定律
FesianXu at 20250212 at Wechat Search Team

前言

大模型的尺度扩展定律告诉我们:『LLM的性能会随着模型的参数量、模型的训练量、模型的训练数据量的增加而增加』。训练存在尺度扩展定律,测试也存在尺度扩展定律,实践告诉我们在推理时候增大计算量,往往可以获得模型性能收益。那么在给定了计算预算的前提下,如何安排预算才能达到最好的模型效果呢?本篇文章就在讨论这一点。如有谬误请见谅并联系指出,本文遵守CC 4.0 BY-SA版权协议,转载请联系作者并注明出处,谢谢

  • 关键字:尺度扩展定律、推理时计算扩展
  • 发表单位:Google DeepMind

∇ \nabla 联系方式:

e-mail: FesianXu@gmail.com

github: https://github.com/FesianXu

知乎专栏: 计算机视觉/计算机图形理论与应用

微信公众号:机器学习杂货铺3号店


在大语言模型(Large Language Model, LLM)中,存在所谓的尺度扩展规律(Scaling Laws) [2],如Fig 1所示,即是:

LLM的性能会随着模型的参数量、模型的训练量、模型的训练数据量的增加而增加

fig1_llm_scaling_laws

Fig 1. 大模型中的尺度扩展规律,测试集损失随着模型训练量、训练集数据量、模型参数量的增加而递减(即是模型性能递增)。

然而,也有一系列工作告诉我们,在保持LLM不变的情况下,在推理时增加计算量,如以下方法,可以有效地提高模型效果

  1. 增加并行搜索计算量 :模型采样多个答案(有多种采样方法,Best-of-N、Beam Search、Lookahead Search等),通过奖励模型从中挑选一个最佳答案。
  2. 增加串行修改计算量 :模型给出一个初始答案,然后基于这个初始答案进行修正,以此类推直到得到一个最佳答案未知。

第一种方法也可以称之为是通过并行搜索(Search)的方法,第二种则是串行修正模型的输出Token概率分布的方法,文章中提到这两种不同方法,适用于不同的问题类型。那么对于一个特定的问题,在给定了有限计算预算的前提下,应该如何分配预训练计算量、推理时计算量呢?这两种计算量是否可以相互兑换呢(Exchange)?这正是本文想要讨论的,如何分配计算预算,特别是聚焦在如何分配推理时的计算预算。

如公式(1)所示,用 θ q , y ∗ ( q ) ∗ ( N ) \theta^{*}_{q, y^{*}(q)}(N) θq,y(q)(N)表示在给定了输入prompt为 q q q,推理计算预算 N N N的情况下的最佳推理策略, T a r g e t ( θ , N , q ) \mathrm{Target}(\theta,N,q) Target(θ,N,q)表示在给定推理策略 θ \theta θ、计算预算和prompt情况下的输出分布。那么公式(1)就是表示,在给定计算预算 N N N的情况下,最大化模型效果(此处 y = y ∗ ( q ) y=y^{*}(q) y=y(q)表示一个精准预测)得到的推理策略。此处的推理策略 θ \theta θ,不妨简单理解为是并行计算和串行计算的比例以及具体的一些超参数,比如beam width等。
θ q , y ∗ ( q ) ∗ ( N ) = arg ⁡ max ⁡ θ ( E y ∼ T a r g e t ( θ , N , q ) [ I y = y ∗ ( q ) ] ) (1) \theta^{*}_{q, y^{*}(q)}(N) = \arg \max_{\theta} (\mathbb{E}_{y \sim \mathrm{Target}(\theta,N,q)} \big [ \mathbb{I}_{y=y^{*}(q)} \big ]) \tag{1} θq,y(q)(N)=argθmax(EyTarget(θ,N,q)[Iy=y(q)])(1)
显然这个公式还是过于抽象,无法将问题细化。作者认为,给模型的问题难度(Difficulty)可以作为公式(1)的有效代理,即是假如问题难度分为离散的5个档次,那么只要求出不同难度档次下的最优推理策略,就是对公式(1)的有效拟合。那么问题就变成了如何定义一个问题的难度(注意到本文讨论的问题都是数学问题,也就是有明确答案的),作者采用的是基于『后验』的方法,也就是用一个基线LLM模型对问题进行2048次采样,计算这些答案的一次通过率(pass@1),越高的一次通过率说明问题越简单,越低的一次通过率则说明问题越难。

整个实验是在数据数据集MATH [3] 基准上进行的,其中包含了不同难度的高中级别数学问题,所有的实验中都采用分割出的12k个数据进行训练,500个数据进行测试。本文采用的Verifier(用于给答案打分,判断答案的好坏程度)是PRM(Process Reward Model),其能够对结构化答案中每一个步骤进行打分,如Fig 2所示,比起ORM(Output Reward Model)只对整个答案粒度进行打分,是一种更为细粒度的建模方式,具体可见 [4]。本文采用的PRM的具体训练方法请参考原论文 [1],本博文不做详细介绍。

fig2_prm_step_by_step_scoring

Fig 2. PRM可以对答案的每一个步骤进行检验,比起只能对最终答案进行检验的ORM,其打分粒度更细。其中每一行是一个解答步骤,用"\n"隔开,绿色背景越深,代表一个更高的PRM打分,红色背景越深则表示一个低的PRM打分。图来自 [4]。

基于并行搜索的方法

我们先来看到基于并行搜索的方法,本文探索了如Fig 3所示的几种搜索方法:

  1. 最佳N选1(Best-of-N):对问题进行多次采样,得到 N N N完整的回答,然后对所有采样得到的答案过一遍PRM判断答案的质量,然后将PRM打分最高的答案保留作为最终答案。考虑到我们的测试数据集是数学问题,可以认为是有明确的数字答案的,因此本文采用的是加权最佳N选1(Best-of-N Weighted)策略。不难看出,最佳N选1的计算预算即是 N N N

  2. 束搜索(Beam Search):一个问题的回答可以分为多个步骤(Step),在给定了固定数量的束数(The number of beams) N N N和束宽(beam width) M M M后,如Fig 3的中图所示:

    • 第一步: t 0 t_0 t0时刻,首先采样 N N N个答案步骤作为初始化。
    • 第二步:对于这 N N N个步骤进行PRM打分,保留其打分排序前 R = N / M R=N/M R=N/M的步骤。
    • 第三步: t 1 t_1 t1时刻,对于这 R R R个步骤,每一个继续采样 M M M个步骤,这样我们 t 1 t_1 t1时刻就有了 N / M × M = N N/M \times M = N N/M×M=N个答案步骤,和初始化时候的数量一样。
    • 第四步: t 2 t_2 t2时刻,重复第二步到第四步。

    不难发现,束搜索的每一步采样我们都固定采用 N N N个答案步骤,因此最终计算预算和最佳N选1是类似的,都是 N N N

  3. 前瞻搜索(Lookahead Search):是束搜索的『升级版』,每一轮采样都采样 K K K步前瞻(在束搜索中 K = 0 K=0 K=0),然后在通过RPM判断保留哪些采样轨迹,不难看出前瞻搜索的计算量通常都比较大,通常记作 N × ( K + 1 ) N \times (K+1) N×(K+1)

fig2_test_time_scaling_via_search

Fig 3. 对比不同的 PRM 搜索方法。左图:最佳N选1。中间图:束搜索。右图:前瞻搜索。

让我们来看到试验结果,束搜索和前瞻搜索都有推理超参数需要选择:

  • 束搜索:其束宽 M M M需要设定,本文采用了两种设定 M = N M = \sqrt{N} M=N 和固定的 M = 4 M = 4 M=4
  • 前瞻搜索:其前瞻 K K K和束宽 M M M需要设定,本文采用了三种设定:
    • K = 1 , M = N K = 1, M = \sqrt{N} K=1,M=N
    • K = 3 , M = N K = 3, M = \sqrt{N} K=3,M=N
    • K = 3 , M = 4 K = 3, M = 4 K=3,M=4

整个试验结果如Fig 4所示,从左图可以发现,在计算预算短缺的情况下,束搜索明显表现最佳,然而当预算增长到 N = 64 N = 64 N=64以后,最优N选1策略和前瞻搜索就开始赶上了束搜索,最终在高计算预算情况下,最优N选1策略效果拔得头筹。从右图来看,在不同的问题难度下,这三种搜索方法有着不同的优势。在简单问题上(问题难度1和2),当预算不足时候效果最好的是束搜索策略,随着预算增加,束搜索出现了性能下降的情况,这个可以认为是过拟合(也即是过度优化),再简单问题且有着充分预算的情况下,能看到最佳N选1策略的效果是最好的。

然而在困难问题上(问题难度3以上),我们发现几乎在所有预算下,都是束搜索策略的表现明显最好,在最难的问题(难度5)上,甚至只有束搜索还能产生有意义的结果。这个结论是很符合直观印象的,对于简单问题,模型一次性产生正确答案的几率比较高,因此通过最优N选1或者多数投票的策略都能获得很不错的效果,但是遇到困难问题的时候,一个复杂问题通常会有着多个复杂的步骤,祈求模型一次性产生正确答案的几率就很低了,束搜索能够以每一步中最正确的步骤作为种子继续搜索,因此解决复杂问题的能力就更强,当然这也需要更多的算力预算了。

fig3_diff_methods_for_searching_against_PRM_verifiers

Fig 4. 左图:比较针对 PRM 验证器进行搜索的不同方法。我们发现,在低生成预算情况下,束搜索(beam search)表现最佳,但随着预算的进一步增加,改进效果逐渐减弱,并且低于最佳 N 选一(best-of-N)基线。前瞻搜索(lookahead-search)在相同生成预算下通常表现不如其他方法。 右图:按难度级别对束搜索和最佳 N 选一进行比较。每个难度组中的四根柱状图分别对应不断增加的测试时计算预算(4、16、64 和 256 次生成)。在难度较低的问题(第 1 和第 2 组)上,随着预算的增加,束搜索出现了过度优化的迹象,而最佳 N 选一则没有这种情况。在中等难度的问题(第 3 和第 4 组)上,束搜索相较于最佳 N 选一展现出了一致的改进效果。

从上面的实验中,我们发现不同难度的问题需要不同的搜索策略,并且对计算预算的需求也不同,那么从以上试验得到的“计算最优测试时计算分配设置”(Compute-optimal test-time compute strategy)对比基线效果究竟有多大的优势呢?从Fig 5中我们发现,几乎在所有预算下,都是计算最优策略的效果显著最佳,并且对比 N = 16 N = 16 N=16 N = 64 N = 64 N=64,我们发现计算最优的配置几乎可以用基线最优N选1策略的25%计算预算达到相同的效果。

fig5_compute_optimal_trends

Fig 5. 将计算最优的测试时计算分配与 PRM 搜索的基线进行对比。通过根据问题难度的概念来调整测试时计算,我们发现使用最多少 4 倍的测试时计算(例如 16 次生成对比 64 次生成)几乎可以超越 PRM 的最佳 N 选一(best-of-N)。“计算最优 oracle”指的是使用从真实正确性信息中得出的 oracle 难度分组,“计算最优预测”指的是使用 PRM 的预测来生成难度分组。请注意,使用这两种难度分组的曲线在很大程度上彼此重叠。

总的来说,我们有以下结论,直接拿走不谢。

我们发现,任何给定验证器搜索方法的有效性在很大程度上取决于计算预算和具体问题。具体而言,束搜索在处理较难问题以及在较低计算预算下更为有效,而最佳 N 选一方法在处理较易问题以及在较高预算下则更为有效。此外,通过针对特定问题难度和测试时计算预算选择最佳搜索设置,我们几乎可以使用少至 4 倍的测试时计算量来超越最佳 N 选一方法。

基于串行修正的方法

以上是基于并行搜索的测试时提升方法,还有一系列的工作是基于串行修正的,做法也非常直观,让LLM去修改自己之前生成的答案,期望能将之前答案的错误部分修正,然后进行多次迭代直到获得最终的正确答案,这个过程如Fig 6左图的"Sequential Revisions"所示。基于现有的LLM,通过简单的prompt去修正自己的错误答案在推理型任务中被认为是低效的,因此需要微调出一个修正模型(Revision model),这个过程在本文就不介绍了,有兴趣的读者请自行翻阅原论文。

fig6_sequential_revision_vs_paralle_search

Fig 6. 并行搜索(例如,最佳 N 选一)与串行修订的对比。左图:并行采样并行独立生成 N 个答案,而顺序修订则根据之前的尝试依次生成每个答案。 右图:无论是顺序采样还是并行采样,我们都可以使用验证器来确定最佳 N 选一的答案(例如,通过应用最佳 N 选一加权)。我们还可以将部分预算分配给并行采样,部分分配给顺序采样,从而有效地结合这两种采样策略。在这种情况下,我们使用验证器首先在每个顺序链中选择最佳答案,然后在不同链之间选择最佳答案。

虽然这个能够修正自己错误的LLM是至多基于前4个答案进行修正训练的,在测试时候却可以生成长度更长的修改链(很简单,只需要保留最近的4次修正答案作为模型的上文就行了,之前的修正答案可以截断掉),如Fig 7左图所示,尝试更多次的修正能够获得更好的pass@1指标。在给定了 N N N的计算预算前提下,我们既可以进行并行采样 N N N次选取最佳答案(并行搜索策略),也可以串行修改 N N N次选取其中的最佳答案,那么哪种策略的效果更好呢?如Fig 7右图所示,作者发现不管是基于PRM模型校验的结果(也就是最佳N选1的结果),亦或是基于多数服从的结果(也就是投票结果),在不同的计算预算下,基本都是串行修正方案下的效果更有优势。

fig7_revison_model_vs_sequential

Fig 7. 左图:我们修订模型在每个修订步骤的首次通过率(pass@1)。在每个修订步骤之后,首次通过率逐渐提高,甚至超过了它训练时的 4 个修订步骤。我们通过在测试集中对每个问题的 4 个长度为 64 的修订轨迹的性能进行平均,来估计每个步骤的首次通过率。 右图:修订模型的顺序采样与并行采样对比。比较从我们的修订模型并行生成 N 个初始答案与使用模型顺序生成 N 个修订答案时的性能。当使用验证器和多数投票来选择答案时,我们发现使用修订模型顺序生成答案的表现略优于并行生成答案。

我们现在有串行修正和并行搜索两大类方法可以使用计算预算 N N N,如Fig 6右图的"Combining Sequential/Parallel"所示, 如何在这两大类方法中分配计算预算呢?从直观上看,串行修正是对答案的局部错误进行修改,而并行搜索则是从答案整体正确性的角度进行搜索,是一种更为全局的方法。作者用 R a t i o = N ( 串行修正 ) / N ( 并行搜索 ) Ratio = \mathrm{N(串行修正)}/\mathrm{N(并行搜索)} Ratio=N(串行修正)/N(并行搜索) 表示这两种方法的预算分配,如Fig 8左图所示,我们发现增加串行修正计算预算的比例能更容易带来性能提升,然而也存在一个理想比例达到性能的峰值,大概是16左右。

我们再看到不同难度问题下,预算分配的规律。如Fig 8右图所示,在简单问题下,提高串行修正计算预算比例总是能带来性能增长,然而在较难问题上,则需要一个合适的比例,意味着需要引入一定量的并行搜索才能得到更好的性能。这个现象也能解释我们之前的结论,简单问题就算LLM不能一次性给出完整的正确答案,但是能给出基本正确的答案,只需要少量的串行修正就能得到完全正确答案。但是较复杂的问题LLM很难一次性就给出基本正确的答案,而是需要多次搜索后才能找到基本正确的答案,因此需要引入串行搜索的计算。

fig8_vary_ratio_of_seq_parallel

Fig 8. 左图:改变分配给串行修订与并行搜索的生成预算比例。每条线代表在比例变化时一个固定的生成预算。我们使用验证器进行答案选择。我们发现,尽管增加串行修正往往比更多的并行搜索表现更佳,但在更高的生成预算下,存在一个理想比例,能够在两个极端之间取得平衡。 右图:对于 N = 128 的生成预算,在不同难度组中改变顺序与并行的比例。使用基于验证器的选择,我们发现较简单的问题在使用纯串行修正时能够达到最佳性能。而对于较难的问题,则存在一个串行与并行计算之间的理想比例。

作者验证了在考虑了串行和并行的最优计算预算分配下,对于单独并行计算的优势,结果是能够以纯并行计算25%的预算达到相同的模型效果,具体结果就不展开了。总结以上的试验,我们有结论如下,拿走不谢。

我们发现,在串行(例如修订)和并行(例如标准的最佳 N 选一)测试时计算之间存在一种权衡,并且串行与并行测试时计算的理想比例在很大程度上取决于计算预算和具体问题。具体而言,较简单的问题从纯串行的测试时计算中受益,而较难的问题通常在串行与并行计算达到某个理想比例时表现最佳。此外,通过针对给定问题难度和测试时计算预算最优地选择最佳设置,我们能够使用少至 4 倍的测试时计算量来超越并行的最佳 N 选一基线。

以上的试验让我们看到了,在测试阶段进行复杂推理策略带来的模型性能提升,我们不可避免有一个疑问:增加测试阶段的计算预算,是否能替代预训练阶段的计算预算呢?也就是是否能通过复杂的测试策略,从而在减少模型预训练的情况下,提升模型性能。作者最后在本文也进行了试验,不过我们就不继续详细讨论了,作者的结论是:

测试时计算与预训练计算并非一对一“可互换”。对于模型能力范围内的简单和中等难度问题,或者在推理(实时性)要求较低的情况下,测试时计算可以轻松弥补额外的预训练。然而,对于超出基础模型能力范围的具有挑战性的问题,或者在推理(实时性)要求较高的情况下,预训练可能更有效于提升性能。

笔者读后感

无论是学术界还是工业界,测试时尺度扩展都是当前的研究热点,这篇论文的信息量很大,作者做了很多有价值的试验,去验证扩展不同测试策略的计算量带来的性能提升,笔者将其理解为LLM测试时的scaling law,同时也探索了预训练阶段和测试阶段的scaling law,并且说明了预训练在困难问题下是具有不可替代性的。不过本文的试验都是在数学类的问题上进行试验的,结论是否可以泛化到其他问题(比如问答类问题、代码型问题等等),是一个值得继续探索的开放研究问题。同时,作者本文的试验没有考虑交织训练和测试,也就是复杂推理策略输出的答案,可以回馈LLM进行进一步的训练从而提升模型效果。这些都是可以进一步探索的工作。

Reference

[1]. Snell, Charlie, Jaehoon Lee, Kelvin Xu, and Aviral Kumar. “Scaling llm test-time compute optimally can be more effective than scaling model parameters.” arXiv preprint arXiv:2408.03314 (2024).

[2]. Kaplan, Jared, Sam McCandlish, Tom Henighan, Tom B. Brown, Benjamin Chess, Rewon Child, Scott Gray, Alec Radford, Jeffrey Wu, and Dario Amodei. “Scaling laws for neural language models.” arXiv preprint arXiv:2001.08361 (2020).

[3]. Hendrycks, Dan, Collin Burns, Saurav Kadavath, Akul Arora, Steven Basart, Eric Tang, Dawn Song, and Jacob Steinhardt. “Measuring mathematical problem solving with the math dataset.” arXiv preprint arXiv:2103.03874 (2021). aka MATH

[4]. Lightman, Hunter, Vineet Kosaraju, Yura Burda, Harri Edwards, Bowen Baker, Teddy Lee, Jan Leike, John Schulman, Ilya Sutskever, and Karl Cobbe. “Let’s verify step by step.” arXiv preprint arXiv:2305.20050 (2023).

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

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

相关文章

Linux网络基础(协议 TCP/IP 网络传输基本流程 IP VS Mac Socket编程UDP)

文章目录 一.前言二.协议协议分层分层的好处 OSI七层模型TCP/IP五层(或四层)模型为什么要有TCP/IP协议TCP/IP协议与操作系统的关系(宏观上是如何实现的)什么是协议 三.网络传输基本流程局域网(以太网为例)通信原理MAC地址令牌环网 封装与解包分用 四.IP地址IP VS Mac地址 五.So…

网络安全-使用DeepSeek来获取sqlmap的攻击payload

文章目录 概述DeepSeek使用创建示例数据库创建API测试sqlmap部分日志参考 概述 今天来使用DeepSeek做安全测试,看看在有思路的情况下实现的快不快。 DeepSeek使用 我有一个思路,想要测试sqlmap工具如何dump数据库的: 连接mysql数据库&#…

AI绘画软件Stable Diffusion详解教程(2):Windows系统本地化部署操作方法(专业版)

一、事前准备 1、一台配置不错的电脑,英伟达显卡,20系列起步,建议显存6G起步,安装win10或以上版本,我的显卡是40系列,16G显存,所以跑大部分的模型都比较快; 2、科学上网&#xff0…

Linux NAT和代理服务器

目录 0.前言 1.NAT 网络地址转换 1.1 NAT 技术背景 1.2 NAT的定义与分类 1.3 NAT的工作原理 1.4 NAT的缺陷 2.代理服务器 2.1 概述 2.2 正向代理 2.3 反向代理 2.4 NAT 与代理服务器的区别和联系 3.小结 (图像由AI生成) 0.前言 在前面的文章中&#x…

ue5 创建多列StreeView的方法与理解

创建StreeView的多列样式怎么就像是创建单行单列差不多?貌似就是在单行单列中加入了多列widget? 示例代码 DetailTabWidget #pragma once #include "TreeViewItemBase.h"class SDetailTabWidget : public SCompoundWidget {SLATE_BEGIN_ARGS(SDetailTabWidget){…

Linux之yum详解

—— 小 峰 编 程 目录 1、Linux软件的安装方式 2、什么是yum 3、配置网络yum源 4、yum命令 【语法】 【yum常用命令】 1、Linux软件的安装方式 在CentOS系统中,软件管理方式通常有三种方式: rpm安装 、 yum安装 以及 编译安装 。 2、什么是yum…

lvgl运行机制分析

lv_timer_handler() 是 LVGL 的“心脏”:这个函数会依次做以下事情: 处理定时器(如动画、延迟回调)。 读取输入设备(如触摸屏、按键的状态)。 刷新脏区域(仅重绘屏幕上发生变化的区域&#xf…

人大金仓国产数据库与PostgreSQL

一、简介 在前面项目中,我们使用若依前后端分离整合人大金仓,在后续开发过程中,我们经常因为各种”不适配“问题,但可以感觉得到大部分问题,将人大金仓视为postgreSQL就能去解决大部分问题。据了解,Kingba…

LeeCode题库第三十九题

39.组合总和 项目场景: 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同…

大模型应用案例 | 大模型+金融运维,擎创携手某证券创新运维能力新范式

一、当大模型遇上金融运维:一场让告警处理“脱胎换骨”的变革 2022年底,ChatGPT的横空出世让AI技术彻底出圈;短短两年后,大模型已悄然潜入金融行业的“心脏地带”——运维系统。面对指数级暴增的告警信息、碎片化的处理流程&#…

【MongoDB】在Windows11下安装与使用

官网下载链接:Download MongoDB Community Server 官方参考文档:https://www.mongodb.com/zh-cn/docs/manual/tutorial/install-mongodb-on-windows/#std-label-install-mdb-community-windows 选择custom类型,其他默认 注意,此选…

什么是最终一致性,它对后端系统的意义是什么

最终一致性(Eventual Consistency)是分布式系统中的一种一致性模型。与传统的强一致性模型不同,最终一致性并不要求系统在任何时刻都保持一致,而是保证在足够的时间后,所有节点的数据最终会达到一致的状态。换句话说,系统允许短时间内出现数据的不一致性,但最终会通过某…

SQL命令详解之增删改数据

目录 简介 1 添加数据 1.1 基础语法 1.2 SQL 练习 2 修改数据 2.1 基础语法 2.2 SQL 练习 ​3 删除数据 3.1 基础语法 3.2 SQL 练习 总结 简介 在数据库操作中,增、删、改是最基础的操作,它们通常对应着SQL中的INSERT、DELETE和UPDATE命令。…

QT——c++界面编程库

非界面编程 QT编译的时候,依赖于 .pro 配置文件: SOURCES: 所有需要参与编译的 .cpp 源文件 HEADERS:所有需要参与编译的.h 头文件 QT:所有需要参与编译的 QT函数库 .pro文件一旦修改,注意需要键盘按 ctrls 才能加载最新的配置文…

基于专利合作地址匹配的数据构建区域协同矩阵

文章目录 地区地址提取完成的处理代码 在专利合作申请表中,有多家公司合作申请。在专利权人地址中, 有多个公司的地址信息。故想利用这里多个地址。想用这里的地址来代表区域之间的专利合作情况代表区域之间的协同、协作情况。 下图是专利合作表的一部分…

汽车小助手智能体

汽车小助手:智能驱动汽车服务新体验 链接:文心智能体平台AgentBuilder | 想象即现实 文心智能体平台AgentBuilder,是百度推出的基于文心大模型的智能体平台,支持广大开发者根据自身行业领域、应用场景,选取不同类型的…

VSCode轻松调试运行.Net 8.0 Web API项目

1.背景 我一直都是用VS来开发.NetCore项目的,用的比较顺手,也习惯了。看其他技术文章有介绍VS Code更轻量,更方便。所以我专门花时间来使用VS Code,看看它是如何调试代码、如何运行.Net 8.0 WebAPI项目。这篇文章是一个记录的过程…

P8720 [蓝桥杯 2020 省 B2] 平面切分--set、pair

P8720 [蓝桥杯 2020 省 B2] 平面切分--set、pair 题目 分析一、pair1.1pair与vector的区别1.2 两者使用场景两者组合使用 二、set2.1核心特点2.2set的基本操作2.3 set vs unordered_set示例:统计唯一单词数代码 题目 分析 大佬写的很明白,看这儿 我讲讲…

游戏引擎学习第128天

开始 然而,我们仍然有一些工作要做,渲染部分并没有完全完成。虽然现在已经能够运行游戏,而且帧率已经可以接受,但仍然有一些东西需要进一步完善。正在使用调试构建编译版本,虽然调试版本的性能不如优化版本&#xff0…

多元数据直观表示(R语言)

一、实验目的: 通过上机试验,掌握R语言实施数据预处理及简单统计分析中的一些基本运算技巧与分析方法,进一步加深对R语言简单统计分析与图形展示的理解。 数据: 链接: https://pan.baidu.com/s/1kMdUWXuGCfZC06lklO5iXA 提取码: …