MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning

news2024/9/22 21:37:09

文章汇总

LoRA的问题

image.png
与FFT相比,低秩更新难以记忆新知识。虽然不断提高LoRA的秩可以缓解这一问题,但差距仍然存在

动机

尽可能地利用相同的可训练参数来获得更高的 Δ W \Delta W ΔW秩。
考虑到预训练权值 W 0 ∈ R d × k W_0\in R^{d\times k} W0Rd×k ,LoRA使用两个低秩矩阵 A A A B B B,它们有 ( d + k ) r (d+k)r (d+k)r个总可训练参数。在相同的可训练参数下,一个方阵 M ∈ R r ^ × r ^ M \in R^{\hat r \times \hat r} MRr^×r^,其中 r ^ = ⌊ ( d + k ) r ⌋ \hat r=\lfloor\sqrt{(d+k)r}\rfloor r^=(d+k)r ,由于 r ≪ m i n ( d , k ) r \ll min(d,k) rmin(d,k),因此这种做法可以获得最高秩。

方法

image.png
该图b秩的大小计算方式为 r ^ = ⌊ ( d + k ) r ⌋ \hat r=\lfloor\sqrt{(d+k)r}\rfloor r^=(d+k)r ,其中 r r r是LoRA中使用的秩,这样的目的是跟LoRA保持同样的训练参数大小
剩下一个头疼的问题是:如何将MoRA这个思路改动放在LoRA的代码里。
这里有一些符号定义,目的就是跟LoRA结合在一起
h = W 0 x + Δ W = W 0 x + f d e c o m p ( M f c o m p ( x ) ) h=W_0x+\Delta W=W_0x+f_{decomp}(Mf_{comp}(x)) h=W0x+ΔW=W0x+fdecomp(Mfcomp(x))
式中 f c o m p : R k → R r ^ f_{comp}:R^k\rightarrow R^{\hat r} fcomp:RkRr^表示将 x x x的输入维数从 k k k减小到 r ^ \hat r r^, f d e c o m p : R r ^ → R d f_{decomp}: R^{\hat r} \rightarrow R^d fdecomp:Rr^Rd表示将输出维数从 r ^ \hat r r^增大到 d d d
式中 Δ W = f d e c o m p ‾ ( f c o m p ‾ ( M ) ) \Delta W=f_{\overline{decomp}}(f_{\overline{comp}}(M)) ΔW=fdecomp(fcomp(M)) f c o m p ‾ : R r ^ × r ^ → R r ^ × k f_{\overline{comp}}:R^{\hat r \times \hat r}\rightarrow R^{\hat r \times k} fcomp:Rr^×r^Rr^×k f d e c o m p ‾ : R r ^ × k → R d × k f_{\overline{decomp}}:R^{\hat r \times k}\rightarrow R^{d\times k} fdecomp:Rr^×kRd×k
对于 f c o m p f_{comp} fcomp f d e c o m p f_{decomp} fdecomp的设计,作者探索了几种实现这些功能的方法。这里列举简单了两种。

Fcomp和Fdecomp的设计

截断维度

image.png
对应的 Δ W \Delta W ΔW为:
image.png
图解如下
f c o m p f_{comp} fcomp只取 x x x的前 r ^ \hat r r^行和前 r ^ \hat r r^列, f d e c o m p f_{decomp} fdecomp用0矩阵来增大维度到 d d d。明显这种方法在压缩过程中会导致大量的信息丢失,
image.png

共享M的行和列

f c o m p : R k → R n × r ^ , f d e c o m p : R n × r ^ → R d f_{comp}:R^k\rightarrow R^{n\times \hat r},f_{decomp}: R^{n\times \hat r} \rightarrow R^d fcomp:RkRn×r^,fdecomp:Rn×r^Rd。对应的 f c o m p , f d e c o m p , Δ W f_{comp},f_{decomp},\Delta W fcomp,fdecomp,ΔW为:
image.png
例子,当 r = 128 r=128 r=128 Δ W ∈ R d × k = R 4096 × 4096 \Delta W \in R^{d\times k}=R^{4096\times 4096} ΔWRd×k=R4096×4096时, r ^ = ⌊ ( d + k ) r ⌋ = ⌊ ( 4096 + 4096 ) × 128 ⌋ = 1024 , M ∈ R r ^ × r ^ = R 1024 × 1024 \hat r=\lfloor\sqrt{(d+k)r}\rfloor=\lfloor\sqrt{(4096+4096)\times 128}\rfloor=1024,M \in R^{\hat r\times \hat r}=R^{1024\times 1024} r^=(d+k)r =(4096+4096)×128 =1024,MRr^×r^=R1024×1024
图解如下
image.png

摘要

低秩自适应(Low-rank adaptation, LoRA)是一种针对大型语言模型的参数有效微调(PEFT)方法。在本文中,我们分析了在LoRA中实现的低秩更新的影响。我们的研究结果表明,低等级的更新机制可能会限制LLM有效学习和记忆新知识的能力。受此启发,我们提出了一种新的方法,称为MoRA,该方法采用方阵来实现高秩更新,同时保持相同数量的可训练参数。为了实现这一目标,我们引入了相应的非参数算子来减少方阵的输入维数和增加输出维数。此外,这些操作确保了权重可以合并回LLM,这使得我们的方法可以像LoRA一样部署。我们在五个任务中对我们的方法进行了全面的评估:指令调整、数学推理、持续预训练、记忆和预训练。我们的方法在内存密集型任务上优于LoRA,在其他任务上也达到了相当的性能。我们的代码可以在https://github.com/kongds/MoRA上找到。

1.介绍

随着语言模型规模的增加,参数有效微调(PEFT) (Houlsby等人,2019)已经成为一种流行的技术,可以使这些模型适应特定的下游任务。与更新所有模型参数的完全微调(FFT)相比,PEFT只修改了一小部分参数。例如,在某些任务中,它可以通过更新不到1%的参数来实现与FFT相似的性能(Hu et al, 2021),这大大降低了优化器的内存需求,并促进了微调模型的存储和部署。在现有的PEFT方法中,Low-Rank Adaptation (LoRA) (Hu et al ., 2021)在LLM尤为突出。LoRA通过通过低秩矩阵更新参数,提高了其他PEFT方法的性能,如提示调优(Lester等人,2021)或适配器(Houlsby等人,2019)。这些矩阵可以合并到原始模型参数中,从而避免了推理过程中额外的计算成本。有许多方法旨在改进LLM的LoRA。然而,大多数方法主要是基于GLUE验证其效率(Wang et al ., 2018),要么通过实现更好的性能,要么通过需要更少的可训练参数。最新方法(Liu et, 2024;Meng等,2024;Zhu等人,2024)利用指令调优任务如Alpaca (Wang等人,2024)或推理任务如GSM8K (Cobbe等人,2021)来更好地评估它们在LLM上的性能。然而,评估中使用的不同设置和数据集使对其进展的理解复杂化。
在本文中,我们在相同设置下对不同任务的LoRA进行了全面评估,包括指令调优、数学推理和持续预训练,,包括指令调整、数学推理和持续的预训练。我们发现,类似lora的方法在这些任务中表现出类似的性能,它们在指令调优方面的表现与FFT相当,但在数学推理和持续预训练方面存在不足。在这些任务中,指令调优主要侧重于与格式的交互,而不是获取知识和能力,这些知识和能力几乎完全是在预训练期间学习的(Zhou et al, 2024)。我们观察到,LoRA很容易适应指令调优中的响应格式,但在其他需要通过微调增强知识和能力的任务中却遇到困难。
对于LoRA观察到的这种限制,一个合理的解释可能是它依赖于低秩更新(Lialin et al, 2023)。低秩更新矩阵 Δ W \Delta W ΔW难以估计FFT中的全秩更新,特别是在需要记忆特定领域知识的持续预训练等内存密集型任务中。由于 Δ W \Delta W ΔW的秩明显小于全秩,这一限制限制了通过微调存储新信息的能力。此外,当前的LoRA变体不能改变低秩更新的固有特征。为了验证这一点,我们使用伪数据进行了一个记忆任务,以评估LoRA在记忆新知识方面的性能。我们发现LoRA的表现明显不如FFT,即使是256这样的大秩也是如此。
image.png
图1:在相同数量的可训练参数下,与LoRA相比,我们的方法的概述。 W W W为模型的冷冻重量。 A A A B B B是LoRA中可训练的低秩矩阵。 M M M是我们方法中的可训练矩阵。灰色部分是用于减少输入维数和增加输出维数的非参数算子。 r r r表示两种方法中的秩。
鉴于这些观察结果,我们引入了一种称为MoRA的方法,该方法采用与低秩矩阵相反的方阵,旨在最大化 Δ W \Delta W ΔW中的秩,同时保持相同数量的可训练参数。例如,当使用8秩,隐藏大小为4096时,LoRA使用两个低秩矩阵 A ∈ R 4096 × 8 A \in R^{4096\times 8} AR4096×8 B ∈ R 8 × 4096 B \in R^{8\times 4096 } BR8×4096 r a n k ( Δ W ) ≤ 8 rank( \Delta W)\le 8 rank(ΔW)8。在参数数相同的情况下,我们的方法使用一个方阵 M ∈ R 256 × 256 M \in R^{256\times 256} MR256×256,秩 r a n k ( Δ W ) ≤ 8 rank( \Delta W)\le 8 rank(ΔW)8,如图1所示。值得注意的是,我们的方法显示出比具有大秩的LoRA更大的容量。为了减小 M M M的输入维数,增大 M M M**的输出维数,我们开发了相应的非参数算子。**此外,这些算子和 M M M可以用 Δ W \Delta W ΔW代替,确保我们的方法可以像LoRA一样合并回LLM。
我们的贡献如下:
1.我们引入了一种新的方法MoRA,它在保持相同数量的可训练参数的情况下,在LoRA中使用方阵代替低秩矩阵来实现高秩更新。
2.我们讨论了四种MoRA的非参数算子,以降低方阵的输入维数和增加输出维数,同时保证权值可以合并回LLM。
3.我们通过五个任务评估MoRA:记忆、指令调整、数学推理、持续预训练和预训练。我们的方法在内存密集型任务上优于LoRA,在其他任务上也达到了相当的性能,这证明了高秩更新的有效性。

2.相关工作

2.1 LoRA

image.png
与其他方法相比,LoRA具有广泛的适用性和鲁棒性,是最流行的用于LLM微调的PEFT方法之一。为了近似FFT中更新后的权值 Δ W \Delta W ΔW, LoRA采用两个低秩矩阵进行分解。通过调整这两个矩阵的秩,LoRA可以相应地修改可训练参数。得益于此,LoRA可以在微调后合并这些矩阵,而不会产生与FFT相比的推理延迟。有许多方法可以进一步改进LoRA,特别是在LLM中的应用。DoRA(Liu et al ., 2024)进一步将原始权重分解为幅度分量和方向分量,并使用LoRA对方向分量进行更新。LoRA+(Hayou et al ., 2024)对两个低秩矩阵采用不同的学习率来提高学习效率。ReLoRA(Lialin et al, 2023)在训练期间将LoRA集成到LLM中,以提高最终 Δ W \Delta W ΔW的秩。

2.2 LLMs微调

尽管LLM在上下文学习方面的表现令人印象深刻,但某些场景仍然需要微调,大致可以分为三种类型。第一种类型,指令调优,旨在更好地将LLM与最终任务和用户偏好结合起来,而不会显着增强LLM的知识和能力(Zhou et al, 2024)。这种方法简化了处理不同的任务,理解复杂的指令的过程。第二种类型涉及复杂的推理任务,如数学问题解决(Collins et al, 2023;Imani et al ., 2023;Yu et al ., 2023),其中一般指令调优在处理复杂的、象征性的、多步骤的推理任务时往往不足。为了提高LLM的推理能力,大多数研究都集中在创建相应的训练数据集上,要么利用更大的教师模型,如GPT-4 (Fu et al ., 2023),要么沿着推理路径改写问题(Yu et al ., 2023)。第三种是持续预训练(Cheng et al ., 2023;Chen et al ., 2023;Han等,2023;Liu et al ., 2023),旨在增强LLM的特定领域能力。与指令调优不同,它需要微调以增加相应的特定领域知识和功能。
然而,LoRA的大多数变体(Kopiczko等人,2023;Lialin等,2023;Dettmers等,2024;Zhu等人,2024)主要使用GLUE中的指令调优或文本分类任务(Wang等人,2018)来验证它们在LLM上的有效性。鉴于与其他类型相比,指令调优需要的微调能力最少,因此它可能无法准确反映LoRA变体的有效性。为了更好地评估他们的方法,最近的研究(Meng et al ., 2024;Liu et al ., 2024;Shi et al ., 2024;Renduchintala等人,2023)使用推理任务来测试他们的方法。但所使用的训练集往往太小,LLM无法有效地学习推理。例如,一些方法(Meng et al, 2024;Renduchintala等人,2023)使用仅7.5K训练样本的GSM8K (Cobbe等人,2021)。与395K训练样本的SOTA方法(Yu et al ., 2023)相比,这个小的训练集在推理上的表现更差,很难评估这些方法的有效性。

3.分析低秩更新的影响

LoRA的关键思想(Hu et al, 2021)涉及使用低秩更新来估计FFT中的全秩更新。形式上,给定一个预训练的参数矩阵 W 0 ∈ R d × k W_0 \in R^{d\times k} W0Rd×k, LoRA采用两个低秩矩阵计算权值更新 Δ W \Delta W ΔW:
h = W 0 x + △ W x = W 0 x + B A x , B ∈ R d × r , A ∈ R r × k , r ≪ m i n ( d , k ) h=W_0x+\triangle Wx=W_0x+BAx,B\in \mathbb{R}^{d\times r},A\in \mathbb{R}^{r\times k},r \ll min(d,k) h=W0x+Wx=W0x+BAx,BRd×r,ARr×k,rmin(d,k)
其中, A ∈ R r × k , B ∈ R d × r A \in R^{r\times k},B\in R^{d \times r} ARr×k,BRd×r表示LoRA中的低秩矩阵。确保 Δ W = 0 \Delta W=0 ΔW=0在训练开始时,LoRA用高斯分布初始化 A A A,用零初始化 B B B。由于 Δ W \Delta W ΔW分解为 B A BA BA r a n k ( Δ W ) ≤ r rank( \Delta W)\le r rank(ΔW)r。与FFT中的全秩更新相比,LoRA中的权重更新的秩明显较低, r ≪ m i n ( d , k ) r \ll min(d,k) rmin(d,k)。LoRA的低秩更新在文本分类或指令调优等任务中表现出与全秩更新相当的性能(Liu et al ., 2024;Meng et al, 2024)。然而,对于复杂推理或持续预训练等任务,LoRA往往表现出更差的性能(Liu et al ., 2023)。
基于这些观察,我们提出了一个假设,即低秩更新容易利用LLM原有的知识和能力来解决任务,但很难处理需要提高LLM知识和能力的任务。
为了证实这一假设,我们研究了LoRA和FFT在通过微调记忆新知识方面的差异。为了避免利用LLM的原始知识,我们随机生成10K对通用唯一标识符(uuid),每对包含两个具有32个十六进制值的uuid。该任务要求LLM根据输入的UUID生成相应的UUID。例如,给定一个UUID,如“205f3777-52b6-4270-9f67-c5125867d358”,模型应该基于10K对训练对生成相应的UUID。这个任务也可以被看作是一个问答任务,而完成它所必需的知识完全来自训练数据集,而不是LLM本身
对于训练设置,我们使用LLaMA-27B为基础模型,每批使用1000对,进行100次epoch。对于LoRA,我们将低秩矩阵应用于所有线性层,并从{1e-4,2e-4,3e-4}搜索学习率以提高性能。我们使用不同秩 r ∈ { 8 , 16 , 32 , 64 , 128 , 256 } r \in \{8,16,32,64,128,256\} r{8,16,32,64,128,256}对LoRA进行实验。对于FFT,我们直接使用3e-5的学习率。
image.png
图2:使用FFT和LoRA进行微调来记忆UUID对的性能。
根据图2,我们观察到与FFT相比,低秩更新难以记忆新知识。虽然不断提高LoRA的秩可以缓解这一问题,但差距仍然存在。与内存任务相比,我们还评估了LoRA和FFT在指令调优方面的性能差距,这只是引入了新的知识。与之前的结果相似(Meng et al ., 2024;Zhu et al ., 2024),我们也发现LoRA与表1中 r = 8 r=8 r=8的小秩FFT的性能相匹配。这表明LoRA可以通过像FFT一样的微调轻松地利用LLM的原始知识。

4.方法

基于以上分析,我们提出了一种新的方法来缓解低秩更新的负面影响。我们的方法的主要思想是尽可能地利用相同的可训练参数来获得更高的 Δ W \Delta W ΔW秩。考虑到预训练权值 W 0 ∈ R d × k W_0\in R^{d\times k} W0Rd×k ,LoRA使用两个低秩矩阵 A A A B B B,它们有 ( d + k ) r (d+k)r (d+k)r个总可训练参数。在相同的可训练参数下,一个方阵 M ∈ R r ^ × r ^ M \in R^{\hat r \times \hat r} MRr^×r^,其中 r ^ = ⌊ ( d + k ) r ⌋ \hat r=\lfloor\sqrt{(d+k)r}\rfloor r^=(d+k)r ,由于 r ≪ m i n ( d , k ) r \ll min(d,k) rmin(d,k),因此可以获得最高秩。
为了实现这一点,我们需要减少 M M M的输入维数,增加 M M M的输出维数。
image.png
式中, f c o m p : R k → R r ^ f_{comp}:R^k\rightarrow R^{\hat r} fcomp:RkRr^表示将 x x x的输入维数从 k k k减小到 r ^ \hat r r^, f d e c o m p : R r ^ → R d f_{decomp}: R^{\hat r} \rightarrow R^d fdecomp:Rr^Rd表示将输出维数从 r ^ \hat r r^增大到 d d d。此外,这两个函数应该是非参数化的运算符,并期望在相应维度的线性时间内执行。它们还应具有相应的功能, f c o m p ‾ : R r ^ × r ^ → R r ^ × k f_{\overline{comp}}:R^{\hat r \times \hat r}\rightarrow R^{\hat r \times k} fcomp:Rr^×r^Rr^×k f d e c o m p ‾ : R r ^ × k → R d × k f_{\overline{decomp}}:R^{\hat r \times k}\rightarrow R^{d\times k} fdecomp:Rr^×kRd×k,将 M M M转化为 Δ W \Delta W ΔW。对于任意 x x x,下列条件都成立:
image.png
式中 Δ W = f d e c o m p ‾ ( f c o m p ‾ ( M ) ) \Delta W=f_{\overline{decomp}}(f_{\overline{comp}}(M)) ΔW=fdecomp(fcomp(M))。若Eq. 3成立,则 M M M可根据 f c o m p f_{comp} fcomp f d e c o m p f_{decomp} fdecomp无损展开为 Δ W \Delta W ΔW。这允许我们的方法像LoRA一样合并回LLM。
对于 f c o m p f_{comp} fcomp f d e c o m p f_{decomp} fdecomp的设计,我们探索了几种实现这些功能的方法。一种简单的方法是截断维度,然后将其添加到相应的维度中。在形式上,这可以表示为:
image.png
对应的 Δ W \Delta W ΔW为:
image.png
然而,这种方法在压缩过程中会导致大量的信息丢失,并且在解压缩过程中只通过附加零向量来修改输出的一部分。为了改进它,我们可以共享M的行和列,以实现更有效的压缩和解压缩。在形式上,这可以表示为:
image.png
这里, g g g g ′ g' g分别表示 M M M中共享同一行和同一列的预定义组。 j ∈ g i j \in g_i jgi表示第 j j j维属于 g g g中的第 i i i个组。 g ~ i ′ \tilde{g}'_i g~i g i ′ {g}'_i gi的反转,表示与 g ′ g' g中的第 g ~ i ′ \tilde{g}'_i g~i个组相关的第 i i i维。对应的 Δ W \Delta W ΔW为:
image.png
对于较大的秩(如 r = 128 r=128 r=128 r = 256 r=256 r=256),共享行和列可能是有效的,因为 Δ W \Delta W ΔW中只有少数行或列共享公共行或列。例如,考虑 r = 128 r=128 r=128时, Δ W ∈ R 4096 × 4096 \Delta W \in R^{4096\times 4096} ΔWR4096×4096,其中, r ^ = 1024 , M ∈ R 1024 × 1024 \hat r=1024,M \in R^{1024\times 1024} r^=1024,MR1024×1024。在这种情况下,只有4行或4列共享同一行或列。相反,对于较小的秩,如 r = 8 r=8 r=8,其中 r ^ = 256 \hat r=256 r^=256,则平均需要16行或列在一组中共享 M M M中的同一行或列,这可能导致效率低下,因为在Eq. 6中压缩过程中存在显着的信息丢失。
为了提高较小秩的性能,我们重塑 x x x而不是直接压缩它,以保留输入信息。在这种情况下, f c o m p : R k → R n × r ^ , f d e c o m p : R n × r ^ → R d f_{comp}:R^k\rightarrow R^{n\times \hat r},f_{decomp}: R^{n\times \hat r} \rightarrow R^d fcomp:RkRn×r^,fdecomp:Rn×r^Rd。对应的 f c o m p , f d e c o m p , Δ W f_{comp},f_{decomp},\Delta W fcomp,fdecomp,ΔW为:
image.png
其中 c o n c a t ( x ) concat(x) concat(x)指的是将 x x x的行连接成一个向量。为了简单起见,我们省略了上述函数中的填充和截断操作符,并将重点放在 d = k d = k d=k的情况下。与共享列和行相比,该方法通过将 x x x重塑为 R n × r ^ R^{n\times \hat r} Rn×r^而不是 R r ^ R^{ \hat r} Rr^来增加额外的计算开销。然而,考虑到 M M M的大小明显小于 W 0 W_0 W0,这个额外的计算对于像8这样的秩来说是非常小的。例如,当对 r a n k rank rank为8 ( r ^ = 256 ) (\hat r = 256) (r^=256)的7B模型进行微调时,该方法仅比以前的方法慢1.03倍。
受RoPE (Su等人,2024)的启发,我们可以进一步改进该方法,通过将旋转算子合并到 f c o m p f_{comp} fcomp中来增强 M M M的表达性,使其能够通过旋转来区分不同的 x i r ^ : ( i + 1 ) r ^ x_{i\hat r:(i+1)\hat r} xir^:(i+1)r^。我们可以将Eq. 8修改为:
image.png
其中, a i a^i ai P i P^i Pi分别表示旋转后 x i r ^ : ( i + 1 ) r ^ x_{i\hat r:(i+1)\hat r} xir^:(i+1)r^ M M M的对应值。在RoPE之后,我们使用 r ^ × r ^ \hat r\times \hat r r^×r^块对角矩阵来实现旋转。然而,我们的方法使用旋转信息使M能够区分 x i r ^ : ( i + 1 ) r ^ x_{i\hat r:(i+1)\hat r} xir^:(i+1)r^,而不是RoPE中的标记位置。我们可以定义 a i a^i ai P i P^i Pi如下:
image.png
其中 θ j = 1000 0 − 2 ( j − 1 ) / r ^ , R θ j , i ∈ R 2 × 2 \theta_j=10000^{-2(j-1)/\hat r},R_{\theta_j,i}\in R^{2\times 2} θj=100002(j1)/r^,Rθj,iR2×2为旋转矩阵:
image.png

5.实验

image.png
image.png

参考资料

论文下载

https://arxiv.org/abs/2405.12130
image.png

代码地址(286 stars)

https://github.com/kongds/MoRA

参考文章

https://mp.weixin.qq.com/s/OxYNpXcyHF57OShQC26n4g

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

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

相关文章

Mac电脑上有什么好玩的肉鸽游戏推荐 苹果电脑怎么玩以撒的结合

Mac电脑尽管在游戏兼容性上可能不及Windows。但是,对于喜欢在Mac上游玩的玩家来说,依然有不少优秀的游戏可以选择,尤其是那些富有挑战性和策略性的肉鸽游戏。此外,对于经典游戏《以撒的结合》,Mac平台也提供了良好的游…

原创作品—数据可视化大屏

设计数据可视化大屏时,用户体验方面需注重以下几点:首先,确保大屏信息层次分明,主要数据突出显示,次要信息适当弱化,帮助用户快速捕捉关键信息。其次,设计应直观易懂,避免复杂难懂的…

论文 | Chain-of-Thought Prompting Elicits Reasoningin Large Language Models 思维链

这篇论文研究了如何通过生成一系列中间推理步骤(即思维链)来显著提高大型语言模型进行复杂推理的能力。论文展示了一种简单的方法,称为思维链提示,通过在提示中提供几个思维链示例来自然地激发这种推理能力。 主要发现&#xff1…

飞睿智能会议室静止雷达人体检测传感器,实时监测使用状态,有人、无人智能感应节能减

在这个科技日新月异的时代,每一个细微的创新都可能成为推动行业创新的关键力量。今天,让我们聚焦于一项看似不起眼却实则潜力无限的技术——飞睿智能静止雷达人体检测传感器,以及它在会议室这一商务交流核心区域中的巧妙应用。想象一下&#…

嵌入式c语言——指针加修饰符

指针变量可以用修饰符来修饰

图吧工具箱:DIY爱好者必备工具合集

名人说:莫道谗言如浪深,莫言迁客似沙沉。 ——刘禹锡《浪淘沙》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、概述二、主要功能1、硬件检测2、测试与故障诊断 三、使用方法四、总结 很…

我是如何渗透电信网络的

TLDR;作为一个电信公司的红队,从该公司的网络监控系统(NMS)获得一个立足点。通过基于HTTP协议的SSH隧道解决了Shell反连问题。通过HTTP获得SSH连接时,使用了Ninja。搭建代理以进行内部网络扫描。使用SS7应用程序访问CD…

斯坦福大学博士在GitHub发布的漫画机器学习小抄,竟斩获129k标星

斯坦福大学数据科学博士Chris Albon在GitHub上发布了一份超火的机器学习漫画小抄,发布仅仅一天就斩获GitHub榜首标星暴涨120k,小编有幸获得了一份并把它翻译成中文版本,今天给大家分享出来! 轻松的画风配上让人更容易理解的文字讲…

瑞萨RH850 RTC计时进位异常

RH850 MCU的RTC(实时时钟)采用BCD(二进制编码的十进制)编码格式,支持闰年自动识别,并具有秒、分、时、日、周、月、年的进位功能。其中,秒和分为60进位,时为12或24进位,周…

救生拉网的使用方法及注意事项_鼎跃安全

水域救援在夏季尤为重要,随着气温的升高,人们更倾向于参与水上活动,如游泳、划船、垂钓等,这些活动虽然带来了乐趣和清凉,但同时也增加了水域安全事故的风险。救生拉网作为水域安全的重要工具之一,其重要性…

Vue3 pdf.js将二进制文件流转成pdf预览

好久没写东西,19年之前写过一篇Vue2将pdf二进制文件流转换成pdf文件,如果Vue2换成Vue3了,顺带来一篇文章,pdf.js这个东西用来解决内网pdf预览,是个不错的选择。 首先去pdfjs官网,下载需要的文件 然后将下载…

前端入门知识分享:如何在HTML或CSS文件中引用CSS文件。

阅读提示:本文仅仅仅适用于刚刚接触HTML和CSS的小白从业者,新人爱好者。自觉身份不符的老鸟们,尽快绕行吧! 什么是CSS?什么是CSS文件。 CSS,全称为Cascading Style Sheets(层叠样式表&#xff…

数字化时代下,财务共享数据分析建设之路

随着人工智能、云计算、大数据、区块链等技术,以及衍生出的各种产品的大发展,使得数字化发展的速度再一次加快,也让数字经济和数字化转型得到了更多人的关注和认可。 在传统经济增长逐渐放缓,市场竞争愈发激烈的局面下&#xff0…

解决虚拟机文件因快照占用硬盘空间较多的情况(压缩虚拟机文件,节省硬盘空间)

在使用虚拟机(Wmware)中,我们经常会在需要的时候拍摄虚拟机快照,尤其是虚拟机运行时的快照,动辄几个G,容易占满硬盘空间,那么有什么方法能够压缩虚拟机文件呢 下面是压缩后的存放虚拟机的文件夹 可以看到节约了大约2…

Banana Pi BPI-F3开发板支持OpenWrt

Banana Pi BPI-F3开源硬件开发板支持OpenWrt了。 基于原生OpenWrt 23.05集成Spacemit Stone 系列芯片的 BSP,包含监管程序接口(OpenSBI)、引导加载程序(U-Boot/UEFI)、Linux 内核、根文件系统(包含各种中间…

安防视频监控/云存储/视频汇聚EasyCVR平台播放设备录像不稳定,是什么原因?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,EasyCVR基于云边端一体化架构,具有强大的数据接入、处理及分发能力,可提供7*24小时实时高清视频监控、云端录像、云存储、录像检索与回看、智能告警…

【微信小程序开发实战项目】——个人中心页面的制作

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

hash

哈希 key->value&#xff0c;借助离散化的思想对数据进行映射&#xff0c;可视为用value代表原本的key 在C中&#xff0c;可使用map当做哈希表使用&#xff0c;将std::hash当做哈希函数使用 hash<Typename>name; size_t valuename(key);数字哈希 哈希函数的设计 方…

更亮更好听的户外耳机,下班之后畅快运动,哈氪聆光体验

在当今市场上&#xff0c;蓝牙耳机种类繁多&#xff0c;现在正值酷热的夏季&#xff0c;有必要准备一副适合户外活动的蓝牙耳机&#xff0c;对此&#xff0c;我觉得气传导耳机更适合在户外锻炼或散步时使用。这种耳机设计通常为后挂式&#xff0c;不仅佩戴舒适&#xff0c;而且…

08-《含笑》

含 笑 含笑花 拉丁文名&#xff1a;Michelia figo &#xff08;Lour.&#xff09;Spreng。常绿灌木&#xff0c;高2-3米&#xff0c;树皮灰褐色&#xff0c;分枝繁密&#xff1b;叶革质&#xff0c;狭椭圆形或倒卵状椭圆形&#xff0c;花期3-5月&#xff0c;果期7-8月。原产中国…