有什么网站是学做吃的/厦门网站优化

有什么网站是学做吃的,厦门网站优化,网络服务器是指,重庆公共资源交易中心网一、全参数微调(Full-Finetune) vs 参数高效微调(PEFT)对比 1. 显存使用差异 全参数微调:需存储所有参数的梯度(如GPT-3 175B模型全量微调需约2.3TB显存)PEFT:以LoRA为例&#xff…

一、全参数微调(Full-Finetune) vs 参数高效微调(PEFT)对比

1. 显存使用差异
  • 全参数微调:需存储所有参数的梯度(如GPT-3 175B模型全量微调需约2.3TB显存)
  • PEFT:以LoRA为例,仅需存储低秩矩阵参数(7B模型使用r=16的LoRA时显存占用减少98%)
  • 实战经验:在A100 80GB显存下,全量微调LLaMA-7B需DeepSpeed Zero3优化,而LoRA可直接单卡运行
2. 性能表现对比
  • 全参数微调
    • 优势:在10万+样本量下表现更优(如GLUE基准平均提升1.2个百分点)
    • 劣势:易过拟合(在1万样本以下时准确率波动达±3%)
  • PEFT
    • 优势:小样本场景泛化性更好(在500样本任务中平均比全调优高2.5%)
    • 劣势:在复杂任务(如数学推理)中存在2-5%的性能损失
3. 典型应用场景
  • 全调优:金融/医疗等对精度要求极高的领域
  • PEFT:快速原型开发(如A/B测试时每天迭代10+版本)、边缘设备部署(显存限制<24GB)

二、LoRA(Low-Rank Adaptation)技术详解

LoRA(Low-Rank Adaptation of Large Language Models)即大语言模型的低秩适应,是一种参数高效的微调方法,核心原理基于以下几个要点:

  • 低秩矩阵引入:LoRA认为大模型的参数化存在过度的情况,即模型在其参数空间内有更小的“内在秩”。所以在微调时,不是直接更新大型模型的全部参数,而是引入两个低秩矩阵(通常记为A和B )。在模型的Transformer架构中,原始权重矩阵保持不变,只对这两个低秩矩阵进行训练更新。
  • 权重矩阵重构:推理时,通过将训练得到的低秩矩阵A和B相乘,得到的矩阵与原始权重矩阵进行叠加(或其他方式结合),重构出微调后的权重矩阵,从而完成模型推理。比如,原本的权重矩阵为W,引入低秩矩阵后重构的权重矩阵变为W’ = W + AB(这里只是一种示意,实际结合方式可能不同) 。
  • 任务适配:利用下游任务的数据,只训练新增的低秩矩阵参数,使模型适应特定任务。由于无需为大多数原始模型权重计算梯度,大大减少了可训练参数的数量和GPU内存需求。例如在自然语言处理的情感分类任务中,用少量相关数据训练低秩矩阵,就能让大模型适配该情感分类任务。

LoRA具有诸多优势,如减少训练成本、保持模型性能、不增加推理延迟等,使其在大模型个性化、资源受限环境和跨领域适应等方面得到广泛应用。

ΔW ≈ BA (B∈R^{d×r}, A∈R^{r×k}

在Transformer架构中:

  • 冻结原始Wqkv参数
  • 新增A矩阵(投影到低秩空间)和B矩阵(恢复原始空间)
  • 计算方式:h = Wx + BAx

矩阵分解实现

class LoRA(nn.Module):def __init__(self, in_features, out_features, r=8):super().__init__()self.A = nn.Parameter(torch.randn(in_features, r))self.B = nn.Parameter(torch.randn(r, out_features))self.scaling = r  # 等价于lora_alpha参数def forward(self, x):return (x @ self.A) @ self.B * (1/self.scaling)

实战调参技巧
以下是LoRA实战微调时一些关键参数的设置技巧:

低秩矩阵相关参数

  1. 秩(Rank):该参数决定了引入的低秩矩阵的秩。较低的秩会减少可训练参数数量和计算量,但模型表达能力受限,可能欠拟合;较高的秩能增强模型表达能力,但会增加计算量和训练时间,还可能过拟合。一般可从较小值(如4、8)开始尝试,根据任务复杂程度和模型表现逐步调整,比如简单文本分类任务秩设为8,复杂生成任务可尝试16 。
  2. lora_alpha(缩放因子) :对LoRA层权重更新起缩放作用,平衡模型对原有权重和新引入权重的调整。较大值使新权重对模型影响更大,可能让模型更快学习特定任务特征,但易忽略预训练知识;较小值则保留更多预训练信息,学习新特征速度较慢。通常可设为8、16、32等,先取中间值32,再根据训练效果调整 。
  3. lora_dropout(随机失活率) :每次训练迭代随机丢弃一定比例(如设为0.1,即10%)的神经元,降低神经元间依赖,防止过拟合,增强泛化能力。若数据量小或模型易过拟合,可适当提高该值;数据量大且模型欠拟合时,可降低该值或设为0。

训练参数

  1. 学习率(Learning Rate) :控制模型参数更新步长。过大的学习率使模型训练不稳定,难以收敛甚至发散;过小的学习率则导致训练速度极慢,耗时增加。LoRA微调时,学习率一般在 1 × 1 0 − 4 1\times10^{-4} 1×104 1 × 1 0 − 5 1\times10^{-5} 1×105 范围,先从 1 × 1 0 − 4 1\times10^{-4} 1×104 尝试,再依据训练损失和验证指标调整。
  2. 训练轮数(Epoch) :模型对整个训练数据集进行训练的次数。轮数过少,模型无法充分学习数据特征,导致欠拟合;轮数过多,可能过拟合,在新数据上表现不佳。通常从3 - 5轮开始,监控训练和验证损失,若验证损失不再下降甚至上升,就停止训练。
  3. 批次大小(Batchsize) :每次送入模型训练的数据样本数量。较大的批次大小能使梯度更新更稳定,加快收敛速度,但会增加内存消耗;较小的批次大小在有限内存下更灵活,且数据多样性有助于模型泛化,但训练过程可能更不稳定。一般从8、16、32等常见值中选择,根据硬件内存和训练稳定性调整 。
  4. 学习率预热参数(Warmup Ratio 和 Warmup Steps)
    • Warmup Ratio(预热比例) :学习率在训练前一定比例阶段从0逐渐增加到预设值,如设为0.1,表示训练前10%阶段进行预热,使模型在初期避免因梯度更新过大而不稳定,平稳进入正常训练状态。
    • Warmup Steps(预热步数) :明确预热阶段的步数限制,使学习率增长更可控,在数据集小或模型复杂时,可避免梯度爆炸,确保训练稳定有效。

其他参数

  1. 最大截断长度(Max Truncation Length) :限定输入文本长度,确保长度一致,避免影响模型性能,同时控制计算成本和内存消耗。根据数据集文本平均长度和模型承受能力设置,如大部分文本不超512个token,可设为512或稍大值。

三、Adapter vs Prefix Tuning架构对比

1. 架构差异
维度AdapterPrefix Tuning
插入位置在FFN层间插入小型MLP在输入层添加可训练前缀
可训练参数每层约0.1%原始参数量固定长度的向量序列(如20个token)
计算开销前向传播增加10-15%内存占用增加5-8%
2. 适用场景
  • Adapter
    • 多任务学习(如同时处理NLI和SST-2任务)
    • 需要快速切换任务的场景(模型切换时间<1秒)
  • Prefix Tuning
    • 对话系统(动态生成个性化prompt)
    • 受限于API接口的场景(如调用闭源模型时添加前缀)
3. 性能对比

在BERT-base模型上的实验数据:

  • 单任务微调:Adapter(87.2%) vs Prefix(85.9%)
  • 多任务微调:Adapter(84.5%) vs Prefix(83.1%)
  • 小样本学习(50样本):Prefix(78.3%) > Adapter(76.1%)

四、KL散度损失在知识蒸馏中的推导与作用

1. 公式推导

KL散度损失公式为:
L K D = − ∑ c = 1 C q t e a c h e r ( c ∣ x ) ⋅ log ⁡ q s t u d e n t ( c ∣ x ) \mathcal{L}_{KD} = -\sum_{c=1}^{C} q_{teacher}(c|x) \cdot \log q_{student}(c|x) LKD=c=1Cqteacher(cx)logqstudent(cx)
其中:

  • q t e a c h e r ( c ∣ x ) = exp ⁡ ( z t e a c h e r ( c ) / T ) ∑ c ′ exp ⁡ ( z t e a c h e r ( c ′ ) / T ) q_{teacher}(c|x) = \frac{\exp(z_{teacher}(c)/T)}{\sum_{c'}\exp(z_{teacher}(c')/T)} qteacher(cx)=cexp(zteacher(c)/T)exp(zteacher(c)/T)
  • q s t u d e n t ( c ∣ x ) = exp ⁡ ( z s t u d e n t ( c ) / T ) ∑ c ′ exp ⁡ ( z s t u d e n t ( c ′ ) / T ) q_{student}(c|x) = \frac{\exp(z_{student}(c)/T)}{\sum_{c'}\exp(z_{student}(c')/T)} qstudent(cx)=cexp(zstudent(c)/T)exp(zstudent(c)/T)
  • T T T为温度超参数(典型值3-10)
2. 关键作用
  • 软化概率分布:通过温度参数 T T T使教师模型的概率分布更平滑,避免硬标签带来的信息损失
  • 知识迁移机制:强制学生模型学习教师模型的决策边界,而非简单的类别区分
  • 正则化效应:在小样本场景中可降低过拟合风险(实验显示当样本量<1000时,KL损失比交叉熵损失提升2.3%准确率)
3. 实战优化技巧
  • 采用动态温度策略:前5个epoch使用 T = 6 T=6 T=6,之后逐步降至 T = 2 T=2 T=2
  • 结合蒸馏损失与交叉熵损失(推荐权重比 α = 0.7 \alpha=0.7 α=0.7
  • 在教师模型输出中加入0.1的label smoothing(提升蒸馏效果1.8%)

五、微调阶段学习率策略设计

在微调阶段,学习率策略的设计需综合多方面因素,以下是一些常见且有效的策略:

  • 初始学习率选择:微调时,通常应选用比预训练阶段更小的学习率,避免对预训练的参数过度调整,导致模型遗忘已有知识。一般范围在 1 × 1 0 − 5 1\times10^{-5} 1×105 5 × 1 0 − 5 5\times10^{-5} 5×105 之间 ,如对小型数据集微调,可设为 1 × 1 0 − 5 1\times10^{-5} 1×105;数据集较大且任务与预训练任务相似性高,可适当提高至 5 × 1 0 − 5 5\times10^{-5} 5×105 左右。
  • 分层设置学习率:深度神经网络不同层功能有差异。底层提取通用低级特征,微调时应使用较小学习率(如 1 × 1 0 − 5 1\times10^{-5} 1×105 或更低)以保留这些特征;中间层学习率适中(如 5 × 1 0 − 5 5\times10^{-5} 5×105 );顶层与特定任务关联大,可设较大学习率(如 1 × 1 0 − 4 1\times10^{-4} 1×104 ) ,让模型快速适应新任务。
  • 学习率衰减策略
    • 固定步数衰减:每训练一定步数或轮次(Epoch),按固定比例降低学习率,如每30个Epoch,将学习率乘以0.1。这种策略简单有效,适合训练过程稳定,有明确训练轮次规划的情况。
    • 余弦退火衰减:学习率随训练过程按余弦函数曲线变化,在训练初期保持较高值,随后逐渐降低,到训练后期在最小值附近波动。该策略能在训练前期快速探索参数空间,后期精细调整,有助于模型收敛。
    • 基于性能的动态衰减:依据验证集性能动态调整学习率。若验证集上的损失或评估指标连续若干轮未提升,就降低学习率,如使用ReduceLROnPlateau调度器,当指标停滞时自动降低学习率。
  • 学习率预热(Warmup):训练开始阶段,以较小学习率逐步增大到预设初始学习率。这有助于模型在初期稳定训练,避免因梯度过大导致不稳定,特别是在微调预训练模型时效果显著。预热步数或比例可依据数据集大小和模型复杂程度设定,如可设置前5% - 10% 的训练步数为预热阶段。
  • 渐进式解冻结合学习率调整:微调预训练模型时,先冻结底层,只训练顶层,并设置相对较大学习率让顶层快速适应新任务;训练几个Epoch后,解冻部分中间层,同时适当降低学习率;随着更多层解冻,学习率进一步降低,使模型整体稳定学习新任务知识。

六、权重初始化加速微调的方法

1. 预训练模型适配初始化
  • 截断正态初始化
    from torch.nn.init import trunc_normal_
    trunc_normal_(new_layer.weight, std=0.02)  # 匹配BERT初始化标准
    
  • 方差缩放初始化
    nn.init.kaiming_uniform_(new_layer.weight, a=math.sqrt(5))
    
2. 特定层初始化策略
层类型初始化方法效果提升(MNLI任务)
嵌入层保持预训练值+0.5%
分类头Xavier均匀初始化+1.2%
LoRA矩阵正交初始化(A矩阵)+0.8%
3. 动态初始化技巧
  • 梯度匹配初始化:根据预训练模型的梯度方向初始化新层(在图像分类任务中减少30%训练步数)
  • 知识蒸馏引导初始化:用教师模型的特征图统计量初始化学生模型(NLP任务收敛速度提升25%)
4. 实际应用案例

在LLaMA-7B微调中:

  1. 对新增的LoRA层使用orthogonal_初始化
  2. 对输出层进行trunc_normal_(std=0.01)
  3. 嵌入层保持冻结
    结果:在数学推理任务中,收敛速度比随机初始化快40%,最终准确率提升1.7%

七、监督微调(SFT)与指令微调(IFT)的数据标注对比

1. 数据标注目的

  • 监督微调(SFT)
    • 目的是让模型学习特定任务的输入输出映射关系,从而在该特定任务上取得较好的性能。例如,在图像分类任务中,标注数据是图像及其对应的类别标签,模型通过学习这些标注数据,学会根据输入图像判断其所属类别。
    • 可以类比为学生针对特定考试题型进行专项训练,目标是在该类型考试中获得高分。
  • 指令微调(IFT)
    • 旨在让模型能够理解和遵循各种自然语言指令,并生成符合指令要求的输出。重点在于提升模型的通用性和对指令的响应能力。例如,输入指令“写一篇关于环境保护的短文”,模型需要生成一篇相关的短文。
    • 类似于学生学习灵活应对各种类型的问题,提高综合解决问题的能力。

2. 数据格式

  • 监督微调(SFT)
    • 数据格式通常较为简单直接,根据任务类型而定。常见的有以下几种:
      • 分类任务:通常是输入样本和对应的类别标签。例如,在电影评论情感分类任务中,数据格式可能是 “评论内容 \t 情感类别(积极/消极)”。
      • 回归任务:输入特征和对应的连续数值标签。比如房价预测任务,数据格式为 “房屋特征(面积、房间数等) \t 房价”。
      • 序列标注任务:输入序列和对应的标签序列。例如,在命名实体识别任务中,数据格式为 “文本序列 \t 标签序列(如人名、地名等)”。
  • 指令微调(IFT)
    • 数据格式一般为(指令,输出)对。指令是自然语言描述的任务请求,输出是模型应该生成的结果。例如:
      • 指令:“总结下面这段新闻的主要内容”,输出:“新闻的主要内容是……”
      • 指令:“将以下句子翻译成英文”,输出:“The translated sentence is…”

3. 标注难度

  • 监督微调(SFT)
    • 对于一些简单的任务,标注难度相对较低。例如,文本情感分类任务,标注者只需根据自己的理解判断文本的情感倾向,不需要太多的专业知识。
    • 然而,对于复杂的任务,标注难度会显著增加。比如医疗影像诊断任务,需要专业的医生进行标注,标注成本高且标注时间长。
  • 指令微调(IFT)
    • 标注难度整体较高。一方面,需要设计出多样化、具有代表性的指令,涵盖各种不同的任务和场景,这需要对模型的应用场景有深入的了解。另一方面,输出的标注需要准确、合理,并且要符合人类的语言习惯和指令的要求。例如,对于一些创意性的指令(如写一首诗),标注者需要具备一定的文学素养。

4. 数据多样性要求

  • 监督微调(SFT)
    • 数据多样性主要围绕特定任务展开。在特定任务范围内,需要涵盖不同特征、不同情况的样本,以提高模型在该任务上的泛化能力。例如,在手写数字识别任务中,需要包含不同字体、不同书写风格的数字样本。
    • 但总体来说,数据的多样性是相对有限的,主要聚焦于特定任务的相关数据。
  • 指令微调(IFT)
    • 要求数据具有极高的多样性。指令需要涵盖各种领域、各种类型的任务,包括但不限于问答、文本生成、摘要提取、翻译等。输出也需要根据不同的指令呈现出多样化的结果。例如,指令可以来自科学、历史、娱乐等多个领域,输出的风格和内容也各不相同。

5. 标注成本

  • 监督微调(SFT)
    • 对于简单任务,标注成本较低,因为标注过程简单,不需要专业知识,普通标注人员即可完成。例如,文本分类任务的标注成本主要是标注人员的时间成本。
    • 对于复杂任务,标注成本会大幅增加,包括专业人员的薪酬、培训成本等。例如,生物医学领域的基因序列标注需要专业的生物学家,标注成本较高。
  • 指令微调(IFT)
    • 标注成本通常较高。由于指令设计和输出标注的难度较大,需要专业的标注人员或领域专家参与。而且,为了保证数据的多样性,需要收集大量不同类型的指令和输出,这也增加了数据收集和标注的成本。

6. 典型标注示例

// SFT标注示例(情感分析)
{"text": "这部电影的特效很棒","label": "positive"
}// IFT标注示例(医疗咨询)
{"instruction": "患者体温39℃并伴有咳嗽,该如何处理?","response": "建议立即就医,可能需要进行血常规和胸片检查"
}

八、多阶段微调的设计逻辑与应用场景

1. 三阶段微调框架
预训练模型
阶段1: 基础能力恢复
阶段2: 领域适配
阶段3: 任务精调
2. 各阶段核心目标
阶段学习率范围数据特征典型技术
恢复阶段1e-5~5e-5通用领域数据(如书籍语料)AdamW优化+余弦退火
适配阶段5e-6~1e-5领域专属数据(如医疗报告)LoRA+前缀调优
精调阶段1e-6~3e-6任务特定数据(如问答对)混合精度训练+梯度裁剪
3. 必要性验证实验

在金融风控模型中:

  • 单阶段微调:F1=78.2%,AUC=0.85
  • 三阶段微调:F1=83.5%,AUC=0.91
  • 原因:阶段1恢复金融术语理解能力,阶段2学习违约模式,阶段3优化欺诈检测阈值
4. 动态阶段切换策略
def adjust_phase(epoch, total_epochs):if epoch < 0.3*total_epochs:return 'recovery'elif epoch < 0.7*total_epochs:return 'adaptation'else:return 'refinement'

九、灾难性遗忘的量化评估方法

1. 基本概念
灾难性遗忘(Catastrophic Forgetting)指模型在学习新任务后,对旧任务的性能显著下降的现象。量化评估需通过具体指标衡量新旧任务性能差异,核心目标是客观反映模型对历史知识的保留能力。

2. 主要量化评估方法

方法类型具体指标定义与计算优缺点
基于任务性能准确率下降(Accuracy Drop)旧任务在学习新任务后的准确率与学习前的差值:
ΔAcc = Acc_old_before - Acc_old_after
简单直观,但未考虑任务难度差异。
遗忘曲线(Forgetting Curve)绘制学习新任务过程中旧任务准确率随训练步数的变化曲线。动态展示遗忘过程,但需多次实验取平均。
保留指数(Retention Index)旧任务在新任务学习后的准确率与初始准确率的比值:
RI = Acc_old_after / Acc_old_initial
归一化处理,便于跨任务比较。
基于模型参数参数距离(Parameter Distance)新旧任务训练后模型参数的余弦相似度或欧氏距离。
D = 1 - cosine_similarity(θ_old, θ_new)
间接反映知识保留,但无法直接关联性能。
Fisher信息矩阵(Fisher Matrix)衡量参数对旧任务的重要性,高值区域参数变化更易引发遗忘。
F_ij = E[∇θ_i L_old * ∇θ_j L_old]
理论依据强,但计算复杂度高。
综合评估负迁移率(Negative Transfer Rate)新任务学习对旧任务的负面影响:
NTR = (Acc_old_before - Acc_old_after) / Acc_old_before
结合新旧任务性能,反映迁移方向。
学习-遗忘平衡比(Learning-Forgetting Balance)新任务增益与旧任务损失的比值:
LFB = (Acc_new_after - Acc_new_before) / (Acc_old_before - Acc_old_after)
评估模型的持续学习效率。

3. 实验设计与典型指标对比
典型实验流程

  1. 预训练阶段:在旧任务上训练模型,记录初始准确率 Acc_old_initial
  2. 新任务学习:在新任务上微调模型,记录新任务准确率 Acc_new_after
  3. 遗忘评估:重新测试旧任务准确率 Acc_old_after,计算遗忘指标(如 ΔAcc, RI)。

对比示例

# 伪代码示例:计算保留指数(RI)
def calculate_retention_index(acc_old_initial, acc_old_after):return acc_old_after / acc_old_initial# 结果示例
RI = calculate_retention_index(0.95, 0.75)  # 0.789 → 表示旧任务性能保留78.9%

4. 可视化方法

  • TensorBoard遗忘曲线:同时绘制新旧任务准确率变化
  • 权重差异分析:对比微调前后模型参数的余弦相似度
  • 梯度可视化:用TensorBoard Graphs监控各层梯度流向

5. 实际应用建议

  1. 多指标结合:同时使用 ΔAccRI,避免单一指标偏差。
  2. 任务平衡:新旧任务难度相近时,ΔAcc 更有效;差异较大时优先用 RI
  3. 动态监控:在训练过程中绘制遗忘曲线,实时调整正则化策略(如 EWC, LwF)。

十、领域特定数据清洗策略对比

1. 医疗领域清洗流程
  1. 去标识化
    • 正则匹配:\d{3}-\d{2}-\d{4}(社保号)
    • 实体替换:用[PATIENT]代替姓名
  2. 内容过滤
    • 排除错误诊断:排除"可能诊断为[疾病]但实际是[其他疾病]"
    • 保留结构化数据:如年龄: [AGE], 性别: [GENDER]
2. 金融领域清洗要点
  • 数值异常检测
    def detect_outlier(df, column):Q1 = df[column].quantile(0.25)Q3 = df[column].quantile(0.75)IQR = Q3 - Q1return df[(df[column] < Q1 - 1.5*IQR) | (df[column] > Q3 + 1.5*IQR)]
    
  • 合规性检查
    • 过滤敏感词:"内幕消息", "操纵股价"
    • 时间戳标准化:统一为YYYY-MM-DD HH:MM:SS
3. 多领域对比表
维度医疗领域金融领域通用领域
隐私保护严格脱敏(HIPAA合规)部分脱敏(保留账号后4位)无特殊要求
数据格式非结构化文本为主结构化表格+文本报告多种格式混合
清洗重点医学术语标准化数值准确性验证去除重复内容
典型工具spaCy NER+正则表达式Pandas+金融规则引擎NLTK+通用清洗脚本
4. 领域适配效果

在不同领域微调时:

  • 医疗:清洗后准确率提升4.2%(MIMIC-III数据集)
  • 金融:异常值过滤使模型方差降低28%(Kaggle贷款数据集)
  • 通用:停用词过滤加速训练速度35%(IMDb评论数据集)

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

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

相关文章

【GPT入门】第21课 langchain核心组件

【GPT入门】第21课 langchain核心组件 1. langchain 核心组件2.文档加载器 Document loader3.文档处理器3.1 langchain_text_splitters3.3 FAISS向量数据库和向量检索主要作用应用场景4. 对话历史管理1. langchain 核心组件 模型 I/O 封装 LLMs:大语言模型 Chat Models:一般…

应急响应靶机练习-Linux2

1.背景 前景需要&#xff1a;看监控的时候发现webshell告警&#xff0c;领导让你上机检查你可以救救安服仔吗&#xff01;&#xff01; 挑战内容&#xff1a; &#xff08;1&#xff09;提交攻击者IP &#xff08;2&#xff09;提交攻击者修改的管理员密码(明文) &#xff08;…

分享一个免费的CKA认证学习资料

关于CKA考试 CKA&#xff08;Certified Kubernetes Administrator&#xff09;是CNCF基金会&#xff08;Cloud Native Computing Foundation&#xff09;官方推出的Kubernetes管理员认证计划&#xff0c;用于证明持有人有履行Kubernetes管理的知识&#xff0c;技能等相关的能力…

【最新】 ubuntu24安装 1panel 保姆级教程

系统&#xff1a;ubuntu24.04.1 安装软件 &#xff1a;1panel 第一步&#xff1a;更新系统 sudo apt update sudo apt upgrade 如下图 第二步&#xff1a;安装1panel&#xff0c;运行如下命令 curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o …

UE4-UE5虚幻引擎,前置学习一--Console日志输出经常崩溃,有什么好的解决办法

有些差异 这么牛逼的引擎&#xff0c;居然有这种入门级别的问题&#xff0c;一触发清理&#xff0c;大概率(80%)会崩溃 无论虚幻5还是UE4都有这个问题&#xff0c;挺烦人的 实在忍不了了&#xff0c;这次&#xff0c;今天 就想问问有什么好的处理方法么&#xff1f;&#x…

【微服务】Nacos 配置动态刷新(简易版)(附配置)

文章目录 1、实现方法2、配置依赖 yaml3、验证效果 1、实现方法 环境&#xff1a;Nacos、Java、SpringBoot等 主要是在boostrap.yaml中的data-id属性下配置refresh:true来实现动态更新 2、配置依赖 yaml 具体的版本参考官方的说明&#xff1a;官方版本说明 <!--读取boo…

设计模式之备忘录设计模式

备忘录设计模式&#xff08;Memento Pattern&#xff09; 在不破坏封闭的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;保存对象的某个状态&#xff0c;以便在适当的时候恢复对象&#xff0c;又叫做快照模式&#xff0c;属于行为模式备忘录模式实现的方式需要保证被保…

【最后203篇系列】016 Q201架构思考

前言 Q200已经达到了我既定的目标&#xff0c;在最近的3个月&#xff0c;我需要进一步完善&#xff0c;达到可以试产的程度。 在这个过程当中&#xff0c;许多知识和体会一直在变。 qtv200到目前&#xff0c;虽然通过习惯(每晚运行离线策略和比对)方式维持了注意力的集中&…

音视频入门基础:RTP专题(20)——通过FFprobe显示RTP流每个packet的信息

通过FFprobe命令&#xff1a; ffprobe -protocol_whitelist "file,rtp,udp" -of json -show_packets XXX.sdp 可以显示SDP描述的RTP流每个packet&#xff08;数据包&#xff09;的信息&#xff1a; 对于RTP流&#xff0c;上述的“packet”&#xff08;数据包&#…

LLM后训练:解锁大型语言模型推理能力的关键路径

引言&#xff1a;从语言生成到逻辑推理的跃迁 大型语言模型&#xff08;LLMs&#xff09;通过预训练掌握了海量语言模式&#xff0c;但其核心缺陷——幻觉、逻辑断裂、价值观偏差——暴露了单纯预训练的局限性。后训练&#xff08;Post-Training&#xff09;作为预训练后的精修…

9.贪心算法

简单贪心 1.P10452 货仓选址 - 洛谷 #include<iostream> #include<algorithm> using namespace std;typedef long long LL; const int N 1e510; LL a[N]; LL n;int main() {cin>>n;for(int i 1;i < n;i)cin>>a[i];sort(a1,a1n);//排序 LL sum 0…

Linux 网络:skb 数据管理

文章目录 1. 前言2. skb 数据管理2.1 初始化2.2 数据的插入2.2.1 在头部插入数据2.2.2 在尾部插入数据 2.2 数据的移除 3. 小结 1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任何承诺。 2. skb 数据管理 数…

批量给 Excel 添加或删除密码保护|Excel 批量设置打开密码和只读密码

我们在将 Excel 文档发送给第三方或者进行存档的时候&#xff0c;对 Excel 文档添加密码保护是非常重要的一个操作。添加保护后的 Excel 文档。就只能有相应权限的用户才能够打开或者编辑操作。尤其是当我们 Excel 文档中内容非常敏感非常重要的时候&#xff0c;添加保护就显得…

蓝耘MaaS平台:阿里QWQ应用拓展与调参实践

摘要&#xff1a;本文深入探讨了蓝耘MaaS平台与阿里QWQ模型的结合&#xff0c;从平台架构、模型特点到应用拓展和调参实践进行了全面分析。蓝耘平台凭借其强大的算力支持、弹性资源调度和全栈服务&#xff0c;为QWQ模型的高效部署提供了理想环境。通过细化语义描述、调整推理参…

使用 Docker 部署前端项目全攻略

文章目录 1. Docker 基础概念1.1 核心组件1.2 Docker 工作流程 2. 环境准备2.1 安装 Docker2.2 验证安装 3. 项目配置3.1 项目结构3.2 创建 Dockerfile 4. 构建与运行4.1 构建镜像4.2 运行容器4.3 访问应用 5. 使用 Docker Compose5.1 创建 docker-compose.yml5.2 启动服务5.3 …

springboot集成flink实现DM数据库同步到ES

前言 今天分享的其实是一个面试上机方案&#xff0c;就是监测DM数据库数据&#xff0c;同步到ES&#xff0c;使用flink实现。基本套路&#xff0c;其实也没啥好说的&#xff0c;非要说也就是&#xff0c;国家队还是很多不跟你玩啊&#xff0c;虽然flink有阿里在背后&#xff0c…

【蓝桥杯】24省赛:数字串个数

思路 本质是组合数学问题&#xff1a; 9个数字组成10000位数字有9**10000可能 不包括3的可能8**10000 不包括7的可能8**10000 既不包括3也不包括77**10000 根据容斥原理&#xff1a;结果为 9 ∗ ∗ 10000 − 8 ∗ ∗ 10000 − 8 ∗ ∗ 10000 7 ∗ ∗ 10000 9**10000 - 8**10…

Unity开发中对象池设计与使用

一、设计目的 为了避免频繁创建和销毁对象&#xff08;例如 UI 元素、事件对象等&#xff09;带来的内存分配和垃圾回收压力&#xff0c;可以使用对象池来管理对象来提高游戏的性能&#xff0c;避免游戏卡顿。 二、代码实现 public interface IRecycle {/// <summary>…

JVM并发编程AQSsync锁ReentrantLock线程池ThreadLocal

并发编程2 synchronized锁实现**AQS****ReentrantLock实现****JUC 常用类**池的概念 ThreadLocalThreadLocal原理内存泄露强引用:软引用弱引用虚引用ThreadLocal内存泄露 synchronized锁实现 synchronized是一个关键字,实现同步,还需要我们提供一个同步锁对象,记录锁状态,记录…

【JavaEE】网络原理之初识

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…