【杂谈】-50+个生成式人工智能面试问题(四)

7、生成式AI面试问题与微调相关

Q23. LLMs中的微调是什么?

答案:虽然预训练语言模型非常强大,但它们并不是任何特定任务的专家。它们可能对语言有惊人的理解能力,但仍需要一些LLMs微调过程,开发者通过这个过程提升它们在情感分析、语言翻译或回答特定领域问题等任务中的表现。微调大型语言模型是解锁其全部潜力并将能力定制到特定应用的关键。

微调就像给这些多功能模型做最后的润色。想象一下,你有一个多才多艺的朋友,他在各个领域都很出色,但你希望他在一个特殊场合掌握一项特定的技能。你会给他在该领域提供一些特定的培训,对吧?这正是我们在微调过程中对预训练语言模型所做的。

Q24. 为什么需要对LLMs进行微调?

答案:虽然预训练语言模型非常了不起,但它们默认不是针对特定任务的。微调大型语言模型是将通用模型调整为更精确和高效地执行专门任务的过程。当我们遇到像客户评论的情感分析或特定领域的问答这样的特定NLP任务时,我们需要对预训练模型进行微调,使其理解该特定任务和领域的细微差别。

微调的好处是多方面的。首先,它利用了预训练期间学到的知识,节省了大量时间和计算资源,否则需要从头开始训练模型。其次,微调使我们能够在特定任务上表现更好,因为模型现在适应了它被微调的领域的复杂性和细微差别。

Q25. 微调和训练LLMs之间有什么区别?

答案:微调是模型训练中使用的一种技术,与初始参数设置的预训练不同。预训练从随机初始化模型参数开始,并在两个阶段迭代进行:前向传播和反向传播。传统的监督学习(SSL)用于计算机视觉任务的预训练模型,如图像分类、物体检测或图像分割。

LLMs通常通过自监督学习(SSL)进行预训练,使用前置任务从未标记数据中提取真实标签。这允许使用大量数据集而无需标注数百万或数十亿数据点,节省了劳动力但需要大量的计算资源。微调包括进一步训练模型的技术,其权重已通过先前的训练更新,以适应较小的、特定任务的数据集。这种方法提供了两全其美的优势,既利用了大规模数据预训练中获得的广泛知识和稳定性,又提高了模型对更详细概念的理解。

Q26. 微调有哪些不同类型?

答案:生成式AI中的微调方法如下:

1)监督微调
在特定目标任务的标记数据集上训练模型。例如:在带有相应情感标签的文本样本数据集上训练情感分析模型。

  • 迁移学习:
    • 允许模型执行与初始任务不同的任务。
    • 利用来自大型通用数据集的知识进行更具体的任务。
  • 领域特定微调:
    • 使模型适应理解和生成特定领域或行业特有的文本。例如:使用医疗记录训练的医疗应用聊天机器人,以适应健康领域的语言理解能力。

2)参数高效微调(PEFT)

参数高效微调(PEFT)是一种通过仅更新少量参数来优化大规模预训练语言模型微调过程的方法。传统的微调需要调整数百万甚至数十亿个参数,这在计算上非常昂贵且资源密集。PEFT技术,如低秩适应(LoRA)、适配器模块或提示调整,允许显著减少可训练参数的数量。这些方法引入额外的层或修改模型的特定部分,使得在较低的计算成本下仍能实现针对特定任务的高性能。这使得微调对于计算资源有限的研究人员和从业者更为可行和高效。

3)监督微调(SFT)

监督微调(SFT)是使用标记数据集细化预训练语言模型以执行特定任务的关键过程。与依赖大量未标记数据的无监督学习不同,SFT使用已知正确输出的数据集,使模型能够学习从输入到输出的精确映射。这个过程涉及从一个预训练模型开始,该模型已经从大量文本语料库中学习了通用语言特征,然后用任务特定的标记数据对其进行微调。这种方法利用了预训练模型的广泛知识,同时使其适应于特定任务,如情感分析、问答或命名实体识别。SFT通过提供正确输出的明确示例来提高模型的性能,从而减少错误并提高准确性和鲁棒性。

4)人类反馈的强化学习(RLHF)

人类反馈的强化学习(RLHF)是一种高级机器学习技术,将人类判断纳入强化学习模型的训练过程中。与传统的强化学习依赖于预定义的奖励信号不同,RLHF利用来自人类评估者的反馈来指导模型的行为。这种方法对于复杂或主观的任务特别有用,在这些任务中很难用编程方式定义奖励函数。通常通过让人类评估模型的输出并提供分数或偏好来收集人类反馈。然后使用此反馈更新模型的奖励函数,使其更符合人类价值观和期望。根据更新后的奖励函数对模型进行微调,根据人类提供的标准迭代改进其性能。RLHF有助于产生技术上熟练且符合人类价值观和伦理考量的模型,使它们在现实应用中更加可靠和可信。

Q27. 什么是PEFT LoRA微调?

答案:参数高效微调(PEFT)是一种减少适应大型预训练模型到特定下游应用所需可训练参数数量的方法。PEFT显著减少了计算资源和内存存储需求,以产生有效微调的模型,使其比完整微调方法更稳定,特别是在自然语言处理(NLP)用例中。

部分微调,也称为选择性微调,旨在通过仅更新对相关下游任务性能最关键的一部分预训练参数来降低计算需求。其余参数被“冻结”,确保它们不会被改变。一些部分微调方法包括仅更新模型的层宽偏置项以及稀疏微调方法,这些方法只更新模型中整体权重的选定子集。

加法微调向模型添加额外的参数或层,冻结现有的预训练权重,仅训练这些新组件。这种方法通过确保原始预训练权重保持不变来帮助保持模型的稳定性。虽然这可能会增加训练时间,但它显著减少了内存需求,因为要存储的梯度和优化状态远少于全部参数。通过对冻结模型权重进行量化,可以进一步节省内存。

适配器在神经网络中注入新的、特定任务的层,并训练这些适配器模块,而不是微调任何预训练模型权重。基于重新参数化的方法,如低秩适应(LoRA),利用高维矩阵的低秩变换来捕获模型权重的底层低维结构,大大减少了可训练参数的数量。LoRA避免了直接优化模型权重矩阵,而是优化一个插入模型中的更新矩阵(或增量权重)。

Q28. 何时使用提示工程、RAG或微调?

答案:提示工程:当你有少量静态数据并需要快速、直接的集成而无需修改模型时使用。它适用于具有固定信息的任务以及上下文窗口足够时。

检索增强生成(RAG):当你需要模型基于动态或频繁更新的数据生成响应时,这是理想的选择。如果模型必须提供基于引用的输出,请使用RAG。

微调:当特定且明确定义的任务要求模型从输入-输出对或人类反馈中学习时,选择此方法。微调对于个性化任务、分类或需要显著定制模型行为时很有帮助。

在这里插入图片描述

8、生成式AI面试问题与SLMs相关

Q29. SLMs(小型语言模型)是什么?

答案:SLMs本质上是LLM(大型语言模型)的较小版本。它们具有显著较少的参数,通常从几百万到几十亿不等,相比之下,LLM的参数数量则达到数千亿甚至数万亿。这种差异带来了以下好处:

  • 效率:SLMs需要更少的计算能力和内存,这使得它们适合部署在较小的设备上,甚至是边缘计算场景中。这为现实世界的应用打开了大门,比如设备上的聊天机器人和个性化移动助手。
  • 可访问性:由于资源需求较低,SLMs对更广泛的开发者和组织来说更具可访问性。这使AI更加民主化,允许小团队和个人研究者在不需要大量基础设施投资的情况下探索语言模型的力量。
  • 定制化:SLMs更容易针对特定领域和任务进行微调。这使得创建专门用于小众应用的定制模型成为可能,从而提高性能和准确性。

Q30. SLMs是如何工作的?

答案:像LLMs一样,SLMs也是通过大规模的文本和代码数据集进行训练的。然而,为了实现其较小的规模和高效性,采用了几种技术:

  • 知识蒸馏:这种方法涉及将预训练的LLM的知识转移到一个较小的模型中,捕捉其核心能力而无需全部复杂性。
  • 剪枝和量化:这些技术分别去除模型不必要的部分并降低其权重的精度,从而进一步减少其大小和资源需求。
  • 高效架构:研究人员不断开发专门为SLMs设计的新颖架构,专注于优化性能和效率。

Q31. 请举例一些小型语言模型?

答案:以下是一些SLMs的例子:

  • GPT-2 Small:OpenAI的GPT-2 Small模型有1.17亿个参数,与更大的版本相比,如GPT-2 Medium(3.45亿个参数)和GPT-2 Large(7.74亿个参数),这被认为是较小的。
  • DistilBERT:DistilBERT是BERT(双向编码器表示从Transformers)的蒸馏版,保留了BERT 95%的性能,同时体积更小(减少40%)且速度更快(提升60%)。DistilBERT大约有6600万个参数。
  • TinyBERT:这是BERT的另一个压缩版本,TinyBERT比DistilBERT更小,大约有1500万个参数。
    虽然SLMs通常有数亿个参数,但一些拥有1-3亿参数的较大模型也可以归类为SLMs,因为它们仍然可以在标准GPU硬件上运行。以下是一些这样的模型例子:
  • Phi3 Mini:Phi-3-mini是一个紧凑的语言模型,有38亿个参数,在庞大的数据集上进行了训练,包含3.3万亿个令牌。尽管其规模较小,但它可以与更大的模型如Mixtral 8x7B和GPT-3.5竞争,在MMLU上取得了69%的分数,在MT基准测试上取得了8.38的分数。
  • Google Gemma 2B:Google Gemma 2B是Gemma家族的一部分,这些轻量级的开放模型设计用于各种文本生成任务。Gemma模型的上下文长度为8192个令牌,适合部署在资源有限的环境如笔记本电脑、台式机或云基础设施中。
  • Databricks Dolly 3B:Databricks的dolly-v2-3b是一款商业级指令跟随的大型语言模型,在Databricks平台上进行了训练。它由pythia-2.8b衍生而来,在大约15k个指令/响应对上进行了训练,涵盖多个领域。虽然不是最先进的,但它表现出了令人惊讶的高质量指令跟随行为。

Q32. SLMs的优缺点是什么?

答案:小型语言模型(SLMs)的一个优点是它们可以在相对较小的数据集上进行训练。它们的小尺寸使得在移动设备上的部署更加容易,并且其简化的结构提高了可解释性。

SLMs在本地处理数据的能力是一个显著的优势,这使得它们特别适用于物联网(IoT)边缘设备和受到严格隐私和安全要求的企业。

然而,使用小型语言模型也存在权衡。由于SLMs是在更小的数据集上训练的,因此它们的知识库比大型语言模型(LLMs)更有限。此外,与更大的模型相比,它们对语言和上下文的理解通常更有限,这可能导致回答不够精确和细致。

9、生成式AI面试问题与扩散相关

Q33. 什么是扩散模型?

答案:扩散模型的理念并不古老。在2015年的一篇论文《利用非平衡热力学的深度无监督学习》中,作者这样描述它:

基本思想是受非平衡统计物理学启发,通过迭代的前向扩散过程系统而缓慢地破坏数据分布中的结构。然后我们学习一个反向扩散过程来恢复数据中的结构,从而得到一个高度灵活且易于处理的数据生成模型。

扩散过程分为前向和反向扩散过程。前向扩散过程将图像变为噪声,而反向扩散过程则应将噪声重新变为图像。

Q34. 什么是前向扩散过程?

答案:前向扩散过程是一个从原始数据x开始并结束于噪声样本ε的马尔可夫链。在每一步t,数据通过添加高斯噪声被破坏。随着时间t的增加,噪声水平增加,直到在最后一步T达到1。

Q35. 什么是反向扩散过程?

答案:反向扩散过程旨在通过迭代去除噪声将纯噪声转换为清晰图像。训练扩散模型就是学习反向扩散过程以从纯噪声重建图像。如果你们熟悉GANs,我们正在训练我们的生成器网络,但唯一的区别是扩散网络的工作更容易,因为它不必在一步内完成所有工作。相反,它一次使用多个步骤去除噪声,这更有效且易于训练,正如本文作者所发现的。

Q36. 扩散过程中的噪声时间表是什么?

答案:噪声时间表是扩散模型中的一个关键组成部分,决定了在前向过程中如何添加噪声以及在反向过程中如何去除噪声。它定义了信息被破坏和重建的速度,这对模型的性能和生成样本的质量有显著影响。

一个设计良好的噪声时间表在生成质量和计算效率之间取得了平衡。太快速的噪声添加会导致信息丢失和重建效果不佳,而过慢的时间表可能会导致不必要的长时间计算。高级技术如余弦时间表可以优化这个过程,允许更快的采样而不牺牲输出质量。噪声时间表还影响了模型捕捉不同细节级别的能力,从粗略结构到精细纹理,使其成为实现高质量生成的关键因素。

Q37. 什么是多模态LLMs?

答案:多模态大语言模型(LLMs)是先进的人工智能系统,可以解释和生成包括文本、图像甚至音频在内的各种数据类型。这些复杂的模型结合了自然语言处理与计算机视觉,有时还包括音频处理能力,不同于仅专注于文本的标准LLMs。它们的适应性使它们能够执行各种任务,包括文本到图像生成、跨模态检索、视觉问答和图像标注。

多模态LLMs的主要优势是它们能够理解和整合来自不同来源的数据,提供更多上下文和更全面的结果。这些系统的潜力通过例如DALL-E和GPT-4(可以处理图像)的例子得以展示。然而,多模态LLMs确实存在某些缺点,如需要更复杂的训练数据、更高的处理成本以及合成或修改多媒体内容的可能伦理问题。尽管如此,多模态LLMs标志着AI能力在接近人类感知和思维方式方面取得的重大进步。

生成式人工智能(Generative AI)相关的多选题

10、关于Transformers的多选题

Q38. Transformer架构相对于RNNs和LSTMs的主要优势是什么?

A. 更好地处理长程依赖关系
B. 更低的计算成本
C. 更小的模型尺寸
D. 更容易解释

答案:A. 更好地处理长程依赖关系

Q39. 在Transformer模型中,什么机制允许模型权衡句子中不同单词的重要性?

A. 卷积
B. 递归
C. 注意力机制
D. 池化

答案:C. 注意力机制

Q40. Transformer模型中位置编码的功能是什么?

A. 归一化输入
B. 提供单词位置信息
C. 减少过拟合
D. 增加模型复杂度

答案:B. 提供单词位置信息

11、关于大型语言模型(LLMs)的多选题

Q41. 大型语言模型的关键特征是什么?

A. 它们有固定的词汇表
B. 它们在少量数据上训练
C. 它们需要大量的计算资源
D. 它们只适合翻译任务

答案:C. 它们需要大量的计算资源

Q42. 以下哪个是大型语言模型的例子?

A. VGG16
B. GPT-4
C. ResNet
D. YOLO

答案:B. GPT-4

Q42. 为什么大型语言模型通常需要进行微调?

A. 减小它们的尺寸
B. 将它们适应特定任务
C. 加快它们的训练速度
D. 增加它们的词汇量

答案:B. 将它们适应特定任务

12、关于提示工程(Prompt Engineering)的多选题

Q43. 提示工程中温度的目的是什么?

A. 控制模型输出的随机性
B. 设置模型的学习率
C. 初始化模型参数
D. 调整模型输入长度

答案:A. 控制模型输出的随机性

Q44. 提示工程中使用哪些策略来改进模型响应?

A. 零样本提示
B. 少样本提示
C. A和B都使用
D. 以上都不是

答案:C. A和B都使用

Q45. 语言模型提示中较高的温度设置通常会带来什么结果?

A. 更确定的输出
B. 更具创造性和多样性的输出
C. 较低的计算成本
D. 降低模型准确性

答案:B. 更具创造性和多样性的输出

13、关于检索增强生成(RAGs)的多选题

Q46. 使用检索增强生成(RAG)模型的主要好处是什么?

A. 更快的训练时间
B. 更低的内存使用
C. 通过利用外部信息提高生成质量
D. 更简单的模型架构

答案:C. 通过利用外部信息提高生成质量

Q47. 在RAG模型中,检索器组件的作用是什么?

A. 生成最终输出
B. 从数据库中检索相关文档或段落
C. 预处理输入数据
D. 训练语言模型

答案:B. 从数据库中检索相关文档或段落

Q48. RAG模型特别适用于哪些任务?

A. 图像分类
B. 文本摘要
C. 问题回答
D. 语音识别

答案:C. 问题回答

14、关于微调的多选题

Q49. 微调预训练模型涉及什么?

A. 在新数据集上从头开始训练
B. 调整模型架构
C. 在特定任务或数据集上继续训练
D. 缩小模型尺寸

答案:C. 在特定任务或数据集上继续训练

Q50. 微调预训练模型通常比从头开始训练更有效的原因是什么?

A. 它需要更少的数据
B. 它需要更少的计算资源
C. 它利用了之前学到的特征
D. 以上所有都是

答案:D. 以上所有都是

Q51. 微调大型模型时常见的挑战是什么?

A. 过拟合
B. 欠拟合
C. 缺乏计算能力
D. 有限的模型尺寸

答案:A. 过拟合

15、关于稳定扩散的多选题

Q52. 稳定扩散模型的主要目标是什么?

A. 增强深度神经网络训练的稳定性
B. 根据文本描述生成高质量的图像
C. 压缩大型模型
D. 提高自然语言处理的速度

答案:B. 根据文本描述生成高质量的图像

Q53. 在稳定扩散模型的背景下,“去噪”一词指的是什么?

A. 减少输入数据的噪声
B. 迭代地完善生成的图像以去除噪声
C. 简化模型架构
D. 增加噪声以提高泛化能力

答案:B. 迭代地完善生成的图像以去除噪声

Q54. 稳定扩散特别适用于哪种应用?

A. 图像分类
B. 文本生成
C. 图像生成
D. 语音识别

答案:C. 图像生成

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习】数据预处理

为了能用深度学习来解决现实世界的问题,我们经常从预处理原始数据开始, 而不是从那些准备好的张量格式数据开始。 在Python中常用的数据分析工具中,我们通常使用pandas软件包。 像庞大的Python生态系统中的许多其他扩展包一样,pan…

赛灵思(Xilinx)公司Artix-7系列FPGA

苦难从不值得歌颂,在苦难中萃取的坚韧才值得珍视; 痛苦同样不必美化,从痛苦中开掘出希望才是壮举。 没有人是绝对意义的主角, 但每个人又都是自己生活剧本里的英雄。滑雪,是姿态优雅的“贴地飞行”,也有着成…

城市生命线安全综合监管平台

【落地产品,有需要可留言联系,支持项目合作或源码合作】 一、建设背景 以关于城市安全的重要论述为建设纲要,聚焦城市安全重点领域,围绕燃气爆炸、城市内涝、地下管线交互风险、第三方施工破坏、供水爆管、桥梁坍塌、道路塌陷七…

请求方式(基于注解实现)

1.编写web.xml文件配置启动信息 <!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app><display-name>Archetype Created Web Application</di…

WMS仓库管理系统,Vue前端开发,Java后端技术源码(源码学习)

一、项目背景和建设目标 随着企业业务的不断扩展&#xff0c;仓库管理成为影响生产效率、成本控制及客户满意度的重要环节。为了提升仓库作业的透明度、准确性和效率&#xff0c;本方案旨在构建一套全面、高效、易用的仓库管理系统&#xff08;WMS&#xff09;。该系统将涵盖库…

Pathview包:整合表达谱数据可视化KEGG通路

Pathview是一个用于整合表达谱数据并用于可视化KEGG通路的一个R包&#xff0c;其会先下载KEGG官网上的通路图&#xff0c;然后整合输入数据对通路图进行再次渲染&#xff0c;从而对KEGG通路图进行一定程度上的个性化处理&#xff0c;并且丰富其信息展示。&#xff08;KEGG在线数…

数据结构:DisjointSet

Disjoint Sets意思是一系列没有重复元素的集合。一种常见的实现叫做&#xff0c;Disjoint-set Forest可以以接近常数的时间复杂度查询元素所属集合&#xff0c;用来确定两个元素是否同属一个集合等&#xff0c;是效率最高的常见数据结构之一。 Wiki链接&#xff1a;https://en…

更好的世界:用定制托管对象上下文(NSManagedObjectContext)防止产生“空白”托管对象(下)

概述 用 SwiftUI CoreData 这对“双剑合璧”的强力开发组合&#xff0c;我们可以事倍功半、非常 easy 的开发出界面元素丰富且背后拥有持久数据库支持的 App。 不过&#xff0c;在某些情况下它们被误用或错用也可能带来一些“藏形匿影”的顽疾。 在本篇博文中&#xff0c;您…

个人在技术领导力方面的自我反思与提升

大家好&#xff01;我是 [数擎 AI]&#xff0c;一位热爱探索新技术的前端开发者&#xff0c;在这里分享前端和 Web3D、AI 技术的干货与实战经验。如果你对技术有热情&#xff0c;欢迎关注我的文章&#xff0c;我们一起成长、进步&#xff01; 开发领域&#xff1a;前端开发 | A…

Win10本地部署大语言模型ChatGLM2-6B

鸣谢《ChatGLM2-6B&#xff5c;开源本地化语言模型》作者PhiltreX 作者显卡为英伟达4060 安装程序 打开CMD命令行&#xff0c;在D盘新建目录openai.wiki if not exist D:\openai.wiki mkdir D:\openai.wiki 强制切换工作路径为D盘的openai.wiki文件夹。 cd /d D:\openai.wik…

排列高手

这篇主要是求再排位为 {1&#xff0c;3&#xff0c;4&#xff0c;....&#xff0c;n&#xff0c;2}的最优顺序下求mex。 但不知道为什么这样是最优 子数列的个数公式&#xff1a; 对于一个长度为N的数组&#xff0c; #include <bits/stdc.h> using namespace std; lon…

公众号如何通过openid获取unionid

通过接口 https://api.weixin.qq.com/cgi-bin/user/info?access_tokenxxxxxxx&langzh_CN 返回的数据如下&#xff1a; 前提是必须绑定 微信开放平台 token如何获取呢 代码如下&#xff1a; String tokenUrl "https://api.weixin.qq.com/cgi-bin/token"; …

软件测试预备知识④—NTFS权限管理、磁盘配额与文件共享

在软件测试的实际环境搭建与管理过程中&#xff0c;了解和掌握NTFS权限管理、磁盘配额以及文件共享等知识至关重要。这些功能不仅影响系统的安全性和稳定性&#xff0c;还对测试数据的存储、访问以及多用户协作测试有着深远的影响。 一、NTFS权限管理 1.1 NTFS简介 NTFS&am…

类结构——构造方法

类结构——构造方法 构造方法的基本特性默认构造方法构造方法重载使用this关键字私有构造方法总结 构造方法&#xff08;Constructor&#xff09;是Java编程语言中的一个重要概念&#xff0c;用于初始化新创建的对象。在对象实例化时被调用&#xff0c;并负责设置对象的初始状态…

【linux系统之redis6】redis的安装与初始化

下载redis的linux对应的安装包&#xff0c;并上传到linux虚拟机里面 解压压缩包 tar -zxzf redis-6.2.6.tar.gz解压后&#xff0c;进入redis文件 cd redis-6.2.6执行编译 make && make install看到下图&#xff0c;就说明redis安装成功了 默认的安装路径&#xff0c…

STM32-笔记40-BKP(备份寄存器)

一、什么是BKP&#xff08;备份寄存器&#xff09;&#xff1f; 备份寄存器是42个16位的寄存器&#xff0c;可用来存储84个字节的用户应用程序数据。他们处在备份域里&#xff0c;当VDD电源被切断&#xff0c;他们仍然由VBAT维持供电。当系统在待机模式下被唤醒&#xff0c;或…

MobaXterm界面的简单介绍

界面全局 “命令行界面”&#xff08;Command Line Interface&#xff0c;简称CLI&#xff09;或“终端”&#xff08;Terminal&#xff09; 在这个界面中&#xff0c;用户可以输入命令来与操作系统进行交互,灰色光标是输入命令的位置 标签栏&#xff08;Tab Bar&#xff09; …

有收到腾讯委托律师事务所向AppStore投诉带有【水印相机】主标题名称App的开发者吗

近期&#xff0c;有多名开发者反馈&#xff0c;收到来自腾讯科技 (深圳) 有限公司委托北京的一家**诚律师事务所卞&#xff0c;写给AppStore的投诉邮件。 邮件内容主要说的是&#xff0c;腾讯注册了【水印相机】这四个字的商标&#xff0c;所以你们这些在AppStore上的app&…

UI自动化测试保姆级教程①

欢迎来到阿妮莫的学习小屋慢也好&#xff0c;步子小也好&#xff0c;在往前走就好 目录 自动化测试 简介 作用 分类 优缺点 优点 缺点(误区) UI自动化测试 自动化测试使用场景 自动化测试实现时间 Selenium框架 特点 Web自动化测试环境部署 Selenium包安装 浏览…

Linux 下信号的保存和处理

信号的几个状态 信号抵达: 当接收到的信号被处理时, 此时就成为信号的抵达信号的未决: 从信号的产生到信号抵达这个时间段之间, 称为信号未决信号阻塞: 当进程设置了某个信号为阻塞后, 这个进程就不会在接收到这个信号信号忽略: 将信号设置为忽略后, 接收到这个信号, 对这个信…