ChatGPT基本原理详细解说

news2024/12/26 22:03:29

ChatGPT基本原理详细解说

引言

在人工智能领域,自然语言处理(NLP)一直是研究的热点之一。随着技术的发展,我们见证了从简单的聊天机器人到复杂的语言模型的演变。其中,ChatGPT作为一项突破性技术,以其强大的语言理解和生成能力,引起了广泛的关注。本文将对ChatGPT的基本原理进行解说。

什么是ChatGPT?

ChatGPT(全名:Chat Generative Pre-trained Transformer)是由OpenAI开发的一种预训练语言模型,它基于Transformer架构,通过大量的文本数据进行训练,以生成连贯、自然的对话。ChatGPT不仅能够理解用户的问题,还能生成合适的回答,甚至在多轮对话中保持上下文的连贯性。3分钟视频看懂什么是ChatGPT

第一部分:自然语言处理基础

1.1 什么是自然语言处理(NLP)

定义

自然语言处理(Natural Language Processing,简称NLP)是人工智能和语言学领域的一个分支,它旨在使计算机能够理解、解释和生成人类语言。NLP的目标是缩小人类语言和计算机之间的差距,使计算机能够执行如下任务:语言翻译、情感分析、语音识别、自动摘要等。

历史

NLP的历史可以追溯到20世纪50年代,当时计算机科学家开始尝试让机器理解和生成自然语言。早期的尝试包括机器翻译的实验,如1954年的Georgetown-IBM实验。然而,由于当时技术的限制,这些早期的尝试并没有取得显著的成功。

随着时间的推移,NLP经历了几个重要的发展阶段:

  • 20世纪70-80年代:基于规则的系统,依赖语言学家手工编写的规则。
  • 20世纪90年代:统计方法开始兴起,NLP研究开始转向基于数据驱动的方法。
  • 21世纪初:机器学习技术的引入,特别是监督学习在NLP中的应用。
  • 2010年代:深度学习的兴起,使得NLP领域取得了革命性的进展。
NLP的主要任务和应用

NLP的主要任务包括但不限于:

  • 语言理解:让机器理解语言的含义,包括语法、语义和语境。
  • 语言生成:生成自然的语言文本,用于聊天机器人、自动文摘等。
  • 信息抽取:从文本中提取关键信息,如命名实体识别、关系抽取等。
  • 机器翻译:将一种语言的文本翻译成另一种语言。
  • 情感分析:判断文本所表达的情感倾向,如正面、负面或中性。

NLP的应用非常广泛,包括:

  • 搜索引擎:通过理解用户的查询意图,提供相关的搜索结果。
  • 推荐系统:分析用户评论和反馈,推荐个性化的内容。
  • 社交媒体分析:分析社交媒体上的文本数据,了解公众情绪和趋势。
  • 客户服务:自动回答客户问题,提供24/7的在线支持。

1.2 语言模型的重要性

语言模型的作用

语言模型是NLP中的一个核心概念,它用于预测一个词序列(如句子或短语)的概率。语言模型的目的是评估一个给定的词序列在自然语言中出现的可能性。在NLP的许多任务中,语言模型都扮演着重要角色,如:

  • 文本生成:生成连贯、自然的文本。
  • 语音识别:将语音转换为文本时,语言模型可以帮助确定最可能的词序列。
  • 机器翻译:评估翻译的质量,选择最佳翻译结果。
从N-gram到深度学习模型的演进

早期的语言模型主要基于N-gram统计,即考虑一个词在给定前N-1个词的上下文中出现的概率。N-gram模型虽然在某些情况下效果不错,但存在一些局限性:

  • 数据稀疏问题:罕见词组合的概率难以估计。
  • 上下文限制:只能考虑有限的上下文,无法捕捉长距离依赖。

随着深度学习的发展,基于神经网络的语言模型开始兴起。这些模型能够更好地捕捉词与词之间的复杂关系,并且能够处理更长的上下文信息。

1.3 深度学习在NLP中的应用

神经网络基础

神经网络是一种受人脑结构启发的计算模型,由大量的节点(或称为“神经元”)组成,这些节点按层次排列。每个节点会对输入数据进行加权求和,并通过一个非线性激活函数生成输出。

RNN、LSTM和GRU在语言模型中的应用
  • 循环神经网络(RNN):RNN能够处理序列数据,并且在处理当前输入时能够考虑之前的信息。然而,标准的RNN存在梯度消失或爆炸的问题,这限制了它们在长序列上的表现。
  • 长短期记忆网络(LSTM):LSTM是RNN的一种变体,它通过引入门控机制来解决梯度消失问题,从而能够学习长距离依赖。
  • 门控循环单元(GRU):GRU是另一种RNN的变体,它简化了LSTM的结构,但仍然能够捕捉长距离依赖。

这些深度学习模型在语言模型中的应用极大地提高了NLP任务的性能,使得机器能够更好地理解和生成自然语言。

第二部分:Transformer架构

2.1 Transformer模型的诞生

论文介绍:"Attention Is All You Need"

Transformer模型是由Vaswani等人在2017年的论文《Attention Is All You Need》中首次提出的。这篇论文彻底改变了自然语言处理领域,因为它提出了一种全新的架构,这种架构不依赖于循环层(如RNNs)或卷积层,而是完全基于注意力机制来处理序列数据。

Transformer与传统序列模型的对比

与传统的序列模型相比,Transformer模型具有以下优势:

  • 并行化处理:由于Transformer不依赖于序列的循环处理,它可以并行处理整个序列,从而加快训练速度。
  • 长距离依赖捕捉:通过自注意力机制,Transformer能够捕捉序列中任意两个位置之间的依赖关系,无论它们之间的距离有多远。
  • 可扩展性:Transformer模型的架构易于扩展,可以通过增加层数或注意力头来提高模型的复杂度和性能。

2.2 自注意力机制

自注意力机制的工作原理

自注意力机制的核心思想是,序列中的每个元素都与其他所有元素相关联,并且这种关联的强度是由它们的相对位置和内容决定的。自注意力机制通过以下步骤实现:

  1. 查询(Query)、键(Key)、值(Value)的计算:对于序列中的每个元素,模型会计算它的查询、键和值。
  2. 注意力分数的计算:使用查询与所有键的点积来计算注意力分数,并通过softmax函数进行归一化。
  3. 加权求和:使用归一化的注意力分数作为权重,对值进行加权求和,得到最终的输出。
多头注意力的介绍

多头注意力是一种特殊的自注意力机制,它将自注意力过程复制多次(即“头”),每个头学习不同的表示子空间。最后,将所有头的输出合并起来,以捕获更丰富的信息。这种方法使得模型能够同时关注序列的不同部分,并从多个角度理解数据。

2.3 Transformer的架构细节

编码器(Encoder)和解码器(Decoder)
  • 编码器:编码器由多个相同的层组成,每层包括两个主要的子层:多头自注意力层和前馈神经网络层。编码器的主要任务是将输入序列转换成一系列高级特征表示。
  • 解码器:解码器的结构与编码器类似,但它还包含一个额外的掩码多头自注意力层,以确保在生成序列时不会出现信息泄露。
位置编码(Positional Encoding)

由于Transformer模型本身不具备捕捉序列中元素位置信息的能力,因此需要引入位置编码。位置编码通常采用正弦和余弦函数的组合,为每个位置的每个维度提供一个唯一的编码,然后将这个编码与词嵌入相加,从而使模型能够理解单词在序列中的位置。

前馈网络(Feed-Forward Networks)

每个编码器和解码器层都包含一个前馈网络,它由两个线性变换组成,中间夹着一个非线性激活函数。前馈网络的作用是对注意力层的输出进行进一步的非线性变换,以增强模型的表达能力。

第三部分:ChatGPT模型详解

3.1 ChatGPT模型概述

模型的设计理念

ChatGPT模型是OpenAI基于其先前开发的GPT系列模型进一步发展而来,专注于对话生成和理解的高级应用。设计理念的核心是创建一个能够理解和生成自然、连贯、准确对话的AI系统。为了实现这一目标,ChatGPT采用了先进的Transformer架构,并在预训练和微调阶段进行了大量优化。

与GPT系列模型的关系

ChatGPT与GPT系列模型有着紧密的联系。GPT(Generative Pre-trained Transformer)模型是一系列预训练语言模型,它们通过在大量文本数据上进行训练,学习语言的模式和结构。ChatGPT继承了GPT的Transformer架构,并在此基础上进行了定制,使其更适合对话场景。GPT模型通常用于文本生成任务,而ChatGPT则专注于对话理解和生成。

3.2 预训练阶段

数据集的构建和处理

预训练阶段是构建强大语言模型的关键。在这个阶段,ChatGPT使用了大规模的文本数据集,这些数据可能包括书籍、文章、对话记录等多种形式的文本。数据集需要经过清洗和预处理,以确保其质量和一致性。预处理步骤通常包括分词、去除停用词、构建词汇表等。

预训练任务:Masked Language Model(MLM)和Next Sentence Prediction(NSP)
  • Masked Language Model:MLM是一种遮蔽语言模型任务,其中输入序列中的一些词会被随机遮蔽(例如,用特殊的[MASK]标记替换),模型需要预测这些遮蔽词。这种方法使得模型学会根据上下文来推断词义,增强了其理解能力。
  • Next Sentence Prediction:NSP任务旨在让模型预测两个句子是否是顺序出现的。这个任务有助于模型理解句子之间的逻辑关系和连贯性,对于对话系统来说尤其重要。

3.3 微调阶段

微调的目的和方法

微调是将预训练模型调整到特定任务的过程。ChatGPT在预训练阶段学习到了通用的语言表示,但在实际应用中,它需要针对特定的对话场景进行优化。微调通过在特定任务的数据集上进行额外的训练来实现,这有助于模型更好地适应目标任务。

特定任务的数据集和训练策略

微调阶段使用的数据集通常与目标任务紧密相关。例如,如果目标是构建一个客户服务聊天机器人,那么数据集可能包含客户与客服之间的对话记录。训练策略包括选择合适的损失函数、优化算法和调整超参数等。

3.4 对话管理

上下文理解

在对话中,理解上下文至关重要。ChatGPT通过维护对话历史来实现上下文理解,这使得它能够在生成回答时考虑之前的对话内容。上下文信息通常存储在模型的隐藏状态中,这些状态会随着对话的进行而更新。

意图识别

意图识别是对话系统中的一个关键功能,它涉及理解用户输入的目的或需求。ChatGPT使用模式匹配、分类算法或更高级的深度学习技术来识别用户的意图,并据此生成适当的响应。

多轮对话的连贯性

保持对话的连贯性是对话系统面临的一个重要挑战。ChatGPT通过使用Transformer架构中的注意力机制来实现这一点。注意力机制允许模型在生成每个回复时,都考虑到对话中的所有相关信息,从而生成连贯且相关的回答。

第四部分:技术细节与实现

4.1 模型参数和超参数

模型大小和参数数量

ChatGPT模型的大小通常以其参数数量来衡量,即模型中所有权重和偏置的总数。GPT系列模型的参数量从数百万到数十亿不等,而ChatGPT作为GPT的衍生模型,可能拥有相似或更多的参数量。模型的大小直接影响其复杂性和能力,更大的模型通常能够捕捉更细微的语言特征,但同时也需要更多的计算资源。

超参数的选择和调整

超参数是模型训练前需要设置的参数,它们对模型的性能有重要影响。超参数包括但不限于:

  • 学习率:控制模型权重在每次迭代中更新的幅度。
  • 批大小:每次迭代中用于训练的样本数量。
  • 层数:Transformer模型中编码器和解码器的层数。
  • 注意力头数:多头注意力机制中头的数量。
  • 隐藏层维度:模型内部表示的大小。

超参数的选择通常需要通过实验和调整来完成,以找到最优的模型性能。

4.2 训练过程

数据预处理

数据预处理是训练任何机器学习模型的第一步。对于ChatGPT而言,这包括:

  • 文本清洗:去除无关字符、标点符号等。
  • 分词:将文本分割成可处理的单元,如单词或字符。
  • 构建词汇表:创建一个包含所有唯一单词的列表,并为它们分配唯一的索引。
  • 序列化:将文本转换为模型可以理解的数值序列。
损失函数和优化算法
  • 损失函数:衡量模型预测与实际值之间的差异。对于语言模型,常用的损失函数是交叉熵损失。
  • 优化算法:用于在训练过程中调整模型参数以最小化损失。常用的优化算法包括SGD、Adam等。
正则化和过拟合的处理

为了防止模型在训练数据上过拟合,可以采用以下策略:

  • Dropout:随机丢弃一些网络连接,以防止网络对训练数据过度拟合。
  • 权重衰减:在损失函数中添加一个正则项,以惩罚大的权重。
  • 早停:在验证集上的性能不再提升时停止训练。
  • 数据增强:通过改变训练数据来增加数据集的多样性。

4.3 模型评估

评估指标

评估模型性能的指标取决于具体的应用场景。常见的评估指标包括:

  • 困惑度(Perplexity):衡量语言模型预测能力的一个指标,越低表示模型越好。
  • BLEU分数:常用于机器翻译和文本生成任务,衡量生成文本与参考文本的相似度。
  • 准确率:对于分类任务,衡量模型正确预测的比例。
  • F1分数:平衡精确率和召回率的指标。
测试集的选择和评估方法
  • 测试集的选择:选择与训练集和验证集不同的数据作为测试集,以评估模型的泛化能力。
  • 评估方法:可以采用交叉验证、保留集测试等方法来评估模型性能。对于对话系统,可能还需要人工评估,以确保生成的对话自然且符合预期。

第五部分:ChatGPT的应用场景

5.1 客户服务

聊天机器人

ChatGPT可以作为聊天机器人,为客户提供即时的咨询服务。与传统的基于规则的聊天机器人不同,ChatGPT能够理解复杂的问题,并生成更加自然和准确的回答。这种聊天机器人可以用于在线零售、银行服务、旅游预订等多个行业,提高客户满意度并降低企业的人力成本。

自动回复系统

在客户服务领域,自动回复系统可以快速响应客户的常见问题,减少等待时间。ChatGPT能够根据客户的问题自动生成回复,或者提供相关信息的链接,使得客户能够快速找到所需答案。

5.2 教育领域

语言学习辅助

ChatGPT可以作为语言学习辅助工具,帮助学习者练习语法、词汇和对话技巧。它可以生成各种语言场景下的对话,提供即时反馈,帮助学习者提高语言能力。

个性化教育

在教育领域,ChatGPT可以用于创建个性化的学习体验。通过分析学生的学习习惯和能力,ChatGPT可以提供定制化的学习材料和练习,帮助学生更有效地学习。

5.3 娱乐和内容创作

创意写作

ChatGPT可以用于创意写作,帮助作者生成故事大纲、角色对话或情节发展。它能够提供灵感,帮助作者克服创作障碍。

游戏NPC对话

在游戏开发中,ChatGPT可以用于生成非玩家角色(NPC)的对话。这使得游戏世界更加真实和丰富,提供更加沉浸式的游戏体验。

5.4 企业自动化

内部问答系统

企业可以利用ChatGPT构建内部问答系统,帮助员工快速获取信息,如公司政策、流程指南等。这可以提高工作效率,减少内部沟通成本。

报告生成

ChatGPT还可以用于自动化报告生成,如市场分析报告、业务总结等。通过分析数据和信息,ChatGPT可以生成结构化和详细的报告,帮助决策者快速把握关键信息。

第六部分:挑战与未来展望

6.1 当前面临的挑战

数据偏见和伦理问题

AI模型,包括ChatGPT,可能会从训练数据中学习并复制偏见。如果训练数据包含有偏见的信息,模型生成的对话也可能带有偏见,这可能对某些群体不公平。此外,伦理问题是AI领域的一个重要议题,包括隐私保护、数据安全和机器行为的道德规范。

模型的可解释性和透明度

深度学习模型通常被认为是“黑箱”,因为它们的决策过程不透明,难以解释。这对于需要高度可靠性的应用场景尤其成问题。提高模型的可解释性,让用户理解模型是如何做出特定决策的,是当前研究的一个重要方向。

6.2 技术发展趋势

更大模型和更多数据

随着计算能力的提升和数据量的增加,未来的AI模型可能会更加庞大,拥有更多的参数。这将使模型能够捕捉更细微的语言特征,提高性能。同时,获取和利用更多的训练数据也是提升模型泛化能力的关键。

多模态学习和跨领域应用

未来的AI模型可能会整合多种类型的数据,如文本、图像、声音等,实现多模态学习。这将使得模型能够更全面地理解世界,并在更广泛的领域中应用,如医疗诊断、安全监控等。

6.3 未来展望

AI伦理和法规

随着AI技术的快速发展,制定相应的伦理准则和法规变得越来越重要。这包括确保AI系统的公正性、透明度和责任归属,以及保护个人隐私和数据安全。

人机协作的未来

未来的工作环境可能会更加强调人机协作。AI系统,如ChatGPT,可以作为人类的助手,帮助处理信息、解决问题和创造新的价值。人机协作将开启新的工作模式,提高效率,促进创新。

结论

ChatGPT的基本原理和应用总结

ChatGPT作为一个先进的自然语言处理模型,基于Transformer架构,通过预训练和微调阶段,展现了在对话生成和理解方面的强大能力。它利用自注意力机制来处理序列数据,允许模型并行处理信息,并捕捉长距离依赖关系。ChatGPT的应用场景广泛,包括但不限于客户服务中的聊天机器人、教育领域的个性化学习辅助、娱乐和内容创作中的创意写作伙伴,以及企业自动化中的内部问答系统。ChatGPT官网icon-default.png?t=N7T8https://openai.com/index/chatgpt/

对AI和NLP未来发展的展望

人工智能和自然语言处理的未来是光明的,同时也充满挑战。随着技术的进步,我们预期会看到:

  • 模型规模的增长:更大的模型将能够处理更复杂的任务,提供更精确的理解和生成能力。
  • 多模态和跨领域应用:AI系统将能够处理和整合来自不同源的数据,如文本、图像和声音。
  • 伦理和法规的跟进:随着AI技术的普及,伦理问题和法规将变得越来越重要,以确保技术的健康发展和应用。
  • 人机协作的新模式:AI将更多地融入人类的工作和生活,成为增强人类能力的工具。


这篇文章提供了对ChatGPT基本原理的概述,希望能够帮助你更好地理解这一技术。如果你对某个特定部分有更深入的兴趣,可以进一步探索相关的文献和资源。

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

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

相关文章

实战:Zig 编写高性能 Web 服务(2)

1.1 编写 HTTP server 我们从python -m http.server 8000启动得到灵感,先确定好目标: 编写一个HTTP/1.1 http serverzig version 0.12.0 使用zig init搭建项目的前置工作你先自行搭建好,不会的翻看前面铺垫的章节熟悉zig的项目结构。 关键…

小米用田忌赛马的方式,逼得苹果降价超2000元应对,确实厉害

苹果的iPhone15降价2300多元,成为618的大热门,之前不少人士认为迫使苹果如此大幅度降价的原因是因为另一家手机企业的竞争,而日前有人士认为是小米用田忌赛马的方式,迫使苹果降价应对。 小米这次大幅度降价的手机并非是最新款的小…

设计模式-策略模式(行为型)

行为型-策略模式 了解策略模式 策略模式是一种行为型设计模式,在策略模式中定义了一系列算法或者策略,并将这些策略封装到独立的类中,使得可以相互替换。在使用时,可以指定响应的策略使用。 角色 策略接口:对于某种…

【计算机网络】计算机网络的概念

计算机网络的概念 导读一、计算机网络的概念1.1 个人理解1.2 通信设备与线路1.2.1 集线器1.2.2 交换机1.2.3 路由器 1.3 计算机网络的进一步理解1.4 互联网1.5 网的不同含义 二、计算机网络的不同定义2.1 广义观点2.2 资源共享观点2.3 用户透明性观点 结语 导读 大家好&#x…

【机器学习】基于OpenCV和TensorFlow的MobileNetV2模型的物种识别与个体相似度分析

在计算机视觉领域,物种识别和图像相似度比较是两个重要的研究方向。本文通过结合深度学习和图像处理技术,基于OpenCV和TensorFlow的MobileNetV2的预训练模型模,实现物种识别和个体相似度分析。本文详细介绍该实验过程并提供相关代码。 一、名…

【Python】ERROR: Could not find a version that satisfies the requirement

成功解决“ERROR: Could not find a version that satisfies the requirement”错误的全面指南 一、引言 在Python开发中,经常需要通过pip工具来安装各种依赖包。然而,有时在尝试安装某个包时,可能会遇到“ERROR: Could not find a version …

批量提取 Word 文档中的全部图片

步骤 1、打开 WinRAR 任选一个现成的压缩包双击打开 WinRAR ,或从开始菜单打开 WinRAR 2、直接把要提取图片的 Word 文档拖入 WinRAR 菜单区域 1 → 2 → 3,WinRAR 资源管理目录中的 media 就是该 Word 文档所要提取的全部图片所在文件夹 按住&#x…

python书上的动物是啥

Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。之所以选中Python作为程序的名字,是因为他是一个叫Monty Python…

CATIA进阶操作——创成式曲面设计入门(1)线架设计,三维点、直线、平面、曲线

目录 引出三维空间点生成三维直线三维平面三维曲线总结异形弹簧新建几何体草图编辑,画一条样条线进行扫掠,圆心和半径画出曲面上的螺旋线再次选择扫掠,圆心和半径 其他自定义信号和槽1.自定义信号2.自定义槽3.建立连接4.进行触发 自定义信号重…

c++简略实现共享智能指针Shared_Ptr<T>

重点: 1.引用计数在堆上(原本应为原子变量) 2.引用计数增加减少需要加锁保证线程安全。 3.内部实现Release函数用于释放资源 4.未实现,增加自定义删除器可以将Release修改为模板函数,传入可调用参数。对于shared_p…

【Multi-Feature FAS】《Face Anti-Spoofing Based on Multi-Feature Fusion》

文章目录 原文贡献 / 相关工作作者的方法评价 原文 [1]杨敏.基于多特征融合的人脸防伪技术研究[D].武汉大学,2019. 贡献 / 相关工作 针对攻击对象存在背景依赖和非刚性运动造成的深度信息缺失问题,采用边缘信息放大差异 各种 loss 数据库 评价指标 本节将会对…

队列及其应用

实验内容 请设计一个简单的模拟银行排队系统,要求程序具有以下4项菜单: 1.取号。选择该菜单后,为客户产生一个排队号。 2.叫号。选择该菜单后,显示可服务的客户排队号。 3.查看队伍。从队首到队尾列出所有排队客户的排队号。 4.退…

94、python-第三阶段-4-数据计算-map方法

直接运行会报错,需要配置下python环境变量 from pyspark import SparkConf,SparkContext import os os.environ[PYSPARK_PYTHON]"D:/Program Files/Python/Python3.13/python.exe" conf SparkConf().setMaster("local[*]").setAppName("…

【数据结构】二叉树的层序遍历~动画超详解

目录 1 什么是层序遍历2 二叉树层序遍历的基本思路3 二叉树层序遍历的实现 1 什么是层序遍历 我们从字面意思就明白,所谓层序,就是一层一层按顺序去遍历一个二叉树,这和我们之前了解的按前中后序遍历方式完全不同 比方说这颗二叉树: 前序遍历: 层序遍历: 2 二叉树层序遍历的…

通过 AI Edge Torch 生成式 API 在设备上使用自定义大语言模型

作者 / 首席工程师 Cormac Brick,软件工程师 Haoliang Zhang 我们很高兴地发布 AI Edge Torch 生成式 API,它能将开发者用 PyTorch 编写的高性能大语言模型 (LLM) 部署至 TensorFlow Lite (TFLite) 运行时,从而无缝地将新的设备端生成式 AI 模…

申请医疗设备注册变更时,需要补充考虑网络安全的情况有哪些?

在申请医疗器械设备注册变更时,需要补充网络安全的情况主要包括以下几点: 网络安全功能更新:如果医疗器械的自研软件发生网络安全功能更新,或者合并网络安全补丁更新的情形,需要单独提交一份自研软件网络安全功能更新…

计算机网络ppt和课后题总结(下)

常用端口总结 计算机网络中,端口是TCP/IP协议的一部分,用于标识运行在同一台计算机上的不同服务。端口号是一个16位的数字,范围从0到65535。通常,0到1023的端口被称为“熟知端口”或“系统端口”,它们被保留给一些标准…

springboot项目中第三方jar包打包进jar包

springboot项目中,如果手动引入了jar包,打包时不会将手动引入的第三方jar包打包进价包里,如何处理? 若第三方的jar包的lib和src同级,则maven打包时默认不会将lib下的jar包打包进jar包,处理方式有两种&#…

康谋技术 | 自动驾驶:揭秘高精度时间同步技术(二)

在自动驾驶中,对车辆外界环境进行感知需要用到很多传感器的数据(Lidar,Camera,GPS/IMU),如果计算中心接收到的各传感器消息时间不统一,则会造成例如障碍物识别不准等问题。 为了对各类传感器进…

数据结构与算法-12_二叉搜索树

文章目录 1.概述2.实现定义节点查询Comparable最小最大新增前驱后继删除找小的找大的找之间小结 3.习题E01. 删除节点-Leetcode 450E02. 新增节点-Leetcode 701E03. 查询节点-Leetcode 700E04. 验证二叉搜索树-Leetcode 98E05. 求范围和-Leetcode 938E06. 根据前序遍历结果构造…