当前位置: 首页 > news >正文

政安晨的AI大模型训练实践 九 - 熟悉LLaMA Factory的详细参数含义-基本概念理解一下

政安晨的个人主页:政安晨

欢迎 👍点赞✍评论⭐收藏

希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!

小伙伴铁子们,上手先熟悉起来训练工具的每一个参数,很重要。

参照我以前的文章先把您的工具搞起来,然后开干!LLaMAFactory可以成为你启动训练的手边工具。

深度理解一下所有可能的参数:

本篇就科普了: 

1. 什么是SFT训练?

SFT(Supervised Fine-Tuning,监督微调)是大语言模型训练过程中的一种重要方法。在大语言模型的训练流程中,通常会经历预训练、微调和对齐等阶段,而SFT就是微调阶段的核心技术之一。

SFT的基本概念

在SFT阶段,已经通过大规模无标注语料库进行过预训练的语言模型会被进一步用有标注的数据集进行微调。这些数据集通常是经过人工精心挑选和标注的,包含了特定任务或领域的样本,比如问答、文本生成、情感分析等。通过在这些有标注的数据上进行监督学习,模型可以更好地理解和掌握特定任务的要求和规则,从而提高其在实际应用中的性能。

SFT的工作原理

  1. 选择合适的微调数据 :根据目标任务的特点和需求,选择与之匹配的有标注数据集。这些数据集应该能够充分覆盖任务的各种情况和变化,以帮助模型全面地学习和理解任务。

  2. 设计微调任务 :针对具体的应用场景,设计相应的微调任务。这可能包括定义输入输出格式、设定评估指标等。例如,在问答任务中,需要明确问题和答案的表示方式;在文本生成任务中,则要规定生成文本的长度、风格等要求。

  3. 执行监督学习 :利用选定的数据集和设计好的任务,对预训练模型进行监督学习。在这个过程中,模型会不断调整其参数,以最小化预测结果与真实标签之间的差异,从而逐步提升其在特定任务上的表现。

  4. 评估和迭代优化 :完成一轮微调后,需要对模型的性能进行评估,并根据评估结果进行必要的调整和优化。这可能涉及到增加更多的训练数据、修改任务设计、调整模型结构等。通过反复迭代,最终使模型达到满意的性能水平。

SFT的优势

  • 针对性强 :SFT能够使模型专注于特定任务的学习,相比仅依赖于预训练模型,更能满足实际应用场景的需求。
  • 效果显著 :通过在有标注数据上进行监督学习,SFT可以有效提升模型在特定任务上的准确性和鲁棒性。
  • 灵活性高 :SFT适用于各种不同类型的任务和领域,可以根据具体需求灵活地选择和设计微调数据及任务。

总之,SFT是大语言模型训练流程中不可或缺的一环,它通过在有标注数据上进行监督学习,使模型能够更好地适应和胜任特定任务,从而为实际应用提供更高质量的语言处理服务。

2. 什么是RM训练?

在大语言模型的训练过程中,Reward Modeling(奖励建模,简称RM) 是一种用于对齐模型输出与人类偏好的技术。它通常应用于强化学习阶段(如 RLHF,Reinforcement Learning from Human Feedback ),以帮助模型生成更符合人类期望的文本。

RM的基本概念

奖励建模的核心思想是通过构建一个奖励函数(Reward Function),来评估模型生成的文本质量,并根据该奖励信号指导模型优化其输出。奖励函数通常由一个专门的奖励模型(Reward Model)来实现,这个模型会基于人类反馈数据进行训练,从而学会预测人类对不同文本输出的偏好。

RM的工作流程

  1. 收集人类反馈数据

    • 为了训练奖励模型,首先需要收集大量的对比数据或评分数据。这些数据通常是通过人工标注的方式获得的。
    • 例如,给定同一个输入(如一个问题或提示),让模型生成多个不同的回答,然后由人类标注者对这些回答进行排序或打分,选出他们认为最好的回答。
  2. 训练奖励模型

    • 使用收集到的人类反馈数据,训练一个奖励模型。这个模型的任务是学习如何为模型生成的文本分配奖励分数。
    • 奖励模型通常是一个小型的神经网络,它的输入是模型生成的文本,输出是对该文本的奖励分数。
    • 在训练过程中,奖励模型的目标是尽量准确地预测人类对文本的偏好(例如,高分对应更好的回答,低分对应较差的回答)。
  3. 强化学习优化

    • 一旦奖励模型训练完成,它就可以被用来指导大语言模型的强化学习过程。
    • 在强化学习中,模型会根据奖励模型给出的分数调整其生成策略,逐步生成更符合人类偏好的文本。
    • 具体来说,强化学习算法(如 PPO,Proximal Policy Optimization)会利用奖励模型的反馈来更新模型参数,使得模型生成的文本能够最大化奖励分数。

RM的关键作用

  • 对齐人类偏好 :奖励建模的核心目标是让模型生成的文本更加符合人类的期望和偏好。通过引入人类反馈,模型可以避免生成不符合人类价值观的内容(如不相关、有害或低质量的文本)。

  • 提供可量化的奖励信号 :奖励模型为强化学习提供了一个明确的优化目标。相比于直接使用人类反馈,奖励模型可以更快地评估大量生成的文本,并为模型提供连续的奖励信号。

  • 提升生成质量 :通过奖励建模和强化学习的结合,模型可以在生成任务中表现出更高的质量和一致性,尤其是在复杂任务(如对话系统、代码生成等)中。

RM与其他训练方法的关系

  • 与SFT(监督微调)的区别

    • SFT 是通过有标注的数据直接对模型进行监督学习,而 RM 是通过人类反馈间接指导模型优化。
    • SFT 更适合于特定任务的微调,而 RM 则更适合于对齐模型输出与人类偏好。
  • 与RLHF的关系

    • RM 是 RLHF 的重要组成部分。RLHF 包括两个关键步骤:首先是训练奖励模型(RM),然后是使用奖励模型进行强化学习。
    • RM 提供了强化学习所需的奖励信号,而强化学习则利用这些信号优化模型的行为。

RM的优势

  1. 灵活性 :奖励建模可以根据不同的任务和应用场景定制奖励函数,适应多种需求。
  2. 高效性 :相比于直接依赖人类反馈,奖励模型可以快速评估大量生成样本,加速模型优化过程。
  3. 对齐效果好 :通过引入人类偏好,奖励建模能够显著提升模型生成内容的质量和安全性。

RM的挑战

  1. 数据需求 :奖励建模需要大量高质量的人类反馈数据,这可能会带来较高的标注成本。
  2. 奖励模型的偏差 :如果奖励模型未能准确捕捉人类的真实偏好,可能会导致模型优化方向偏离预期。
  3. 复杂性 :奖励建模和强化学习的结合增加了训练流程的复杂性,可能需要更多的计算资源和技术支持。

总结

Reward Modeling(奖励建模)是一种通过对人类反馈进行建模来优化大语言模型的技术。它是 RLHF 流程中的关键环节,能够帮助模型生成更符合人类偏好的高质量文本。通过奖励模型提供的奖励信号,模型可以在强化学习过程中逐步改进其行为,最终实现更好的对齐效果。

3.pt(pretrain)是什么?

在大语言模型的训练过程中,Pretraining(预训练,简称PT) 是指使用大规模无标注数据对模型进行初始训练的过程。这是构建强大语言模型的第一步,也是整个训练流程中最为关键和基础的部分。

预训练的基本概念

预训练的目标是让模型从海量的文本数据中学习通用的语言知识和模式,包括语法、语义、上下文关系等。这些知识为后续的微调(Fine-tuning)或其他任务提供了坚实的基础。

预训练通常采用自监督学习(Self-Supervised Learning)的方式,即不需要人工标注的数据,而是通过设计特定的学习任务(如掩码语言建模或下一句预测),让模型从原始文本中自动学习。

预训练的工作原理

  1. 数据准备

    • 预训练需要大量的无标注文本数据,通常来自互联网、书籍、文章、代码等多种来源。
    • 数据的质量和多样性对模型的表现至关重要。例如,GPT 和 BERT 等模型使用了数十亿甚至上万亿个单词的文本数据。
  2. 模型架构

    • 预训练通常基于深度神经网络架构,比如 Transformer(目前最流行的架构)。
    • Transformer 的自注意力机制(Self-Attention)使模型能够捕捉长距离依赖关系,并高效处理序列数据。
  3. 自监督学习任务

    • 预训练的核心是设计自监督学习任务,让模型从数据中学习语言规律。以下是两种常见的任务:
      • 掩码语言建模(Masked Language Modeling, MLM)
        • 例如,BERT 使用 MLM 任务,随机遮盖输入句子中的某些词,然后让模型根据上下文预测被遮盖的词。
        • 示例:输入 [I love [MASK] coffee],模型需要预测 [MASK]hot
      • 因果语言建模(Causal Language Modeling, CLM)
        • 例如,GPT 使用 CLM 任务,给定前面的词,预测下一个词。
        • 示例:输入 [I love],模型需要预测下一个词是 coffee
  4. 优化目标

    • 预训练的目标是最小化模型预测与真实值之间的差异,通常使用交叉熵损失函数(Cross-Entropy Loss)来衡量。
  5. 大规模计算资源

    • 预训练需要大量的计算资源,包括高性能 GPU 或 TPU 集群,因为模型参数量巨大(如 GPT-3 有 1750 亿参数),且训练数据规模庞大。

预训练的优势

  1. 通用性

    • 预训练模型通过学习大量文本数据,掌握了广泛的语言知识,可以应用于多种下游任务(如分类、生成、翻译等)。
  2. 迁移学习能力

    • 预训练模型可以在少量标注数据的情况下快速适应特定任务,这得益于其在预训练阶段学到的丰富语言表示。
  3. 减少标注成本

    • 预训练不需要标注数据,避免了高昂的人工标注成本。
  4. 强大的表征能力

    • 预训练模型能够捕捉到深层次的语言结构和语义信息,为后续任务提供高质量的特征表示。

预训练与其他训练阶段的关系

  1. 与微调(Fine-Tuning)的关系

    • 预训练是一个通用的学习过程,而微调则是针对特定任务的定制化训练。
    • 微调通常在预训练模型的基础上进行,利用少量标注数据调整模型参数,使其更适合特定任务。
  2. 与奖励建模(Reward Modeling)的关系

    • 预训练为奖励建模提供了初始的语言理解能力,而奖励建模则进一步对齐模型输出与人类偏好。
  3. 与强化学习(Reinforcement Learning)的关系

    • 预训练模型可以通过强化学习进一步优化,以生成更高质量的文本。

预训练的挑战

  1. 数据质量

    • 如果预训练数据中包含噪声或偏见,模型可能会学到错误的知识或产生有害的输出。
  2. 计算成本

    • 预训练需要大量的计算资源和时间,尤其是对于超大规模模型(如 GPT-3、PaLM 等)。
  3. 灾难性遗忘

    • 在微调阶段,模型可能会忘记预训练中学到的一些通用知识,导致性能下降。
  4. 泛化能力

    • 虽然预训练模型具有很强的泛化能力,但在某些特定领域(如医学、法律)可能仍需额外的领域数据进行微调。

总结

预训练是大语言模型训练的基础阶段,通过自监督学习让模型从海量无标注数据中学习通用的语言知识。它为后续的微调、奖励建模和强化学习提供了强大的起点,使得模型能够在各种任务中表现出色。预训练的成功依赖于高质量的数据、强大的模型架构和充足的计算资源,同时也面临着数据偏差、计算成本等挑战。

4.PPO是什么?

在大语言模型的训练中,PPO(Proximal Policy Optimization,近端策略优化) 是一种强化学习算法,广泛用于通过人类反馈(RLHF, Reinforcement Learning from Human Feedback)来微调模型。PPO 的目标是通过优化策略(即模型的行为),使模型生成更符合人类期望的文本。

PPO的基本概念

PPO 是一种基于策略梯度(Policy Gradient)的强化学习方法,旨在解决传统策略梯度方法中的一些问题,例如训练不稳定性和样本效率低下。它通过对策略更新进行约束,确保每次更新不会偏离当前策略太远,从而实现稳定且高效的优化。

在大语言模型的上下文中,PPO 通常用于以下场景:

  • 奖励建模后的强化学习 :在训练奖励模型(Reward Model)后,使用 PPO 算法根据奖励信号优化模型。
  • 对齐模型输出与人类偏好 :通过奖励信号指导模型生成更高质量、更符合人类偏好的文本。

PPO的优势

  1. 稳定性

    PPO 通过裁剪目标限制策略更新的幅度,避免了传统策略梯度方法中的剧烈波动,从而提高了训练的稳定性。
  2. 高效性

    PPO 使用小批量数据进行多次更新,显著提高了样本效率,减少了对大量标注数据的需求。
  3. 灵活性

    PPO 可以应用于各种任务和场景,尤其是在需要对齐模型输出与人类偏好的情况下表现优异。
  4. 简单性

    相较于其他强化学习算法(如 TRPO),PPO 的实现更为简单,同时性能也相当出色。

PPO在大语言模型中的应用

在大语言模型的训练流程中,PPO 通常用于 RLHF 的第二阶段(强化学习阶段),其主要步骤如下:

  1. 预训练模型

    • 首先通过大规模无标注数据进行预训练,得到一个具备通用语言能力的基础模型。
  2. 监督微调(SFT)

    • 使用少量标注数据对模型进行微调,使其初步适应特定任务。
  3. 奖励建模(RM)

    • 收集人类反馈数据,训练奖励模型,用于评估模型生成文本的质量。
  4. PPO 强化学习

    • 使用 PPO 算法根据奖励模型提供的奖励信号进一步优化模型。
    • 在这个阶段,模型会生成大量文本样本,并根据奖励分数调整其生成策略,逐步提高生成质量。

总结

PPO 是一种强大的强化学习算法,广泛应用于大语言模型的训练中,特别是在 RLHF 流程中。通过结合奖励模型和 PPO 算法,可以有效地对齐模型输出与人类偏好,提升生成文本的质量和安全性。尽管 PPO 存在一些挑战,但其稳定性、高效性和灵活性使其成为当前大语言模型训练的重要工具之一。

5.DPO是什么?

在大语言模型的训练中,DPO(Direct Preference Optimization,直接偏好优化) 是一种新兴的方法,用于通过人类反馈来对齐模型输出与人类偏好。与传统的 RLHF(Reinforcement Learning from Human Feedback) 方法不同,DPO 不依赖于显式的奖励建模或强化学习(如 PPO),而是直接优化模型以生成更符合人类偏好的文本。

DPO的基本概念

DPO 的核心思想是将人类偏好直接嵌入到模型的训练目标中,而无需显式地构建奖励模型或使用复杂的强化学习算法。这种方法简化了训练流程,同时避免了奖励建模和策略优化中的潜在问题。

在 DPO 中,人类偏好通常以成对比较的形式提供:给定同一个输入,标注者会比较两个不同的模型输出,并选择他们更喜欢的一个。DPO 利用这些偏好数据,直接调整模型参数,使得模型生成更符合人类期望的文本。

DPO的优势

  1. 简化训练流程

    DPO 不需要构建奖励模型或使用强化学习算法(如 PPO),从而显著简化了训练流程。
  2. 减少误差累积

    在传统 RLHF 中,奖励模型的误差可能会传递到强化学习阶段,影响最终模型的表现。DPO 避免了这一问题,因为它直接基于人类偏好进行优化。
  3. 高效性

    DPO 可以直接利用现有的预训练模型,只需少量的偏好数据即可实现显著改进。
  4. 更好的对齐效果

    DPO 更加专注于人类偏好本身,避免了奖励建模可能引入的偏差。

DPO与其他方法的对比

  1. 与RLHF的对比

    • RLHF :需要先训练奖励模型,然后使用强化学习(如 PPO)优化策略。流程复杂,计算成本高。
    • DPO :直接基于偏好数据优化模型,无需奖励建模或强化学习,流程更简单。
  2. 与PPO的对比

    • PPO :依赖于奖励信号和策略梯度更新,可能存在训练不稳定性和样本效率低的问题。
    • DPO :通过直接优化模型参数,避免了策略更新的复杂性。
  3. 与SFT的对比

    • SFT(监督微调) :基于明确的标注数据进行监督学习,但无法充分捕捉人类偏好。
    • DPO :利用成对比较数据,能够更好地反映人类的主观偏好。

总结

DPO 是一种创新的大语言模型训练方法,通过直接优化模型以对齐人类偏好,避免了传统 RLHF 方法中的复杂性和潜在问题。它简化了训练流程,减少了误差累积,并能够更高效地利用人类反馈数据。尽管 DPO 仍面临一些挑战(如偏好数据需求和超参数调整),但它为大语言模型的对齐问题提供了一种简洁而有效的解决方案。

6.KTO是什么?

在大语言模型的训练中,KTO(Knowledge Transfer Optimization,知识迁移优化) 是一种用于提升模型性能的技术,特别是在多任务学习或跨领域应用中。KTO 的核心思想是通过将一个模型(或多个模型)的知识迁移到目标模型中,从而提高目标模型的学习效率和泛化能力。

尽管 KTO 并不是一个广泛标准化的术语,但它可以用来描述一系列与知识迁移相关的技术,例如 知识蒸馏(Knowledge Distillation) 迁移学习(Transfer Learning) 多任务学习(Multi-Task Learning) 等。以下是对这些相关概念的详细解释。

KTO的基本概念

  1. 知识迁移

    • 知识迁移是指将一个已经训练好的模型(通常称为“教师模型”)的知识传递给另一个模型(通常称为“学生模型”)。
    • 目标是让学生模型在较少的数据或计算资源下,达到接近教师模型的性能。
  2. 应用场景

    • 跨领域迁移 :将一个领域的知识迁移到另一个领域(如从通用语言模型迁移到特定领域模型)。
    • 模型压缩 :将大型模型的知识迁移到小型模型,以降低推理成本。
    • 多任务学习 :通过共享知识,提升模型在多个任务上的表现。

KTO的优势

  1. 提升模型性能

    • 通过知识迁移,目标模型可以从教师模型或相关任务中受益,从而更快地学习并达到更高的性能。
  2. 减少数据需求

    • 知识迁移可以显著减少对标注数据的需求,尤其是在目标任务数据稀缺的情况下。
  3. 降低计算成本

    • 模型压缩技术(如知识蒸馏)可以将大型模型的知识迁移到小型模型,从而降低推理成本。
  4. 增强泛化能力

    • 知识迁移可以帮助模型更好地泛化到未见过的数据或领域。

总结

KTO 是一种通过知识迁移优化大语言模型的技术,涵盖了知识蒸馏、迁移学习和多任务学习等多种方法。它能够有效提升模型性能、减少数据需求、降低计算成本,并增强模型的泛化能力。然而,KTO 也面临知识匹配、负迁移等挑战,需要根据具体任务和场景进行调整和优化。

在实际应用中,KTO 可以与其他训练方法(如 SFT、RLHF、DPO 等)结合使用,进一步提升大语言模型的表现。

7.ORPO是什么?

在大语言模型的训练中,ORPO(Outcome-Regularized Policy Optimization,结果正则化策略优化) 是一种新兴的方法,用于通过强化学习对齐模型输出与人类偏好。与传统的 RLHF(Reinforcement Learning from Human Feedback) 方法相比,ORPO 引入了一种新的优化目标,将生成文本的结果(Outcome)直接纳入策略优化过程中,从而提高训练效率和生成质量。

ORPO的基本概念

ORPO 的核心思想是将生成文本的结果(如最终的人类评分或任务完成度)作为优化目标的一部分,而不仅仅依赖于中间奖励信号(Reward Signal)。这种方法可以更直接地优化模型生成的最终效果,减少奖励建模中的偏差和误差。

在 ORPO 中,模型的目标不仅是最大化即时奖励,还需要考虑生成文本的长期结果。这使得 ORPO 更适合处理复杂的生成任务,例如对话系统、故事生成等。

ORPO的优势

  1. 更直接的优化目标

    • ORPO 将生成文本的最终结果纳入优化目标中,能够更直接地提升模型的实际表现。
  2. 减少奖励建模的偏差

    • 传统 RLHF 方法依赖于奖励模型,可能会引入偏差。ORPO 通过结合最终结果,减少了这种偏差的影响。
  3. 高效性

    • ORPO 可以直接利用现有的预训练模型,只需少量的偏好数据即可实现显著改进。
  4. 更好的对齐效果

    • ORPO 更加专注于生成文本的实际效果,能够更好地对齐模型输出与人类偏好。

ORPO与其他方法的对比

  1. 与RLHF的对比

    • RLHF :需要先训练奖励模型,然后使用强化学习(如 PPO)优化策略。流程复杂,计算成本高。
    • ORPO :直接基于最终结果进行优化,无需显式的奖励建模或复杂的强化学习算法。
  2. 与PPO的对比

    • PPO :依赖于即时奖励信号和策略梯度更新,可能存在训练不稳定性和样本效率低的问题。
    • ORPO :通过引入结果正则化,能够更直接地优化生成文本的最终效果。
  3. 与DPO的对比

    • DPO :基于偏好数据直接优化模型,但主要关注即时奖励。
    • ORPO :不仅关注即时奖励,还结合生成文本的最终结果,优化目标更加全面。

总结

ORPO 是一种创新的大语言模型训练方法,通过将生成文本的最终结果纳入优化目标中,直接对齐模型输出与人类偏好。它简化了传统 RLHF 方法中的复杂流程,减少了奖励建模的偏差,并能够更高效地利用人类反馈数据。尽管 ORPO 仍面临一些挑战(如最终结果数据的需求和正则化权重的选择),但它为大语言模型的对齐问题提供了一种简洁而有效的解决方案。

相关文章:

政安晨的AI大模型训练实践 九 - 熟悉LLaMA Factory的详细参数含义-基本概念理解一下

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 小伙伴铁子们,上手先熟悉起来训练工具的每一个参数,很重要。 参照我…...

保姆级教程 | Office-Word中图目录制作及不显示图注引文的方法

背景 由于毕业论文的格式修改需要(没错,我终于要拿下PhD了。差不多四个月没更新,主要是①根据处理完的数据完成小论文撰写;②找工作...③完成学位论文的撰写。因而对建模和数据处理的需求不高,对有些时隔久远的博文具…...

Linux lsblk 命令详解:查看磁盘和分区信息 (中英双语)

Linux lsblk 命令详解:查看磁盘和分区信息 在 Linux 系统中,管理磁盘设备和分区是日常运维工作的重要部分。而 lsblk 命令是一个强大的工具,它用于列出系统中的块设备(block devices)信息,可以帮助我们快速…...

使用API有效率地管理Dynadot域名,为域名部署DNS安全拓展(DNSSEC)

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…...

前后端项目部署服务器(传统部署和Docker部署)

内外网 开发环境连外网(8.140.26.187),测试/生产环境连内网(172.20.59.17) 内外网地址不同,但指定的库是同一个 内网IP地址范围包括: 10.0.0.0 到 10.255.255.255172.16.0.0 到 172.31.2551…...

深入HBase——核心组件

引入 通过上一篇对HBase核心算法和数据结构的梳理,我们对于其底层设计有了更多理解。现在我们从引入篇里面提到的HBase架构出发,去看看其中不同组件是如何设计与实现。 核心组件 首先,需要提到的就是HBase架构中会依赖到的Zookeeper和HDFS。…...

虚拟机从零实现机器人控制

1. 系统安装 因Docker不适合需要图形界面的开发,因此使用虚拟机VMware方便可视化界面方式查看效果,相关软件可以从官网下载,这里有一整套免费安装文件百度网盘地址: 2. ROS安装 Ubuntu 22.04:https://docs.ros.org…...

最新本地部署 DeepSeekR1 蒸馏\满血量化版 + WebOpenUI 完整教程(Ubuntu\Linux系统\Ollama)

测试机为6133CPU(40Cores)256G D44*4090D 24G 一种方法是部署蒸馏版Distill模型。一种是部署Huggingface上unsloth的量化版模型 Ollama及模型安装 1.下载并安装ollama curl -fsSL https://ollama.com/install.sh | sh如果下载不动可以试试挂梯子或者再试几次 挂代理代码&…...

Linux基本指令(三)+ 权限

文章目录 基本指令grep打包和压缩zip/unzipLinux和windows压缩包互传tar(重要)Linux和Linux压缩包互传 bcuname -r常用的热键关机外壳程序 知识点打包和压缩 Linux中的权限用户权限 基本指令 grep 1. grep可以过滤文本行 done用于标记循环的结束&#x…...

kafka-集群缩容

一. 简述: 当业务增加时,服务瓶颈,我们需要进行扩容。当业务量下降时,为成本考虑。自然也会涉及到缩容。假设集群有 15 台机器,预计缩到 10 台机器,那么需要做 5 次缩容操作,每次将一个节点下线…...

【nextJs】官网demo学习

最近在看nextjs官方的demo,把一些值得记录的记下来,方便查询; 1.连接数据库 1.1需要把代码传到远程仓库: 执行下面的命令: // 把#后面内容写入readme文件中 echo "# nextjs-dashboard" >> README.…...

在nodejs中使用ElasticSearch(一)安装,使用

使用docker安装ElasticSearch和Kibana 1)创建相应的data文件夹和子文件夹用来持久化ElasticSearch和kibana数据 2)提前创建好elasticsearch配置文件 data/elasticsearch/config/elasticsearch.yml文件 # Elasticsearch Configuration # # NOTE: Elas…...

图的最短路径:Dijkstra算法和Bellman-Ford算法(C++)

上文中我们了解了拓扑排序, 本节我们来学习最短路径的算法. 在图论中, 最短路径问题是指在一个加权图中找到两个节点之间的权重和最小的路径. 最短路径问题是一个基础且重要的主题. 它不仅在理论上具有挑战性, 而且在实际应用中也非常广泛, 比如交通导航, 社交网络分析等. 本…...

【WebGL】fbo双pass案例

双pass渲染案例&#xff08;离线渲染一个三角面&#xff0c;然后渲染到一个占满屏幕的矩阵上&#xff09; 离线渲染如何需要开启深度测试的话&#xff0c;需要额外操作&#xff0c;这里不展开 <!DOCTYPE html> <html lang"en"><head><meta ch…...

【机器学习】CNN与Transformer的表面区别与本质区别

仅供参考 表面区别 1. 结构和原理: CNN:主要通过卷积层来提取特征,这些层通过滑动窗口(卷积核)捕捉局部特征,并通过池化层(如最大池化)来降低特征的空间维度。CNN非常适合处理具有网格状拓扑结构的数据,如图像。Transformer:基于自注意力(Self-Attention)机制,能…...

C++:pthread的使用

pthread 简介 pthread 是 POSIX 线程&#xff08;POSIX Threads&#xff09;的简称&#xff0c;它是 POSIX 标准中定义的线程接口规范。pthread 库提供了一系列函数&#xff0c;用于创建、销毁、同步和管理线程。在类 Unix 系统&#xff08;如 Linux、macOS&#xff09;中&…...

Docker 容器安装 Dify的两种方法

若 Windows 已安装 Docker&#xff0c;可借助 Docker 容器来安装 Dify&#xff1a; 一、方法一 1. 拉取 Dify 镜像 打开 PowerShell 或命令提示符&#xff08;CMD&#xff09;&#xff0c;运行以下命令从 Docker Hub 拉取 Dify 的镜像&#xff08;Docker Hub中找到该命令行&…...

nodejs:express + js-mdict 作为后端,vue 3 + vite 作为前端,在线查询英汉词典

向 doubao.com/chat/ 提问&#xff1a; node.js js-mdict 作为后端&#xff0c;vue 3 vite 作为前端&#xff0c;编写在线查询英汉词典 后端部分&#xff08;express js-mdict &#xff09; 1. 项目结构 首先&#xff0c;创建一个项目目录&#xff0c;结构如下&#xff1…...

mysql之事务深度解析与实战应用:保障数据一致性的基石

文章目录 MySQL 事务深度解析与实战应用&#xff1a;保障数据一致性的基石一、事务核心概念与原理1.1 事务的本质与意义1.2 事务的 ACID 特性1.2.1 原子性 (Atomicity)1.2.2 一致性 (Consistency)1.2.3 隔离性 (Isolation)1.2.4 持久性 (Durability) 1.3 事务隔离级别与并发问题…...

einops测试

文章目录 1. einops2. code3. pytorch 1. einops einops 主要是通过爱因斯坦标记法来处理张量矩阵的库&#xff0c;让矩阵处理上非常简单。 conda : conda install conda-forge::einopspython: 2. code import torch import torch.nn as nn import torch.nn.functional as…...

华为云deepseek大模型平台:deepseek满血版

华为云硅基流动使用Chatbox接入DeepSeek-R1满血版671B 1、注册&#xff1a; 华为云deepseek大模型平台注册&#xff1a;https://cloud.siliconflow.cn/i/aDmz6aVN 说明&#xff1a;填写邀请码的话邀请和被邀请的账号都会获得2000 万 Tokens&#xff1b;2个帐号间不会与其他关联…...

Elasticsearch Open Inference API 增加了对 Jina AI 嵌入和 Rerank 模型的支持

作者&#xff1a;Hemant Malik 及 Joan Fontanals Martnez 探索如何使用 Elasticsearch Open Inference API 访问 Jina AI 模型。 我们在 Jina AI 的朋友们将 Jina AI 的嵌入模型和重新排名产品的原生集成添加到 Elasticsearch 开放推理 API 中。这包括对行业领先的多语言文本嵌…...

在PHP Web开发中,实现异步处理有几种常见方式的优缺点,以及最佳实践推荐方法

1. 消息队列 使用消息队列&#xff08;如RabbitMQ、Beanstalkd、Redis&#xff09;将任务放入队列&#xff0c;由后台进程异步处理。 优点&#xff1a; 任务持久化&#xff0c;系统崩溃后任务不丢失。 支持分布式处理&#xff0c;扩展性强。 实现步骤&#xff1a; 安装消息…...

如何设计app测试用例

功能测试 测试方法&#xff1a;等价类划分法、边界值法、场景法、因果图法。优先级设定&#xff1a;核心业务功能设为高优先级。需求覆盖 正向场景、反向场景、关联接口串场景 与后端开发确认测试用例是否全面覆盖后端逻辑。和产品确认用例是否覆盖本次需求&#xff0c;以及是否…...

《炒股养家心法.pdf》 kimi总结

《炒股养家心法.pdf》这篇文章详细阐述了一位超级游资炒股养家的心得与技巧&#xff0c;展示了其从40万到10亿的股市传奇。以下是文章中炒股技巧和心得的详细总结&#xff1a; 1.核心理念 市场情绪的理解&#xff1a;炒股养家强调&#xff0c;股市的本质是群体博弈&#xff0c…...

DVWA 靶场

DVWA 靶场的通关 刚建立和使用 输入 http://dvwa:8898/setup.php //进入用户名 密码 dvwa 你自己设计的想要进入数据库 点击creat 用户名 密码 admin passwordAttack type Sniper模式 在Sniper模式下&#xff0c;Payload字典用于逐个替换请求中标记的位置。例如&#x…...

【C语言】(一)数据在计算机中的存储与表示

目录 一、存储单位&#xff08;比特/字节&#xff09; 二、数制/进制&#xff08;二/八/十/十六&#xff09; 三、码制&#xff08;原码/反码/补码/移码&#xff09; 四、二进制表示小数 &#xff08;一&#xff09;定点数 &#xff08;二&#xff09;浮点数 十进制转化…...

大语言模型微调的公开JSON数据

大语言模型微调的公开JSON数据 以下是一些可用于大语言模型微调的公开JSON数据及地址: EmoLLM数据集 介绍:EmoLLM是一系列能够支持理解用户、帮助用户心理健康辅导链路的心理健康大模型,其开源了数据集、微调方法、训练方法及脚本等。数据集按用处分为general和role-play两种…...

solidity之Foundry安装配置(一)

一门面向合约的高级编程语言&#xff0c;主要用来编写以太坊只能合约。 Solidity受C语言&#xff0c;Python和js影响&#xff0c;但为编译成为以太坊虚拟机字节码在EVM上执行&#xff0c;很多特性和限制都和EVM相关。 Solidity 是静态类型语言&#xff0c;支持继承、库、自定义…...

【个人开源】——从零开始在高通手机上部署sd(二)

代码&#xff1a;https://github.com/chenjun2hao/qualcomm.ai 推理耗时统计 单位/ms 硬件qnncpu_clipqnncpu_unetqnncpu_vaehtp_cliphtp_unethtp_vae骁龙8 gen124716.994133440.39723.215411.097696.327 1. 下载依赖 下载opencv_x64.tar,提取码: rrbp下载opencv_aarch64.t…...

【精调】LLaMA-Factory 快速开始4 自定义个一个sharegpt数据集并训练

数据格式说明 LLaMA Factory:微调LLaMA3模型实现角色扮演 数据集 参考 开源模型应用落地-DeepSeek-R1-Distill-Qwen-7B-LoRA微调-LLaMA-Factory-单机单卡-V100(一) 大神给出的数据集的讲解:注册 如...

【Java】单例模式

单例模式 所谓类的单例设计模式&#xff0c;就是采取一定的方法保证在整个的软件系统中&#xff0c;对某个类只能存在一个对象实例&#xff0c;并且该类只提供一个取得其对象实例的方法。 单例模式包含懒汉式和饿汉式&#xff0c;运行有且仅有一个实例化对象&#xff0c;只会…...

REACT--组件通信

组件之间如何进行通信&#xff1f; 组件通信 组件的通信主要借助props传递值 分为整体接收、解构接收 整体接收 import PropTypes from prop-types;//子组件 function Welcome(props){return (<div>hello Welcome,{props.count},{props.msg}</div>) }// 对 We…...

第16届蓝桥杯模拟赛3 python组个人题解

第16届蓝桥杯模拟赛3 python组 思路和答案不保证正确 1.填空 如果一个数 p 是个质数&#xff0c;同时又是整数 a 的约数&#xff0c;则 p 称为 a 的一个质因数。 请问&#xff0c; 2024 的最大的质因数是多少&#xff1f; 因为是填空题&#xff0c;所以直接枚举2023~2 &am…...

FFMPEG编码容错处理解决办法之途径----升级库文件

在qt开发环境下接收网络数据&#xff0c;调用ffmpeg解码播放视频&#xff0c;出现闪屏现象&#xff0c;具体现象可以使用操作系统自带的ffplay播放器播放原始视频流可复现&#xff1b;而使用操作系统自带的mpv播放器播放视频则不会出现闪屏&#xff1b;闪屏时会报Could not fin…...

kkFileView报错no office manager available

背景 部署环境:虚机Linux系统 发生问题的版本:4.1.0-SNAPSHOT 现象:有的docx文件可以预览,有的不可以。不可以的就怎么打开都不可以(不管你是躺着,站着,坐着,睡着,趴着都不行,哈哈) 报错内容 贴出主要的报错内容步骤: > no office manager available > tr…...

C++ 设计模式-模板方法模式

文件处理 #include <iostream>// 抽象基类&#xff1a;定义模板方法和抽象步骤 class DataProcessor { public:// 模板方法&#xff08;固定流程&#xff09;void Process() {OpenFile();ProcessData(); // 由子类实现CloseFile();}protected:virtual void ProcessData…...

MacOS下使用Ollama本地构建DeepSeek并使用本地Dify构建AI应用

目录 1 大白话说一下文章内容2 作者的电脑配置3 DeepSeek的本地部署3.1 Ollamal的下载和安装3.2 选择合适的deepseek模型3.3 安转deepseek 4 DifyDeepSeek构建Al应用4.1 Dify的安装4.1.1 前置条件4.1.2 拉取代码4.1.3 启动Dify 4.2 Dify控制页面4.3 使用Dify实现个“文章标题生…...

区块链相关方法-波士顿矩阵 (BCG Matrix)

波士顿矩阵&#xff08;BCG Matrix&#xff09;&#xff0c;又称市场增长率 - 相对市场份额矩阵、波士顿咨询集团法、四象限分析法、产品系列结构管理法等&#xff0c;由美国著名的管理学家、波士顿咨询公司创始人布鲁斯・亨德森于 1970 年首创1。以下是关于波士顿矩阵的详细介…...

命令执行漏洞 Command Execute

命令执行漏洞&#xff08;Command Injection&#xff09;是一种安全漏洞&#xff0c;指的是攻击者能够在应用程序的命令行中注入并执行恶意命令。简单来说&#xff0c;就是攻击者可以利用这个漏洞让程序执行自己指定的命令&#xff0c;而不是程序原本应该执行的命令。 举个例子…...

黑马点评_商品信息缓存模块

保证缓存不要有空档期 删除后马上要写入中间不能插入任何阶段(如查询数据库) 对于单体系统1&#xff0c;将缓存与数据库操作放在同一个事务中&#xff08;当前项目就是一个单体项目&#xff0c;所以选择这种方式&#xff09; 对于分布式系统2&#xff0c;利用TCC&#xff08;Tr…...

socket()函数的概念和使用案例

socket()函数的概念&#xff08;C语言&#xff09; 在C语言中&#xff0c;socket() 函数是用于创建一个新的套接字&#xff0c;它是网络编程的基础。套接字可以看作是不同计算机进程间通信的一个端点&#xff0c;允许数据在网络中的发送和接收。 socket() 函数的原型定义在 &l…...

【架构】事件驱动架构(Event - Driven Architecture,EDA)

一、事件驱动架构理论基础 事件驱动架构(Event - Driven Architecture,EDA)是一种软件设计范式,事件驱动的体系结构由生成事件流、侦听这些事件的事件使用者以及将事件从生成者传输到使用者的事件通道组成。 在事件驱动架构中,系统的行为由事件触发。事件可几乎实时发送,…...

三、linux字符驱动详解

在上一节完成NFS开发环境的搭建后&#xff0c;本节将探讨Linux字符设备驱动的开发。字符设备驱动作为Linux内核的重要组成部分&#xff0c;主要负责管理与字符设备&#xff08;如串口、键盘等&#xff09;的交互&#xff0c;并为用户空间程序提供统一的读写操作接口。 驱动代码…...

14.9 Auto-GPT 提示工程深度解析:设计具备自主决策能力的智能体大脑

Auto-GPT 提示工程深度解析:设计具备自主决策能力的智能体大脑 关键词:Auto-GPT 提示工程、结构化提示模板、工具调用触发、动态上下文管理、自主决策优化 1. 自主智能体提示设计的核心原则 Prompt 设计三维度模型: #mermaid-svg-jHMGjPZTQA8Op385 {font-family:"tre…...

【p-camera-h5】 一款开箱即用的H5相机插件,支持拍照、录像、动态水印与样式高度定制化。

【开源推荐】p-camera-h5&#xff1a;一款轻量级H5相机插件开发实践 一、插件背景 在Web开发中&#xff0c;原生摄像头功能的集成往往面临以下痛点&#xff1a; 浏览器兼容性问题视频流与水印叠加实现复杂移动端适配困难功能定制成本高 为此&#xff0c;p-camera-h5 —— 一…...

c++中sleep是什么意思(不是Sleep() )

sleep 函数在 C 语言中用于暂停程序执行指定的秒数&#xff0c;语法为 sleep(unsigned int seconds)。当 seconds 为 0 时&#xff0c;函数立即返回&#xff0c;否则函数将使进程暂停指定的秒数&#xff0c;并返回实际暂停的时间。 sleep 函数在 C 中的含义 sleep 函数是 C 标…...

优品指标树

目录 大势型 超买超卖型 超势型 能量型 成交量型 均线型 路径型 指南针经典指标 神系经典指标 庄家克星经典指标 大智慧经典指标 钱龙经典指标 同花顺经典指标 通达信经典指标 操盘手经典指标 期货特色指标 股票特色推荐 用户推荐共享指标 名家经典战法指标…...

springboot多实例部署时,@Scheduled注释的方法重复执行

问题&#xff1a;springboot多实例部署时&#xff0c;Scheduled注释的方法重复执行 在 Spring Boot 中要实现 Redis 的SET NX EX命令&#xff0c;可以借助 Spring Data Redis 来完成。SET NX EX命令用于在键不存在时设置键值对&#xff0c;并同时设置过期时间。 <dependen…...

智能自动化新纪元:AI与UiPath RPA的协同应用场景与技术实践

智能自动化新纪元&#xff1a;AI与UiPath RPA的协同应用场景与技术实践 引言 在数字化转型的浪潮中&#xff0c;企业对于自动化技术的需求已从简单的任务执行转向更复杂的智能决策。传统RPA&#xff08;Robotic Process Automation&#xff09;通过模拟人类操作处理重复性任务…...