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

SecMulti-RAG:兼顾数据安全与智能检索的多源RAG框架,为企业构建不泄密的智能搜索引擎

本文深入剖析SecMulti-RAG框架,该框架通过集成内部文档库、预构建专家知识以及受控外部大语言模型,并结合保密性过滤机制,为企业提供了一种平衡信息准确性、完整性与数据安全性的RAG解决方案,同时有效控制部署成本。

企业环境中AI助手的机遇与挑战

企业级AI助手的潜力正在迅速显现——一种能够无缝集成于组织工作流程中的智能系统,可基于企业内部知识体系生成详尽报告、解答复杂技术问题、起草专业通信文档并提炼会议要点。这一愿景通过大型语言模型(LLM)驱动的检索增强生成(RAG)系统正逐步成为现实。

RAG技术之所以在企业环境中备受瞩目,源于其能够将GPT-4或Claude等高性能LLM与特定领域的相关数据结合,从而产生比单纯依赖模型通用训练更为准确、更具可信度的输出。这一机制可类比于为一位具备卓越分析能力的研究人员提供开卷考试环境,但其参考资料仅限于企业自身的专业知识库。

然而,在企业场景下部署标准RAG系统时,决策者通常面临三重核心挑战:

1、内部知识局限性问题。企业仅依靠内部文档作为知识来源往往难以满足全面需求。当所需信息未被记录、已过时或需要更广泛背景知识支持时,AI系统可能提供不完整甚至不准确的回应。

2、数据安全风险问题。虽然利用OpenAI、Anthropic或Google等外部闭源LLM来弥补知识缺口具有诱惑力,这些模型确实能提供丰富的知识与推理能力,但将可能包含商业机密、客户数据或专有技术的内部查询发送至第三方API存在显著的数据泄露风险,这对多数企业而言是不可接受的安全隐患。

3、资源成本可持续性问题。在企业规模下持续调用高级外部LLM服务会导致运营成本迅速攀升,影响部署的可持续性。

当所需信息没有被记录、已经过时或需要更广泛的背景时,会发生什么?AI 会陷入困境,提供不完整甚至不准确的答案。

安全噩梦: 使用外部强大的闭源 LLM(如来自 OpenAI、Anthropic、Google 的模型)来填补这些空白很有诱惑力。它们提供海量的知识和推理能力。然而,将内部查询——可能包含敏感的商业机密、客户数据或专有设计——发送给第三方 API 是大多数公司无法承受的巨大安全风险。数据泄露是一个可怕的前景。

成本难题: 持续调用顶级外部 LLM 很快就会变得成本高昂,尤其是在企业规模下。

那么,企业如何在不牺牲安全性、不耗尽预算、不满足于平庸结果的情况下,利用 RAG 的力量呢?

安全多方面 RAG(SecMulti-RAG) 应运而生,这是由埃默里大学和现代汽车公司的研究人员 Grace Byun、Shinsun Lee、Nayoung Choi 和 Jinho D. Choi 开发的一种新颖框架。SecMulti-RAG 提供了一种巧妙的混合方法,专为企业环境的复杂需求和限制而设计。它旨在实现所有方面的最佳效果:全面的知识检索、强大的安全性以及成本效益。

让我们深入了解它是如何工作的,以及为什么它可能是企业一直在等待的 RAG 解决方案。

企业 AI 困境:平衡能力、隐私和实用性

在我们剖析 SecMulti-RAG 之前,让我们先明确它所要解决的挑战。在大型组织内构建有效的 AI 助手不仅仅是拥有一个聪明的模型;它关乎在实际限制的雷区中航行。

  • 数据孤岛与不完整性: 企业知识通常分散在不同的系统、数据库和文档库中。并非所有相关信息都可能被整齐地结构化,甚至数字化。传统的 RAG 系统通常指向一个经过整理的内部知识库,当答案没有明确出现在索引文档中时,它们常常会碰壁。这会导致令人沮丧的"我不知道"的回答,或者更糟的是,听起来似乎合理但实际上是错误的"幻觉"。
  • 保密性至上: 企业依赖专有信息运营。产品路线图、财务数据、内部战略、客户个人身份信息(PII)、工程细节——这些数据是企业的命脉。想到员工不小心将敏感细节粘贴到发送给外部 LLM 提供商的提示中,就让首席信息安全官(CISO)夜不能寐。即使是匿名查询有时也可能间接泄露信息。
  • 可扩展性与成本: 一个对数千名员工有用的 AI 助手需要具备高性能和可负担性。对于每个查询都完全依赖最强大(也是最昂贵)的外部 LLM,会迅速累积巨大的运营成本。在性能和成本之间找到平衡对于广泛采用至关重要。
  • 领域特殊性: 通用 LLM,即使是强大的模型,也缺乏对特定企业领域(如汽车工程、药物研究或复杂的金融法规)的深入专业知识。它们需要通过领域特定数据,甚至可能需要微调模型来有效引导,以理解细微差别和术语。

传统的 RAG 提供了一个部分解决方案,但在试图通过外部模型弥补这些差距时,往往在完整性和安全性/成本方面表现不足。这就是 SecMulti-RAG 旨在弥合的差距。

SecMulti-RAG:一种更智能、更安全的方法

SecMulti-RAG 不仅仅是另一个 RAG 系统;它是一个为弹性、安全性和智能而设计的多层策略。其核心在于重新构想 AI 获取信息的来源以及如何处理潜在的敏感请求。

SecMulti-RAG 框架通过安全过滤器路由用户查询。敏感查询仅访问内部和预先生成的专家知识。非敏感查询可以额外利用按需外部知识。所有检索到的信息都由主要的本地 LLM 集成和处理,以实现安全且经济高效的生成。

SecMulti-RAG 不仅依赖一个文档池(内部知识),而是利用三种不同的知识来源

  1. 动态更新的企业知识库: 这是传统的 RAG 来源——内部文档、报告、维基、数据库等,持续更新。
  2. 预先编写的专家知识: 由领域专家预先为经常预期或至关重要的查询生成的精选答案或报告。可以将其视为 AI 的高质量"备忘单"。
  3. 按需外部知识: 由强大的外部 LLM(如研究中某些部分使用的 GPT-4o、Claude 3.7 Sonnet)实时生成,在需要时且在查询被认为是安全的情况下使用。

至关重要的是,对第三种来源的访问由保密性保护过滤器控制。该组件在用户查询可能到达外部 LLM 之前对其进行分析。如果查询被标记为包含敏感信息,则完全跳过外部知识源。

此外,SecMulti-RAG 通过使用经过微调、本地托管的开源 LLM(论文实现中为 Qwen-2.5–14B-Instruct)作为生成最终响应的主要引擎,优先考虑成本效益和安全性。强大的外部模型仅在安全的情况下少量使用,主要用于生成补充知识文档,而不是用于生成每个最终答案。

这种混合的、注重安全的设计使得 SecMulti-RAG 能够产生比传统 RAG 更完整、更准确的答案,同时降低数据泄露风险并控制运营成本。

SecMulti-RAG 如何变得更智能

SecMulti-RAG 的魔力在于其对三种互补知识来源的智能整合,形成了一个全面而平衡的信息生态系统。

首先,内部知识库作为企业知识的基础来源,包含了公司的技术报告、会议纪要、项目文档、内部维基和数据库等资源。在论文所描述的汽车行业应用场景中,这些资料涵盖了测试报告、会议记录和技术教科书。系统会将这些文档分块、转换为数值表示(嵌入)并通过诸如FAISS之类的库进行索引,以支持高效的语义搜索。当用户提出查询时,系统能够从这一内部库中检索最相关的内容片段。这类知识最大的优势在于其高度相关性和公司专属性,且由于始终保留在内部系统中而确保了安全性。然而,这种知识来源也存在局限性——它可能不完整、已经过时或缺乏更广泛的背景信息,对于新型问题可能完全没有相关资料。

其次,预先编写的专家知识作为第二个知识来源,由人类领域专家提前准备,用于解答特定的、可预见的或常见的复杂问题。在研究中,汽车工程师识别了关键问题领域(如"侧面碰撞中肩部载荷过大"),并在Claude 3.7 Sonnet的辅助下(通过安全的内部AWS Bedrock配置)根据这些关键词生成详细的技术报告,涵盖问题定义、分析、根本原因和改进方向。这些高质量的专家报告同样被分块、嵌入,并与内部文档一同添加到检索索引中。当用户查询与这些预先撰写的报告主题相匹配时,系统会优先检索这些权威内容。这种知识类型的优势在于能够填补已知的知识空白,为常见或关键问题提供权威答案,确保特定主题的内容质量和深度,并减少重复的生成工作。不过,它也需要专家投入前期精力,只能覆盖预期的主题范围,且需要定期维护以保持信息时效性。

第三,按需外部知识作为系统的补充来源,在内部和专家知识来源不足且用户查询被安全过滤器判定为非敏感时发挥作用。这些知识由强大的外部LLM(如论文实现中使用的GPT-4o)动态生成。当查询被确认安全后,系统会提示外部LLM生成相关背景信息、更广泛概念的解释或与查询相关的公共知识摘要。在论文的案例中,GPT-4o被用来生成通用技术背景文档,协助工程师撰写安全报告。至关重要的是,这些生成的文档随后会被索引回系统的知识池中,使其在未来也能被用于与之相关的查询检索,即使这些查询可能涉及敏感内容。外部知识的优势在于能够访问广泛且最新的知识库,回答超出内部数据范围的问题,并提供一般性背景信息。然而,这种方法也面临潜在的安全风险(通过过滤器缓解)、API调用带来的成本,以及如果提示设计不当可能导致生成内容过于通用或缺乏事实依据的问题。

通过巧妙结合这三种知识来源,SecMulti-RAG为生成器LLM创造了一个信息丰富的环境,同时充分利用了内部数据的专业性、专家知识的权威性和外部知识的广度,全部由一个注重安全的框架协调整合,使AI系统能够提供既准确又全面的回应。

保密过滤器

保密过滤器可以说是企业采用的最关键的创新。其唯一目的是防止敏感的公司信息通过对外部 LLM 的提示而离开公司的安全环境。

工作原理:

1. 分类任务: 该过滤器本质上是一个专门的分类模型。它将用户的查询作为输入,并将其分类为"安全"(标签 1:通用,非敏感)或"不安全"(标签 0:包含潜在敏感的内部信息、项目名称、特定指标、设计弱点等)。

2. 微调模型: 研究人员专门为此任务微调了一个轻量级的开源模型 Qwen2.5–3B-Instruct。使用较小的模型可以使过滤步骤快速高效。

3. 训练数据: 创建良好的训练数据是关键。韩国汽车工程师在 Claude 3.7 Sonnet(同样通过安全访问)的协助下,生成了一个包含以下内容的数据集:

  • 通用查询: 可以安全地对外共享(例如,“解释 IIHS 小重叠碰撞测试”)。
  • 简单敏感查询: 明确包含内部项目名称或特定标识符(例如,“HD3 52kph 后部评估期间……的变形值是多少?”)。
  • 困难敏感查询: 暗示敏感信息或弱点,但没有明确指明项目(例如,“为什么需要改变车门推力支架的位置……?”)。即使对于人类专家来说,这些也很棘手。
  • 每个查询都被标记为安全/不安全,并附有理由。

由 SecMulti-RAG 过滤器分类的查询示例。标签 1 是安全的,标签 0 是敏感的。注意没有提及特定项目名称的"困难"敏感查询的微妙之处。

性能与权衡:

评估揭示了一些有趣的见解:

简单案例的高召回率: 在处理明确提及项目名称的查询时,过滤器实现了非常高的召回率(99.01%)。这意味着它非常擅长捕捉明显敏感的查询,最大限度地减少了假阴性(让敏感查询漏网),这对于安全至关重要。

模糊性的挑战: 当包含"困难"敏感查询(没有明确标识符)时,性能下降(准确率 82.31%,召回率 74.35%)。这凸显了检测隐含敏感信息的固有难度。

高精确率: 即使存在模糊查询,过滤器仍保持高精确率(97.93%)。这意味着当它确实将查询标记为敏感时,它很可能是正确的,从而最大限度地减少了假阳性(不必要地阻止安全查询)。

人类基线: 有趣的是,执行相同任务的人类专家取得了相似的结果(准确率约 81%,召回率约 76%),表明该任务固有的模糊性。

过滤器模型和人类标注者在测试集上的评估结果。Easy-only 仅包含具有明确项目名称的安全敏感查询。Easy&Hard 包含简单(带项目名称)和困难(不带项目名称)的查询。Human 显示了专家标记的性能上限。

实际应用与渐进式部署:

为过滤器构建高质量的标记数据集可能非常耗时。研究人员提出了一种务实的部署策略:

初始阶段: 最初部署 SecMulti-RAG 时不带过滤器和外部知识。仅依赖内部文档和预先编写的专家知识。在此阶段记录真实的用户查询。

训练阶段: 收集并标记记录的查询(可能需要领域专家参与)以创建过滤器的训练数据。

全面部署: 训练并部署过滤器,从而能够安全、有选择地使用按需外部知识源。

或者可以将过滤器配置为在将敏感查询发送到外部之前将其重写为更安全的版本,从而提供另一层灵活性。

这种过滤机制是在注重安全的企业中部署 SecMulti-RAG 的安全基石。

针对企业现实进行微调

SecMulti-RAG 不仅仅是一个概念框架;该论文详细介绍了针对性能、成本和目标领域(韩国汽车工程)优化的具体实现选择。

1、检索器:在信息海洋中找到合适的针

  • 模型: 他们微调了 BGE-M3 (M3-Embedding),这是一个强大的多语言文本嵌入模型。多语言能力对于处理韩语数据至关重要。
  • 任务: 检索器的任务是接收用户查询,并从组合索引(内部 + 专家 + 索引的外部)中找到语义上最相关的 top-K 个文档块。论文中使用了 K=5。
  • 微调数据: 使用从内部报告/教科书派生的 QA 对以及来自预写专家知识库的关键字-报告对进行训练。
  • 评估指标: 平均精度均值(MAP@k)。该指标评估检索器在 top-k 结果中对相关文档进行排序的效果。
  • 结果: 与原始 BGE-M3 模型相比,微调显著提高了检索性能(例如,MAP@1 从 0.2855 提高到 0.5965,MAP@10 从 0.3925 提高到 0.7099)。这强调了使检索器适应特定领域和数据特征的重要性。更好的检索直接导致更好的最终生成结果。

原始模型和微调模型在我们测试数据集上的检索性能比较。

2、生成器:构建最终响应

模型: 他们选择了 Qwen-2.5–14B-Instruct,一个开源的多语言 LLM。

基本原理:

  • 多语言: 明确支持韩语。
  • 开源与本地化: 可以本地托管,增强安全性和控制力,避免用于生成的外部 API 调用。
  • 足够的能力(增强后): 虽然可能不如 GPT-4 等顶级模型强大,但这个 14B 参数的模型,在经过微调并输入来自多源 RAG 管道的高质量检索上下文后,被证明能够生成详细、准确的报告。这展示了一个关键原则:一个优化良好的检索系统可以弥补使用中等规模生成器模型的不足。
  • 成本效益: 在本地运行比为每次生成支付外部 API 调用费用要便宜得多。

微调: 生成器也针对来自企业知识库的韩语 QA 对进行了微调,以使其更好地与领域的语言、风格和知识保持一致。

3、文档选择策略:选择最佳证据

挑战: 潜在相关的块可能来自三个不同的来源,系统如何决定实际将哪些块传递给生成器 LLM?

当前方法(启发式): 论文使用了一种简单但有效的启发式方法:

  • 使用微调后的 BGE-M3 检索器,根据语义相似性检索前 5 个文档。
  • 应用一个约束:最多包含一个源自按需外部知识源(GPT 生成)的文档。

基本原理: 外部知识对于一般背景很有价值,但如果过度使用,可能会稀释事实基础。优先考虑内部和专家知识可以保持特异性和准确性。如果查询与专家主题匹配,预先编写的专家知识块会因其高相关性得分而隐式优先。

未来工作: 作者承认这种启发式方法可以改进。未来的一个方向是开发一种基于学习的文档选择策略,该策略考虑查询特征、文档来源、相关性得分和其他因素,为任何给定查询动态选择文档的最佳组合。

这种对组件的仔细选择和微调展示了构建强大而又资源节约的企业 RAG 系统的实用方法。

实战检验:汽车行业的真实结果

SecMulti-RAG 的最终衡量标准是其在现实任务中的表现。研究人员将其与传统的 RAG 基线(仅使用内部知识库)进行了比较,任务是为韩国汽车工程师生成技术报告。

评估方法:

1. 配对比较: 两个系统为同一组 135 个测试查询生成响应。

2. 评判者: 人类汽车工程师和 LLM 评判者(Claude 3.7 Sonnet)都对输出进行了并排比较(盲测,随机顺序 A/B 测试)以减轻偏见。

3. 指标:

  • 正确性: 与基准事实(使用预先编写的专家报告作为黄金标准)相比的事实准确性。
  • 丰富性: 细节水平、完整性和全面性。
  • 有用性: 清晰度、信息量以及对工程师的整体有用性。

4. 结果: 对于每个指标,评判者确定是 SecMulti-RAG 获胜、传统 RAG 获胜,还是平局。

结果:SecMulti-RAG 占据主导地位

SecMulti-RAG 与传统 RAG 在评估指标上的胜率比较。SecMulti-RAG 在 LLM 和人类评估的所有指标上均显著优于基线。注意人类评估中较高的"平局"率,尤其是在正确性和有用性方面。

结果清晰一致:

  • 显著获胜: SecMulti-RAG 在三个指标上的胜率达到了 79.3%-91.9%(LLM 评判者)和 56.3%-70.4%(人类评判者)。
  • 丰富性是关键: 最显著的改进是在"丰富性"方面。通过整合不同的知识来源,SecMulti-RAG 生成了明显更详细、更全面的报告。平均响应长度从 1,631 个 token(传统 RAG)跃升至 2,660 个 token(SecMulti-RAG)。
  • 质量差异: 一个示例比较显示,传统 RAG 狭隘地关注检索到的内部文档中提到的一个特定车型。相比之下,SecMulti-RAG 利用了关于重复出现问题的预写专家知识和潜在的外部背景,提供了更广泛的分析,涵盖了多个车型、常见模式、跨测试的根本原因(如 SAB 压力问题、排气孔变化)以及更结构化、可操作的改进方向。
  • 人类 vs. LLM 评判者: 虽然两者都更喜欢 SecMulti-RAG,但人类评估者更频繁地判定为"平局",尤其是在正确性和有用性方面。这可能表明,虽然 SecMulti-RAG 更丰富,但传统 RAG 更狭窄的焦点有时对于非常具体的查询意图可能被认为足够有帮助或正确,即使不够全面。

传统 RAG 与 SecMulti-RAG 的比较(从韩语翻译;敏感信息已匿名化)。传统 RAG(左)基于一份内部文档提供了狭窄的视图。SecMulti-RAG(右)使用多个来源,提供了更丰富、跨案例的分析,包含更详细的见解和可操作的方向。(敏感信息已匿名化)。

这些结果有力地验证了多源、安全过滤方法在企业 RAG 任务中的优势。

局限性与未来

SecMulti-RAG 为在企业中构建更实用、安全和有效的 RAG 系统提供了一个引人注目的蓝图。但更广泛的启示是什么?它将走向何方?

  • 混合模式可能是企业 RAG 的未来: 仅仅依赖内部数据通常是不够的。仅仅依赖外部 LLM 是有风险且昂贵的。像 SecMulti-RAG 这样的混合方法,智能地结合本地和外部资源,并辅以强大的安全性,提供了一条务实的前进道路。
  • 安全性可以被设计: 对数据泄露的担忧不应阻碍 AI 的采用。像保密过滤器这样的机制表明,安全性可以明确地设计到 RAG 工作流程中。
  • 优化的检索至关重要: SecMulti-RAG 的成功不仅取决于生成器 LLM,还很大程度上取决于其多源检索系统的质量。微调检索器并策略性地整合不同类型的知识可以显著提高性能。
  • 成本-性能权衡是可控的: 通过使用本地开源模型进行繁重的工作(生成),并为有针对性的、安全的知识注入保留昂贵的外部模型,企业可以在不耗尽预算的情况下构建强大的系统。

局限性与未来方向:

作者坦诚地指出了他们当前工作的局限性:

  • 领域和数据特殊性: 评估是在韩国汽车工程领域内一个相对较小、特定的数据集上进行的。需要进一步的研究来证明其在不同行业、语言和任务类型中的可扩展性和有效性(尽管附录中提到的初步 QA 测试很有希望)。
  • 启发式文档选择: 将外部文档限制为每个查询一个的规则很简单,但可能不是最优的。学习型选择模型可以根据查询的具体需求动态选择最佳的文档组合。
  • 过滤器的脆弱性: 虽然有效,但过滤器的性能在很大程度上取决于其训练数据的质量和覆盖范围。处理新型敏感查询或不断发展的企业术语可能需要持续监控和重新训练。
  • 生成器的怪癖: 使用 Qwen 模型偶尔会导致输出中出现意外的中文字符(由于其预训练数据)。这凸显了根据所选生成器进行仔细的模型选择和可能需要的后处理步骤。
  • 专家瓶颈: 创建预先编写的专家知识需要领域专家的大量投入,这在某些组织中可能是一个瓶颈。

未来的进展可能包括:

  • 开发更复杂、具有上下文感知能力的过滤机制。
  • 实现自适应的、基于学习的文档选择策略。
  • 探索自动识别知识差距并提示专家或外部 LLM 主动填补这些差距的技术。
  • 在检索过程中将结构化知识图谱与非结构化文档相结合。
  • 评估本地生成器和外部知识提供者的不同组合。

总结

SecMulti-RAG 让我们得以一窥下一代企业 AI 助手的面貌——它们不仅强大,而且实用、安全、值得信赖。

以下是其脱颖而出的特点:

  1. 多源知识: 结合动态内部数据、精选专家见解和广泛的外部知识,实现无与伦比的完整性。
  2. 安全第一: 采用专用过滤器阻止敏感查询到达外部服务,降低数据泄露风险。
  3. 成本效益设计: 利用本地开源 LLM 进行主要生成,有选择地、安全地使用昂贵的外部模型。
  4. 增强性能: 在生成准确、详细和有用的响应方面显著优于传统 RAG,已在实际评估中得到证明。
  5. 企业就绪: 解决了企业的核心关切——数据隐私、成本控制以及对领域特定准确性的需求。

虽然传统的 RAG 系统为企业打开了 AI 的大门,但 SecMulti-RAG 提供了一把更强大、更安全的钥匙,以释放组织知识的全部潜力。这是一种深思熟虑的方法,承认了企业环境的现实,为负责任且有效地利用 LLM 的力量提供了一条途径。

论文:

https://avoid.overfit.cn/post/3d53d713ef994db298b564d64adaa480

相关文章:

SecMulti-RAG:兼顾数据安全与智能检索的多源RAG框架,为企业构建不泄密的智能搜索引擎

本文深入剖析SecMulti-RAG框架,该框架通过集成内部文档库、预构建专家知识以及受控外部大语言模型,并结合保密性过滤机制,为企业提供了一种平衡信息准确性、完整性与数据安全性的RAG解决方案,同时有效控制部署成本。 企业环境中A…...

kubesphere 单节点启动 etcd 报错

kubekey安装 ./kk create cluster -f config-sample.yaml --with-local-storage 时报错 etcd health check failed: Failed to exec command: sudo -E /bin/bash -c "export ETCDCTL_API2;export ETCDCTL_CERT_FILE/etc/ssl/etcd/ssl/admin-node1.pem;export ETCDCTL_KEY_…...

femap许可常见问题及解决方案

在使用Femap进行电磁仿真分析时,许可证管理是一个关键环节。然而,许多用户在许可证使用过程中可能会遇到各种问题。本文旨在解答关于Femap许可的常见疑问,并提供相应的解决方案,帮助您更顺畅地使用Femap许可证。 一、常见问题 许…...

游戏引擎学习第244天: 完成异步纹理下载

启动并运行游戏,注意到我们的纹理没有被下载 我们将继续完成游戏的开发。昨天,我们已经实现了多线程的纹理下载,但并没有时间调试它,因此纹理下载功能目前并没有正常工作。我们只是写了相关的代码,但由于大部分时间都…...

【安全扫描器原理】TCP/IP协议编程

【安全扫描器原理】TCP/IP协议编程 1.概述2.Windows Socket结构3.Windows socket转换类函数4.Windows Socket通信类函数 1.概述 TCP/IP协议是目前网络中使用最广泛的协议,Socket称为“套接口”​,最早出现在Berkeley Unix中,最初只支持TCP/I…...

Cuda-GDB Frame Unwind 管理(未完.)

在计算机编程中,Frame Unwind(栈展开) 是指函数调用栈的逆向操作,即在函数返回或异常发生时,系统逐层释放栈帧(Stack Frame)、恢复调用上下文的过程。以下是详细解释及其在 GPU编程(…...

如何在IDEA中高效使用Test注解进行单元测试?

在软件开发过程中,单元测试是保证代码质量的重要手段之一。而IntelliJ IDEA作为一款强大的Java开发工具,提供了丰富的功能来支持JUnit测试,尤其是通过Test注解可以快速编写和运行单元测试。那么,如何在IDEA中高效使用Test注解进行…...

什么是访客鉴权?全面解析核心原理与CC防护应用实践

一、访客鉴权是什么? 访客鉴权(Visitor Authentication and Authorization)是系统对访问者进行身份验证和权限控制的过程,确保只有合法用户能够访问特定资源或执行特定操作。其核心目标是确认身份、控制权限、保障数据安全&#…...

DeepSeek大模型应用学习通知

随着人工智能在各领域深度融合发展,DeepSeek大模型迅速火爆全网,清华大学以最快的速度发布了DeepSeek从入门到精通使用技巧,能够更好的助力于企业和个人参与到AI研究和应用中,对于AI行业创新有重要意义,被誉为国运级的…...

时间序列预测模型比较分析:SARIMAX、RNN、LSTM、Prophet 及 Transformer

时间序列预测根据过去的模式预测未来事件。我们的目标是找出最佳预测方法,因为不同的技术在特定条件下表现出色。本文章将探讨各种方法在不同数据集上的表现,为你在任何情况下选择和微调正确的预测方法提供真知灼见。 我们将探讨五种主要方法&#xff1…...

快速了解redis,个人笔记

更多个人笔记:(仅供参考,非盈利) gitee: https://gitee.com/harryhack/it_note github: https://github.com/ZHLOVEYY/IT_note (基于mac展示,别的可以参考)接下来将直接…...

Dify依赖管理poetry切换为uv

Dify升级 1.3.0 后api的依赖管理从poetry切换为了 uv管理,但是官网暂时还没有更新。 升级 tag:Dify 1.3.0版本 在此记录一下 uv 依赖管理操作 使用方法 [重要事项] 在 v1.3.0 版本中,poetry 已被[ uv ](https://docs.astral.sh/uv/) 替代…...

VGA 接口静电防护方案

VGA(Video Graphics Array)即视频图形阵列,具有分辨率高、显示速 率快、颜色丰富等优点,亦称为 D-Sub 接口,在彩色显示器领域得到了广 泛的应用, 如笔记本、投影仪、LCD 液晶显示屏 等。VGA 接口主要用于连接 计算机与显示设备。当…...

MySQL 详解之用户、权限与审计:保障数据安全的基石

在数据库系统中,数据是核心资产,对其的访问必须受到严格控制。谁能连接到数据库?他们能看到哪些数据?能执行哪些操作(读、写、修改结构)?系统中的所有操作是否被记录以便追溯?这正是用户管理、权限系统和审计机制需要解决的问题。 在 MySQL 中: 用户 (Users): 负责认…...

力扣面试150题--环形链表和两数相加

Day 32 题目描述 思路 采取快慢指针 /*** Definition for singly-linked list.* class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*/ public class Solution {public boolean hasCycle(ListNod…...

HMI与组态,自动化的“灵珠”和“魔丸”

在现代工业自动化领域,组态(Configuration)和人机界面(HMI,Human-Machine Interface)是两个核心概念,它们在智能化控制系统中发挥着至关重要的作用。尽管这两者看似简单,但它们的功能…...

AbMole| CU-CPT-8m(CAS号125079-83-6;目录号M9746)

CU-CPT-8m是一种特异性的TLR8(toll-like receptor 8)拮抗剂,其IC50值为67 nM,Kd值为220 nM。 生物活性 CU-CPT-8m是一种特异性的TLR8(toll-like receptor 8)拮抗剂,其IC50值为67 nM,…...

【网络入侵检测】基于源码分析Suricata的PCAP模式

【作者主页】只道当时是寻常 【专栏介绍】Suricata入侵检测。专注网络、主机安全,欢迎关注与评论。 1. 概要 👋 本文聚焦于 Suricata 7.0.10 版本源码,深入剖析其 PCAP 模式的实现原理。通过系统性拆解初始化阶段的配置流程、PCAP 数据包接收线程的创建与运行机制,以及数据…...

【滑动窗口+哈希表/数组记录】Leetcode 438. 找到字符串中所有字母异位词

题目要求 给定两个字符串 s 和 p,找到 s 中所有 p 的异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 字母异位词是通过重新排列不同单词或短语的字母而形成的单词或短语,并使用所有原字母一次。 示例 1 输入:s…...

uniapp自定义封装tabbar

uniapp自定义封装tabbar 开发原因: 有很多时候 小程序并没有其类目 需要通过配置发布审核&#xff0c; ps&#xff1a;需要去掉项目pages.json tabbar配置&#xff0c;不然重进会显示默认&#xff0c;跳转页面不能uni.switchTab。 组件tabbar <template><viewclass&…...

uni-app云开发总结

uni-app云开发总结 云开发无非就三个概念&#xff1a;云数据库、云函数、云存储 uni-app中新增了一个概念叫做云对象&#xff0c;它其实就是云函数的加强版&#xff0c;它是导出的一个对象&#xff0c;对象中可以包含多个操作数据库的函数&#xff0c;接下来咱们就详细对uni-…...

uniapp-商城-37-shop 购物车 选好了 进行订单确认3 支付栏

支付栏 就是前面用的 car-Layout 在shop也用来这个组件 只是在那里用来的是购物车。 1、 样式 我们开始进入这个页面是点击的shop的购物篮 到这里就变成了支付栏 其实他们是同一个组件 只是做了样式区分 2、具体看看样式和代码 2.1 消失了购物车和改变了按钮名字 如何…...

搜索二叉树-key的搜索模型

二叉搜索树(Binary Search Tree, BST)是一种重要的数据结构&#xff0c;它有两种基本模型&#xff1a;Key模型和Key/Value模型。 一、Key模型 1.基本概念 Key模型是二叉搜索树中最简单的形式&#xff0c;每个节点只存储一个键值(key)&#xff0c;没有额外的数据值(value)。这…...

Qt ModbusSlave多线程实践总结

最近项目中用到了ModbusSlave&#xff0c;也就是Modbus从设备的功能&#xff0c;之前用的基本都是master设备&#xff0c;所以读取数据啥的用单线程就行了&#xff0c;用 void WaitHelper::WaitImplByEventloop(int msec) {QEventLoop loop;QTimer::singleShot(msec, &loop…...

Leetcode刷题记录18——接雨水

题源&#xff1a;https://leetcode.cn/problems/trapping-rain-water/description/?envTypestudy-plan-v2&envIdtop-100-liked 题目描述&#xff1a; 思路一&#xff1a; &#x1f31f; 本题核心思想&#xff1a;木桶效应 每个位置的“桶”&#xff1a;假设每个柱子的位…...

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤

以下是在 IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤&#xff1a; 步骤 1&#xff1a;创建 Maven Web 项目 新建项目 File -> New -> Project → 选择 Maven → 勾选 Create from archetype → 选择 maven-archetype-webapp。输入 GroupId&#xff08;如 com.examp…...

全球玻璃纸市场深度洞察:环保浪潮下的材料革命与产业重构(2025-2031)

一、行业全景&#xff1a;从传统包装到绿色经济的战略支点 玻璃纸&#xff08;Cellulose Film&#xff09;&#xff0c;即再生纤维素薄膜&#xff0c;以木浆、棉浆等天然纤维素为原料&#xff0c;通过碱化、黄化、成型等工艺制成&#xff0c;兼具透明性、柔韧性及100%生物降解性…...

提示js方法未定义,但是确实<textarea>标签未闭合。

1、问题现象。 Uncaught ReferenceError: showOtherDismantleFn is not defined 但是这个方法&#xff0c;在代码中明明存在。 #if($!{isNewEnergy})#if($!{batteryName} 宁德时代)<button class"btn btn-info btn-xs" onclick"showNingDismantleFn()&quo…...

spring中的@bean注解详解

在Spring框架中&#xff0c;Bean注解是用于显式声明一个Bean的核心方式之一&#xff0c;尤其在基于Java的配置中。Spring框架中的Bean注解实现原理涉及多个核心机制&#xff0c;包括配置类解析、Bean定义注册、动态代理及依赖注入等 一、Bean注解的作用 Bean用于标注在方法上&…...

计算机网络中的DHCP是什么呀? 详情解答

目录 DHCP 是什么&#xff1f; DHCP 的工作原理 主要功能 DHCP 与网络安全的关系 1. 正面作用 2. 潜在安全风险 DHCP 的已知漏洞 1. 协议设计缺陷 2. 软件实现漏洞 3. 配置错误导致的漏洞 4. 已知漏洞总结 举例说明 DHCP 与网络安全 如何提升 DHCP 安全性 总结 D…...

uniapp-商城-38-shop 购物车 选好了 进行订单确认4 配送方式1

配送方式在订单确认页面最上方&#xff0c;可以进行选中配送还是自提&#xff0c;这里先看看配送。 代码样式&#xff1a; 可以看出来是通过组件来实现的。组件名字是&#xff1a;delivery-layout 1、建立组件文件夹和页面&#xff0c;delivery-layout这里就只有配送 2、具体…...

粒子群优化算法(Particle Swarm Optimization, PSO)的详细解读

最近研究基于进化算法的神经网络架构搜索&#xff0c;仔细阅读了TEVC2023年发表的一篇NAS搜索的文章&#xff0c;觉得收益颇多&#xff0c;对比NSGA-2&#xff0c;这里给出PSO的详细解释。【本人目前研究的是多目标进化算法&#xff0c;欢迎交流、留言】 文章题目是&#xff1…...

大模型在直肠癌预测及治疗方案制定中的应用研究

目录 一、引言 1.1 研究背景与意义 1.2 研究目的 1.3 研究方法与创新点 二、大模型技术概述 2.1 大模型的基本原理 2.2 常见大模型类型及特点 2.3 在医疗领域的应用进展 三、直肠癌预测相关数据收集与处理 3.1 数据来源 3.2 数据清洗与预处理 3.3 特征工程 四、大…...

【C++】继承----下篇

文章目录 前言一、实现一个不能继承的类二、友元与继承三、继承与静态成员四、多继承以及菱形继承问题1.继承模型&#xff1a;2.菱形继承的问题3.虚拟继承解决数据冗余和二义性的原理4.虚拟继承的原理 五、继承的总结和反思1.继承和组合 总结 前言 各位好呀!今天呢我们接着讲继…...

windows安装jax和jaxlib的教程(cuda)成功安装

本文你将解决3个问题&#xff1a;1、jaxlib没有安装的问题&#xff1b;2、python3.9以上&#xff08;不可忽略&#xff09;、cuda12.1&#xff08;可忽略&#xff09;以上配置要求不满足的问题&#xff1b;3、numpy版本太高的问题。 1、问题描述 当你直接pip install jax或者c…...

软考【网络工程师】2023年5月上午题答案解析

1、固态硬盘的存储介质是()。 A 光盘 B 闪存 C 软盘 D 磁盘 答案是 B。 固态硬盘(Solid State Drive),简称 SSD,是用固态电子存储芯片阵列制成的硬盘,其存储介质是闪存(Flash Memory)。闪存具有非易失性,即在断电后仍能保留存储的数据,且读写速度快、抗震性强、能…...

支付场景下,乐观锁的实现(简洁版)

1、问题描述 看到一个同事建的数据库表&#xff0c;好奇打开看看。 create table db_paycenter.t_pay_order_divide (id bigint auto_increment comment 主键id|20250402|XXXprimary key,user_id bigint not null comment user…...

AI视频技术赋能幼儿园安全——教师离岗报警系统的智慧守护

教师离岗报警系统如一位无形的守护者&#xff0c;实时监测教室动态&#xff0c;一旦发现教师离岗超30秒&#xff0c;立即通知园方&#xff0c;确保幼儿不被忽视。这套开源系统以高效检测和即时报警为核心&#xff0c;助力园所优化管理&#xff0c;增强家长信心&#xff0c;开启…...

SCI论文结构笔记

摘要五要素(Abstract)&#xff1a; 背景和研究问题研究目的研究方法研究结果结论和意义 引言&#xff08;Introduction)&#xff1a; 研究背景研究问题研究现状现有的研究的问题与不足本研究的研究目标文章结构 研究综述(Literature review): 选题的理由现存文献中可借鉴的…...

《修仙家族模拟器2》:游戏背景故事介绍!

《修仙家族模拟器2》构建了一个以修仙文明为根基的宗族传承世界&#xff0c;玩家将扮演家族初代掌舵者&#xff0c;在动态演变的修仙江湖中完成从凡俗世家到仙道巨擘的蜕变。以下为具体背景设定解析&#xff1a; 一、世界观架构&#xff1a;仙凡交织的修真宇宙 空间维度 游戏…...

Linux部署ragflow,从安装docker开始~

安装docker https://download.docker.com/linux/static/stable/x86_64/docker-28.0.1.tgz #首先创建一个文件夹&#xff0c;存放我们需要的各类文件,并切换到该目录 mkdir /project && cd /project #此时我们的工作目录已经切换到刚刚创建的文件夹下了&#xff0c;接…...

苹果iosApp提交审核常见问题--内购订阅篇

常见问题1- 准则2.1.1 Guideline 2.1 - Information Needed The app binary includes the PassKit framework for implementing Apple Pay, but we were unable to verify any integration of Apple Pay within the app. Next Steps If the app integrates the functionali…...

从代码学习深度学习 - 微调 PyTorch 版

文章目录 前言一、迁移学习与微调概念二、微调步骤解析三、实战案例:热狗识别3.1 数据集准备3.2 图像增强处理3.3 加载预训练模型3.4 模型重构3.5 差异化学习率训练3.6 对比实验分析总结前言 深度学习模型训练通常需要大量数据,但在实际应用中,我们往往难以获得足够的标记数…...

Registry镜像仓库的安装与使用

任务目标 &#xff08;1&#xff09;了解目前主流的镜像仓库 &#xff08;2&#xff09;掌握registry私有镜像仓库的部署与使用 任务实施 基础信息 Docker私有仓库个宿主机配置信息 主机名 IP地址 节点角色 registry 192.168.110.80 私有仓库 node1 192.168.110.9…...

java多线程(6.0)

目录 ​编辑 阻塞队列 阻塞队列概念 生产者消费者模型 阻塞队列的作用 阻塞队列的使用 阻塞队列的实现 阻塞队列 阻塞队列概念 阻塞队列是一种特殊的队列&#xff0c;同样遵循“先进先出”的原则&#xff0c;支持入队操作和出队操作和一些基础方法。在此基础上&#…...

tkinter的文件对话框:filedialog

诸神缄默不语-个人技术博文与视频目录 文章目录 一、前言二、tkinter.filedialog模块详解2.1 模块导入方式2.2 通用参数说明 三、五大核心函数实战3.1 选择单个文件 - askopenfilename()3.2 多文件选择 - askopenfilenames()3.3 保存文件对话框 - asksaveasfilename()3.4 选择目…...

HOW - 如何模拟实现 gpt 展示答案的交互效果

文章目录 产品设计维度核心目标实现方式主要靠一些技巧1. 用 emoji 做语义锚点2. 每个段落只传达一件事3. 有节奏地对话式切换4. 使用 Markdown 风格来排版5. 用“你”而不是“用户”说话 如果想实现类似体验&#xff08;比如写文档、教程、产品介绍&#xff09; 前端开发维度想…...

达梦数据库压力测试报错超出全局hash join空间,适当增加HJ_BUF_GLOBAL_SIZE解决

1.名词解释&#xff1a;达梦数据库中的HJ_BUF_GLOBAL_SIZE是所有哈希连接操作可用的最大哈希缓冲区大小&#xff0c;单位为兆字节&#xff08;MB&#xff09; 2.达梦压测报错&#xff1a; 3.找到达梦数据库安装文件 4.压力测试脚本 import http.client import multiprocessi…...

第11章 面向分类任务的表示模型微调

​​​​​​第1章 对大型语言模型的介绍第2章 分词和嵌入第3章 解析大型语言模型的内部机制第4章 文本分类第5章 文本聚类与主题建模第6章 提示工程第7章 高级文本生成技术与工具第8章 语义搜索与检索增强生成第9章 多模态大语言模型第10章 构建文本嵌入模型第12章 微调生成模…...

c#加密证件号的中间部分,改为*号

前言 使用场景&#xff1a;在我项目中&#xff0c;我需要给前端提供接口&#xff0c;所以我要吧证件号进行加密。例如&#xff1a;411421199510225612&#xff0c;这是一个身份证号&#xff0c;18为的&#xff0c;那么我加密完成之后就会是 411421********5612&#xff0c;类似…...