大模型微调面试题全解析:从概念到实战

大模型微调面试题全解析:从概念到实战

微调基础概念

本文较长,建议点赞收藏,以免遗失。更多AI大模型开发 学习视频/籽料/面试题 都在这>>Github<< >>gitee<<

(一)什么是微调

微调,从技术本质上讲,是在已经经过大规模数据预训练的大模型基础上,利用特定任务或领域的数据集,对模型进行进一步训练的过程 。预训练大模型就像是一个博闻强识的 “万事通”,它在海量的通用数据中学习到了语言、图像、语音等各种信息的通用模式和特征。然而,当面对具体而专业的任务时,这个 “万事通” 可能就显得有些力不从心。

以自然语言处理领域的大模型为例,一个在互联网上的大量文本数据上进行预训练的语言模型,虽然它对日常语言的理解和生成有一定能力,但在处理医学领域的专业文献时,可能会对 “心肌梗死”“冠状动脉粥样硬化” 等专业术语感到陌生,难以准确理解文本的深层含义和逻辑关系。这时,微调就发挥了关键作用。我们将医学领域的专业文献、病历等数据作为微调数据集,让预训练模型在这些数据上进行进一步学习,模型就能够逐渐掌握医学领域独特的语言模式、术语概念和知识体系 ,从而在医学文本处理任务中表现得更加出色。

(二)微调的目的

微调的核心目的是让大模型更好地服务于具体的业务场景和任务,提高模型在特定领域的性能和准确性。在实际应用中,不同的行业和领域都有其独特的数据特点和任务需求。

在医疗领域,医生们需要借助大模型来辅助诊断疾病、分析病历、制定治疗方案等。通过对医疗大模型进行微调,使其深入学习大量的医学案例、疾病诊断标准、药物治疗方案等专业知识,模型就能够为医生提供更准确的诊断建议和治疗参考,帮助医生提高诊断效率和治疗效果,拯救更多的生命。在金融领域,银行、投资机构等需要大模型来进行风险评估、市场预测、投资决策等。对金融大模型进行微调,让其学习金融市场的历史数据、经济指标、行业动态等信息,模型就能够更精准地预测市场走势,评估投资风险,为金融从业者提供科学的决策依据,实现资产的保值增值 。通过微调,大模型能够在各个专业领域中发挥更大的价值,推动行业的智能化发展,提高业务效率和质量,为人们的生活和工作带来更多的便利和创新。

三、常见面试问题及解答

(一)数据相关

1. 数据量对微调的影响

数据量在大模型微调中起着举足轻重的作用,它直接关系到模型的性能和泛化能力 。当微调数据量较少时,模型可能无法充分学习到特定任务的复杂模式和特征,容易出现过拟合现象。这就好比一个学生只做了少量的练习题,对知识点的理解和掌握不够全面,在考试中遇到稍微变化的题目就容易出错。模型在少量数据上进行微调后,可能在训练集上表现良好,但在面对新的、未见过的数据时,预测准确率会大幅下降,无法准确地泛化到实际应用场景中 。

相反,如果有充足的数据量,模型就能够学习到更广泛的样本特征和模式,从而提高其泛化能力 。大量的数据就像是丰富的学习资料,学生可以从中学到各种解题思路和方法,在考试中面对不同类型的题目都能应对自如。丰富的数据能让模型更好地捕捉到数据中的潜在规律,减少对训练数据的过度依赖,使其在新数据上也能保持较高的准确率和稳定性 。

针对不同的数据量,我们可以采取不同的策略。当数据量较少时,可以采用数据增强技术,如对文本数据进行同义词替换、句子结构变换,对图像数据进行旋转、缩放、裁剪等操作,增加数据的多样性,扩充数据集规模 。还可以使用迁移学习中的知识蒸馏方法,将大模型的知识迁移到小模型上,利用小模型对少量数据进行微调,提高模型的性能 。当数据量充足时,可以尝试更复杂的模型结构和训练算法,充分挖掘数据中的信息,进一步提升模型的表现 。也可以对数据集进行合理的划分,将一部分数据作为验证集,用于调整模型的超参数,防止过拟合,确保模型在新数据上的泛化能力 。

2. 如何保证微调数据集的高质量

高质量的微调数据集是实现有效微调的基础,直接决定了模型在特定任务上的性能表现 。为了保证微调数据集的高质量,需要遵循以下几个重要原则:

  • 任务对齐:确保数据集中的任务与模型将要应用的实际任务紧密对齐。例如,若要微调一个用于医疗诊断的模型,数据集中应包含各种真实的医疗病例、症状描述、诊断结果等,且数据的分布应与实际医疗场景中的情况相似 。这样模型在微调过程中才能学习到与实际任务相关的关键知识和模式,提高在医疗诊断任务中的准确性和可靠性 。

  • 多样性:数据集中应包含丰富多样的样本,涵盖各种可能的情况和变化。在医疗数据集中,不仅要有常见疾病的病例,还应包含罕见病、疑难杂症的病例;不仅要有典型症状的描述,还要有非典型症状的记录 。多样性的数据可以让模型学习到更广泛的知识和特征,增强模型的泛化能力,使其能够应对实际应用中各种复杂多变的情况 。

  • 低噪声:数据集中应尽量减少错误标注、重复数据、无关信息等噪声的干扰。对于医疗数据,错误的诊断标注或混入其他领域的无关数据,会误导模型的学习,导致模型在诊断任务中出现错误 。因此,在数据收集和整理过程中,要进行严格的数据清洗和验证,采用人工审核、交叉验证等方式,确保数据的准确性和可靠性 。

  • 防污染:防止训练数据和测试数据之间的污染,确保测试数据是独立于训练数据的全新样本 。如果测试数据中包含了与训练数据相同或相似的样本,模型在测试时的表现就会虚高,无法真实反映模型的泛化能力 。在划分数据集时,要采用合理的划分方法,如随机划分、分层抽样等,保证训练集和测试集的数据分布一致,且相互独立 。

(二)技术细节

1. 全参数微调与高效微调(PEFT)的区别与场景

全参数微调与高效微调(PEFT)是大模型微调中两种重要的方式,它们在参数更新、计算资源需求等方面存在显著差异,各自适用于不同的场景 。

  • 参数更新方式:全参数微调是对预训练模型的所有参数进行更新和优化,就像对一座房子进行全面的翻新改造,每个房间、每个角落都进行重新装修 。这种方式能够充分挖掘模型的潜力,使模型在特定任务上达到最佳性能 。而高效微调则是通过引入额外的可训练参数或对部分参数进行调整,来实现模型的优化 。以 LoRA(Low-Rank Adaptation)技术为例,它通过引入低秩矩阵,仅对少量新增参数进行训练,而冻结原始模型的大部分权重 。这就好比在房子的某些关键位置进行局部改造,如更换重要的家具、装修关键的房间,以达到提升整体性能的目的 。

  • 计算资源需求:全参数微调由于需要更新所有参数,计算量巨大,对硬件资源的要求极高 。它需要大量的计算设备和内存来存储和计算模型的参数,训练时间也较长 。而高效微调方法,如 LoRA、QLoRA 等,通过减少可训练参数的数量,大大降低了计算复杂度和内存占用 。使用 LoRA 进行微调时,新增的可训练参数可能仅为数百万,相较于全参数微调,参数量大幅减少,使得在资源有限的情况下也能高效地对大模型进行微调 。

  • 适用场景:全参数微调适用于对模型性能要求极高、数据量充足且计算资源不受限的场景 。在一些对精度要求苛刻的科研项目、大型企业的核心业务应用中,如果有足够的计算资源和高质量的大规模数据集,全参数微调可以使模型在特定任务上达到最优性能 。高效微调则更适用于资源有限的场景,如个人开发者、中小团队,或者在数据量相对较小、计算资源有限的情况下,高效微调能够在保证一定模型性能的前提下,大大降低计算成本和时间成本 。在一些小型的自然语言处理任务中,使用 LoRA 或 QLoRA 进行高效微调,可以在普通的 GPU 设备上快速完成模型的优化,满足实际应用的需求 。

2. Lora、QLora 等技术原理
  • Lora(Low-Rank Adaptation):Lora 是一种创新性的高效微调技术,其核心思想基于低秩矩阵原理 。在大模型中,通常包含海量的参数,以权重矩阵的形式存在于模型的各个层中 。传统的全量微调需要更新模型中的所有参数,计算量巨大且容易过拟合 。Lora 引入了两个低秩矩阵 A 和 B,假设原始模型的权重矩阵为 W,其维度为 d×k,A 的维度为 d×r,B 的维度为 r×k,且 r 远小于 min (d, k) 。通过这种方式,Lora 将权重矩阵的更新表示为 ΔW = A・B,在微调过程中,只需要更新低秩矩阵 A 和 B 的参数,而原始模型的权重矩阵 W 保持不变 。这就大大减少了需要训练的参数数量,降低了计算复杂度和内存占用 。在初始化阶段,随机初始化低秩矩阵 A 和 B;在微调阶段,将带有低秩矩阵的模型在特定任务的数据集上进行训练,此时只对 A 和 B 进行梯度更新,而冻结原始模型的权重;在推理阶段,将更新后的低秩矩阵与原始权重矩阵合并,即 Wnew = W + ΔW,用于对新数据进行预测 。

  • QLora(Efficient Finetuning of Quantized LLMs):QLora 是在 Lora 基础上的进一步创新,结合了量化技术,旨在通过降低模型精度和仅训练少量可学习参数的方式,显著减少大型语言模型(LLM)微调所需的内存和计算资源 。其核心实现包括以下几个关键技术:

    • NF4 量化:QLora 将模型权重从 FP32/FP16 压缩为 4 位 NF4(Normal Float 4-bit)格式,这种针对正态分布权重设计的 4 位量化格式,通过 Block-wise 分块量化(如每块 1024 个元素)独立计算缩放因子,相比传统 Int8,在精度和显存之间取得更好平衡 。权重 W 中的元素,经过归一化等处理后,只能取 16 个固定分位数中的某一个数值的索引,从而大大减少了存储空间 。

    • LoRA 结构适配器:继承了 Lora 的低秩矩阵结构,在 Transformer 的自注意力层和前馈网络中插入低秩矩阵 。参数形式为 A = W + ΔW = W + B * A * C,其中,B、A、C 是低秩矩阵(如秩 r=64),仅需训练这些矩阵的参数 。

    • Paged Optimizer:使用 Paged Optimizer 分页存储梯度,将优化器状态(如梯度)分页存储于 CPU 内存,仅在需要时加载到 GPU,避免显存溢出 。这一技术在处理超大规模模型时,有效解决了显存不足的问题 。

3. 学习率的选择策略

学习率是大模型微调过程中的一个重要超参数,它直接影响模型的训练速度和最终性能 。选择合适的学习率需要综合考虑多个因素,并采用一些有效的策略 。

  • 常用学习率范围:在大模型微调中,常用的学习率范围一般在 1e-5 到 1e-3 之间 。对于较小的模型或数据量较少的情况,学习率可以设置得相对较大,如 1e-4 或 1e-3,这样模型能够更快地收敛 。而对于大规模模型或数据量丰富的情况,学习率通常设置得较小,如 1e-5 或 5e-5,以避免模型在训练过程中出现震荡或过拟合 。

  • 线性预热和余弦衰减策略:为了更好地控制学习率的变化,常常采用线性预热(warmup)和余弦衰减(cosine annealing)策略 。线性预热是在训练初期,让学习率从一个较小的值逐渐增加到设定的初始学习率,这样可以帮助模型更快地适应训练过程,避免在训练初期因为学习率过大而导致梯度不稳定 。余弦衰减则是在训练后期,让学习率随着训练步数的增加而逐渐减小,模拟余弦函数的变化趋势 。随着训练的进行,模型逐渐收敛,此时减小学习率可以使模型更加稳定地逼近最优解,提高模型的性能 。在训练开始的前 10% 步数内,采用线性预热策略,将学习率从 1e-6 逐渐增加到 5e-5;在剩余的 90% 步数内,采用余弦衰减策略,让学习率从 5e-5 逐渐减小到 1e-6 。

  • 学习率对训练的影响:如果学习率设置过大,模型在训练过程中可能会跳过最优解,导致无法收敛,损失函数不断波动甚至增大 。这就好比一个人在寻找宝藏的过程中,步伐太大,总是错过宝藏的位置 。相反,如果学习率设置过小,模型的训练速度会非常缓慢,需要更多的训练时间和计算资源才能达到较好的性能 。就像一个人寻找宝藏时步伐太小,虽然能慢慢接近宝藏,但花费的时间和精力太多 。因此,选择合适的学习率,并根据训练过程中的情况进行调整,是大模型微调中至关重要的一步 。在训练过程中,可以通过观察损失函数的变化、验证集上的性能指标等,来判断学习率是否合适,并适时进行调整 。如果损失函数在训练过程中突然增大,可能需要减小学习率;如果模型收敛速度过慢,可以适当增大学习率 。

(三)模型评估

1. 如何评估微调后的模型质量

评估微调后的模型质量是确保模型在实际应用中性能可靠的关键环节 。除了传统的准确度指标外,还应该从多个维度进行综合评判,以全面了解模型的性能表现 。

  • F1 分数:在分类任务中,F1 分数是一个非常重要的评估指标,它综合考虑了精确率(Precision)和召回率(Recall) 。精确率表示模型预测为正样本的准确性,即预测为正样本中实际为正样本的比例;召回率表示所有正样本中被正确预测的比例 。F1 分数是精确率和召回率的调和平均数,能够更全面地反映模型在正负样本分类上的性能 。在一个二分类的垃圾邮件识别任务中,即使模型的准确度很高,但如果将大量正常邮件误判为垃圾邮件(精确率低),或者漏判了很多垃圾邮件(召回率低),那么模型在实际应用中的效果也会很差 。而 F1 分数可以有效地衡量模型在这两个方面的平衡,帮助我们更准确地评估模型的性能 。

  • AUC 曲线下的面积:AUC(Area Under the Curve)曲线下的面积常用于评估模型在分类任务中的性能和泛化能力 。AUC 值越大,说明模型对正样本和负样本的区分能力越强,模型的性能越好 。AUC 值为 1 表示模型能够完美地区分正样本和负样本,而 AUC 值为 0.5 则表示模型的预测结果与随机猜测无异 。在医学诊断模型中,通过绘制 AUC 曲线并计算其下的面积,可以评估模型对疾病的诊断能力,AUC 值越高,说明模型能够更准确地判断患者是否患病 。

  • 其他评估指标:根据不同的任务类型,还有其他一些重要的评估指标 。在回归任务中,常用的指标有平均绝对误差(MAE)、平均平方误差(MSE)和 R² 分数(R-squared)等 。MAE 衡量预测值与真实值之间的平均绝对误差,MSE 衡量预测值与真实值之间的平均平方误差,R² 分数反映模型的拟合优度 。在文本生成任务中,除了 BLEU、ROUGE 等自动评估指标外,还可以通过人工评测的方式,评估生成文本的自然度、流畅性、逻辑性等 。

2. 如何处理模型过拟合与欠拟合问题

在大模型微调过程中,过拟合和欠拟合是常见的问题,它们会严重影响模型的性能和泛化能力 。了解过拟合和欠拟合的表现,并采取相应的解决方法,是确保模型质量的关键 。

  • 过拟合的表现与解决方法:过拟合是指模型在训练集上表现出色,但在验证集或测试集上性能大幅下降的现象 。模型过拟合时,会过度学习训练数据中的噪声和细节,而忽略了数据的整体规律,导致在面对新数据时无法准确预测 。在图像分类任务中,模型可能会记住训练集中每个图像的细微特征,而不是学习到图像类别的本质特征,从而在测试集上对新的图像分类错误 。为了解决过拟合问题,可以采取以下方法:

    • 扩大数据集:增加训练数据的数量和多样性,使模型能够学习到更广泛的样本特征和模式,减少对训练数据的过度依赖 。

    • 正则化:使用 L1 或 L2 正则化方法,对模型的参数进行约束,防止参数过大,从而减少模型的复杂度,避免过拟合 。在神经网络中,可以在损失函数中添加 L2 正则化项,惩罚模型的参数,使其更加简洁 。

    • 早停法:在训练过程中,监控模型在验证集上的性能指标,当验证集上的性能不再提升时,及时停止训练,避免模型在训练集上过拟合 。

  • 欠拟合的表现与解决方法:欠拟合是指模型在训练集和验证集上的性能都较差,无法学习到数据中的有效模式和规律 。欠拟合通常是由于模型过于简单,无法捕捉到数据的复杂特征,或者训练数据不足、质量不高导致的 。在房价预测任务中,如果使用简单的线性回归模型,可能无法捕捉到房价与多个因素之间的复杂非线性关系,从而导致欠拟合 。解决欠拟合问题可以尝试以下方法:

    • 调整模型复杂度:选择更复杂、表达能力更强的模型结构,或者增加模型的层数、神经元数量等,提高模型的学习能力 。可以将简单的线性回归模型改为非线性的神经网络模型,以更好地拟合房价数据 。

    • 增加训练数据:获取更多的训练数据,或者对现有数据进行增强处理,如对图像数据进行旋转、缩放、裁剪等操作,扩充数据集规模,让模型学习到更多的特征和规律 。

    • 调整学习率:适当增大学习率,使模型在训练过程中更快地更新参数,加快收敛速度 。但要注意避免学习率过大导致模型不稳定 。

四、面试答题技巧与建议

(一)清晰逻辑表达

在面试中,清晰的逻辑表达是让面试官准确理解你的观点和思路的关键 。当回答微调相关问题时,务必有条理地分点阐述 。以介绍微调的原理和应用为例,可以先详细阐述微调的基本原理,解释在预训练模型基础上进行特定任务训练的机制,让面试官了解微调的技术核心 。再结合具体的应用场景,如医疗、金融、教育等领域,说明微调是如何在这些实际场景中发挥作用,提高模型性能的 。这样从原理到应用的阐述方式,不仅逻辑清晰,还能让面试官看到你对知识的深入理解和实际应用能力 。在阐述过程中,合理使用连接词和过渡句,如 “首先”“其次”“最后”“综上所述” 等,将各个要点有机地串联起来,使回答更加连贯、流畅 。避免在回答中出现逻辑混乱、前后矛盾的情况,保持思维的严谨性和条理性 。

(二)结合实际案例

结合实际案例是提升回答可信度和说服力的重要方法 。在回答面试问题时,分享自己在项目中遇到的微调问题及解决方案,能让面试官更直观地了解你的实践能力和解决问题的能力 。比如,在一个自然语言处理项目中,需要对预训练的语言模型进行微调,以实现特定领域的文本分类任务 。在微调过程中,遇到了模型过拟合的问题,导致在测试集上的准确率较低 。针对这个问题,采取了增加训练数据、使用正则化技术、调整学习率等一系列措施 。详细描述这些措施的实施过程、遇到的困难以及最终取得的效果,展示自己在面对实际问题时的思考过程和解决问题的能力 。通过实际案例的分享,不仅能让面试官看到你在大模型微调方面的实践经验,还能体现你的团队协作能力、沟通能力以及应对挑战的能力 。在描述案例时,要突出重点,简洁明了,避免冗长和无关紧要的细节 。

(三)展示学习能力

在快速发展的大模型技术领域,展示持续学习的能力和对新技术的关注至关重要 。在面试中,可以提及自己对大模型技术的持续学习和关注,如定期阅读相关的学术论文、参加技术研讨会和在线课程等 。了解最新的研究成果和技术动态,如新型的微调技术、模型架构的创新、应用领域的拓展等,并在回答问题时适当融入这些新知识,展示自己的学习能力和对技术前沿的敏感度 。还可以分享自己在学习过程中的一些思考和见解,如对某项新技术的优势和局限性的分析,以及如何将其应用到实际项目中的设想 。这能让面试官看到你不仅具备扎实的基础知识,还具有不断学习、适应新技术发展的能力,对未来在工作中快速掌握新知识、新技能充满信心 。强调自己对大模型技术的热情和好奇心,表达对在该领域不断深入学习和发展的渴望 。

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

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

相关文章

Linux: network: arp: arp_accept

文章目录 接收 linux 代码 arp协议的处理 接收 arp_accept - BOOLEAN Define behavior for gratuitous ARP frames who’s IP is not already present in the ARP table: 0 - don’t create new entries in the ARP table 1 - create new entries in the ARP table Both repli…

SpringBoot 整合 Langchain4j RAG 技术深度使用解析

目录 一、前言 二、Langchain4j RAG介绍 2.1 什么是LangChain4j 2.2 LangChain4j RAG技术介绍 2.2.1 RAG技术原理 2.2.2 LangChain4j中的RAG实现 2.2.3 LangChain4j RAG技术优势 2.2.4 LangChain4j RAG技术应用场景 三、LangChain4j RAG 技术深度使用 3.1 文档加载与解…

百度深度学习面试:batch_size的选择问题

题目在深度学习中&#xff0c;为什么batch_size设置为1不好&#xff1f;为什么batch_size设为整个数据集的大小也不好&#xff1f;&#xff08;假设服务器显存足够&#xff09;解答这是一个非常核心的深度学习超参数问题。即使显存足够&#xff0c;选择极端的 batch_size 也通常…

AWS Fargate 完全指南:在无服务器容器中释放应用潜能

容器化技术带来了应用交付的革命,但管理运行容器的底层服务器集群却带来了新的复杂性。如何在不牺牲容器灵活性的前提下,摆脱服务器的运维重负? AWS Fargate 应运而生。它是一款为容器打造的无服务器计算引擎,让您能够专注于构建应用程序,而无需管理服务器。本文将带您深…

WSL Ubuntu数据迁移

将 WSL 中的 Ubuntu 迁移到其他磁盘可有效释放 C 盘空间并优化系统性能。以下是详细步骤及注意事项&#xff1a;&#x1f4cd; ​​迁移步骤​​​​备份 WSL 数据&#xff08;防止意外丢失&#xff09;​​以管理员身份打开 PowerShell 或命令提示符。导出 Ubuntu 实例为压缩包…

基于STM32的病房监测系统/环境监测系统/人体健康监测系统

基于STM32的病房监测系统/环境监测系统/人体健康监测系统 持续更新&#xff0c;欢迎关注!!! 基于STM32的病房监测系统/环境监测系统/人体健康监测系统 随着科技的进步与人们健康意识的提升&#xff0c;环境与人体健康监测的需求日益增长。在医疗、居住和工作环境中&#xff0c…

【适合中小企业应用的Flask网站部署指南】【小白指南系列】如何在Windows Server服务器上部署Flask网站和SSL证书开启HTTPS

【适合中小企业应用的Flask网站部署指南】【小白指南系列】如何在Windows Server服务器上部署Flask网站和SSL证书开启HTTPS 前言&#xff1a; 上一篇文章已经配置好Redis数据库和网站雏形建立了。现在完善了一个比较重大的功能和进度之后&#xff0c;我们尝试初步将Flask项目网…

std::exchange详解

一、基本概念与函数原型 std::exchange 是 C++14 引入的标准库函数,定义于 <utility> 头文件。其核心功能是原子性地替换对象的值并返回旧值,适用于资源管理、状态机更新等场景。 函数原型: template <class T, class U = T> T exchange(T& obj,

kubernetes-dashboard使用http不登录

安装了k8s v1.28&#xff0c;想要安装kubernetes-dashboard以便可视化管理平台&#xff0c;网上很多资料都是版本比较低的&#xff0c;自己摸索了很久&#xff0c;终于搞定了。直接上配置文件&#xff0c;拿去kubectl apply -f k8s-dashb.yml就行了。 # Copyright 2017 The Kub…

道路车道线分割数据集左车道右车道中线labelme格式3494张4类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件)图片数量(jpg文件个数)&#xff1a;3494标注数量(json文件个数)&#xff1a;3494标注类别数&#xff1a;4标注类别名称:["center_lane","right_lane","…

12.Shell脚本修炼手册--函数的基础认知与实战演练(fock炸弹!!)

Shell 函数的知识与实践 文章目录Shell 函数的知识与实践Shell 函数介绍Shell 函数的语法Shell 函数的执行1. 不带参数的函数执行2. 带参数的函数执行Shell 函数的基础实践示例 1&#xff1a;简单的 hello 函数&#xff08;验证 “先定义后调用”&#xff09;示例 2&#xff1a…

微信小程序设计的请求封装方案(request.js)

以下是为微信小程序设计的请求封装方案&#xff0c;包含代码示例和最佳实践建议&#xff1a; 基础请求封装&#xff08;request.js&#xff09; // 基础配置 const BASE_URL https://api.yourdomain.com; const TIMEOUT 10000;// 请求封装函数 const request (options) >…

【Linux系统】进程信号:信号的处理

上一篇文章在介绍完信号的产生和保存后&#xff0c;我们现在对信号有了一个基本的认识&#xff0c;信号由键盘、系统调用、硬件异常、软件条件等方式产生&#xff0c;然后被保存在三张表中&#xff0c;再将信号递达&#xff0c;操作系统有三种处理方式&#xff1a;默认处理、忽…

权限管理模块

登录相关权限管理模块(基础版)模块设计与实现优化点&#xff1a;前后端用户验证实现方式常见的攻击手段及防御手段权限管理模块(基础版) RBAC(Role-Base Access Control&#xff0c;基于角色的访问控制)&#xff1a;是权限管理的常用方案。 核心&#xff1a;通过用户 - 角色 -…

征服与守护:从拉里·埃里森看八号人格的职场王者之道

真正的强者&#xff0c;从不遵守别人的规则2010年&#xff0c;加利福尼亚州的圣何塞机场迎来了一架不速之客——一架意大利产的马基战斗机以一种极其霸道的姿态降落在跑道上。舱盖打开&#xff0c;走下来的不是空军飞行员&#xff0c;而是一位身穿飞行员服、戴着墨镜的企业家&a…

【Linux系统】命名管道与共享内存

前言&#xff1a; 上文我们讲到了匿名管道【Linux系统】匿名管道以及进程池的简单实现-CSDN博客 本文我们来讲一讲命名管道与共享内存 命名管道 上面我们讲到&#xff0c;匿名管道只能用于有血缘关系&#xff08;尤其父子&#xff09;的进程进行通信&#xff01;但如果…

搜索体验优化:ABP vNext 的查询改写(Query Rewrite)与同义词治理

&#x1f50e; 搜索体验优化&#xff1a;ABP vNext 的查询改写&#xff08;Query Rewrite&#xff09;与同义词治理 &#x1f4da; 目录&#x1f50e; 搜索体验优化&#xff1a;ABP vNext 的查询改写&#xff08;Query Rewrite&#xff09;与同义词治理1. 背景与问题界定 &…

Text2API与Text2SQL深度对比:自然语言驱动的数据交互革命

在数字化浪潮中&#xff0c;如何让人机交互更加自然流畅&#xff1f;Text2API与Text2SQL技术应运而生&#xff0c;它们如同魔法般将自然语言转化为机器可执行的指令&#xff0c;让数据交互不再高不可攀。本文将深入剖析这两项技术的原理、优劣势及应用场景&#xff0c;带您领略…

数据可视化与分析平台设计与实现案例

数据可视化与分析平台设计与实现案例(python) 下面分享一个完整的 Flask 数据可视化与分析平台代码,包含所有必要的组件和功能。这个平台允许用户上传数据文件、进行基本的数据清洗、生成各种可视化图表以及查看基础统计分析结果。 产品设计 核心功能 数据上传与管理(支…

Kotlin-基础语法练习二

接上一篇博客 每个 Kotlin 程序都是由两种部分组成的&#xff1a; 1、表达式&#xff08;Expressions&#xff09;&#xff1a;用于计算值的部分&#xff0c;比如 2 3、函数调用、变量赋值等&#xff0c;它们通常会返回一个结果。2、语句&#xff08;Statements&#xff09;…