当前位置: 首页 > news >正文

以ChatGPT为例解析大模型背后的技术

目录

1、大模型分类

2、为什么自然语言处理可计算?

2.1、One-hot分类编码(传统词表示方法)

2.2、词向量

3、Transformer架构

3.1、何为注意力机制?

3.2、注意力机制在 Transformer 模型中有何意义?

3.3、位置编码(了解即可)

3.2、为什么说Attention 机制适合万事万物!

3.4、Self-Attention 自注意力机制

3.5、Transformer架构的强大性能

4、基础语言模型训练

5、涌现能力

5.1、提示工程(Prompt Engineering)

5.2、in-context learning(ICL、情景学习)

5.3、思维链(Chain of Thought,CoT)

6、人类反馈强化学习(Reinforcement Learning fromHuman Feedback,RLHF)

6.1、指令微调(SFT)

6.2、奖励模型(RM)

6.3、强化学习(PRO)

7、GPT-4

1、大模型分类

2、为什么自然语言处理可计算?

        词不是数字,非连续

        比如:张三和李四之间是什么关系?张三+李四、张三*李四等于什么?在之前这都是不可计算的。

        那么如何让自然语言可计算?

2.1、One-hot分类编码(传统词表示方法)

        假设词表共有五万个,那么就创建一个五万维的矢量(0,0,0,0.....0),张三对应的就是(1,0,0...0),李四对应的就是(0,1,0...0)

        One-hot虽然简单明了,但存在严重的维度灾难和无法表示词之间语义关系的缺点。

        例如,对于一个有10000个唯一词的语料库,One-hot编码会产生一个10000维的向量,其中99.99%的元素都是0,这造成了极大的存储和计算资源浪费。

        更重要的是,这种表示方法无法捕获词与词之间的语义关系,每个词都是孤立的。       

2.2、词向量

        以“人”来类比,首先,我们先举例:

        通过两个维度来表示一个人:[内向0/外向1,感性0/理性1]

        向量[1,1]则表示一个外向且理性的人;向量[0,0]则是内向且感性的人。

        那么,假设一个词我们用一个50维的向量就能完整表示,如单词king,对应GloVe向量为:

[ 0.50451 , 0.68607 , -0.59517 , -0.022801, 0.60046 , -0.13498 , -0.08813 , 0.47377 , -0.61798 , -0.31012 , -0.076666, 1.493 , -0.034189, -0.98173 , 0.68229 , 0.81722 , -0.51874 , -0.31503 , -0.55809 , 0.66421 , 0.1961 , -0.13495 , -0.11476 , -0.30344 , 0.41177 , -2.223 , -1.0756 , -1.0783 , -0.34354 , 0.33505 , 1.9927 , -0.04234 , -0.64319 , 0.71125 , 0.49159 , 0.16754 , 0.34344 , -0.25663 , -0.8523 , 0.1661 , 0.40102 , 1.1685 , -1.0137 , -0.21585 , -0.15155 , 0.78321 , -0.91241 , -1.6106 , -0.64426 , -0.51042 ]

注:这个50维向量是通过机器分析大量文本得出来的数据,训练生成这种向量的算法有很多,比如Word2Vec、GloVe等。(知晓即可)

        同样其它单词,也会有一个自己的50维向量,如man,woman。

        虽然我们无法理解这些数值的具体含义,但是人们经过分析,发现一个比较有意思的等式:

\widetilde{king}-\widetilde{man}+\widetilde{woman}\approx \widetilde{kueen}

​        这个等式含义:如果我们从“king”的向量中减去“man”的向量,再加上“woman”的向量,我们得到的结果非常接近“queen”的向量。        

        从自然语言上来说,就是从国王中去掉男性的属性,增加女性的属性,就变成了女王。

        这个数学上的近似相等且可计算和我们语义逻辑的合理性不谋而合,也从另一方面说明了这些向量背后有着我们人类无法感知的合理性。

        相比之下,词向量可以将词表示为稠密的向量(压缩至几百到几千维),可以有效缓解维度灾难问题,并且因为其连续的特性,相似的词在向量空间中会彼此接近,从而能够捕捉到丰富的语义关系。

        例如:通过训练得到的词向量,我们可以通过计算向量之间的距离来评估词语之间的相似度。

3、Transformer架构

        在谷歌2017年提出Transformer之前,也存在很多网络架构,如循环神经网络(RNN)、卷积神经网络(CNN)等,会先分析数据,例如:语音数据,大家会根据语音数据波形的特点(短时、稳态特性),利用这些特性去做频谱转换,形成特征数据,然后再找到一个可以表达这些数据的网络架构模型,逻辑上是让模型向数据靠近!

        Transformer恰恰相反,不再是模型向数据靠近,而是给了一个模型结构(此结构似乎与任何数据无关),但是,我们又可以将提取的特征数据输入到该模型中,相比其他架构,Transformer最核心的是引入了注意力机制(Attention Mechanism)。

3.1、何为注意力机制?

        我们拿人类社会来类比,“Attention”就是个体如何找准自己在团体中定位的问题,无论是在一个公司、还是在一个团队、还是在一个家庭里。

        比如说,新人进入一家大企业,成为一个部门中的一员,众所周知,公司是人与人之间、人与团队之间、团队与团队之间的协作。

        此时,“Attention 注意力机制”就可以理解为新人刚刚进入团队后的最基本诉求,即如何尽快地在一个几十人的团队中,搞清楚别人的工作与自己的工作之间的协作关系,从而找准自己的定位。

        为了让新人找准在团队中的定位并快速融入,此时你需要在团队中找出哪些人对你来说最关键。

        那么,从团队中其他每个人的角度出发,看看大家都对你这个岗位具体有什么诉求,从而让新人能够清晰地明白自己所在岗位在团队中的定位。

        这,就是Attention 注意力机制,即通过团队中其他人对自己的需求,来反观自己的定位。

        那么,Attention 注意力机制的好处是什么呢?        

        这种反观自己的定位方式,很明显并不是仅仅来自于个人的想象,也不仅仅因为个人的喜好,更不是只为了自己舒服,而是要考虑他人对自己的感受。我们对自己的定位,不是自己单相思想明白的,而是通过自己所处的环境,不断与环境相协调,不管是主动地还是被动地通过环境的反馈来反观自己,这就是人的社会属性决定的自我定位——Attention 注意力机制!

3.2、注意力机制在 Transformer 模型中有何意义?

        注意力机制是 Transformer 架构的一项关键创新。

        它使模型能够专注于输入文本中最相关的部分,从而更好地理解其含义。

        举个例子,假设我们有一句话:The cat sat on the mat.

        在这句话中,我们希望确定句中每个单词在预测下一个单词时的重要性。为了完成这个任务,Transformer 模型计算了每个单词相对于其他单词的注意力分数。

        比如,单词 cat 对于 sat 是非常重要的,因为它们在语义上相关。通过这种机制,Transformer 可以自适应地为每个单词分配权重,从而有效捕捉语义依赖关系。

        这一过程使模型能够捕捉词语之间的长距离依赖关系,更好地理解句子的上下文。

3.3、位置编码(了解即可)

        Transformer模型中的位置编码(Positional Encoding)是用于向模型提供序列中各个元素位置信息的机制。

        由于Transformer模型依赖于自注意力机制(self-attention mechanism),该机制在计算时对序列中的所有位置一视同仁,这种特性使得模型在处理序列数据时缺乏位置信息,它不像卷积神经网络或循环神经网络中固有的序列顺序信息,因此,为了让模型能够区分序列中的不同位置,必须引入位置信息。

3.2、为什么说Attention 机制适合万事万物!

        你可能会发现到,作为系统内在的一种必然机制,无论你是否认识到“Attention 机制”的存在,你都在有意无意地践行“Attention 机制”,因为这世间的每一个个体都在为自己能在这个世界的环境中生存而不断地做着“适者生存”的努力。而这种努力,必须首先在找准自己的定位的前提下进行。

        “Attention 机制”不仅仅局限于所有有社会属性的地方,如人群、鲸群、狼群、蜂群等等,在植物界、微生物界,它同样是最重要的内在运行机制,甚至无机物界也一样,一颗石头、一滴水、一张图片、一段语言、一碗螺蛳粉。。。。都需要 “Attention 机制”!

        可以说,不管动物还是植物,找准了自己定位,就是给自己的生存打下了基础。

        然后,让我们再往下思考一步。整个生物界可以做 Attention 机制,非生物界呢?

        用尤瓦尔赫拉利在他的著作《人类简史》中的阐述回答:“这世间的一切皆是算法!”

通过以上的介绍描述,我们可以发现,Attention 机制的理念与词向量的理念颇为契合,都是通过其他维度来对自己进行一个描述或定位。

3.4、Self-Attention 自注意力机制

        Self-Attention 自注意力机制就是团队中的每一个人都像你一样与团队中其他人做一遍注意力机制,这就是 “Self-Attention 自注意力机制”了。这个“自”指的就是“整个团队”。

        Self-Attention 自注意力机制的好处是什么呢?

        Self-Attention 自注意力机制可以使得团队中的每一个人都可以找准自己的定位,避免了猪队友的出现,那么这个团队也就整体上找准了自己的内部运作规律,全部成员拧成一股绳,大家齐心协力攻克任务,效率与品质自然达到了最优状态,这个团队也就是一个十分优秀的团队了。

        当然,这个团队再往上,以至于全公司也可以做Self-Attention 自注意力机制。也就是说全公司所有团队,不管业务、行政、产品、技术研发、客服等等都作为公司总体的不同组成单元,互相做注意力机制的优化,那么这家公司也就变成一家优秀的公司了。。

        不管团队中的成员是否意识到了这个机制的存在,不管他们是否主动地去做这个机制,只要这个团队存在一天,这个体系的运作最终都会对每一个成员进行自然而然地Self-Attention 自注意力机制。因为,这是团队系统运行的内在需要,是大家组成这个团队的最终目的的需要。

3.5、Transformer架构的强大性能

         Transformer摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN)在处理序列数据时的局限性,首次完全依赖于自注意力机制(Self-Attention Mechanism)。

        这种机制允许模型直接关注输入序列中的任意两个元素之间的关系,从而实现全局信息的捕获和建模,而不受限于局部上下文窗口。

        第一、全局依赖

         🔍首先,让我们深入了解Transformer模型的核心构造。它主要由自注意力机制和位置编码组成。这两部分的设计使得模型能够理解和处理输入数据中的长距离依赖关系,这在传统模型中是一个巨大的挑战。
        🌐自注意力机制允许每个输入位置考虑全局信息,从而更好地理解上下文。这意味着,当我们识别一个词的含义时,它不仅考虑前面的词,还会考虑到后面的词,甚至是远离它的词,这样使得整体信息被全面捕获。RNN和CNN缺乏长上下文是Transformer在任务中击败它们的最大原因。

  第二、并行性

  与传统的循环神经网络(RNN顺序处理特性)相比,RNN的每一步计算依赖于前一步的结果,而Transformer的优势之一是并行计算。由于自注意力机制允许模型同时处理输入序列的所有元素,而无需像循环神经网络(RNN)那样按顺序迭代,因此可以在一次计算中处理整个序列,大大减少了计算时间。

        自注意力机制的计算过程如下:

  1. 首先,将输入序列的每个元素(词或字)映射到一个向量表示。这些向量表示称为查询(Query)、键(Key)和值(Value)。
  2. 然后,计算每个元素的查询向量与其他所有元素的键向量之间的点积。这个点积的结果表示两个元素之间的相关性。
  3. 接下来,使用softmax函数对点积结果进行归一化。这会得到一组权重,表示每个元素对其他元素的相对重要性。
  4. 最后,将归一化后的权重与对应的值向量相乘,并对所有元素求和。这个求和结果是输出序列中与输入序列相对应的新元素。

        在这个过程中,我们可以同时计算输入序列中所有元素的查询-键点积、权重归一化以及权重与值向量的乘积

        这些计算是独立的,因此可以在硬件(如GPU和TPU)上实现并行处理。通过这种方式,自注意力机制充分利用了并行计算的优势,从而显著提高了模型的处理速度。

  第三、灵活性

        模型结构不根据数据定制

        第四、情景学习(下文会叙述)

3.6、简单理解Transformer

        传统的方法(RNN)在处理文本时,遵循着逐词处理的模式,就像阅读书籍时,一个词一个词往后读取信息。然而,Transformer模型打破了这一传统,它能够同时处理一句话或一段话中的所有词语,无需像RNN(循环神经网络)那样,每个时间步(t步骤)的计算都必须依赖于前一个时间步(t-1步骤)的结果。

        Transformer模型特别擅长于识别并关注句子中不同的重要部分。就像我们在阅读文章时,会自然而然地关注章节标题、关键词或句子中的核心信息一样,Transformer也能通过其注意力机制来聚焦这些关键信息。

        尽管Transformer能够一次性处理整个句子中的所有词语,但它无法直接捕获序列中单词的位置信息。为了弥补这一缺陷,Transformer引入了位置编码的概念,这样模型就能够知道每个单词在句子中的具体位置,从而保留了语言的顺序性。

4、基础语言模型训练

        暴力美学!

        将所有能够收集到的数据,经过严格的清洗后,投喂到模型结构中:

模型名称        模型参数量训练数据
GPT117M4.6G
GPT-21.5B40G
GPT-3175B757G

        可以看出,GPT的训练数据越来越多,GPT-3中757G的训练数据是从几十T的数据中清洗出来的。

        随着训练数据的增多,量变引起了质变!

5、涌现能力

        涌现现象的经典含义是指,在一个复杂系统中,组成该系统基本元素之间相互作用,产生了全新的、宏观的性质或行为。

        举个例子给大家说明:

        单只蚂蚁在自然环境中行动,它只会寻找食物和避开危险,但是当大量蚂蚁一起行动时,它们能够建造出非常复杂的蚁穴。这些蚁穴甚至有特定的通风和温度控制系统,但每只蚂蚁并不知道整个蚁穴的设计,他们没有预先规划好的图纸,却能完成这样的大型工程,这就是典型的涌现现象。

        但GPT 4.0给我们带来的震撼过于庞大,以至于我们在大模型中,对涌现现象的具体定义为:在小模型中没有的能力,却在大模型中突然出现的现象(在大模型参数增加到某一临界点后突然出现)。

        这个定义中所谓的“小模型”,已经是大模型出现前人类世界AI发展的皇冠,代表了有史以来最先进的硅基智能能力。

        注意刚刚所说的”突然出现“,这意味着涌现现象的第二层含义:我们无法确定涌现的发生点!

        我们可以很明确地观测到,一旦模型大小超过某一个阈值,模型就像修炼突破了一样,展现出前所未有的能力。但同时,这个阈值却无法预测!我们无法确定模型什么时候能完成下一境界的突破。

5.1、提示工程(Prompt Engineering)

        即:如何与大模型去交互,才能诱导模型出现强大的能力。

        提示工程是一种针对预训练语言模型(如GPT),通过设计、实验和优化输入提示词来引导模型生成高质量,准确和有针对性的输出的技术。

        本质上来说,提示工程也是一种人机交互的方式,提示词就是我们发给大模型的输入(指令),大模型根据指令,结合自身预训练的“知识”,输出指令相关的内容。而大模型输出结果的好坏,和我们输入的指令息息相关。

        如今,很多AI公司都在做提示工程。

5.2、in-context learning(ICL、情景学习)

        传统意义上的机器学习模型,都是被训练来做特定的任务,例如分类(输入餐厅的评论,预测是正面或负面的评价)、翻译(把中文翻译成英文)、或是摘要(把一篇长文浓缩成一句话)。

        这每一项任务,都要有个「机器学习工程师」花上几周甚至几个月的时间,准备好一个干净的训练数据集,喂入好几种算法,不断调整一堆参数,最后才能训练出一个堪用的模型。而这样的模型除了做当初训练它的任务之外,其他什么都不能做。分类狗的模型就是只能分类狗,如果要分类颜色或大小都不行,更别提要它做翻译。

        也就是说,传统意义上的每个模型就只能做特定的一件任务,能力边界非常清楚。但GPT-3出现后,大家开始发现一些神奇和无法解释的事情。

        大型语言模型(LLM)当初被训练做的任务是“给定一段文字,预测下一个字。”

        训练数据是网络上数十亿篇的各式文章,没有专注在特定领域。当初训练这样的模型时,研究者主要的期望是这样的模型可以用来辅助写作和产生文章,所以才喂给它大量的文章示例。

        但是,LLM被训练出来后,大家意外发现它还有一个特殊的超能力—in-context learning

        只要给它不同的提示,它就会展现出不同的能力。即使训练数据中没有这样的示例也行。更神奇的事,这个语境学习能力可以让LLM的能力边界扩展到它没被直接训练过的任务,而且还做得非常好。

        例如:

        问题1:“马尔济斯是白色,狮子是棕色,老虎是什么颜色?”

        ChatGPT:“老虎的一般为橙色带黑色条纹。”

        问题2:“马尔济斯体型小,西藏獒犬体型?”

        ChatGPT:“西藏獒犬一般是大型犬。”

        上面的示例展示了LLM能根据提示变成“动物颜色分类器”,也还能变成“动物大小分类器”。我们不用重新训练模型,只要给它非常少的示例,它就会根据这些示例变成不同的预测机器。这样的能力,不只让大众惊讶不已,连行内的研究者也还搞不太清楚是怎么回事。

5.3、思维链(Chain of Thought,CoT)

        简单来说,思维链是一种改进的Prompt技术,用于提升大模型在复杂推理任务上的表现,特别是涉及到推理和多步骤思考的问题,而这一系列推理的中间步骤就被称为思维链。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍  

        在这百模大战中,国内外很多企业相继推出自己的大模型,而且模型的规模和性能也在不断提升,展现了很多令人吃惊的能力,比如文本生成,内容摘要,问答等。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

        虽然大模型很强大,但大模型在某些方面依然有所欠缺,类似于GPT这种强大模型也有频频翻车的案例出现,比如,在数学计算,逻辑推理等方面表现较差。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

        而这正是思维链可以解决的问题,思维链通过要求模型在输出最终答案之前,显示输出中间逐步的推理步骤这一方法来增强大模型在数学,常识和推理方面的能力。‍‍‍‍‍‍‍‍‍‍

        区别于传统的Prompt从输入直接到输出的映射<input——>output>的方式,CoT完成从输入到思维链再到输出的映射,即<input——>reasoning chain(推理链) ——> output>;

        举例来说,3+5=8,如何让计算机计算出3+5=8,就需要把计算的思维过程给到计算机。

6、人类反馈强化学习(Reinforcement Learning fromHuman Feedback,RLHF)

        基于以上的所有内容训练出来的模型(已经在海量数据上进行了预训练),会一本正经地胡说八道,所以需要人类干预反馈强化学习,旨在优化大型语言模型(LLM)的行为,使其更符合人类的期望。

6.1、指令微调(SFT)

        举个例子: 一个预训练的语言模型可以进行各种文本任务,但如果我们想让它专门做客服机器人,就可以用客服对话数据对它进行微调,让它更擅长回答用户的问题。

6.2、奖励模型(RM)

       将人类反馈转化为奖励信号,形成一个奖励模型(Reward Model, RM)。该模型用于评估不同输出的质量,并为后续的强化学习提供反馈 。

6.3、强化学习(PRO)

        根据奖励信号调整其策略参数,以提高未来获得高奖励的概率。这一过程是迭代进行的,直到模型达到预期性能水平。

        

        最终,让 AI 胜任特定任务,生成更符合人类价值观和喜好的内容。即:让 AI 学会察言观色,更懂人类偏好。

7、GPT-4

 
        

相关文章:

以ChatGPT为例解析大模型背后的技术

目录 1、大模型分类 2、为什么自然语言处理可计算&#xff1f; 2.1、One-hot分类编码&#xff08;传统词表示方法&#xff09; 2.2、词向量 3、Transformer架构 3.1、何为注意力机制&#xff1f; 3.2、注意力机制在 Transformer 模型中有何意义&#xff1f; 3.3、位置编…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_cpuinfo 函数

ngx_cpuinfo 声明在 src/core/ngx_core.h void ngx_cpuinfo(void); 定义在 src/core/ngx_cpuinfo.c 这里 ngx_cpuinfo 的定义可以找到 2 个 使用 gcc -E 处理一下来确认当下环境中使用的是哪一个 gcc -E src/core/ngx_cpuinfo.c \-I src/core \-I src/event \-I src/event/modu…...

python小项目编程-中级(1、图像处理)

目录 图像处理 实现 测试 unittest pytest 图像处理 实现界面化操作&#xff0c;使用PIL库实现简单的图像处理功能&#xff0c;如缩放&#xff08;设置缩放比例&#xff09;、旋转和滤镜、对比度调整、亮度调整、灰度图、二值化图&#xff08;二值图如果使用的是彩色图片需…...

EasyExcel实现excel导入(模版上传)

目录 效果pom.xmlapplication.ymlcontrollerservice依赖类前台vue代码某个功能如果需要添加大量的数据,通过一条条的方式添加的方式,肯定不合理,本文通过excel导入的方式来实现该功能,100条数据导入成功85条,失败15条,肯定需要返回一个表格给前台或者返回1个错误excel给前…...

AI工作流+专业知识库+系统API的全流程任务自动化

我有点悲观&#xff0c;甚至很沮丧&#xff0c;因为AI留给普通人的机会不多了&#xff0c;这既是人类之间权力的斗争&#xff0c;也是硅基生命和碳基生命的斗争。AI自动化是无法避免的趋势&#xff0c;如果人类不能平权&#xff0c;那就只能跪下接受审判。 通过整合AI工作流、专…...

【C/C++】合并两个有序链表 (leetcode T21)

核心考点预览&#xff1a;链表 &#xff08;双指针&#xff09; 技巧&#xff1a;虚拟头结点 题目描述&#xff1a; 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例&#xff1a; 输入输出示例1l1 [1,2,4], l2 [1…...

C语言进阶习题【2】(4结构体进阶)——通讯录的实现3

1. 本节在动态版本通讯录的基础上实现存储功能 在动态版本的基础上&#xff0c;对于通讯录的新增了存储到文件中&#xff0c;可以从文件中打开我们存储的通信录功能。新增函数&#xff1a;saveContatc()和loadContact&#xff08;&#xff09; 2. 具体实现 2.1 contact.h /…...

Linux系统编程之无名管道

概述 在Linux系统中&#xff0c;无名管道是一种简单的进程间通信机制。它允许一个进程创建一对文件描述符&#xff0c;其中一个用于读取&#xff0c;另一个用于写入。当一个进程通过系统调用创建了一个无名管道后&#xff0c;便可以将这两个文件描述符传递给它的子进程&#xf…...

deepseek与其他大模型配合组合

DeepSeek与其他大模型的配合组合&#xff0c;展现了其在多个领域中的强大应用潜力和灵活性。以下是对DeepSeek与其他大模型配合组合的详细分析&#xff1a; 一、DeepSeek与华知大模型的组合 背景介绍&#xff1a; 华知大模型是同方知网与华为联手打造的&#xff0c;具备全学科…...

ASP.NET Core Clean Architecture

文章目录 项目地址一、1. 重点1.1 Repository数据库接口1.2 GetEventDetail 完整的Query流程1.3 创建Command并使用validation 项目地址 教程作者&#xff1a;ASP.NET Core Clean Architecture 2022-12 教程地址&#xff1a; https://www.bilibili.com/video/BV1YZ421M7UA?…...

DeepSeek安装部署笔记(一)

Ollamaopen-WebUI部署 DeepSeek安装部署笔记第一步 Ollama安装1.安装ollama&#xff1a;官网https://ollama.com/下载2.上面安装完成&#xff0c;在cmd命令行&#xff1a; 第二步 给DeepSeek添加OpenWebUI界面&#xff08;重点&#xff09;1.安装conda&#xff1a;用它来管理py…...

ProfiNet转EtherNet/IP罗克韦尔PLC与监控系统通讯案例

一、案例背景 在新能源产业蓬勃发展的当下&#xff0c;大型光伏电站作为绿色能源的重要输出地&#xff0c;其稳定高效的运行至关重要。某大型光伏电站占地面积广阔&#xff0c;内部设备众多&#xff0c;要保障电站的稳定运行&#xff0c;对站内各类设备进行集中监控与管理必不可…...

23.2 HtmlDocument类

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 HtmlDocument类提供了HTML文档的顶级编程访问&#xff0c;配合WebBrowser的 Document属性使用&#xff0c;可以获得WebBrowser当前页…...

wordpress adrotate插件 文件上传漏洞

当你爆破进wordpress后台但权限不是管理员的时&#xff0c;如果你有adrotate插件操作权限可以用adrotate的文件上传功能get webshell 该漏洞需要AdRotate版本 < 5.13.3 第一步按顺序点击上传文件 在这里文件一定要压缩成zip格式&#xff0c;上传的时候也是上传这个zip 上…...

数据分析和数据挖掘的工作内容

基本的数据分析工作通常包含以下几个方面的内容&#xff1a; 确定目标&#xff08;输入&#xff09;&#xff1a;理解业务&#xff0c;确定指标口径。获取数据&#xff1a;数据仓库&#xff08;SQL提数&#xff09;、电子表格、三方接口、网络爬虫、开放数据集等。清洗数据&am…...

【Pandas】pandas Series sample

Pandas2.2 Series Computations descriptive stats 方法描述Series.align(other[, join, axis, level, …])用于将两个 Series 对齐&#xff0c;使其具有相同的索引Series.case_when(caselist)用于根据条件列表对 Series 中的元素进行条件判断并返回相应的值Series.drop([lab…...

qt + opengl 给立方体增加阴影

在前几篇文章里面学会了通过opengl实现一个立方体&#xff0c;那么这篇我们来学习光照。 风氏光照模型的主要结构由3个分量组成&#xff1a;环境(Ambient)、漫反射(Diffuse)和镜面(Specular)光照。下面这张图展示了这些光照分量看起来的样子&#xff1a; 1 环境光照(Ambient …...

buuctf-[极客大挑战 2019]Knife题解

一个很简单的web题&#xff0c;进入界面 网页名还加白给的shell&#xff0c;并且给的提示也很明显&#xff0c;给了一个一句话木马再加上菜刀&#xff0c;很怀疑是一个webshell题&#xff0c;那么直接打开蚁剑测试连接拿shell 用提示的一句话木马的密码&#xff0c;测试链接发现…...

常用电脑,护眼软件推荐 f.lux 3400K | 撰写论文 paper

常用电脑&#xff1f;平均每天用 5 个小时&#xff1f;你就要考虑用一个护眼软件了&#xff0c;对皮肤也好。因为电脑屏幕有辐射&#xff0c;比如蓝光。 f.lux 作为一款专业护眼软件&#xff0c;值得使用。之前用了三年的 Iris Pro&#xff0c;现在 f.lux 做的更好了。 使用…...

【操作幂等和数据一致性】保障业务在MySQL和COS对象存储的一致

业务场景 发布信息&#xff0c;更新到数据库MySQLCOS操作&#xff0c;更新JSON文件 不过可能存在幂等性和数据一致性的问题。 // 批量存MySQL entityPublishService.saveOrUpdateBatch(entityPublishList); // 遍历批量存COS对象存储searchEntitys.forEach(req -> {//删除…...

[答疑]领域建模:邓丽君、周杰伦和少女时代

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 第五元素 2025-2-18 17:12 潘老师&#xff0c;画线的这句话&#xff0c;在这个类图中怎么体现呢&#xff1f; &#xff08;回答者补注&#xff1a;问题的素材来自《邓丽君的领域建模》…...

【鸿蒙开发】第四十三章 Notification Kit(用户通知服务)

目录​​​​​​​ 1 简介 1.1 使用场景 1.2 能力范围 1.3 业务流程 1.4 通知样式 1.5 约束限制 1.6 与相关Kit的关系 2 请求通知授权 2.1 接口说明 2.2 开发步骤 3 管理通知角标 3.1 接口说明 3.2 开发步骤 4 管理通知渠道 4.1 通知渠道类型说明 4.2 接口说明…...

Ubuntu 20.04源码安装opencv 4.5.0

安装依赖项 sudo apt install -y g sudo apt install -y cmake sudo apt install -y make sudo apt install -y wget unzip安装opencv依赖库 sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev l…...

buu-get_started_3dsctf_2016-好久不见39

栈溢出外平栈 1外平栈与内平栈的区别 外平栈&#xff1a; 栈帧的局部变量和返回地址之间没有额外的对齐或填充。返回地址直接位于局部变量的上方&#xff08;即栈顶方向&#xff09;。在计算偏移时&#xff0c;不需要额外加 4&#xff08;因为返回地址紧邻局部变量&#xff09…...

一周学会Flask3 Python Web开发-客户端状态信息Cookie以及加密

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili HTTP是无状态&#xff08;stateless)协议。也就是说&#xff0c;在一次请求响应结束后&#xff0c;服务器不会留下任何关于对…...

深入解析Qt事件循环

在Qt开发中&#xff0c;QApplication::exec()这行代码是每个开发者都熟悉的“魔法咒语”。为什么GUI程序必须调用它才能响应操作&#xff1f;为何耗时操作会导致界面冻结&#xff1f;本文将以事件循环为核心&#xff0c;揭示Qt高效运转的底层逻辑&#xff0c;探讨其设计哲学与最…...

python中的异常-模块-包

文章目录 异常异常的定义异常捕获语法捕获常规异常捕获指定异常捕获多个异常捕获所有异常异常else异常finally 异常传递总结 模块概念导入自定义模块及导入main方法all变量 总结 包自定义包定义pycharm中建包的基本步骤导入方式 第三方包 异常 异常的定义 当检测到一个错误时…...

AI 百炼成神:线性回归,预测房价

我们开始第一个项目——线性回归:预测房价。这是一个经典的机器学习入门项目,可以帮助你理解如何使用线性回归模型来预测连续的数值。 第一个项目:线性回归预测房价 项目目标 学习线性回归的基本概念。使用历史房价数据建立一个预测模型。理解如何评估模型的性能。项目步骤…...

Grok-3 与 DeepSeek 的技术架构与性能分析

随着 AI 大模型技术的快速发展,Grok-3(xAI)与 DeepSeek-V3/R1(深度求索)成为近期备受关注的焦点。本文将从技术架构、性能表现、成本效率和应用场景等维度,深入对比分析这两大模型的优劣势。 一、技术架构对比 1. DeepSeek-V3/R1:高效 MoE 架构与工程优化 混合专家模型…...

机器学习实战(4):逻辑回归——分类问题的基础

第4集&#xff1a;逻辑回归——分类问题的基础 在机器学习中&#xff0c;逻辑回归&#xff08;Logistic Regression&#xff09; 是解决分类问题的经典算法之一。尽管名字中有“回归”&#xff0c;但它实际上是一种分类模型&#xff0c;广泛应用于二分类任务&#xff08;如垃圾…...

我是如何从 0 到 1 找到 Web3 工作的?

作者&#xff1a;Lotus的人生实验 关于我花了一个月的时间&#xff0c;从 0 到 1 学习 Web3 相关的知识和编程知识。然后找到了一个 Web3 创业公司实习的远程工作。 &#x1f447;&#x1f447;&#x1f447; 我的背景: 计算机科班&#xff0c;学历还可以(大厂门槛水平) 毕业工…...

基于WebRTC与AI大模型接入EasyRTC:打造轻量级、高实时、强互动的嵌入式音视频解决方案

随着物联网和嵌入式技术的快速发展&#xff0c;嵌入式设备对实时音视频通信的需求日益增长。然而&#xff0c;传统的音视频解决方案往往存在体积庞大、实时性差、互动体验不佳等问题&#xff0c;难以满足嵌入式设备的资源限制和应用场景需求。 针对以上痛点&#xff0c;本文将介…...

【DeepSeek】本地部署,保姆级教程

deepseek网站链接传送门&#xff1a;DeepSeek 在这里主要介绍DeepSeek的两种部署方法&#xff0c;一种是调用API&#xff0c;一种是本地部署。 一、API调用 1.进入网址Cherry Studio - 全能的AI助手选择立即下载 2.安装时位置建议放在其他盘&#xff0c;不要放c盘 3.进入软件后…...

Java 大视界 -- 国际竞争与合作:Java 大数据在全球市场的机遇与挑战(94)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

流程绩效分析,实现销售目标的保障

在当今竞争激烈的商业环境里&#xff0c;客户关系管理&#xff08;CRM&#xff09;行业正迎来深刻变革。企业若想在市场中脱颖而出&#xff0c;实现业务的持续增长&#xff0c;流程绩效分析成为关键。通过提供销售全流程绩效分析能力&#xff0c;企业能够针对销售全流程的复杂业…...

Linux NFS

Linux NFS NFS&#xff08;Network File System&#xff09;是一种用于在网络上共享文件系统的协议&#xff0c;允许不同的计算机通过网络访问和共享文件&#xff0c;就像访问本地文件一样。它广泛应用于 Linux 和 UNIX 系统中&#xff0c;支持多用户并发访问&#xff0c;适合…...

一文精通JWT Token、ID Token、Access Token、Refresh Token

JWT Token JSON Web Token (JWT,RFC 7519 (opens new window)),是为了在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准((RFC 7519)。该 token 被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT 的声明一般被用来在身份提供者和服务提供者…...

CSS基础(浮动、相对定位、绝对定位、固定定位、粘性定位、版心、重置默认样式)

文章目录 1. 浮动&#xff08;float&#xff09;1.1 简介1.2 元素浮动后的特点1.3 脱离文档流示例图1.4 浮动产生的影响1.4.1 积极影响1.4.2 消极影响 1.5 解决浮动产生的影响1.5.1 清除浮动&#xff08;Clearfix&#xff09;1.5.2 创建新的块格式化上下文&#xff08;BFC&…...

uniapp中引入Vant Weapp的保姆级教学(包含错误处理)

废话不多说&#xff0c;直接上方法&#xff0c;网上的教学好多都是错误的 1.安装vant weapp 在Hbuilder的终端&#xff0c;输入以下代码 npm install vant/weapp -S --production 2.新建wxcomponents文件夹 在项目的跟目录新建一个“wxcomponents’文件夹&#xff0c;与app.…...

Datawhale Ollama教程笔记5

Dify 接入 Ollama 部署的本地模型 Dify 支持接入 Ollama 部署的大型语言模型推理和 embedding 能力。 快速接入 下载 Ollama 访问 Ollama 安装与配置&#xff0c;查看 Ollama 本地部署教程。 运行 Ollama 并与 Llama 聊天 ollama run llama3.1Copy to clipboardErrorCopied …...

STL —— 洛谷字符串(string库)入门题(蓝桥杯题目训练)(二)

目录 一、B2121 最长最短单词 - 洛谷 算法代码&#xff1a; 代码分析 变量定义 输入处理 单词长度计算 更新最长和最短单词的长度 输出最长单词 输出最短单词 评测记录&#xff1a;​编辑 二、B2122 单词翻转 - 洛谷 算法代码&#xff1a; 代码分析 引入头文件和定…...

P1055 [NOIP 2008 普及组] ISBN 号码(java)【AC代码】

每一本正式出版的图书都有一个 ISBN 号码与之对应&#xff0c;ISBN 码包括 9 位数字、1 位识别码和 3 位分隔符&#xff0c;其规定格式如 x-xxx-xxxxx-x&#xff0c;其中符号 - 就是分隔符&#xff08;键盘上的减号&#xff09;&#xff0c;最后一位是识别码&#xff0c;例如 0…...

JavaScript如何创建一个对象?对象字面量和构造函数创建对象有什么区别?

JavaScript如何创建一个对象&#xff1f;对象字面量和构造函数创建对象有什么区别&#xff1f; JavaScript 创建对象的方式 在 JavaScript 中&#xff0c;有多种方式可以创建对象&#xff0c;这里主要介绍对象字面量和构造函数这两种常见的方式。 1. 对象字面量 对象字面量…...

【量化科普】Sharpe Ratio,夏普比率

【量化科普】Sharpe Ratio&#xff0c;夏普比率 &#x1f680;&#x1f680;&#x1f680;量化软件开通&#x1f680;&#x1f680;&#x1f680; &#x1f680;&#x1f680;&#x1f680;量化实战教程&#x1f680;&#x1f680;&#x1f680; 在量化投资领域&#xff0c;…...

知识蒸馏知识点

1基于kl散度计算,学生模型需要用log_softmax处理 2 为了避免温度对梯度的影响,loss*T**2 操作目的教师 / 学生输出除以 软化概率分布,暴露类别间关系损失乘以 抵消温度对梯度的缩放,维持梯度量级稳定,确保训练收敛性 import torch import torch.nn.functional as F# 原…...

Springboot + Ollama + IDEA + DeepSeek 搭建本地deepseek简单调用示例

1. 版本说明 springboot 版本 3.3.8 Java 版本 17 spring-ai 版本 1.0.0-M5 deepseek 模型 deepseek-r1:7b 需要注意一下Ollama的使用版本&#xff1a; 2. springboot项目搭建 可以集成在自己的项目里&#xff0c;也可以到 spring.io 生成一个项目 生成的话&#xff0c;如下…...

【MySQL】MySQL表的增删改查(进阶)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…...

装修流程图: 装修前准备 → 设计阶段 → 施工阶段 → 安装阶段 → 收尾阶段 → 入住

文章目录 引言I 毛坯房装修的全流程**1. 装修前准备****1.1 确定装修预算****1.2 选择装修方式****1.3 选择装修公司****1.4 办理装修手续****2. 设计阶段****2.1 量房****2.2 设计方案****2.3 确认方案****3. 施工阶段****3.1 主体拆改****3.2 水电改造****3.3 防水工程****3.…...

JavaScript系列(79)--Web Worker 高级应用

Web Worker 高级应用 &#x1f504; Web Worker 为JavaScript提供了真正的多线程能力&#xff0c;让我们能够在后台线程中执行复杂的计算而不阻塞主线程。今天让我们深入探讨Web Worker的高级应用。 Web Worker 概述 &#x1f31f; &#x1f4a1; 小知识&#xff1a;Web Work…...

人工智能之自动驾驶技术体系

自动驾驶技术体系 自动驾驶技术是人工智能在交通领域的重要应用&#xff0c;旨在通过计算机视觉、传感器融合、路径规划等技术实现车辆的自主驾驶。自动驾驶不仅能够提高交通效率&#xff0c;还能减少交通事故和环境污染。本文将深入探讨自动驾驶的技术体系&#xff0c;包括感…...