[论文阅读]Making Retrieval-Augmented Language Models Robust to Irrelevant Context
Making Retrieval-Augmented Language Models Robust to Irrelevant Context
[2310.01558v2] Making Retrieval-Augmented Language Models Robust to Irrelevant Context
检索增强语言模型(RALMs),它包含一个检索机制,以减少将信息存储在 LLM 参数中的需求。
这项工作分析并提高了 RALM 对嘈杂检索上下文的鲁棒性。 对检索鲁棒性大语言模型的定义指出:(a)当相关时,检索到的上下文应该提高模型性能; (b) 当不相关时,检索到的上下文不应损害模型性能。 为此提出了两种方法,用于在 RALMs 中进行检索鲁棒性:
1.对大模型是黑盒访问权限,把检索器的稳健性视为自然语言推理NLI问题,给定一个问题和检索到的上下文,NLI模型可以预测上下文是否包含问答对,因此使用这样的NLI模型来识别不相关的上下文,如果上下文被标注为和问答对无关,就使用LLM的不检索的退避策略生成答案,这个方法太过严格,会舍弃相关的上下文。
2.提出一种训练RALM的方法。主要是对LLM进行微调。直观上,LLM没有用检索到的段落进行训练,因此对噪声检索的脆弱性在某种程度上是可以预料的。 因此执行了额外的微调步骤,教导LLM对嘈杂的环境具有鲁棒性。 核心挑战是生成用于微调的数据,我们描述了为单跳和多跳问题自动生成此类数据的过程。 在单跳设置中,假设可以访问黄金 QA 对和检索器,我们使用检索到的上下文创建训练示例,其中我们可以使用低排名或随机段落作为噪声上下文。 在多跳设置中,训练示例不仅需要包含检索到的上下文,还需要包含中间问题、答案和相关上下文,这些构成 问题分解(图3),这被证明对于多跳问题的高性能是必要的。 为了生成训练分解,使用强大的LLM,提示分解而无需任何检索。 然后对多个分解进行采样,并使用自一致性来识别高质量的训练示例。
【人话:单跳问题使用低排名或者随机段落作为噪声上下文;多跳问题先用LLM对问题及逆行分解,再对每一个分解进行采样。】
在五个 ODQA 基准上评估检索稳健性,其中四个包含多跳问题,其中检索器被多次调用
如图2,即使使用强大的检索器(前 1 名谷歌搜索),合并检索到的上下文实际上 损害 了模型在两个基准上的性能(StrategyQA 和 Fermi)。 此外,添加随机检索的上下文会显着降低所有五个数据集的准确性。 分析表明,不相关上下文会导致各种错误,包括从检索到的句子中复制不相关的答案,以及幻觉错误的答案和分解。
结果表明,微调 LLM 使其具有检索鲁棒性,使其能够忽略不相关上下文,同时提高其整体准确性。 当在测试时使用强大的检索器时,我们的微调模型优于没有检索的微调模型以及使用上下文学习提示的未训练模型。 为了测试对嘈杂上下文的鲁棒性,我们在给模型随机检索上下文时评估 QA 准确性。 在此设置中,我们的微调模型与没有检索的微调模型的性能相当,证明了检索的稳健性。 此外,我们的消融研究表明,在相关和不相关上下文混合上训练模型,会导致模型对不相关上下文更具鲁棒性。
方法
专注于 ODQA 的 RALM。
遵循最近的方法,例如 Self-Ask 和 IR-CoT,将检索与多跳问答交织在一起(参见图3)。 对每个中间问题执行检索,并将每个上下文添加到问题之前。 在单跳设置中,模型必须根据给定的问题和检索到的上下文生成答案。 在多跳设置中,模型必须生成中间问题和答案,直到得出最终答案,并且在每个中间问题之后调用检索器来处理原始问题。
使用NLI模型识别不相关的上下文
NLI 模型主要用于判断一个文本假设(hypothesis)在给定文本前提(premise)的情况下,是被蕴含(entailed)、中立(neutral)还是矛盾(contradicted)。在本文的研究场景中,将不相关上下文的识别转化为 NLI 问题。具体而言,把检索到的上下文作为前提,而最终答案以及中间的问答对作为假设。
对于单跳问题,以 “谁在《综合医院》中饰演杰森?” 为例,检索到的证据 “杰森・格哈特是一名美国演员,以在《综合医院》中饰演库珀・巴雷特而闻名” 作为前提,问题和生成的答案 “谁在《综合医院》中饰演杰森?答:史蒂夫・伯顿” 作为假设。若 NLI 模型判定该假设与前提矛盾或中立,就表明检索到的上下文不相关,此时会采用标准的语言模型(不使用可能产生干扰的检索上下文)来生成答案。对于多跳问题,除了最终答案,还需使用所有检索到的证据作为前提,对每个中间问答对作为假设进行验证。例如在 “谁是沃尔特・菲尔普斯上校?” 这个多跳问题的求解过程中,对于中间问答对 “Q:谁是沃尔特・菲尔普斯上校?A:沃尔特・菲尔普斯上校是美国内战期间联邦军队的一名军官”,需用检索到的相关证据来验证其是否被蕴含。
文中使用了一种简单的回退策略,即进行两次答案生成,一次基于标准语言模型pLM ,一次基于检索增强语言模型pRALM 。只有当 NLI 模型判定所有生成的答案(包括中间问题和最终答案)都被检索到的证据所蕴含时,才会使用pRALM生成的答案;否则,就使用pLM生成的答案。
这种利用 NLI 模型识别不相关上下文的方法,为提高 RALMs 对不相关上下文的鲁棒性提供了一种有效的思路,在一定程度上能够减少不相关信息对模型回答准确性的影响。但该方法也存在局限性,它可能会过于严格,导致一些相关的上下文被误判为不相关而被丢弃,进而影响模型在某些任务上的性能提升幅度 。
训练鲁棒的RALM
训练的必要性:由于上下文相关的 RALMs 在使用检索到的文本方面缺乏训练,面对噪声检索时较为脆弱。因此,训练 RALMs 忽略不相关上下文,比事后使用 NLI 过滤更为有效。并且,研究旨在探究使用相对较小的数据集(几百个示例)进行训练是否足够。
自动生成训练数据
- 单跳问题训练数据生成
- 数据基础:需要一个包含大量问题 - 答案对(q,a)的数据集,注意这里的数据集最初不包含上下文信息,同时还需要一个检索器R_C 。
- 相关上下文获取:为了让模型学习如何利用相关上下文,从检索器RC中获取与问题q相关的上下文。具体做法是,选取RC返回结果中排名第一的上下文,因为它通常与问题的相关性较高。
- 不相关上下文获取:一种是从RC(q)中选择低排名的结果,这些结果虽然与问题有一定关联,但关联程度较低,可视为不相关;另一种是随机选择其他问题q′的检索结果RC(q′)作为不相关上下文。比如,原本问题是关于历史事件,却选择一个体育赛事相关的检索结果作为不相关上下文,让模型学习区分相关性。
- 构建训练数据集:将选取的上下文rq与对应的问题q进行拼接,形成输入数据[rq;q],再结合答案a,最终构建出训练数据集D=([rq;q],a)。这样,模型在训练过程中就能学习到不同上下文与问题、答案之间的关系。
- 多跳问题训练数据生成
- 多跳问题特点:模型需要生成一系列中间问题和答案,逐步推导出最终答案,这个过程中检索器会多次被调用。
- 初步生成与验证:利用一个强大的语言模型(如 GPT-3 的 code-davinci-002),在不借助检索的情况下,根据问题提示生成可能的分解步骤。由于语言模型生成的分解可能存在错误,所以需要进行验证。
- 有中间答案标注的情况:对于像 2WIKIMQA 这样包含中间答案标注的数据集,直接过滤掉那些生成的分解中不包含正确中间答案的示例。因为如果生成的分解与已知的中间答案不匹配,说明这个分解可能是错误的,不能用于训练模型。
- 无中间答案标注的情况:对于如 STRATEGYQA 这类没有中间答案标注的数据集,采用多次采样和自一致性验证的方法。具体来说,对每个问题,从生成分解的语言模型中采样 5 次(1 次贪婪解码和 4 次温度为 0.7 的解码)。只有当这 5 个分解都能得出正确的最终答案时,才保留其中贪婪解码的分解作为有效的训练数据。这是因为多次采样且结果一致,说明该分解的可靠性较高。
- 构建多跳训练数据集:经过上述验证后,将符合要求的检索上下文rx、之前生成的步骤x以及正确的生成内容y组合起来,形成训练数据集D=([rx;x],y) ,用于训练模型在多跳问题中正确处理上下文和生成答案。
模型训练:利用自动生成的数据D,通过标准最大似然法对模型进行微调,使模型能够基于[rx;x]生成y。在低数据场景下,单跳设置中限制数据集中的问题数量为 1000 个,多跳设置中为 500 个(将多跳问题的每个步骤拆分为多个示例),并使用参数高效微调(parameter efficient fine - tuning,如 QLoRA)技术。所有模型的训练时间不超过几个小时
实验设置
数据集:
模型
检索器:通过 SerpAPI 服务查询 Google 搜索以及开源 ColBERTV2
语料库是维基百科,因此使用API查询的时候定死查询的目标网站是wiki的
小样本提示基线:LLAMA2-13B,通过上下文学习(4-6个示例),以自问格式提示词进行QA
再NQ上用LLAMA2-70B进行评估。基线根据实例中的检索上下文二不同:
- 自问不检索 (SA-NR): 例子是没有检索到证据的黄金分解。 我们使用此提示来评估模型在没有检索的情况下,仅依靠其参数记忆(即模型参数中编码的信息)时的性能。 作为额外的基线,我们使用此非检索提示,但在推理过程中仍然应用检索。
- 自问检索@1 (SA-R@1): 示例是黄金分解,每个步骤都预先添加了从 Google 搜索 检索到的最相关证据。
- 自问检索@10 (SA-R@10): 示例是黄金分解,在前面加上来自 Google 的最低排名段落(在大多数情况下排名第 10)。
- 自问随机检索 (SA-RMix) 示例是黄金分解,前面带有来自 Google 搜索 的排名前 1 或排名最低的证据,可互换。
基于NLI的模型:使用BART-large(在MNLI数据集上训练)。如果蕴含标签的概率为 ≥0.5,则一对问答是蕴含的。 所有提示基线的少样本都有 NLI 变体,称为 SA-*-NLI。 当没有蕴含时,我们使用来自 SA-NR 模型的生成,该模型仅使用参数化内存作为回退策略。
微调模型
在3个ODQA上对LLAMA2-13B进行微调,其中一个是单跳(NQ,1000 个训练样本),一个是显式(2WikiMQA,500 个问题,1,539 个样本),另一个是隐式(StrategyQA,414 个问题,1,584 个样本)。
数据生成:提示GPT3模型使用 SA-NR 提示生成分解。 2WikiMQA 包含中间答案,使用它们来验证生成的分解。 对于隐式 StrategyQA,我们仅使用最终答案,因此使用自一致性。 对每个问题进行 5 个分解采样(一个使用贪婪解码,四个使用温度 0.7),并且仅当所有分解都得出相同的正确答案时才保留贪婪解码分解。 为了验证生成的分解的质量,我们手动检查了每个数据集的 50 个分解,发现对于 StrategyQA,生成的分解在 90% 的时间内是正确的,对于 2WikiMQA,该比例超过 95%。 由于 Fermi 和 Bamboogle 包含的示例少于 300 个,因此我们仅将它们用于评估,并且不将它们包含在这些实验中。
将检索到的证据纳入训练示例中:
为了确保模型暴露在相关和不相关的上下文中,我们在每一步都以相同的概率使用前 1、低排名或随机证据。 我们将训练后的模型称为 SA-RetRobust。 我们包括训练没有检索到的上下文 (SA-NoRet) 或仅具有 top-1 证据 (SA-Ret@1) 的消融。
结果
检索对模型性能的影响各异:在不同数据集上,检索对模型性能影响不同。对于单跳的 NQ 和显式推理的 2WIKIMQA、BAMBOOGLE,检索能提升性能;但在隐式推理的 STRATEGYQA 和 FERMI 上,检索反而降低性能。例如,使用 GOOGLE SEARCH 检索 top-1 结果时,在 NQ 数据集上,上下文检索增强的 RALM 相比无检索模型性能提升明显,而在 STRATEGYQA 数据集上性能下降。
NLI 模型的效果与局限:NLI 模型能有效识别不相关上下文,防止检索降低性能,但会限制检索带来的性能增益。在检索随机上下文或评估隐式推理任务时,NLI 变体模型表现最佳;然而在检索有帮助的情况下,如显式推理的 2WIKIMQA 和 BAMBOOGLE 数据集上,使用 NLI 模型会降低性能。
训练能提升模型鲁棒性和性能:在相关和不相关上下文混合数据上训练的 SA - RetRobust 模型表现最佳。在不同检索条件下,该模型在多数数据集上均优于其他模型。当检索随机上下文时,SA - RetRobust 模型能保持较好性能,与未使用检索训练的模型表现相近,表明其学会了忽略不相关上下文并更好地利用相关上下文。
增加模型规模并非提升鲁棒性的关键:对比 Llama-2-70B 和经过训练的 Llama-2-13B 的 SA - RetRobust 模型,在无检索时,Llama-2-70B 性能更优;但在检索 top-1 结果时,SA - RetRobust 模型超越所有 Llama-2-70B 的提示变体,说明增加模型规模不能充分提升模型对检索的利用能力。
分析
不相关上下文导致错误的情况:通过人工标注分析发现,不相关上下文在 73% 的情况下会导致模型出错。在 NQ 数据集中,使用低排名上下文时,多数错误(77%)是生成的错误答案实体出现在检索上下文中;检索随机上下文时,错误比例为 37%。对于多跳问题,在 2WIKIMQA 中,检索低排名段落时,多数错误(68%)出现在中间答案;而在 STRATEGYQA 中,错误更多出现在中间问题(77%)。
NLI 模型失败的原因:NLI 模型在识别相关上下文时,存在概率判断不准确的情况。在 NQ 和 2WIKIMQA 数据集中,许多检索有帮助的情况被 NLI 模型误判为低蕴含概率。人工分析发现,约一半情况是 NLI 模型判断错误,生成文本实际蕴含于检索上下文;其余情况中,至少三分之一是生成答案或分解正确,但检索上下文未直接蕴含生成内容,这可能是模型结合检索和参数知识的能力导致的。
相关文章:
[论文阅读]Making Retrieval-Augmented Language Models Robust to Irrelevant Context
Making Retrieval-Augmented Language Models Robust to Irrelevant Context [2310.01558v2] Making Retrieval-Augmented Language Models Robust to Irrelevant Context 检索增强语言模型(RALMs),它包含一个检索机制,以减少将…...
论文阅读:2023 arxiv A Survey of Reinforcement Learning from Human Feedback
A Survey of Reinforcement Learning from Human Feedback https://arxiv.org/pdf/2312.14925 https://www.doubao.com/chat/3506943124865538 速览 这篇论文是关于“从人类反馈中进行强化学习(RLHF)”的综述,核心是讲如何让AI通过人类反…...
【图像处理基石】什么是去马赛克算法?
RAW数据的Demosaic算法(去马赛克算法)是图像处理中的关键技术,主要用于将图像传感器(如数码相机、手机摄像头)采集的原始马赛克数据恢复为完整的RGB三通道图像。 1. RAW数据的特性 马赛克结构:图像传感器…...
transformer注意力机制
单头注意力机制 import torch import torch.nn.functional as Fdef scaled_dot_product_attention(Q, K, V):# Q: (batch_size, seq_len, d_k)# K: (batch_size, seq_len, d_k)# V: (batch_size, seq_len, d_v)batch_size: 一次输入的句子数。 seq_len: 每个句子的词数。 d_mo…...
Ubuntu 22.04 更换 Nvidia 显卡后启动无法进入桌面问题的解决
原显卡为 R7 240, 更换为 3060Ti 后, 开机进桌面时卡在了黑屏界面, 键盘有反应, 但是无法进入 shell. 解决方案为 https://askubuntu.com/questions/1538108/cant-install-rtx-4060-ti-on-ubuntu-22-04-lts 启动后在开机菜单中(如果没有开机菜单, 需要按shift键), 进入recove…...
ROS机器人开发实践->机器人建模与仿真
前言: 这篇博客知识一个整体性的了解对于机器人建模和仿真,更多详细的细节,见 6.4.2 Xacro_语法详解 Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 一、整体框架 机器人模型分为两个部分具体的形状和插件。有了这个具体的形状…...
中国占全球工业机器人装机量的52%,国产机器人崛起加速洗牌,拆分机器人业务独立上市,软硬件协同增强,AI工业机械臂催生业务再增长
一、内部战略优化:聚焦核心业务与释放增长潜力 业务协同效应有限 ABB的机器人业务(全球市场份额第二)与集团其他业务(如电气化、过程自动化)的协同性较低。机器人业务专注于柔性制造和智能自动化,而其他业务更偏向能源效率和大型工业系统。分拆后,ABB集团可更聚焦于电气…...
C#森林中的兔子(力扣题目)
C#森林中的兔子(力扣题目) 题目介绍 森林中有未知数量的兔子。提问其中若干只兔子 “还有多少只兔子与你(指被提问的兔子)颜色相同?” ,将答案收集到一个整数数组 answers 中,其中 answers[i] 是第 i 只兔子的回答。 给你数组…...
OSPF特殊区域
四种特殊区域 1、stub 2、完全stub 3、nssa 4、完全nssa 作用:用于优化OSPF的LSDB空间 stub: [R2-ospf-1-area-0.0.0.1]stub //配置一个区域为stub区域 只在ABR上配置的话会导致OSPF邻居关系断开,因为此时Option选项中Nbit和Ebit置位不一致所…...
深入理解 CICD 与 Jenkins 流水线:从原理到实践
前言:在当今数字化飞速发展的时代,软件开发行业的竞争日益激烈。为了能够快速响应市场需求,及时交付高质量的软件产品,开发团队们不断探索和采用新的开发模式与工具。CICD(持续集成、持续交付 / 部署)作为一…...
1.Vue自动化工具安装(Vue-cli)
目录 1.node.js 安装: 2 npm 安装 3 安装Vue-cli 4总结: 一般情况下,单文件组件,我们运行在 自动化工具vue-CLI中,可以帮我们编译单文件组件。所以我们在学习时一般需要在系统中先搭建vue-CLI工具 下面就是一些我…...
前端亮点:大文件上传技术详解及问题解析
大片文件上传 文件上传 大片文件上传需考虑问题 一、核心实现步骤 分片唯一标识计算 (优化比较时间) • Hash生成:使用SparkMD5或crypto.subtle.digest计算文件整体Hash(秒传依据)及分片Hash(断点续传依据)。 • 优化:通过Web Worker多线程计算,避免主线程阻塞(如…...
每日一题——最小测试用例集覆盖问题
最小测试用例集覆盖问题(C语言实现) 问题描述 假设我们有一系列测试用例,每个测试用例会覆盖若干个代码模块。 我们使用一个二维数组来表示这些测试用例的覆盖情况: 如果某个测试用例 i 能覆盖代码模块 j,则数组中…...
React 文章 分页
删除功能 携带路由参数跳转到新的路由项 const navigate useNavigate() 根据文章ID条件渲染...
【技术派后端篇】Redis实现统计计数
在互联网项目中,计数器有着广泛的应用场景。以技术派项目为例,诸如文章点赞数、收藏数、评论数以及用户粉丝数等都离不开计数器的支持。在技术派源码中,提供了基于数据库操作记录实时更新和基于 Redis 的 incr 特性实现计数器这两种方案&…...
NHANES指标推荐:RFM
文章题目:Higher relative fat mass was associated with a higher prevalence of gallstones in US adults DOI:10.1186/s12876-025-03715-3 中文标题:在美国成年人中,相对脂肪质量越高,胆结石患病率就越高 发表杂志&…...
嵌入式人工智能应用-第三章 opencv操作 4 灰度处理
嵌入式人工智能应用 嵌入式人工智能应用-第三章 opencv操作 4 灰度处理 嵌入式人工智能应用1 灰度处理2 算法2.1 均值方法2.2 最大值法2.3 分量法2.4 加权平均法(Weighted Average Method)2.5 系统自带方法 3 总结 1 灰度处理 图像灰处理即是将一幅彩色…...
AI Agent破局:智能化与生态系统标准化的颠覆性融合!
Hi!好久不见 云边有个稻草人-个人主页 热门文章_云边有个稻草人的博客-本篇文章所属专栏~ 目录 一、引言 二、AI Agent的基本概念 2.1 定义与分类 2.2 AI Agent的工作原理 2.3 示例代码:AI Agent的基本实现 三、AI Agent在企业数字化转型中的应用 …...
UniFlash以串口方式烧录MSPM0G3507(无需仿真器)
材料:MSPM0G3507黑钢版,只要有UART的其他版本亦可(PA14需接LED) 下载软件:UniFlash 9.1.0.5175,网址:UNIFLASH 软件编程工具 | 德州仪器 TI.com.cn 测试文件:MSPM0G30…...
坐标轴刻度QCPAxisTicker
一、QCPAxisTicker 概述 QCPAxisTicker 是 QCustomPlot 中控制坐标轴刻度生成和显示的基类,负责计算刻度位置和生成刻度标签。 二、主要派生类 类名描述QCPAxisTickerFixed固定步长的刻度生成器QCPAxisTickerLog对数坐标刻度生成器QCPAxisTickerPi专门显示π倍数…...
Spring Boot 版本与对应 JDK 版本兼容性
Spring Boot 版本与对应 JDK 版本兼容性 以下是 Spring Boot 主要版本与所需 JDK 版本的对应关系,以及长期支持(LTS)信息: 最新版本对应关系 (截至2024年) Spring Boot 版本发布日期支持的 JDK 版本备注3.2.x (最新)2023-11JDK 17-21推荐使用 JDK 173…...
【MySQL】MySQL的基础语法及其语句的介绍
1、基础语法 mysql -h【主机名】 -u【用户名】 -p //登录MySQL exit或quit; //退出MySQL show database; //查看MySQL下的所有数据库 use 【数据库名】; //进入数据库 show tables; //查看数据库下的所有表名 *MySQL的启动和关闭 &am…...
《汽车理论》第四章作业MATLAB部分
1.计算并绘制利用附着系数曲线和制动效率曲线 clc close all %空载(no load)-1 ;满载(full load)-2 m14080; m29290; hg10.845; hg21.170; L3.950; a12.100; a22.950; b1L-a1; b2L-a2; beta0.38; %利用附着系数与制动强度的关系曲线 z0:0.01:1; phi_f1L*beta.*z./(b1z*hg1);%前…...
SpringCloud实战
环境准备: 1. 一台虚拟机,部署好centos7操作系统、安装好docker 2. 使用docker安装mysql数据库且启动mysql容器 3. IDEA配置的JDK版本是11 4. 前端代码启动Nginx 一、单体架构和微服务的区别? 1. 单体架构 将业务的所有功能集中在一个项目中…...
Cribl 对Windows-xml log 进行 -Serialize-05
The Serialize Function Description The Serialize Function is designed to transform an events content into a predefined format. Steps - Adding a Serialize Function important Select the Add Function<...
鸿蒙ArkUI之布局实战,线性布局(Column,Row)、弹性布局(Flex)、层叠布局(Stack),详细用法
本文聚焦于ArkUI的布局实战,三种十分重要的布局,线性布局、弹性布局、层叠布局,在实际开发过程中这几种布局方法都十分常见,下面直接上手 线性布局 垂直布局(Column) 官方文档: Column-行列…...
缓存 --- 内存缓存 or 分布式缓存
缓存 --- 内存缓存 or 分布式缓存 内存缓存(In-Memory Cache)分布式缓存(Distributed Cache)内存缓存 vs 分布式缓存 内存缓存和分布式缓存是两种常见的缓存策略,它们在存储位置、访问速度和适用场景上有所不同。下面分…...
【Qt】QMainWindow类
🌈 个人主页:Zfox_ 🔥 系列专栏:Qt 目录 一:🔥 QMainWindow 概述 🦋 菜单栏🎀 具体使用🎀 综合案例 🦋 工具栏🦋 状态栏🦋 窗口布局&a…...
缓存 --- 缓存击穿, 缓存雪崩, 缓存穿透
缓存 --- 缓存击穿, 缓存雪崩, 缓存穿透 缓存击穿(Cache Breakdown)概念原理实际场景代码实现(互斥锁方案) 缓存雪崩(Cache Avalanche)概念原理实际场景代码实现(随机过期时间) 缓存…...
第五章 SQLite数据库:5、SQLite 进阶用法:ALTER 命令、TRUNCATE 操作、视图创建、事务控制和子查询的操作
1. SQLite ALTER 命令 SQLite 的 ALTER TABLE 命令允许在不完全重建表的情况下修改现有的表结构。通过 ALTER TABLE,您可以执行如重命名表名、添加新列等操作,但无法执行复杂的修改,如删除列或修改列的数据类型。 语法 重命名表 用于重命名…...
【2】Kubernetes 架构总览
Kubernetes 架构总览 主节点与工作节点 主节点 Kubernetes 的主节点(Master)是组成集群控制平面的关键部分,负责整个集群的调度、状态管理和决策。控制平面由多个核心组件构成,包括: kube-apiserver:集…...
【数据结构】红黑树
红黑树( R e d B l a c k T r e e Red\ Black\ Tree Red Black Tree)是一种自平衡二叉搜索树,也可以看作一种特化的 A V L AVL AVL 树(通过颜色规则来实现自平衡功能),都是在进行插入和删除操作时通过特定…...
ThreadLocal - 原理与应用场景详解
ThreadLocal 的基础概念 在 Java 的多线程世界里,线程之间的数据共享与隔离一直是一个关键话题。如果处理不当,很容易引发线程安全问题,比如数据混乱、脏读等。而 ThreadLocal 这个工具类,就像是为线程量身定制的 “私人储物柜”…...
VS Code 远程连接服务器:Anaconda 环境与 Python/Jupyter 运行全指南。研0大模型学习(第六、第七天)
VS Code 远程连接服务器:Anaconda 环境与 Python/Jupyter 运行全指南 在使用 VS Code 通过 SSH 远程连接到服务器进行开发时,尤其是在进行深度学习等需要特定环境的工作时,正确配置和使用 Anaconda 环境以及理解不同的代码运行方式非常关键。…...
chili3d调试6 添加左侧面板
注释前 一个一个注释看对应哪个窗口 无事发生 子方法不是显示的窗口 注释掉看看 没了 注释这个看看 零件页面没了 这个浏览器居然完全不用关的,刷新就重载了 注释看看 无工具栏版本 sidebar: 往框框里面加入 div({ className: style.input }, user_…...
Python变量全解析:从基础到高级的命名规则与数据类型指南
一、变量基础与内存机制 1.1 变量的三元构成 每个Python变量由三个核心要素构成: 标识(Identity):对象的内存地址,通过id(obj)获取(如id(name)输出0x5a1b2c3d)类型(Type&am…...
组装一台intel n95纯Linux Server服务器
前言 笔者自己的电脑是macmini m4,平时都是使用虚拟机来充当Linux服务器(系统Ubuntu Server),但是毕竟是ARM CPU,而且黄金内存,开不了几个虚拟机(加内存不划算),所以组装…...
计算机网络中的网络层:架构、功能与重要性
一、网络层概述 在计算机网络的分层模型中,网络层(Network Layer)位于 数据链路层 之上,传输层 之下。网络层的主要任务是处理数据包的路由选择、转发以及分段,使得信息能够从源设备传送到目标设备。它还通过 IP协议&…...
Transformer系列(一):NLP中放弃使用循环神经网络架构
NLP中放弃使用循环神经网络架构 一、符号表示与概念基础二、循环神经网络1. 依赖序列索引存在的并行计算问题2. 线性交互距离 三、总结 该系列笔记阐述了自然语言处理(NLP)中不再采用循环架构(recurrent architectures)的原因&…...
(学习总结34)Linux 库制作与原理
Linux 库制作与原理 库的概念静态库操作归档文件命令 ar静态库制作静态库使用 动态库动态库制作动态库使用与运行搜索路径问题解决方案方案2:建立同名软链接方案3:使用环境变量 LD_LIBRARY_PATH方案4:ldconfig 方案 使用外部库目标文件ELF 文…...
【QT】 QT中的列表框-横向列表框-树状列表框-表格列表框
QT中的列表框-横向列表框-树状列表框-表格列表框 1.横向列表框(1)主要方法(2)信号(3) 示例代码1:(4) 现象:(5) 示例代码2:加载目录项在横向列表框显示(6) 现象: 2.树状列表框 QTreeWidget(1)使用思路(2)信号(3)常用的接口函数(4) 示例代码&am…...
使用DeepSeek的AIGC的内容创作者,如何看待陈望道先生所著的《修辞学发凡》?
目录 1.从修辞手法的运用角度 2.从语言风格的塑造角度 3.从提高创作效率角度 4.从文化传承与创新角度 大家好这里是AIWritePaper官方账号,官网👉AIWritePaper~ 《修辞学发凡》是陈望道 1932 年出版的中国第一部系统的修辞学著作,科学地总…...
使用 GitHub Actions 和 Nuitka 实现 Python 应用(customtkinter ui库)的自动化跨平台打包
目录 引言前置准备配置文件详解实现细节CustomTkinter 打包注意事项完整配置示例常见问题 引言 在 Python 应用开发中,将源代码打包成可执行文件是一个常见需求。本文将详细介绍如何使用 GitHub Actions 和 Nuitka 实现自动化的跨平台打包流程,支持 W…...
【Part 2安卓原生360°VR播放器开发实战】第一节|通过传感器实现VR的3DOF效果
《VR 360全景视频开发》专栏 将带你深入探索从全景视频制作到Unity眼镜端应用开发的全流程技术。专栏内容涵盖安卓原生VR播放器开发、Unity VR视频渲染与手势交互、360全景视频制作与优化,以及高分辨率视频性能优化等实战技巧。 📝 希望通过这个专栏&am…...
【1】云原生,kubernetes 与 Docker 的关系
Kubernetes?K8s? Kubernetes经常被写作K8s。其中的数字8替代了K和s中的8个字母——这一点倒是方便了发推,也方便了像我这样懒惰的人。 什么是云原生? 云原生: 它是一种构建和运行应用程序的方法,它包含&am…...
基于Redis实现RAG架构的技术解析与实践指南
一、Redis在RAG架构中的核心作用 1.1 Redis作为向量数据库的独特优势 Redis在RAG架构中扮演着向量数据库的核心角色,其技术特性完美契合RAG需求: 特性技术实现RAG应用价值高性能内存存储基于内存的键值存储架构支持每秒百万级的向量检索请求分布式架构…...
trivy开源安全漏洞扫描器——筑梦之路
开源地址:https://github.com/aquasecurity/trivy.git 可扫描的对象 容器镜像文件系统Git存储库(远程)虚拟机镜像Kubernetes 在容器镜像安全方面使用广泛,其他使用相对较少。 能够发现的问题 正在使用的操作系统包和软件依赖项…...
pnpm确认全局下载安装了还是显示cnpm不是内部或外部命令,也不是可运行的程序
刚开始是正常使用的。突然开始用不了了一直报错 1.在确保自己node和npm都一直正常使用并且全局安装pnpm的情况下 打开cmd查看npm的环境所在位置 npm config get prefix 2.接着打开高级系统设置 查看自己的path配置有没有问题 确认下载了之后pnpm -v还报错说明没有查询到位置 …...
基于 pnpm + Monorepo + Turbo + 无界微前端 + Vite 的企业级前端工程实践
基于 pnpm Monorepo Turbo 无界微前端 Vite 的企业级前端工程实践 一、技术演进:为什么引入 Vite? 在微前端与 Monorepo 架构落地后,构建性能成为新的优化重点: Webpack 构建瓶颈:复杂配置导致开发启动慢&#…...
软考高级系统架构设计师-第15章 知识产权与标准化
【本章学习建议】 根据考试大纲,本章主要考查系统架构设计师单选题,预计考3分左右,较为简单。 15.1 标准化基础知识 1. 标准的分类 分类 内容 国际标准(IS) 国际标准化组织(ISO)、国际电工…...