大模型从入门到精通—— LLM 应用评估(一)

news2024/12/23 4:11:24

如何评估 LLM 应用

1. 简介

在使用大型语言模型(LLM)构建应用程序时,评估的思路往往与传统的 AI 开发有所不同。传统 AI 的评估可能依赖于大规模的标注数据集和精细的性能指标,而 LLM 的开发则更注重迭代验证,并在开发过程中不断调整 Prompt 和算法来解决特定问题。LLM 应用的评估思路强调灵活迭代与实用性。开发者可以在开发的任意阶段根据实际效果和需求决定是否继续改进,避免了传统 AI 开发中数据与性能的固有瓶颈。通过这种方法,开发者能够快速构建并部署有效的应用程序,充分发挥 LLM 的强大能力。

1. 小样本迭代与 Prompt 调整

在早期开发阶段,你可以通过对少量样本进行实验和调整 Prompt,来优化模型的表现。这种方式允许你在短时间内验证和改进应用的效果,而不需要大量数据或训练。

2. 处理难题与逐步扩展

随着测试的深入,你会遇到一些难以处理的例子,这些问题可能无法简单通过 Prompt 调整来解决。这时,你需要将这些难题纳入到你的测试集中,逐步扩展开发集,使得模型能够更好地应对复杂场景。

3. 性能评估与适时停止

当你不断地扩展测试集并改善 Prompt 后,你可以开始引入性能指标,如平均准确度等,来量化模型的表现。一旦模型达到了预期效果,你可以选择在合适的时间点停止迭代开发。

4. 灵活的停止点

LLM 应用开发的灵活性在于,你不需要追求“完美”的模型。一些成功的应用程序往往在开发的初期阶段就已经达到了可以部署的状态,而不需要继续进行深入优化。这种思路与传统 AI 开发的精细优化形成鲜明对比,展现了 LLM 开发的独特优势。

5. 评估方法的选思路

  1. 评估方法的选择

    • 对于简单的任务,可以采用有明确标准答案的评估方法。
    • 对于复杂的生成任务,评估难度增加,因为通常没有简单的标准答案。此时需要采用更加灵活和多样的评估方法,以准确反映应用的效果。
  2. 构建与优化验证集

    • 随着开发的深入,逐步找到并积累 Bad Case,即表现不佳的例子。通过有针对性的优化,将这些 Bad Case 加入到验证集中。
    • 对于较大的验证集,逐一手动评估已经不切实际,因此需要设计自动化的评估方法,以整体衡量系统的性能。
  3. 基于 RAG 范式的评估与优化

    • 针对大模型应用中的两个核心部分:检索和生成,分别进行性能评估和优化。
    • 优化过程需要特别注意:在对 Bad Case 进行优化的同时,确保系统不会在原先表现良好的样例上出现失误。
  4. 验证迭代的重要性

    • 验证迭代是大模型应用开发的必经之路,通过不断发现和优化 Bad Case,调整 Prompt 或提升检索精度,最终实现应用的性能目标。

通过掌握这些评估方法与优化策略,开发者能够在实际应用中更有效地提高大模型的表现,使之更符合业务需求。

2. 大模型评估方法

1. 评估步骤

在具体的大模型应用开发过程中,我们通过寻找和优化 Bad Cases 来提升系统的整体表现。在大模型应用开发中,通过不断寻找和优化 Bad Cases,并将这些案例纳入不断扩展的验证集中,可以有效提高系统的表现。当验证集规模增大到人工评估不可行时,自动化评估系统将成为必要工具。通过这种迭代优化和评估的方式,开发者可以逐步构建出更稳定和高效的大模型应用。这一过程的核心步骤包括以下几个方面:

1. 寻找和定义 Bad Cases
  • Bad Cases 是系统在某些特定情况下表现不佳的实例。这些实例可以通过实际使用中发现,也可以通过针对性测试或边缘案例分析找到。
  • 找到 Bad Cases 后,需要对其进行详细分析,明确系统在处理这些案例时存在的问题,是由于 Prompt 的不准确、检索过程中的失误,还是其他原因导致的。
2. 针对性优化 Prompt 或检索架构
  • 根据对 Bad Cases 的分析结果,有针对性地优化 Prompt 或调整检索算法,旨在提高系统在这些特定情况下的表现。
  • 这种优化可能涉及到调整 Prompt 的语言表述、改变检索的策略或增加更多的训练数据,以提升模型的理解和生成能力。
3. 构建和维护验证集
  • 每当找到一个新的 Bad Case,就将其加入到一个不断扩展的验证集中。
  • 验证集的作用是通过对系统进行全面、持续的评估,确保优化后的系统在所有案例中的表现都得到提升或保持原有水准。
4. 迭代优化和重新评估
  • 每次优化后,重新对验证集中的所有案例进行验证,确保系统在优化后的 Bad Cases 上表现更好,同时不会在原有的 Good Cases 上出现性能退化。
  • 这种迭代式的评估和优化过程有助于逐步提高系统的整体性能,使其在更广泛的场景下表现稳定。
5. 自动评估系统的必要性
  • 随着验证集的规模不断扩展,逐个案例的人工评估将变得不可行,因为其时间和人力成本会大幅增加。
  • 因此,有必要设计和实现自动评估系统,该系统能够自动对验证集中的每个案例输出质量进行评估,并生成系统整体性能的统计数据。
6. 评估方法的设计
  • 自动评估系统可以采用多种方法,例如基于指标的评估、对比测试、或通过机器学习模型自动评分等。设计评估方法时需要考虑其与业务目标的相关性和评估的准确性。

2. 人工评估的一般思路

在系统开发的初期,由于验证集的体量较小,人工评估是最简单、直接的验证方式。然而,为了保证评估的客观性和一致性,人工评估也应遵循一些基本的准则和思路。人工评估虽然在早期开发阶段非常有效,但需要通过量化的方式和明确的评估规范来提高其科学性和可比性。随着系统的复杂化和验证集规模的扩大,人工评估的方法可能会逐步被自动化评估取代,但在开发初期和小规模验证集中,它仍然是不可或缺的一部分。

准则一:量化评估

为了能够有效地比较不同版本系统的性能,量化评估指标是不可或缺的。具体做法是对每一个验证案例的系统输出进行打分,并通过计算所有验证案例的平均分来衡量当前系统版本的整体得分。通过对上述多个维度的量化评估,我们能够更全面地了解大模型在个人知识库问答任务中的表现。这些维度涵盖了从基础的知识查找到高级的语言生成能力,帮助我们识别系统的优势和不足。量化评估的结果不仅能够比较不同版本的系统,还能够为系统的进一步优化提供明确的方向。随着验证集的扩展,这种多维度评估方法可以逐步转化为自动化评估系统,以提高评估效率和准确性。

量化评分的范围
  • 评分范围可以根据具体情况选择,如 0-5 或 0-100。
  • 评分应尽量细化,以便能够更精确地反映系统的性能差异。
评估规范的设定
  • 为确保不同评估员之间的评估结果具有一致性,应该制定明确的评估规范。例如,在满足某一特定条件 A 的情况下,系统的输出可以被评为 Y 分。
  • 这些规范不仅帮助统一评估标准,还能降低主观因素对评估结果的影响。

在大模型应用的评估中,尤其是针对生成模型的评估,需要综合多个维度来全面衡量模型的表现。以下是一个针对个人知识库问答项目的多维度评估框架示例,这些维度涵盖了从知识查找到语言生成的各个方面:

准则二:多维度评估
1. 知识查找正确性
  • 定义:评估系统从向量数据库中查找到的知识片段是否能够回答用户的问题。
  • 量纲:0-1
    • 0:查找到的知识片段无法回答问题。
    • 1:查找到的知识片段能够正确回答问题。
2. 回答一致性
  • 定义:评估系统的回答是否紧密围绕用户的问题展开,避免出现偏题或误解题意的情况。
  • 量纲:0-1
    • 0:回答完全偏题或误解题意。
    • 1:回答完全切题,准确理解了问题。
3. 回答幻觉比例
  • 定义:评估系统的回答中是否存在“幻觉”(即模型生成了与知识库不符的内容),以及幻觉的比例。
  • 量纲:0-1
    • 0:回答全部是模型幻觉,无任何依据。
    • 1:回答完全基于查找到的知识片段,无任何幻觉。
4. 回答正确性
  • 定义:评估系统的回答是否正确且充分解答了用户的问题,是最核心的评估指标之一。
  • 量纲:0-1
    • 0:回答完全错误或不完整。
    • 1:回答完全正确且完整。
5. 逻辑性
  • 定义:评估系统回答的逻辑性是否连贯,是否出现前后矛盾或逻辑混乱的情况。
  • 量纲:0-1
    • 0:回答中出现明显的逻辑错误或前后矛盾。
    • 1:回答逻辑连贯,无任何矛盾。
6. 通顺性
  • 定义:评估系统回答的语句是否通顺、合乎语法,是否容易理解。
  • 量纲:0-1
    • 0:回答中存在明显的语法错误或表达不清。
    • 1:回答语句通顺,无语法错误。
7. 智能性
  • 定义:评估系统回答的拟人化程度,是否能够体现出智能性,使用户难以区分是人工还是机器生成的回答。
  • 量纲:0-1
    • 0:回答表现出明显的机械性或低智能性。
    • 1:回答高度拟人化,智能性强。

3.简单自动评估

在大模型的评估中,由于生成模型的答案往往是开放式的、主观的,导致评估的复杂性大大增加。为了简化评估过程,尽管这可能会在一定程度上牺牲准确性,我们可以通过将主观题转化为客观题来实现自动化评估。通过构造客观题和计算标准答案相似度,我们可以在一定程度上简化大模型生成结果的评估过程。这种方法的优势在于它可以实现自动化评估,减少人工干预的成本。然而,这些方法的应用也有一定的局限性,尤其是在处理复杂的、没有明确标准答案的问题时。因此,在实际应用中,需要根据具体的业务场景权衡评估的简便性和准确性。以下介绍两种常用的方法:

1. 构造客观题
  • 方法概述
    • 为了将主观题转化为客观题,我们可以根据问题的实际内容设计一系列具有明确标准答案的子问题。通过这些子问题的回答来间接评估模型的整体回答。
  • 应用示例
    • 假设用户的问题是“为什么天空是蓝色的?”,原本这个问题的回答可能很主观,涉及不同的角度和解释。
    • 我们可以设计几个具体的客观子问题,如“天空的颜色是由什么决定的?”、“晴天时天空通常呈现什么颜色?”等。
    • 通过评估这些子问题的回答是否正确,来间接判断原问题的回答质量。
2. 计算标准答案相似度
  • 方法概述
    • 对于一些没有固定标准答案的问题,可以预先定义一个或多个参考答案。然后,通过计算模型生成的答案与参考答案之间的相似度来进行评估。
    • 相似度的计算可以使用多种技术,例如词袋模型、词嵌入(如 Word2Vec)、余弦相似度、语义匹配模型等。
  • 应用示例
    • 对于问题“简述水的三种状态”,参考答案可能是“水有三种状态:固态(冰)、液态(水)、气态(水蒸气)。”
    • 模型生成的答案如果是“水可以是冰、液体或气体”,我们可以计算它与参考答案的相似度。相似度越高,说明模型回答的正确性和完整性越好。

计算相似度的方法在自然语言处理(NLP)中广泛用于评估模型生成的文本与参考文本之间的相似程度。以下是几种常用的计算相似度的方法:

1. BLEU (Bilingual Evaluation Understudy)
  • 简介:BLEU 是一种评估机器翻译或文本生成模型输出与参考文本之间相似度的常用指标。它通过计算生成文本和参考文本之间的 n-gram 重合度来评估文本的相似性。
  • 计算方法
    • n-gram:BLEU 使用 n-gram 匹配的方式,即计算生成文本中各个 n-gram(n 个连续词的组合)在参考文本中出现的频率。
    • 精确度 (Precision):计算每个 n-gram 的精确度,即生成文本中与参考文本匹配的 n-gram 数量占生成文本中 n-gram 总数的比例。
    • 加权:为避免生成短句获得高分,BLEU 会计算不同 n-gram(如 1-gram, 2-gram 等)的加权平均值,并引入一个短句惩罚(Brevity Penalty)。
  • 公式
    BLEU = Brevity Penalty × exp ⁡ ( ∑ n = 1 N w n log ⁡ p n ) \text{BLEU} = \text{Brevity Penalty} \times \exp \left( \sum_{n=1}^{N} w_n \log p_n \right) BLEU=Brevity Penalty×exp(n=1Nwnlogpn)
    其中, w n w_n wn 是第 n n n 阶 n-gram 的权重,通常均匀分配, p n p_n pn 是第 n n n 阶 n-gram精确度。
2. ROUGE (Recall-Oriented Understudy for Gisting Evaluation)
  • 简介:ROUGE 主要用于评估自动文本系统的性能,它通过计算生成摘要和参考摘要之间的重叠情况来衡量质量。ROUGE 有多个变体,如 ROUGE-N(基于 n-gram)、ROUGE-L(基于最长公共子序列)等。
  • 计算方法
    • ROUGE-N:计算生成摘要和参考摘要之间 n-gram 的重叠情况,可以计算精确度、召回率和 F1 分数。
    • ROUGE-L:基于最长公共子序列 (Longest Common Subsequence, LCS),评估生成摘要和参考摘要之间的词序和结构相似度。
  • 应用:ROUGE 常用于文本摘要、机器翻译等领域。
3. Cosine Similarity (余弦相似度)
  • 简介:余弦相似度是衡量两个向量(通常是文本的词向量表示)之间夹角余弦值的指标,用于评估文本内容的相似性。
  • 计算方法
    • 先将文本表示为向量(如通过 TF-IDF 或词嵌入模型),然后计算两个向量的余弦相似度:
      Cosine Similarity = A ⋅ B ∥ A ∥ ∥ B ∥ \text{Cosine Similarity} = \frac{\mathbf{A} \cdot \mathbf{B}}{\|\mathbf{A}\| \|\mathbf{B}\|} Cosine Similarity=A∥∥BAB
      其中, A \mathbf{A} A B \mathbf{B} B是两个文本的向量表示, ⋅ \cdot 表示向量点积, ∥ A ∥ \|\mathbf{A}\| A ∥ B ∥ \|\mathbf{B}\| B 是向量的模。
  • 应用:余弦相似度广泛用于文本分类、信息检索等任务中。
4. Jaccard Similarity (杰卡德相似度)
  • 简介:Jaccard 相似度用于衡量两个集合之间的相似度,特别是词集的重合度。
  • 计算方法
    • 计算两个集合交集的大小与并集的大小的比值:
      Jaccard Similarity = ∣ A ∩ B ∣ ∣ A ∪ B ∣ \text{Jaccard Similarity} = \frac{|A \cap B|}{|A \cup B|} Jaccard Similarity=ABAB
      其中, A A A B B B 是两个集合, ∣ A ∩ B ∣ |A \cap B| AB 是交集的大小, ∣ A ∪ B ∣ |A \cup B| AB 是并集的大小。
  • 应用:用于文本的相似度计算,特别是在短文本和标签匹配中。
3. 使用大模型进行评估

在大模型评估中,传统的人工评估和自动评估各有优缺点:人工评估虽然准确、全面,但耗时费力;自动评估则速度快、成本低,但在复杂性和准确性上有所欠缺。为了结合两者的优点,我们可以利用大模型自身的能力来进行评估,这种方法不仅快捷,而且可以在一定程度上保留人工评估的全面性和准确性。

1. 利用大模型进行评估的优势
  • 速度与规模:大模型可以快速处理大量的验证案例,实现与自动评估相似的速度和规模优势。
  • 多维度评估能力:通过设计合理的 Prompt,大模型可以执行多维度的评估,类似于人工评估的量化方式。例如,可以要求大模型从正确性、一致性、逻辑性、通顺性等多个维度对答案进行打分。
  • 灵活性与智能性:大模型可以根据不同的评估任务动态调整评估标准和维度,具有高度的灵活性。同时,模型的语言理解能力使得它能够评估复杂的主观题,并给出合理的反馈。
2. 实施方法:Prompt Engineering

为了让大模型充当评估者,我们需要精心设计 Prompt,使其能够准确理解评估任务并执行相应的评估操作。以下是实现这一目标的几个步骤:

  1. 定义评估标准

    • 明确需要评估的维度和指标,例如正确性、逻辑性、语法通顺性等。
    • 确定评分标准和范围,例如每个维度的评分可以是0-1或0-10不等。
  2. 构建评估 Prompt

    • 在 Prompt 中,明确要求大模型对给定的答案进行多维度评估。例如:
      请对以下答案从正确性、逻辑性、语法通顺性和智能性四个维度进行评估,每个维度的评分为0-1,并给出相应的理由。
      问题:{问题内容}
      答案:{模型生成的答案}
    • 大模型会根据给定的标准对每个维度打分,并提供简要的评估理由。
  3. 分析与反馈

    • 收集大模型给出的多维度评估结果,计算总体得分或平均分,以此作为系统性能的衡量标准。
    • 根据评估结果,进一步优化模型或 Prompt,以提高生成结果的质量。
4 混合评估

在大模型的评估过程中,各种评估方法各有优缺点。为了实现评估的全面性、准确性和高效性,我们推荐将多种评估方法结合起来,针对不同维度选择最适合的评估方式。这种混合评估方法能够兼顾不同评估目标的特性,从而获得更加可靠的评估结果。

以下是一个针对个人知识库助手项目的混合评估方案示例:

1. 客观正确性
  • 定义:评估模型在面对有固定正确答案的问题时,是否能够提供正确的回答。
  • 评估方法:使用构造客观题的方式。例如,将复杂的问题分解为可以验证的子问题,每个子问题都有标准答案,通过模型对这些子问题的回答来评估客观正确性。
2. 主观正确性
  • 定义:评估模型在处理没有固定正确答案的主观问题时,是否能够提供正确、全面的回答。
  • 评估方法:利用大模型进行评估。通过精心设计的 Prompt,让大模型对生成的答案进行自我评估,从而判断其正确性和全面性。
3. 智能性
  • 定义:评估模型的回答是否具有拟人化特征,是否能够使用户感受到回答的智能性。
  • 评估方法:由于智能性评估较为主观,且难以通过自动化手段完全准确地判断,推荐少量抽样案例并通过人工评估来进行。人工评估员可以从回答的自然流畅程度、对话的连续性等方面来判断智能性。
4. 知识查找正确性
  • 定义:评估模型从知识库中检索到的知识片段是否正确且足以回答用户的问题。
  • 评估方法:使用大模型进行评估,要求大模型判定检索到的知识片段是否足以回答问题。此过程可以结合主观正确性的评估结果,进一步分析是否存在“幻觉”现象(即主观回答正确但知识查找不正确)。

参考

https://datawhalechina.github.io/llm-universe/#/C5/1.如何评估 LLM 应用?id=_1-验证评估的一般思路

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

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

相关文章

python从入门到精通:异常操作、模块操作及包操作

目录 1、异常概念 2、异常的捕获方法 3、异常的传递 4、python模块 4.1、模块的导入 4.2、自定义模块 5、python包 5.1、自定义python包 5.2、安装第三方包 1、异常概念 当检测到一个错误时,python解释器会无法执行,反而出现一些错误的提示&a…

视频中间件:大华视频设备接入管理应用

前言 上篇博文介绍了视频中间件:海康视频设备的接入管理?,今天给大家带来大华视频设备的接入管理,视频中间件平台支持大华Sdk、大华主动注册、Onvif、Rtsp、Gb28181等方式对大华视频设备的接入管理。同时视频中间件可支持协议互转…

离子交换技术在含银废水处理中的创新应用

随着科技的不断进步,金属制品在各行各业中扮演着越来越重要的角色。其中,镀银工艺作为一种提高金属制品性能的重要手段,其环境影响也日益受到关注。镀银过程中产生的含银废水含有多种有害物质,对环境构成潜在风险。因此&#xff0…

百度:未来or现在 顾此失彼?

用AI押注未来,却丢了现在 国内AI先行者百度 走到哪了? 作为这个星球最热门的概念,AI无疑是个好故事,不只是百度,美股的一众科技公司几乎都在讲述自己的AI投入及发展成果,市值也随着AI预期坐过山车。而市场…

Datawhale AI夏令营第五期CV方向-城市管理违规行为智能识别-Task1

赛题解析 城市管理违规行为智能识别 初赛任务是根据给定的城管视频监控数据集,进行城市违规行为的检测。违规行为主要包括垃圾桶满溢、机动车违停、非机动车违停等。 选手需要能够从视频中分析并标记出违规行为,提供违规行为发生的时间和位置信息。 数…

ArkTS--状态管理

一、概述 在声明式UI编程范式中,UI是应用程序状态的函数,应用程序状态的修改会更新相应的UI界面。ArkUI采用了MVVM模式,其中ViewModel将数据与视图绑定在一起,更新数据的时候直接更新视图。如下图所示: ArkUI提供了一系…

Day49 | 53. 寻宝 prim算法 与kruskal算法

语言 Java 53. 寻宝 53. 寻宝(第七期模拟笔试) 题目 题目描述 在世界的某个区域,有一些分散的神秘岛屿,每个岛屿上都有一种珍稀的资源或者宝藏。国王打算在这些岛屿上建公路,方便运输。 不同岛屿之间&#xff0c…

【MATLAB学习笔记】绘图——自定义标记(Marker)形状,实现与MATLAB自带标记基本一致的功能(自适应缩放、自适应裁剪)

目录 前言自定义标记函数自定义标记函数的说明纵横比调整将图形大小按磅数设置平移标记点绘制标记点边界标记点不裁剪 拓展功能——标记点自适应绘图区的缩放绘图区缩放回调函数标记点大小自适应标记点裁剪自适应 示例基本绘图自定义标记函数的使用 总代码主函数自定义标记函数…

RKNPU2从入门到实践 --- 【4】RKNN 模型构建【使用pycharm一步一步搭建RKNN模型】

目录 前言 1.1 RKNN 初始化及对象释放 1.1.1 概念介绍 1.1.2 实际演示 1.2 RKNN 模型配置 1.2.1 概念介绍 1.2.2 实际演示 1.3 模型加载 1.3.1 概念介绍 1.3.1.1 Caffe模型加载接口 1.3.1.2 TensorFlow模型加载接口 1.3.1.3 TensorFlowLite 模型加载接口 1.3.…

debian12 - 修改SSH端口连接回包

文章目录 debian12 - 修改SSH端口连接回包概述笔记先猜猜回包是哪个程序回的去下载对应版本的openssh代码工程用telnet测试的效果todo 关于ssh状态为active(start)的原因END debian12 - 修改SSH端口连接回包 概述 和同学讨论问题。 他说,用telnet去连接SSH端口&am…

数据仓库系列10:如何处理维度表中的变化类型?

想象一下,你正在管理一个电商平台的数据仓库。突然,你发现一个重要客户的地址发生了变化。这个简单的变更可能会对你的分析产生巨大影响。如何确保你的数据仓库能够准确地反映这种变化,同时又不丢失历史信息?欢迎来到数据仓库中最具挑战性的问题之一:维度表变化的处理。 目录…

记录imbalanced_learn离线安装

1 离线安装需要3个文件: 文件位置: ‘D:\非常重要\imbalanced-learn’ 2 复制到这个路径,即可 ‘…/miniconda3/lib/python3.8/site-packages’

数据结构与算法——Java实现 1.初识算法 —— 二分查找

目录 一、线性查找 二、二分查找 基础版 问题1 —— 循环条件 问题2 —— ij/2有没有问题 问题3 —— 代码中都写成 < 有何好处 改动版 人生的意义就是要独自穿过悲喜 —— 24.8.27 需求:在有序数组A内&#xff0c;查找值 target&#xff0c;如果找到返回索引&#xff0c;如…

小鹏在这次发布会上有哪些黑科技呢?

在今晚举办的小鹏10年热爱之夜&小鹏MONA MO3上市发布会上&#xff0c;何小鹏宣布&#xff0c;小鹏自研图灵芯片已于8月23日流片成功。据介绍&#xff0c;小鹏图灵芯片是全球首颗同时应用在AI汽车、机器人、飞行汽车的AI芯片&#xff0c;为AI大模型定制。 该芯片采用40核心…

【STM32】时钟体系

一、时钟体系 为什么需要时钟&#xff1f; 时钟可以为系统提供精确的定时&#xff0c;比如时间显示&#xff0c;定时器&#xff0c;pwm… 为芯片各功能模块提供工作势能,使能各组管脚工作&#xff0c;如果不使能&#xff0c;管脚无法工作 同步数据传输 给单片机提供一个时…

RabbitMQ中的死信交换机?(RabbitMQ延迟队列有了解过吗)

延迟队列 延迟队列:进入队列的消息会被延迟消费的队列。 延迟队列死信交换机 TTL&#xff08;过期时间&#xff09; 延迟队列的使用场景:超时订单、限时优惠、定时发布 死信交换机 当一个队列中的消息满足下列情况之一时&#xff0c;可以成为死信(dead letter): 消费者使…

探讨Vision Pro的成本优化与设计改进之路

随着Apple Vision Pro的发布,这款革命性的头戴式显示设备凭借其创新技术和用户体验吸引了大量关注。然而,高昂的价格成为了一个不可忽视的问题,阻碍了它的普及。为了让更多消费者能够负担得起这款产品,Apple需要探索各种方法来降低成本而不牺牲用户体验。本文将总结一些关于…

医用双目放大镜行业分析:前五大厂商占有大约39.0%的市场份额

一、当前市场状况 1. 市场规模与增长趋势 - 目前医用双目放大镜市场呈现出稳定增长的态势。据报告显示&#xff0c;预计到 2030 年全球市场规模将达到 5.2 亿美元&#xff0c;年复合增长率为 7.8%&#xff0c;这表明该行业具有较大的发展潜力。 - 增长的动力主要来自医疗行业…

排序算法(冒泡、插入、选择、快排、归并)原理动画及Python、Java实现

排序算法&#xff08;冒泡、插入、选择、快排、归并&#xff09;原理动画及Python、Java实现 1 冒泡排序1.1 原理1.2 Python、Java实现 2 插入排序2.1 原理2.2 Python、Java实现 3 选择排序3.1 原理3.2 Python、Java实现 4 快速排序4.1 原理4.2 Python、Java实现 5 归并排序5.1…

【机器学习】独立成分分析的基本概念、应用领域、具体实例(含python代码)以及ICA和PCA的联系和区别

引言 独立成分分析&#xff08;Independent Component Analysis&#xff0c;简称ICA&#xff09;是一种统计方法&#xff0c;用于从多个观察到的混合信号中提取出原始的独立信号源 文章目录 引言一、独立成分分析1.1 定义1.2 独立成分分析的基本原理1.3 独立成分分析的步骤1.3.…