探索大型语言模型(LLM)的世界

引言

        大型语言模型(LLM)作为人工智能领域的前沿技术,正在重塑我们与机器的交流方式,在医疗、金融、技术等多个行业领域中发挥着重要作用。本文将从技术角度深入分析LLM的工作原理,探讨其在不同领域的应用,它们带来的益处,以及伴随其发展而出现的潜在风险和伦理考量。

LLM的应用前景

        LLM的应用前景广阔,它们正在帮助创建更加智能的聊天机器人、改进机器翻译的准确性、并增强情感分析的深度。此外,LLM在创意写作、代码生成和知识问答等领域也展现出巨大潜力。

伦理与挑战

        尽管LLM提供了许多激动人心的可能性,但它们的使用也引发了对伦理、安全性和隐私的担忧。例如,LLM可能会产生误导性的信息,或在没有适当监管的情况下造成数据泄露。因此,随着LLM技术的不断进步,我们必须审慎地考虑这些挑战,并寻求合理的解决方案。

LLM的定义与重要性

        大型语言模型(LLM)是深度学习在自然语言处理(NLP)领域的集大成者,它们代表了人工智能技术在理解和生成语言方面的重要进步。LLM的核心是基于变换器(Transformer)架构的复杂神经网络,这一架构因其在处理序列数据时的高效性而闻名。

LLM的定义

        LLM是一种预训练的深度学习模型,专为处理自然语言而设计。它们通过在大量文本数据上进行训练,学习语言的统计特性和模式,从而能够执行各种语言任务,如文本分类、情感分析、机器翻译、问答系统和文本摘要等。

        这些系统通常被称为神经网络(NN),它们模仿人脑的结构,由类似于神经元的相互连接的节点层组成。
 

LLM的重要性

        LLM的重要性在于其能够模拟人类理解和使用语言的方式,这使得它们在多个领域内具有广泛的应用潜力:

  1. 改善人机交互:LLM可以提升虚拟助手和聊天机器人的交互质量,使其更加自然和准确。

  2. 内容创作与编辑:在创意写作、新闻报道和内容生成中,LLM能够提供语言生成和校对的辅助。

  3. 信息检索:LLM能够改进搜索引擎的查询响应,提供更为精准的搜索结果。

  4. 教育辅助:在教育领域,LLM可以作为语言学习和作业辅导的工具。

  5. 医疗咨询:LLM有助于开发能够理解和回应复杂医疗查询的系统。

  6. 法律和金融分析:在需要处理大量文本文档的领域,如法律研究或市场分析,LLM可以提高工作效率。

变换器模型的核心原理

        在大型语言模型(LLM)的众多架构中,变换器(Transformer)模型以其独特的设计和高效性能脱颖而出,成为处理自然语言的核心技术之一。

        变换器模型最初在2017年的论文《Attention Is All You Need》中被提出,它革新了传统的循环神经网络(RNN)和长短期记忆网络(LSTM),在处理序列数据时,尤其是长距离依赖的序列预测任务中,展现了显著的优势。

Transformer 整体结构

编码器-解码器架构

        变换器模型由编码器和解码器两部分组成,它们通过注意力机制(Attention Mechanism)协同工作。编码器读取输入的文本序列,解码器则基于编码器的输出生成目标序列。

Encoder结构

注意力机制

        注意力机制是变换器模型的核心,它允许模型在序列的不同位置间建立直接的依赖关系,而不是仅依赖于邻近的几个元素。这种机制使得模型能够更加灵活地处理语言数据,捕捉长距离的语义联系。

自注意力层

        自注意力层(Self-Attention Layer)是变换器模型的关键组件,它允许模型在处理每个单词时,考虑到序列中所有单词的信息。这种全局感知能力极大地提升了模型对上下文的理解。

多头注意力

        变换器模型通常采用多头注意力(Multi-Head Attention)技术,这意味着模型会并行地在不同的表示子空间中处理信息,从而捕获语言的多维度特征。

前馈网络

        自注意力层之后,变换器模型包含一个或多个前馈网络层(Feed-Forward Networks, FFNs),这些层通过进一步的非线性变换提炼特征,增强模型的表达能力。

位置编码

        由于变换器模型本身不具备捕捉序列顺序信息的能力,因此引入了位置编码(Positional Encoding),为模型提供单词在文本中的顺序信息。

变换器模型的训练

        变换器模型的训练涉及到大量的参数更新,这些参数通过梯度下降等优化算法进行调整。模型通过最小化预测输出和真实输出之间的差异来提高其准确性。

        

变换器模型的优化

        为了提高变换器模型的效率和实用性,研究者们开发了多种优化技术,包括模型剪枝(Pruning)、量化(Quantization)和知识蒸馏(Knowledge Distillation)。

LLM的关键组成部分

        大型语言模型(LLM)的构建和功能依赖于多个关键组成部分,这些部分共同协作以实现复杂的语言处理任务。

嵌入层

        嵌入层是LLM的第一层,它负责将输入的文本序列转换为数值向量,即嵌入表示。这些嵌入不仅捕捉了文本的语义信息,还包含了句法特征,为模型提供了丰富的输入特征。

循环层

        循环层,如长短期记忆网络(LSTM),在LLM中按顺序处理输入文本中的单词。它们通过维护一个内部状态来捕捉词与词之间的关系,从而保持上下文的连贯性。

前馈层(FFN)

        前馈层由多个全连接层组成,它们对嵌入层的输出进行进一步的变换。这一步骤使得模型能够提取更高层次的语言特征,从而更好地理解文本的深层含义。

        

注意力层

        注意力层是变换器模型的核心,它允许模型在序列的不同部分之间建立联系。通过自注意力机制,模型能够识别出对当前任务最重要的信息,并给予更多的关注。

多头注意力

        多头注意力技术是变换器模型的一个创新点,它允许模型同时在多个表示子空间中处理信息,从而捕获不同类型的语言特征。

输出层

        在模型的最后,输出层将注意力层的信息转换为最终的预测结果。在不同的任务中,输出层的设计会有所不同,以适应任务特定的需求。

位置编码

        由于变换器模型不具有捕捉序列顺序的内在机制,位置编码被引入以提供单词在文本中的顺序信息,这对于理解语言的语序至关重要。

模型的预训练与微调

        LLM通常首先在大规模的文本数据集上进行预训练,以学习语言的通用特征。随后,为了适应特定的应用场景,模型会在特定数据集上进行微调,以优化其性能。

模型的类型

        LLM可以分为几种类型,包括通用语言模型、指令调优语言模型和对话调优语言模型,每种类型都针对不同的应用场景进行了特别设计。

通过这些关键组成部分的协同工作,LLM能够执行一系列复杂的语言处理任务,从而在各种应用中发挥重要作用。随着技术的不断进步,LLM在处理自然语言方面的能力将变得更加精细和高效。

LLM的工作流程

        大型语言模型(LLM)的工作流程是其能够理解和生成自然语言的基础。这一流程通常包括两个主要阶段:预训练和微调,以及一个新兴的技巧:提示调优。

Bert: 双向预训练+微调

 

预训练阶段

        预训练是LLM工作流程中的首要步骤,通常涉及以下关键活动:

  1. 数据集构建:使用大量的文本数据构建训练集,这些数据可能来源于互联网、书籍、新闻等。

  2. 模型初始化:在这一阶段,模型的参数被随机初始化或通过迁移学习从一个已有的模型中继承。

  3. 无监督学习:模型通过无监督学习的方式处理数据集,无需人工标注。常见的预训练任务包括遮蔽语言模型(Masked Language Modeling, MLM)和下一句预测(Next Sentence Prediction, NSP)。

  4. 参数更新:利用梯度下降等优化算法,根据预训练任务的损失函数更新模型的参数。

微调阶段

 

 一旦预训练完成,LLM就可以进入微调阶段,以适应特定的应用场景:

  1. 任务特定数据集:准备一个针对特定任务的数据集,这可能包括人工标注的样本。

  2. 模型适配:调整预训练模型的参数,使其更好地适应新的任务。

  3. 有监督学习:在这个阶段,模型通过有监督学习的方式,从标注数据中学习,以提高特定任务的性能。

  4. 性能评估:通过各种指标(如准确率、召回率、F1分数等)评估微调后模型的性能。

提示调优

提示调优是一种新兴的技术,它允许模型在没有大量标注数据的情况下学习新任务:

  1. 任务示例:提供少量的示例(few-shot)或不提供示例(zero-shot),让模型理解任务的性质。

  2. 模型训练:利用这些示例来调整模型的输出,使其能够生成符合任务要求的响应。

  3. 直接应用:在没有额外训练的情况下,直接将模型应用于新任务。

推理引擎

在实际部署中,LLM的推理引擎负责将模型的预测转化为实际应用:

  1. 输入处理:对用户的输入进行标准化、分词和嵌入等预处理步骤。

  2. 模型预测:使用训练好的模型对输入数据进行预测,生成输出。

  3. 输出解析:将模型的输出转换为用户可理解的格式。

        LLM的工作流程是其强大语言处理能力的基础。从预训练到微调,再到提示调优,这一流程确保了模型能够在各种复杂的语言任务中发挥作用。随着技术的不断发展,LLM的工作流程也将变得更加高效和灵活,以适应不断变化的应用需求。

提示调优:LLM的任务特定训练

        提示调优是一种针对大型语言模型(LLM)的训练技术,它使得模型能够在没有大量标注数据的情况下快速适应新任务。这种方法特别适用于那些需要模型即时学习和响应的场景。

少量示例提示(Few-shot prompting)

        少量示例提示是一种通过提供少量相关示例来引导模型理解和执行特定任务的方法。这种方法的核心在于利用模型的泛化能力,通过观察少量样本来学习任务的规律。

工作流程
  1. 示例选择:精心挑选与任务相关的示例,这些示例应该能够代表任务的核心特征。
  2. 示例展示:将这些示例作为输入展示给模型,通常伴随着任务的描述。
  3. 模型学习:模型分析示例,学习如何根据给定的输入生成正确的输出。
  4. 任务执行:模型使用从示例中学到的模式来处理新的、类似的任务。

零示例提示(Zero-shot prompting)

零示例提示是一种更为挑战性的提示调优方法,它要求模型在没有任何具体示例的情况下执行任务。这种方法完全依赖于模型在预训练阶段获得的知识。

工作流程
  1. 任务描述:直接向模型提出任务,通常以自然语言的形式。
  2. 模型推理:模型根据预训练阶段学到的知识来推断任务的性质。
  3. 直接回答:模型尝试直接生成答案,无需先前的示例作为参考。

提示调优的关键要素

  • 清晰的任务描述:为了让模型准确理解任务,任务描述应该尽可能清晰和具体。
  • 恰当的示例:在少量示例提示中,选择与任务高度相关的示例至关重要。
  • 模型的泛化能力:模型需要具备强大的泛化能力,以便从有限的信息中学习并应用到新场景。

提示调优的应用

提示调优技术在多种应用中展现出潜力,包括但不限于:

  • 问答系统:快速响应用户的查询,即使在缺乏标注数据的情况下。
  • 文本分类:对新的文本类型进行分类,而无需重新训练整个模型。
  • 对话系统:提升聊天机器人的对话能力,使其能够处理更多样化的话题。

        提示调优是LLM任务特定训练中的一个重要方向,它允许模型以更加灵活和高效的方式学习和适应新任务。随着LLM技术的不断发展,提示调优有望在自然语言处理的多个领域中发挥更大的作用,尤其是在数据稀缺或需要快速适应的场景中。

LLM的性能优化

        大型语言模型(LLM)的性能优化是确保其在实际应用中高效运行的关键。随着模型规模的增大,计算资源的需求也随之增加,因此,优化LLM的性能对于其实用性至关重要。

训练数据的优化

        训练数据的质量和组织方式对LLM的性能有直接影响。数据预处理步骤,包括文本清洗、去重、和分词,可以提高模型的学习效率。

模型架构的优化

        模型架构的优化涉及改进变换器模型的各个组成部分,以提高其处理速度和准确性。这包括改进注意力机制和前馈网络的设计。

模型剪枝

        模型剪枝是一种减少模型大小的技术,它通过移除模型中不重要的权重来简化模型结构,从而减少计算负担而保持性能。

量化

        量化是另一种模型压缩技术,它通过减少模型权重和激活的精度来减少模型的内存占用和加速推理过程。

知识蒸馏

        知识蒸馏涉及训练一个小型的“学生”模型来模仿一个大型的“教师”模型的行为。这种方法可以在保持性能的同时显著减少模型的规模。

并行计算和分布式训练

        利用并行计算和分布式训练技术可以在多个GPU或TPU上同时训练模型,大大加快了训练速度。

推理引擎的优化

        推理引擎的优化关注于提高模型在推理阶段的效率。这包括优化模型的输入/输出处理和内存使用。

硬件加速

        使用专门为深度学习设计的硬件,如GPU和TPU,可以显著提高LLM的计算速度。

缓存机制

        对于常见的查询或任务,使用缓存机制存储预计算的结果可以减少重复计算,提高响应速度。

LLM面临的挑战与局限性

        尽管大型语言模型(LLM)在自然语言处理方面取得了显著进展,但它们仍面临一系列挑战和局限性,这些因素影响了它们的性能和应用。

数据偏差和代表性

        LLM在训练过程中依赖大量数据,这些数据可能存在偏差,导致模型在处理多样性和包容性方面存在局限。如果训练数据不能全面代表人类语言的多样性,模型的输出可能会反映这些偏差。

解释性和透明度

        LLM通常被视为“黑箱”模型,因为它们的决策过程缺乏透明度。这种不透明性使得用户和开发者难以理解模型的预测依据,这在关键应用中可能是一个问题。

        

计算资源的高消耗

        大型语言模型需要大量的计算资源进行训练和部署,这不仅成本高昂,而且对环境可能产生负面影响。此外,对高性能硬件的依赖限制了模型的可访问性。

安全性和隐私问题

        LLM可能无意中泄露训练数据中的敏感信息,或者被用于生成有害内容。此外,模型的输出可能被用于欺骗、误导或进行网络钓鱼攻击。

泛化能力的限制

        尽管LLM在特定任务上表现出色,但它们可能在未见过的任务或数据上表现不佳。这种局限性要求对模型进行持续的评估和微调,以确保其在不同环境下的有效性。

语言理解和推理

        LLM在模拟人类语言理解方面取得了进展,但它们仍然难以执行复杂的推理任务或理解语言的深层含义,如讽刺、幽默或双关语。

法律和伦理问题

        LLM的开发和应用涉及版权、隐私和伦理等法律问题。例如,模型可能使用了未经授权的数据,或者其输出可能侵犯了个人的名誉权。

可维护性和更新

        随着时间的推移,LLM需要更新以适应语言的变化和社会的发展。然而,维护和更新大型模型是一项挑战,需要大量的资源和努力。

        LLM在自然语言处理领域具有巨大潜力,但它们的成功应用需要克服上述挑战和局限性。未来的研究和发展应集中于提高模型的透明度、减少计算资源消耗、增强安全性和隐私保护,以及提升模型的泛化能力和可解释性。通过这些努力,LLM可以更好地服务于社会,同时最大限度地减少潜在的负面影响。

流行的大型语言模型实例

        在大型语言模型(LLM)的领域内,一些模型因其卓越的性能和广泛的应用而获得了极高的知名度。以下是几个流行的LLM实例,它们在不同的任务和行业中发挥着重要作用。

GPT系列

由OpenAI开发的Generative Pre-trained Transformer(GPT)系列是最著名的LLM之一。GPT模型通过逐步的版本迭代,如GPT-2和GPT-3,不断扩展其能力,成为多种应用的基础,包括但不限于内容生成、语言翻译和问答系统。 

       

BERT

        Bidirectional Encoder Representations from Transformers(BERT)是由Google开发的模型,它通过双向训练的方式理解语言,从而在各种NLP任务中取得了突破性的性能。

XLNet

        XLNet是一种基于排列的语言模型,它通过随机排列输入的方式来预测输出,这使得模型能够更好地捕捉语言的多样性。

PaLM

        Pathways Language Model(PaLM)是Google开发的一个多功能变换器模型,它在常识推理、数学计算、文本翻译等方面展现了强大的能力。

novita.ai LLM

        novita.ai提供的LLM通过其强大的推理API,为用户提供了无审查、无限制的对话能力。

LLM实例对比:

模型名称开发者发布时间参数量主要创新点应用领域特定任务表现备注
GPT-3OpenAI2020175B自回归语言模型,大规模预训练文本生成、翻译、问答在多种NLP任务中表现优异支持少样本和零样本学习
BERTGoogle2018340M双向训练,预训练-微调范式文本分类、命名实体识别在GLUE基准测试中取得突破-
XLNetCMU2019450M基于排列的自回归模型问答、文本匹配在SQuAD等问答任务中表现突出-
PaLMGoogle202151B多任务能力,视觉语言预训练常识推理、数学计算在多项任务中展现多模态能力支持图像和文本输入
novita.ai LLMnovita.ai--高效推理API,稳定性优化对话系统、API服务-专为API调用优化

注意事项

  • 上表中的信息可能会随着时间而变化,特别是随着新技术的出现和模型的更新。
  • 表格中的“参数量”和“发布时间”是模型的关键指标,但它们并不总是直接关联模型的性能。
  • “特定任务表现”一栏提供了模型在某些任务中的性能概览,但详细性能需要参考具体的基准测试和研究论文。

        这些流行的LLM实例展现了大型语言模型在自然语言处理领域的多样性和强大潜力。随着技术的不断进步,我们可以预见这些模型将在未来发挥更加关键的作用,推动人工智能技术的边界不断扩展。同时,这也提示了对这些强大工具的负责任使用和持续优化的必要性。 

LLM的未来发展前景

        大型语言模型(LLM)的发展前景广阔,随着技术的不断进步和创新,LLM在未来的应用和研究方向将更加多元化和深入。以下是一些可能的发展趋势和前景:

1. 模型规模与效率的平衡

        随着计算能力的提升,未来的LLM可能会拥有更多的参数,以捕捉更细微的语言特征。同时,研究者也在探索如何提高模型的效率,包括减少模型的大小、降低训练和推理的计算成本。

2. 多模态学习能力

        未来的LLM可能会集成视觉、听觉等多种感官输入,发展为多模态学习模型。这种模型能够处理包括文本、图像、声音在内的多种类型的数据,提供更为丰富的交互体验。

3. 增强的可解释性和透明度

        为了提高LLM的可解释性,未来的研究可能会集中在模型决策过程的透明度上。这包括开发新的算法和技术,使得模型的预测和生成过程更加清晰和可理解。

4. 安全性和隐私保护

        随着LLM在社会中应用的增加,其安全性和隐私保护将变得更加重要。未来的LLM将需要更好的机制来防止数据泄露、避免生成有害内容,并保护用户的隐私。

5. 伦理和社会责任

        LLM的发展需要考虑伦理和社会责任,包括确保模型的公正性、避免加剧社会不平等和偏见。这可能涉及到开发新的评估标准和监管框架。

6. 跨学科融合

        LLM的未来可能会更多地与其他学科领域结合,如心理学、认知科学、教育学等,以更全面地理解和模拟人类语言使用的行为和过程。

7. 实时交互能力

        未来的LLM可能会在实时交互方面取得更大进展,使得模型能够更好地理解和响应用户的即时需求,提供更加个性化和上下文相关的服务。

8. 持续学习和适应性

        为了让LLM更好地适应不断变化的语言环境和社会需求,未来的模型可能会具备更好的持续学习能力,能够在线更新和适应新的数据和情况。

        随着技术的不断发展和创新,LLM将在多个领域发挥更大的作用,同时也需要面对和解决伴随而来的伦理、安全和社会问题。通过跨学科合作和负责任的研究,我们可以期待LLM为人类社会带来更多积极的影响。

结论

        大型语言模型(LLM)作为人工智能领域的一项重大突破,已经在自然语言处理(NLP)的各个方面展现了其强大的潜力和广泛的应用前景。从文本生成到机器翻译,从情感分析到智能助手,LLM正在逐步改变我们与机器沟通的方式,并为各行各业带来深远的影响。

技术进步的推动力

        LLM的发展是技术进步的重要推动力。随着模型规模的增加、训练技术的改进和计算能力的提升,LLM在处理复杂语言任务上的能力也在不断增强。未来的LLM将更加精准、高效,并能更好地理解和生成自然语言。

伦理和社会责任的挑战

        尽管LLM的发展前景广阔,但它们也带来了一系列伦理和社会责任方面的挑战。数据隐私、模型偏见、透明度和可解释性等问题需要得到充分重视和解决。此外,LLM的广泛应用也引发了对就业影响的担忧,需要社会各方面共同努力,以确保技术的积极利用。

持续的研究和创新

        为了克服现有的挑战并发挥LLM的最大潜力,持续的研究和创新是必不可少的。这包括改进模型架构、开发新的训练技术、提高模型的泛化能力和鲁棒性,以及探索新的应用场景。

平衡发展与风险

        在LLM的发展过程中,需要平衡技术创新和潜在风险,确保技术的发展能够造福社会,而不是带来负面影响。这要求开发者、研究者、政策制定者和用户共同努力,负责任地推进LLM的研究和应用。

未来展望

        展望未来,LLM将继续作为人工智能领域的重要方向之一,推动技术的边界不断扩展。通过负责任的研究、透明的开发过程和全社会的共同努力,LLM有望在促进人类福祉、提高生产效率和推动科学进步等方面发挥更大的作用。

        随着LLM技术的不断发展,我们期待这些智能系统能够更好地服务于人类社会,同时最大限度地减少潜在的负面影响。通过不断探索和创新,我们有理由相信,LLM将成为推动未来社会进步的关键技术之一。        


参考

What is the difference between LLM and GPT
LLM Leaderboard 2024 Predictions Revealed
Novita AI LLM Inference Engine: the largest throughput and cheapest inference available

Attention Is All You Need

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

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

相关文章

开源软件托管平台gogs操作注意事项

文章目录 一、基本说明二、gogs私有化部署三、设置仓库git链接自动生成参数四、关闭新用户注册入口 私有化部署gogs托管平台,即把gogs安装在我们自己的电脑或者云服务器上。 一、基本说明 系统环境:ubuntu 20.4docker安装 二、gogs私有化部署 前期准…

Ansible常用变量【上】

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 在Ansible中会用到很多的变量,Ansible常用变量包括以下几种: 1. 自定义变量——在playbook中用户自定义…

springboot整合rabbitmq的不同工作模式理解

前提是已经安装并启动了rabbitmq,并且项目已经引入rabbitmq,完成了配置。 不同模式所需参数不同,生产者可以根据参数不同使用重载的convertAndSend方法。而消费者均是直接监听某个队列。 不同的交换机是实现不同工作模式的关键组件.每种交换…

权限及权限操作

1.命令行解释器 Linux将命令行解释器称为外壳程序shell 命令行解释器的作用就是将用户输入的指令转换为操作系统能够直接执行的指令。同时将操作系统的反馈转换为用户能看懂的反馈,解决了用户和操作系统沟通成本的问题。与此同时,命令行解释器还能够拦…

java项目之校园失物招领系统(springboot+vue+mysql)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的校园失物招领系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 校园失物招领系统的主要…

修改mysql locahost或者127.0.0.1弱密码问题

一、登录有问题的数据库 sudo mysql -uroot -pxxx -hkde-offline1 -P13306 二、查询user表 这将显示与 root 用户关联的主机、用户名以及加密后的认证字符串(密码)。请注意,authentication_string 列中存储的是经过哈希加密后的密码,而不是原始密码。 MySQL [mysql…

机器学习(五) ----------决策树算法

目录 1 核心思想 2 决策树算法主要步骤 3 决策树算法的分类 3.1 ID3算法(Iterative Dichotomiser 3): 3.1.1 基本步骤 3.1.2 原理 信息增益 3.1.3 注意事项 3.2 C4.5算法: 3.2.1. 信息增益率 计算公式 3.2.2. 构建决策…

这个问题无人能解,菜鸟勿进

前言 2024-5-12 21:53:46 这是陈旧已久的草稿 2021-06-23 23:25:12 发布一下 一、问题 1.描述: 在我的世界中建个红石电路 2.需求: 五个灯A、B、C、D、E、F 五个开关a、b、c、d、e、f、总开关 3.要求: 总开关使所有灯关 开关a可以控制灯A…

鸿蒙内核源码分析(Shell编辑篇) | 两个任务,三个阶段

系列篇从内核视角用一句话概括shell的底层实现为:两个任务,三个阶段。其本质是独立进程,因而划到进程管理模块。每次创建shell进程都会再创建两个任务。 客户端任务(ShellEntry): 负责接受来自终端(控制台)敲入的一个个字符&…

C++音视频开发面试题

下面是音视频开发面试题精选: 1、纹理抗锯齿有哪些算法?各有哪些利弊?2、使用 OpenGL PBO 为什么能提高效率?3、iOS 如何使用分段转码,如何设置分片大小?4、VideoToolbox 中是不是不存在平面格式&#xff…

【图解计算机网络】http1.1,http2.0,http3.0

http1.1,http2.0,http3.0 http1.1长连接管道传输缺点 http2.0头部压缩二进制格式并发传输服务端推送缺点 http3.0无队头阻塞快速建立连接连接迁移 http1.1 长连接 在http1.0的时候,一次http请求就要建立一次TCP连接,这一次的htt…

LeetCode 654.最大二叉树

LeetCode 654.最大二叉树 1、题目 题目链接:654. 最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地…

11、关系运算符、逻辑运算符(讲解 和 的区别)、赋值表达式、三目表达式、运算符优先级(超详细版本)+结合性的分析

这里写目录标题 一、关系运算符(比较运算符)二、⭐逻辑运算符1、 && 和 &2、|| 或 |3、!4、^ 三、赋值运算符四、三目运算符(条件运算符)五、运算符优先级 在讲之前先明确几个概念: 1、单目运算…

【人工智能基础】GAN与WGAN实验

一、GAN网络概述 GAN:生成对抗网络。GAN网络中存在两个网络:G(Generator,生成网络)和D(Discriminator,判别网络)。 Generator接收一个随机的噪声z,通过这个噪声生成图片…

阿里开源编程大模型 CodeQwen1.5:64K92编程语言,Code和SQL编程,评测接近GPT-4-Turbo

前言 阿里巴巴最近发布的CodeQwen1.5模型标志着其在编程语言模型领域的一次重大突破。这款开源模型不仅支持高达92种编程语言和64K的上下文长度,而且在多项性能评测中显示出接近或超过当前行业领导者GPT-4-Turbo的能力。 Huggingface模型下载:https://h…

Boost库的使用

1 下载与安装 1.1 下载 网址:Boost C Libraries 进入后选择自己需要的版本安装即可 1.2 安装 1.2.1 解压 1.2.2 编译安装 双击bootstrap.bat 这一步完成后会生成一个b2.exe文件 双击b2.exe文件运行(此步需要花费较长的时间) 之后再stag…

双向链表(双向带头循环)的增删查改的实现(简单易懂)

一:双向链表的概念 每个节点除开存有数据,还有一个指针指向前一个节点,一个指针指向后一个节点,尾节点和哨兵位互相指向,从而形成一个循环。 二:双向链表的实现第一点: 本文采用三个文件进行实…

GIS数据—1984-2020中国1km人造夜间灯光观测数据

夜间灯光观测数据(Nighttime Light,NTL)是评估人类活动边界的常用手段,目前,该数据已经广泛应用于城市范围、不透水面、基础设施建设等一系列过程。今天,小编要带来的是长时间序列中国区域边界的夜间灯光观测数据。 数…

springcloud -nacos实战

一、nacos 功能简介 1.1.什么是Nacos? 官方简介:一个更易于构建云原生应用的动态服务发现(Nacos Discovery )、服务配置(Nacos Config)和服务管理平台。 Nacos的关键特性包括: 服务发现和服务健康监测动态配置服务动态DNS服务服务及其元数…

VMware配置Kali linux + 物理机连接Xshell

VMware 配置 kali linux 首先需要先安装VMware Workstation 我是在Windows 安装的 VMware Workstation Pro 17 虚拟化,产品密钥。。这里不做多说了 下载kali linux 这里我下载的是kali-linux-2024.1 Note:这里选Virtual Machines,建议不要…