一文读懂“大语言模型”

news2024/11/24 0:11:53

1、背景

本文基于谷歌云的官方视频:《Introduction to Large Language Models》 ,使用 ChatGPT4 整理而成,希望对大家入门大语言模型有帮助。
image.png

image.png

本课程主要包括以下 4 方面的内容:

  • 大语言模型的定义
  • 描述大语言模型的用例
  • 解释提示词调优
  • 谷歌的 Gen AI 开发工具介绍

2、大语言模型介绍

2.1 大语言模型的定义

大语言模型是深度学习的分支

深度学习是机器学习的分支,大语言模型是深度学习的分支。
image.png
机器学习是人工智能(AI)的一个子领域,它的核心是让计算机系统能够通过对数据的学习来提高性能。在机器学习中,我们不是直接编程告诉计算机如何完成任务,而是提供大量的数据,让机器通过数据找出隐藏的模式或规律,然后用这些规律来预测新的、未知的数据。

深度学习是机器学习的一个子领域,它尝试模拟人脑的工作方式,创建所谓的人工神经网络来处理数据。这些神经网络包含多个处理层,因此被称为“深度”学习。深度学习模型能够学习和表示大量复杂的模式,这使它们在诸如图像识别、语音识别和自然语言处理等任务中非常有效。

大语言模型是深度学习的应用之一,尤其在自然语言处理(NLP)领域。这些模型的目标是理解和生成人类语言。为了实现这个目标,模型需要在大量文本数据上进行训练,以学习语言的各种模式和结构。如 ChatGPT,就是一个大语言模型的例子。被训练来理解和生成人类语言,以便进行有效的对话和解答各种问题。

大语言模型和生成式 AI 存在交集

image.png

生成式AI是一种能够创造新的内容或预测未来数据的人工智能技术。
image.png
这种技术包括用于生成文本、图像、音频和视频等各种类型的内容的模型。生成式AI的一个关键特性是,它不仅可以理解和分析数据,还可以创造新的、独特的输出,这些输出是从学习的数据模式中派生出来的。

大型通用语言模型预训练和微调

大型通用语言模型可以进行预训练,然后针对特定目标进行微调。
image.png

image.png
训练: 训练狗狗为例,可以训练它坐、跑过来、蹲下、保持不动。

image.png
如果想训练警犬、导盲犬和猎犬,则需要特殊的训练方法。
image.png
大语言模型的训练也采用与之类似的思路。

image.png
大型语言模型被训练来解决通用(常见)的语言问题,如文本分类、问答、文档总结和文本生成等

(1)文本分类:大型语言模型可以通过对输入文本进行分析和学习,将其归类到一个或多个预定义的类别中。例如,可以使用大型语言模型来分类电子邮件是否为垃圾邮件,或将推文归类为积极、消极或中立。
(2)问答:大型语言模型可以回答用户提出的自然语言问题。例如,可以使用大型语言模型来回答搜索引擎中的用户查询,或者回答智能助手中的用户问题。
(3)文档总结:大型语言模型可以自动提取文本中的主要信息,以生成文档摘要或摘录。例如,可以使用大型语言模型来生成新闻文章的概要,或从长篇小说中提取关键情节和事件。
(4)文本生成:大型语言模型可以使用先前学习的模式和结构来生成新的文本。例如,可以使用大型语言模型来生成诗歌、短故事、或者以特定主题的文章。

image.png
大语言模型(LLMs)可以基于特定领域的小规模的数据集上进行训练,来定制化解决不同领域如零售、金融、娱乐等的特定问题

大语言模型的特征和训练关键词

image.png

Large(大):在"大语言模型"的上下文中,"大"主要有两层含义。一方面,它指的是模型的参数数量。在这些模型中,参数的数量通常会非常大,达到数十亿甚至数百亿。这使得模型能够学习和表示非常复杂的模式。另一方面,"大"也指的是训练数据的规模。大语言模型通常在大规模的文本数据上进行训练,这种数据可以来自互联网、书籍、新闻等各种来源。

General-purpose(通用):这个词描述的是模型的应用范围。通用语言模型在训练时使用了来自各种领域的数据,因此它们能够处理各种类型的任务,不仅限于某一个特定的任务或领域。这使得这些模型在处理新的、未见过的任务时具有很强的泛化能力。

Pre-trained and fine-tuned(预训练和微调):这是描述模型训练过程的关键词。在预训练阶段,模型在大规模的通用文本数据上进行训练,学习语言的基本结构和各种常识。然后,在微调阶段,模型在更小、更特定的数据集上进行进一步的训练。这个数据集通常是针对某个特定任务或领域的,例如医学文本、法律文本,或者是特定的对话数据。微调可以让模型更好地理解和生成这个特定领域的语言,从而更好地完成特定的任务。

大语言模型的好处

image.png
单一模型可用于不同任务:由于大语言模型是通用的,并且具有强大的泛化能力,所以它们可以处理各种类型的任务,比如文本分类、命名实体识别、情感分析、问答系统、文本生成等。这意味着我们可以使用同一个预训练的模型来处理不同的任务,只需要进行相应的微调就可以。这大大减少了开发和维护不同模型的复杂性和成本。

微调过程只需要最小的数据:尽管大语言模型在预训练阶段需要大量的通用文本数据,但在微调阶段,它们通常只需要相对较小的领域特定数据。这是因为模型在预训练阶段已经学习了大量的语言知识和常识,微调阶段主要是让模型适应特定的任务或领域。这使得大语言模型能够在数据稀缺的领域中也能表现出色。

随着更多的数据和参数,性能持续提升:大语言模型的性能通常随着训练数据的增加和模型参数的增加而提升。这意味着,通过训练更大的模型,并使用更多的数据,我们可以获得更好的性能。这是因为更大的模型有更多的参数,能够学习和表示更复杂的模式;同时,更多的数据能够提供更丰富的信息,帮助模型更好地理解语言。

Pathways 语言模型 (PaLM)

image.png

image.png
拥有5400亿参数:这是一个庞大的模型,参数数量远超过 GPT-3 的参数数量。这些参数使得 PaLM 能够更好地理解和生成语言。

利用新的 Pathway 系统:PaLM是首个大规模使用 Pathways 系统的模型。Pathways 系统使得 PaLM 能够将训练扩展到 6144 个芯片,这是迄今为止用于训练的最大的基于TPU的系统配置。与之前的大型语言模型相比,这是一个显著的规模提升。

为加速器编排分布式计算:Pathways 系统能够高效地管理分布式计算,使得 PaLM 能够在多个 TPU v4 Pods上进行训练。这个系统的设计使得 PaLM能 够在硬件 FLOPs 利用率上达到 57.8%,这是迄今为止在此规模的大型语言模型中所达到的最高利用率。

Transformer 模型

image.png
Transformer 模型是一种在自然语言处理(NLP)领域中广泛使用的深度学习模型,它最初在 “Attention is All You Need” 这篇论文中被介绍。Transformer 模型的主要特点是使用了自注意力(self-attention)机制,这种机制允许模型在处理序列数据时考虑到序列中所有元素的上下文关系。
Transformer 模型主要由两个部分组成:编码器(Encoder)和解码器(Decoder)。

  1. 编码器(Encoder):编码器由多个相同的层组成,每一层都有两个子层。第一个子层是自注意力层,它可以考虑到输入序列中所有元素的上下文关系。第二个子层是一个前馈神经网络(Feed Forward Neural Network)。每个子层后面都跟有一个残差连接和层归一化。编码器的任务是将输入序列转换为一组连续的表示,这些表示考虑了输入序列中每个元素的上下文。
  2. 解码器(Decoder):解码器也由多个相同的层组成,每一层有三个子层。第一个子层是自注意力层,但它在处理当前元素时,只考虑到该元素及其之前的元素,不考虑其后的元素,这种机制被称为掩码自注意力。第二个子层是一个编码器-解码器注意力层,它使解码器可以关注到编码器的输出。第三个子层是一个前馈神经网络。每个子层后面都跟有一个残差连接和层归一化。解码器的任务是基于编码器的输出和前面已经生成的元素,生成下一个元素。

image.png
传统语言开发中,需要对 Cat 的规则进行硬编码。

image.png

2012年前的神经网络,我们可以将是否为猫的数据喂给模型,然后给出一张图片让它判断图片中是否是一只猫。
image.png
通过生成式语言模型,如 LaMDA、PaLM、GPT 等,它们可以阅读大量的资料,和海量的关于猫相关的知识。我们就可以对它提问,猫是什么?它可以回答出它知道的关于猫的所有特征。

大语言模型开发 VS 传统机器学习开发

image.png
使用预训练的大型语言模型(LLM)进行开发和传统的机器学习开发存在很多不同之处。

使用预训练的大型语言模型(LLM)开发

  1. 不需要机器学习专业知识:因为大型语言模型已经预训练完成,开发者无需对机器学习的专业知识有深入理解,只需要知道如何调用模型API,即可使用模型生成相应的语言输出。
  2. 不需要训练样本:在许多情况下,只需要向模型提供合适的提示(prompt),模型就能生成相应的输出,而无需大量的训练样本。
  3. 不需要训练模型:模型已经在大规模数据集上进行了预训练,开发者无需再次训练模型。
  4. 主要关注提示词设计:开发者的主要工作变为设计有效的提示词,使模型能够理解并生成合适的输出。

传统的机器学习开发

  1. 需要机器学习专业知识:开发者需要理解不同的机器学习算法,知道如何选择合适的算法,如何设置参数,以及如何解决可能出现的问题。
  2. 需要训练样本:开发者需要收集和准备大量的训练样本,以便训练模型。
  3. 需要训练模型:开发者需要使用训练样本来训练模型,这通常需要消耗大量的时间和计算资源。
  4. 需要计算时间和硬件资源:传统的机器学习模型训练通常需要大量的计算时间和硬件资源。
  5. 主要关注最小化损失函数:开发者需要设计和优化损失函数,以便模型在训练过程中尽可能地减小损失,提高模型的性能。

简单来说,使用预训练的大型语言模型(LLM)开发的主要优势在于简化了开发过程,降低了开发的难度和门槛,而传统的机器学习开发则需要更多的专业知识和资源投入。

2.2 大语言模型的用例

问题系统

image.png
大语言模型的典型应用场景是问答系统。

image.png
问答(QA)是自然语言处理的一个子领域,它处理的任务是自动回答以自然语言提出的问题。
问答模型能够从给定的文本中检索出问题的答案。这在从文档中搜索答案时非常有用。根据所使用的模型不同,问答系统可以直接从文本中提取答案,也可以生成新的文本作为答案。

image.png

在自然语言处理中的问答任务,往往需要一定的领域知识。这是因为,要理解和回答特定领域的问题,模型需要有相关的背景知识。例如,如果要回答医学相关的问题,模型需要知道医学术语和基本的医学知识。如果要回答法律相关的问题,模型需要知道法律术语和基本的法律原理。
这种领域知识通常通过训练数据来提供。训练数据中的文本会包含大量的领域知识,模型通过学习这些文本,可以获取到这些知识。然而,这种方式获取的知识可能会有限,因为它只能获取到训练数据中包含的知识。因此,对于一些复杂的领域问题,可能需要专门的领域知识库或者专门训练的领域模型来提供更准确的答案。

image.png
生成式 QA,可以直接根据上下文生成自由文本。利用的是文本生成模型,不需要领域知识。
生成式问答是一种自然语言处理中的问答技术,其特点是直接根据上下文生成自由文本作为答案,而不是从原文中提取答案。这种技术通常利用的是文本生成模型,例如Transformer等。
生成式问答“不需要领域知识”。这可能是指在一般情况下,生成式问答模型可以通过训练数据学习到一般的语言知识,而不需要特定领域的知识。然而,这并不意味着领域知识对生成式问答模型没有帮助。在处理特定领域的问题时,如果模型具有相关的领域知识,往往能够生成更准确、更具深度的答案。

2.3 提示词调优

Bard 问答示例

image.png

下面是三个对 谷歌的 Bard 提问的示例。
image.png

image.png

image.png

提示词设计

image.png
提示词设计是创建能引导语言模型产生期望响应的提示的过程。

在使用语言模型,尤其是生成式语言模型时,如何设计输入的提示词(Prompt)是非常重要的。因为模型的输出(即生成的文本)将根据输入的提示进行生成。好的提示可以引导模型生成有用、准确的文本,而差的提示可能导致模型的输出偏离期望,或者产生含糊不清、语义不明确的结果。
提示设计的过程可能包括考虑提示的语法结构、使用的词汇、上下文信息等因素,以尽可能地引导模型生成期望的响应。

提示词设计和提示词工程

image.png

**提示词设计(Prompt Design)**指的是传递给语言模型的指令或信息,它们告诉模型要做什么。提示通常包括一些上下文信息和具体的任务指示。
**提示词工程(Prompt Engineering)**是一种实践,它涉及到开发和优化这些提示,以便更有效地使用语言模型。这可能包括测试不同的提示格式、考虑不同的上下文信息,以及使用一些技术手段(如微调等)来改进模型对提示的理解和响应。在许多情况下,通过精心设计和优化的提示,可以显著提高模型的性能,使其更好地适应各种任务和应用场景。

三种主要的大语言模型

image.png
主要有三种类型的大语言模型,每种都需要以不同的方式进行提示。前两者容易被混淆,但给出的输出非常不同。
image.png

1、通用(或原始)语言模型:这些模型根据训练数据中的语言预测下一个词(技术上说,是预测下一个词元)。这种模型通常使用大量的未标记文本进行训练,学习语言的统计规律,但没有特定的任务指向。

image.png
2、指令调整模型:这些模型经过训练,以预测对输入中给出的指令的响应。这种模型在通用语言模型的基础上,通过对特定任务数据的训练,使其能够对给定的指令做出适当的响应。这类模型可以理解和执行特定的语言任务,如问答、文本分类、总结、写作、关键词提取等。

image.png

3、对话调整模型:这些模型经过训练,以通过预测下一个响应进行对话。这种模型在通用语言模型的基础上,通过对对话数据的训练,使其能够进行对话。这类模型可以理解和生成对话,例如生成聊天机器人的回答。

链式思考推理

image.png

当模型在给出答案之前首先输出解释答案原因的文本时,它们更有可能得到正确的答案。这被称为"链式思维推理"。也就是说,模型在进行推理时,不仅仅直接给出答案,而是先阐述出达到答案的推理过程或原因,这样可以提高答案的准确性。

第 1 次对话:模型直接得出正确答案的可能性较小。

Q: Roger 有 5 个网球。他买了 2 罐网球。每罐有 3 个网球。他现在有多少个网球?
A:

第 2 次对话:现在,输出更有可能以正确的答案结束。

Q: Roger 有5个网球。他买了2罐网球。每罐有3个网球。他现在有多少个网球?我们逐步思考一下这个问题(Let’s think this through step by step)。
A: Roger最初有5个球。2 罐每罐有 3 个网球,总共是6个网球。5 + 6=11。答案是 11。

image.png

一个通用模型在实际应用中有其局限性。针对特定任务的调优可以使大型语言模型(LLMs)变得更可靠。
一个通用的模型在实际应用中有其局限性”,意味着尽管 LLMs 被训练为理解和生成自然语言,并能够处理广泛的任务,但在实际应用中,它们仍然有限制。例如,它们可能在理解复杂或专业领域的内容方面表现不佳,或者在没有足够相关训练数据的情况下,其预测可能偏离实际。

针对特定任务的调优可以使大型语言模型(LLMs)变得更可靠”,是在指出通过特定任务的微调,可以改进LLMs 的表现。这种微调通常涉及在特定任务的数据上进一步训练模型,使其更好地适应该任务。例如,如果我们有一个在广泛语料库上预训练的 LLM,我们可以在法律文档上对其进行微调,以提高其在法律问题解答任务上的表现。这种任务特定的调优可以使模型在特定应用上更加可靠和准确。

image.png
Model Garden 是 Google 的一个开源项目,旨在为研究者和开发者提供预训练的机器学习模型和相关的训练和优化技术。这些模型覆盖了许多不同的机器学习任务,例如图像分类、物体检测和自然语言处理等。

Model Garden 中的模型分为两大类:语言模型和视觉模型。

  1. 语言模型:这类模型可以进行一些特定的语言处理任务,如:
    • 提取(Extraction):这类任务包括语法分析(Syntax Analysis),它可以理解文本的语法结构。
    • 分类(Classification):这类任务包括实体分析(Entity Analysis,识别文本中的特定实体,如人名、地名等)、内容分类(Content Classification,根据内容的主题进行分类)、情感分析(Sentiment Analysis,评估文本的情感倾向,如积极、消极等)、实体情感分析(Entity Sentiment Analysis,评估特定实体在文本中的情感倾向)。
  2. 视觉模型:这类模型可以进行一些特定的视觉任务,如:
    • 分类(Classification):这类任务包括对象检测(Object Detector,识别图片中的特定对象)。
    • 检测(Detection):这类任务包括人流量分析(Occupancy Analytics,分析特定区域内的人流量)、人/车辆检测(Person/Vehicle Detector,识别图片中的人或车辆)、个人防护设备检测(PPE Detector,识别图片中是否有人穿戴个人防护设备)、人物模糊(Person Blur,将图片中的人物进行模糊处理)。

这些模型都是为特定的任务进行训练和优化的,可以用来解决一些具体的实际问题。

image.png
"调优(Tuning)"是一种通过在新数据上训练模型来使模型适应新领域或一组定制用例的过程。例如,我们可能会收集训练数据并专门为法律或医学领域"调优"大型语言模型(LLM)。

image.png
微调 (Fine tuning)" 是一种训练方法,你可以带来自己的数据集,并通过调整 LLM 中的每个权重来重新训练模型。这需要一个大型的训练任务(真的很大),并且你需要托管你自己微调过的模型。具体来说,微调过程中,你会在你的特定任务数据上继续训练预训练的大型语言模型,使模型的所有参数更适应你的任务。这种方法通常需要大量的计算资源,因为你需要在整个模型上进行训练,这也是为什么这段话中提到的"训练任务很大”。

image.png
上图,展示了人工智能(AI)在医疗健康领域微调模型的过程。

  1. “Healthcare data (Millions of EHRs)”:这是模型训练的第一步,需要大量的医疗健康数据。EHRs 是电子健康记录(Electronic Health Records)的缩写,这里指的是数百万份的电子健康记录数据。
  2. “Reusable Components (Medical Foundation Model)”:在拥有大量的医疗健康数据后,接下来的步骤是使用这些数据来训练一个基础模型,这个模型被称为 “Medical Foundation Model”。这个模型可以被看作是一个可复用的组件,因为它可以被用于多个不同的任务。
  3. “Task adoption (Question answering, Chart summarizing, Image analysis -> risk stratification, finding similar patients)”:这一步是对基础模型进行微调,使其适应特定的任务。这里列举的任务包括问题回答(Question answering)、图表总结(Chart summarizing)和图像分析/打标(Image analysis/ 打标)。这些任务的目标可能是风险分层(risk stratification)和寻找相似的患者(finding similar patients)。
  4. “Human-AI collaboration (Natural language interactions)”:这一步是实现人工智能与人类的协同工作。在这个过程中,人类可以通过自然语言交互(Natural language interactions)与 AI 进行沟通,这可以帮助人类更好地理解 AI 的分析结果,也可以帮助 AI 更好地理解人类的需求。

image.png
**微调 (Fine tuning) **通常很昂贵并且在许多情况下不现实。
那么, 有没有更高效的调整方法呢?
image.png
这里介绍两种更有效率的大型语言模型(LLM)调优方法:参数高效方法(Parameter-Efficient Methods,PETM)和提示调优(Prompt Tuning)。

  1. 参数高效方法(PETM):这是一种在不复制模型的情况下在自定义数据上调优LLM的方法。基础模型本身并未被改变。相反,会调优一小部分可添加的层,这些层可以在推理时刻加入和移出。这种方法的主要优势在于,它只需要修改模型的一小部分参数,因此在计算和存储需求上比全模型微调更为经济。
  2. 提示词调优:这是参数高效调优方法中最简单的一种。它的基本思想是优化模型生成的提示词,而不是改变模型的参数。通过精心设计的提示,可以引导模型生成特定的输出,而不需要昂贵的模型重新训练过程。这种方法的优点是,它在不需要大量计算资源的情况下,可以有效地利用大型语言模型。 举例来说,如果我们有一个预训练的语言模型,但是要应用于某特定领域(比如法律领域)的文档,我们可以在输入端添加一个“这是一篇法律文档”的提示,让模型学习对法律文档进行正确推理,而无需调整模型中的绝大部分参数。这就是 Prompt Tuning 的基本思想。

2.4 谷歌的 Gen AI 开发工具介绍

image.png

“Gen AI Studio” 平台,可以用来微调模型,将模型部署到生产环境,创建聊天机器人,生成图像,以及其他更多功能。

  1. 语言:在 “Gen AI Studio” 平台上,用户可以测试,微调,并部署生成型 AI 语言模型。例如,可以使用PaLM API(可能是一种基于 Pathways 语言模型的 API)进行内容生成、聊天、摘要生成等等。
  2. 视觉:在 “Gen AI Studio” 平台上,用户可以编写文本提示来生成新的图像,或者在已有的图像上生成新的区域。这可能是利用一种文本到图像的生成模型,通过用户提供的文本提示,模型可以生成与文本内容相关的图像。

总的来说,"Gen AI Studio"是一个集成了多种AI模型和功能的平台,可以方便用户进行AI模型的微调,部署,以及其他的应用。
image.png

Generative AI App Builder 可以用来创建基于生成式人工智能的应用,而且不需要编写任何代码。这个工具使得无需深入了解编程或人工智能的用户也能创建出使用生成式人工智能模型的应用。这些应用可能包括但不限于内容生成、图像生成、音频生成等各种基于生成式人工智能模型的应用。

image.png
PaLM API 和 MakerSuite 简化生成性开发周期。

  1. “PaLM API”:这是一个简单的入口,让开发者能够使用Google的大型语言模型(LLMs)。它为开发者提供了访问已经为特定用例(如摘要、分类等)优化过的模型的途径。
  2. “MakerSuite”:这是一个入门级的工具,让开发者可以开始原型设计和构建生成性AI应用。它允许开发者迭代优化提示(prompts),用合成数据扩充数据集,并调整定制模型。

"PaLM API"是为开发者提供方便访问和使用大型语言模型的接口,而"MakerSuite"则是一种便于开发者开始设计和构建生成性AI应用的工具,它提供了在构建应用的过程中可能需要的一系列功能,如迭代优化提示、数据集扩充、模型调优等。
image.png


创作不易,如果本文对你有帮助,欢迎点赞、收藏加关注,你的支持和鼓励,是我创作的最大动力。
在这里插入图片描述

欢迎加入我的知识星球,知识星球ID:15165241 一起交流学习。
https://t.zsxq.com/Z3bAiea 申请时标注来自CSDN。

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

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

相关文章

网络安全分组混战靶机攻击与加固——BPlinux系列

网络安全分组混战靶机攻击与加固——BPlinux系列 目录 一、渗透过程 二、加固过程 三、中职网络安全竞赛知识星球 一、渗透过程 #这是一个以前混战阶段用的靶机然后C模块也会用 1、我们先使用nmap --scriptvuln(这是nmap自带的脚本,可以扫描可利用的漏洞&…

计算机网络|第四章:网络层:数据平面

前文回顾:第三章:传输层 运输层依赖于网络层的主机到主机的通信服务,提供各种形式的进程到进程的通信。网络层与传输层和应用层不同的是,在网络中的每一台主机和路由器中都有一个网络层部分。正因如此,网络层协议是协议…

metaRTC+ZLMediaKit实现webrtc的推拉流

概述 ZLMediaKit是一个基于C11的高性能运营级流媒体服务框架,是一个支持webrtc SFU的优秀的流媒体服务器系统。 metaRTC新版本支持whip/whep协议,支持whip/whep协议的ZLMediaKit推拉流。 信令通信 ZLMediaKit新版本支持whip和whep协议,支…

065:cesium设置带有箭头的线材质(material-9)

第065个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置带有箭头的线材质,请参考源代码,了解PolylineArrowMaterialProperty的应用。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共82行)相关API参考…

Microsoft Office 2010安装

哈喽,大家好。今天一起学习的是office2010的安装,有兴趣的小伙伴也可以来一起试试手。 一、测试演示参数 演示操作系统:Windows 7 不建议win10及以上操作系统使用 系统类型:64位 演示版本:SW_DVD5_Office_Profession…

Ceres简介及示例(9)On Derivatives(Numeric derivatives)

使用analytic derivatives的另一个极端是使用numeric derivatives。关键是,对函数f(x)关于x的求导过程可以写成极限形式: Forward Differences前向差分 当然,在计算机中,我们不能执行数值求极限操作,所以我们要做的是&#xff0…

squid的基本代理

一、Squid代理服务器的概述 squid 作为一款服务器代理工具,可以缓存网页对象,减少重复请求,从而达到加快网页访问速度,隐藏客户机真实IP,更为安全。 Squid主要提供缓存加速、应用层过滤控制的功能 1、squid代理的工…

攻击者使用“Geacon”Cobalt Strike工具瞄准macOS

威胁行为者现在正在部署一种名为 Geacon 的 Cobalt Strike 的 Go 语言实现,它于四年前首次出现在 GitHub 上。 他们正在使用红队和攻击模拟工具来针对 macOS 系统,其方式与过去几年在 Windows 平台上使用 Cobalt Strike 进行后开发活动的方式大致相同。…

Rust每日一练(Leetday0007) 删除结点、有效括号、合并链表

目录 19. 删除链表的倒数第 N 个结点 Remove-nth-node-from-end-of-list 🌟🌟 20. 有效的括号 Valid Parentheses 🌟 21. 合并两个有序链表 Mmerge-two-sorted-lists 🌟 🌟 每日一练刷题专栏 🌟 Ru…

web搭建服务器端+创建web后端项目详细步骤

一、搭建服务器端 Web服务器:用于响应来自Web客户端(如浏览器、移动应用程序等)的请求并提供Web页面和其他Web资源的软件程序或计算机系统。它允许用户在Web浏览器中输入网址,通过HTTP协议向服务器发送请求,并收到Web页…

用原生JS实现虚拟列表(IT枫斗者)

用原生JS实现虚拟列表 介绍 最近在开发需求的时候,有用到 Antd 的虚拟列表组件 rc-virtual-list ,粗略地看了一下源码,于是萌生了自己写一个虚拟列表的想法。当一个列表需要渲染大量数据的时候是非常耗时的,而且在列表滚动的过程…

Golang每日一练(leetDay0073) 实现前缀树、最短子数组

目录 208. 实现 Trie (前缀树) Implement-trie-prefix-tree 🌟🌟 209. 长度最小的子数组 Minimum-size-subarray-sum 🌟🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 Python每…

多线程的三种创建方式及各自的优缺点分析

第一种方式:继承Thread类,覆写run()方法 1、创建一个MyThread类,继承Thread类; 2、覆写run()方法,在run()方法内编写任务代码; 3、创建MyThread类,需要注意的是,如果想要给线程命名…

传染病学模型 | Matlab实现SI传染病学模型 (SI Epidemic Model)

文章目录 效果一览基本描述模型介绍程序设计参考资料效果一览 基本描述 传染病学模型 | Matlab实现SI传染病学模型 (SI Epidemic Model) 模型介绍 SI传染病模型是一种基于微分方程的流行病学模型,用于模拟传染病在人群中的传播过程。SI模型中,人群被划分为易感者(S)和感染者…

来 Azure 学习 OpenAI 四 - 用 Embedding 赋能 GPT

大家好,我是学生大使 Jambo。在我们前一篇文章中,我们介绍了 OpenAI 模型的调用。今天,我将为大家介绍 Embedding 的使用。 嵌入是什么 嵌入(Embedding )是一种将高维数据映射到低维空间的方法。嵌入可以将高维数据可…

第一章 初识Python

1.1 课前必读 课程大纲 1.2 Python介绍 Python特点: 主流语言;用途广泛,号称万能语言;上手简单; Python用途: 数据挖掘(爬虫)和数据分析自动化脚本编写(软件测试人员使用…

尚硅谷周阳老师 SpringCloud第二季学习笔记

前言:首先感谢尚硅谷周阳老师的讲解,让我对springcloud有了很好的理解,周阳老师的讲课风格真的很喜欢,内容充实也很幽默,随口一说就是一个段子,我也算是周阳老师的忠实粉丝啦。 先说说课程总体内容 以下是…

[学习笔记] [机器学习] 6. [上]决策树算法(熵Entropy、信息增益(率)、基尼值(指数)、CART剪枝、特征工程特征提取、回归决策树)

视频链接数据集下载地址:无需下载 学习目标: 掌握决策树实现过程知道信息熵的公式以及作用知道信息增益、信息增益率和基尼指数的作用知道id3、c4.5、cart算法的区别了解cart剪枝的作用知道特征提取的作用应用DecisionTreeClassifier实现决策树分类 1…

开放原子训练营(第三季)inBuilder低代码开发实验室,低代码到底该长什么样

目录 前言: 一、什么是inBuilder低代码开发实验室 二、技术特征 2.1开放性 2.2开发语言无关性 2.3云原生 2.4模型工程化 2.5全栈模型刻画 2.6运行态定制 2.7仓库介绍 三、快速入门 四、实操案例 4.1定义数据源 4.2 设计页面 4.3发布调试 五、总结 前言&#xf…

Activiti实战——Springboot整合Activiti

目录 一、Activiti数据库表名说明 二、Spring boot整合activiti 1. 创建springboot项目 2. 引入activiti依赖及项目依赖 3. 配置数据源 (1)创建数据源配置文件 (2)配置文件 4. 配置Acitviti引擎 5. 启动项目 三、Activiti…