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

GPT和BERT

 笔记来源:

Transformer、GPT、BERT,预训练语言模型的前世今生(目录) - B站-水论文的程序猿 - 博客园

ShusenWang的个人空间-ShusenWang个人主页-哔哩哔哩视频(RNN模型与NLP应用)

一、GPT

1.1 GPT 模型的预训练

在讲解 ELMo 的时候,我们说到 ELMo 这一类预训练的方法被称为 “Feature-based Pre-Training”。并且如果把 ELMo 这种预训练方法和图像领域的预训练方法对比,发现两者模式看上去还是有很大差异的。

除了以 ELMo 为代表的这种基于特征融合的预训练方法外,NLP 里还有一种典型做法,这种做法和图像领域的方式就是看上去一致的了,一般将这种方法称为 “基于Fine-tuning的模式”,而 GPT 就是这一模式的典型开创者,下面先让我们看看 GPT 的网络结构。

GPT 是 “Generative Pre-Training” 的简称,从名字看其含义是指的生成式的预训练。

GPT也采用两阶段过程:

  1. 第一个阶段:利用语言模型进行预训练;
  2. 第二个阶段:通过 Fine-tuning 的模式解决下游任务。

上图展示了 GPT 的预训练过程,其实和 ELMo 是类似的,主要不同在于两点:

  1. 首先,特征抽取器用的不是 RNN,而是用的 Transformer,它的特征抽取能力要强于RNN;
  2. 其次,GPT 的预训练虽然仍然是以语言模型作为目标任务,但是采用的是单向的语言模型,所谓 “单向” 的含义是指:语言模型训练的任务目标是根据 𝑤𝑖 单词的上下文去正确预测单词 𝑤𝑖 , 𝑤𝑖 之前的单词序列Context-before称为上文,之后的单词序列Context-after称为下文;ELMo 在做语言模型预训练的时候,预测单词 𝑤𝑖 同时使用了上文和下文,而 GPT 则只采用 Context-before 这个单词的上文来进行预测,而抛开了下文。

1.2 GPT 模型的 Fine-tuning

上面讲的是 GPT 如何进行第一阶段的预训练,那么假设预训练好了网络模型,后面下游任务怎么用?它有自己的个性,和 ELMO 的方式大有不同。

上图展示了 GPT 在第二阶段如何使用:

  1. 首先,把要解决的下游任务的网络结构改造成和 GPT 一样的网络结构;

  2. 然后,在做下游任务的时候,利用第一步预训练好的参数初始化 GPT 的网络结构;

  3. 再次,用这个任务的数据去训练这个网络,对网络参数进行 Fine-tuning,使得这个网络更适合解决这个任务的问题。

二、BERT

BERT 模型可以作为公认的里程碑式的模型,是近年来优秀预训练语言模型的集大成者:参考了 ELMO 模型的双向编码思想、借鉴了 GPT 用 Transformer 作为特征提取器的思路、采用了 word2vec 所使用的 CBOW 方法。

2.1 BERT 的结构:强大的特征提取能力

从上图可以发现,BERT 的模型结构其实就是 Transformer Encoder 模块的堆叠。

如下图所示,我们来看看 ELMo、GPT 和 BERT 三者的区别:

  • ELMo 使用自左向右编码和自右向左编码的两个 LSTM 网络,分别以 𝑃(𝑤𝑖|𝑤1,⋯,𝑤𝑖−1) 和 𝑃(𝑤𝑖|𝑤𝑖+1,⋯,𝑤𝑛) 为目标函数独立训练,将训练得到的特征向量以拼接的形式实现双向编码,本质上还是单向编码,只不过是两个方向上的单向编码的拼接而成的双向编码
  • GPT 使用 Transformer Decoder 作为 Transformer Block,以 𝑃(𝑤𝑖|𝑤1,⋯,𝑤𝑖−1) 为目标函数进行训练,用 Transformer Block 取代 LSTM 作为特征提取器,实现了单向编码,是一个标准的预训练语言模型,即使用 Fine-Tuning 模式解决下游任务。
  • BERT 也是一个标准的预训练语言模型,它以 𝑃(𝑤𝑖|𝑤1,⋯,𝑤𝑖−1,𝑤𝑖+1,⋯,𝑤𝑛) 为目标函数进行训练,BERT 使用的编码器属于双向编码器
    • BERT 和 ELMo 的区别在于使用 Transformer Block 作为特征提取器,加强了语义特征提取的能力;
    • BERT 和 GPT 的区别在于使用 Transformer Encoder 作为 Transformer Block,并且将 GPT 的单向编码改成双向编码,也就是说 BERT 舍弃了文本生成能力,换来了更强的语义理解能力。

2.2 BERT 之无监督训练

和 GPT 一样,BERT 也采用二段式训练方法:

  1. 第一阶段:使用易获取的大规模无标签余料,来训练基础语言模型;
  2. 第二阶段:根据指定任务的少量带标签训练数据进行微调训练。

BERT 用语言掩码模型(MLM)方法训练词的语义理解能力;用下句预测(NSP)方法训练句子之间的理解能力,从而更好地支持下游任务。

2.2.1 MLM

MLM 方法也就是随机去掉句子中的部分 token(单词),然后模型来预测被去掉的 token 是什么。随机去掉的 token 被称作掩码词,在训练中,掩码词将以 15% 的概率被替换成 [MASK],也就是说随机 mask 语料中 15% 的 token,这个操作则称为掩码操作。

但是这样设计 MLM 的训练方法会引入弊端:在模型微调训练阶段或模型推理(测试)阶段,输入的文本中将没有 [MASK],进而导致产生由训练和预测数据偏差导致的性能损失。

考虑到上述的弊端,BERT 并没有总用 [MASK] 替换掩码词,而是按照一定比例选取替换词。在选择 15% 的词作为掩码词后这些掩码词有三类替换选项:

2.2.2 NSP

NSP 的具体做法是,BERT 输入的语句将由两个句子构成,其中,50% 的概率将语义连贯的两个连续句子作为训练文本(连续句对一般选自篇章级别的语料,以此确保前后语句的语义强相关),另外 50% 的概率将完全随机抽取两个句子作为训练文本。

其中 [SEP] 标签表示分隔符。 [CLS] 表示标签用于类别预测,结果为 1,表示输入为连续句对;结果为 0,表示输入为随机句对。

通过训练 [CLS] 编码后的输出标签,BERT 可以学会捕捉两个输入句对的文本语义,在连续句对的预测任务中,BERT 的正确率可以达到 97%-98%。

2.3 BERT 下游任务改造

BERT 根据自然语言处理下游任务的输入和输出的形式,将微调训练支持的任务分为四类,分别是句对分类、单句分类、文本问答和单句标注,接下来我们将简要的介绍下 BERT 如何通过微调训练适应这四类任务的要求。

2.3.1 句对分类

给定两个句子,判断它们的关系,称为句对分类,例如判断句对是否相似、判断后者是否为前者的答案。针对句对分类任务,BERT 在预训练过程中就使用了 NSP 训练方法获得了直接捕获句对语义关系的能力。

如下图所示,句对用 [SEP] 分隔符拼接成文本序列,在句首加入标签 [CLS],将句首标签所对应的输出值作为分类标签,计算预测分类标签与真实分类标签的交叉熵,将其作为优化目标,在任务数据上进行微调训练。

针对二分类任务,BERT 不需要对输入数据和输出数据的结构做任何改动,直接使用与 NSP 训练方法一样的输入和输出结构就行。针对多分类任务,需要在句首标签 [CLS] 的输出特征向量后接一个全连接层和 Softmax 层,保证输出维数与类别数目一致,最后通过 arg max 操作(取最大值时对应的索引序号)得到相对应的类别结果。

2.3.2 单句分类

给定一个句子,判断该句子的类别,统称为单句分类,例如判断情感类别、判断是否为语义连贯的句子。针对单句二分类任务,也无须对 BERT 的输入数据和输出数据的结构做任何改动。

如下图所示,单句分类在句首加入标签 [CLS],将句首标签所对应的输出值作为分类标签,计算预测分类标签与真实分类标签的交叉熵,将其作为优化目标,在任务数据上进行微调训练。

同样,针对多分类任务,需要在句首标签 [CLS] 的输出特征向量后接一个全连接层和 Softmax 层,保证输出维数与类别数目一致,最后通过 argmax 操作得到相对应的类别结果。

2.3.3 文本问答

给定一个问句和一个蕴含答案的句子,找出答案在后这种的位置,称为文本问答,例如给定一个问题(句子 A),在给定的段落(句子 B)中标注答案的其实位置和终止位置。

文本问答任何和前面讲的其他任务有较大的差别,无论是在优化目标上,还是在输入数据和输出数据的形式上,都需要做一些特殊的处理。为了标注答案的起始位置和终止位置,BERT 引入两个辅助向量 s(start,判断答案的起始位置) 和 e(end,判断答案的终止位置)。

如下图所示,BERT 判断句子 B 中答案位置的做法是,将句子 B 中的每一个次得到的最终特征向量 𝑇𝑖′ 经过全连接层(利用全连接层将词的抽象语义特征转化为任务指向的特征)后,分别与向量 s 和 e 求内积,对所有内积分别进行 softmax 操作,即可得到词 Tok m(𝑚∈[1,𝑀])作为答案起始位置和终止位置的概率。最后,取概率最大的片段作为最终的答案

文本回答任务的微调训练使用了两个技巧:

  1. 用全连接层把 BERT 提取后的深层特征向量转化为用于判断答案位置的特征向量
  2. 引入辅助向量 s 和 e 作为答案起始位置和终止位置的基准向量,明确优化目标的方向和度量方法

2.3.4 单句标注

给定一个句子,标注每个次的标签,称为单句标注。例如给定一个句子,标注句子中的人名、地名和机构名。单句标注任务和 BERT 预训练任务具有较大差异,但与文本问答任务较为相似。

如下图所示,在进行单句标注任务时,需要在每个词的最终语义特征向量之后添加全连接层,将语义特征转化为序列标注任务所需的特征,单句标注任务需要对每个词都做标注,因此不需要引入辅助向量,直接对经过全连接层后的结果做 Softmax 操作,即可得到各类标签的概率分布。

由于 BERT 需要对输入文本进行分词操作,独立词将会被分成若干子词,因此 BERT 预测的结果将会是 5 类(细分为 13 小类):

  • O(非人名地名机构名,O 表示 Other)
  • B-PER/LOC/ORG(人名/地名/机构名初始单词,B 表示 Begin)
  • I-PER/LOC/ORG(人名/地名/机构名中间单词,I 表示 Intermediate)
  • E-PER/LOC/ORG(人名/地名/机构名终止单词,E 表示 End)
  • S-PER/LOC/ORG(人名/地名/机构名独立单词,S 表示 Single)

将 5 大类的首字母结合,可得 IOBES,这是序列标注最常用的标注方法。

三、总结

到这里,各种模型基本上都了解了,应该还需要多实践才能真正深入理解并有所创新,继续加油!

相关文章:

GPT和BERT

笔记来源: Transformer、GPT、BERT,预训练语言模型的前世今生(目录) - B站-水论文的程序猿 - 博客园 ShusenWang的个人空间-ShusenWang个人主页-哔哩哔哩视频(RNN模型与NLP应用) 一、GPT 1.1 GPT 模型的…...

【工业安全】-CVE-2024-30891- Tenda AC18路由器 命令注入漏洞

1.漏洞描述 2.漏洞复现 2.1 qemu-user 模拟: 2.2 qemu-system模拟: 3.漏洞分析 4.poc代码: 1.漏洞描述 漏洞编号:CVE-2024-30891 漏洞名称:Tenda AC18 命令注入 威胁等级:高危 漏洞详情:Ten…...

如何从0开始将vscode源码编译、运行、打包桌面APP

** 网上关于此的内容很少,今天第二次的完整运行了,按照下文的顺序走不会出什么问题。最重要的就是环境的安装,否则极其容易报错,请参考我的依赖版本以及文末附上的vscode官方指南 ** 第一步:克隆 VSCode 源码 首先…...

登录弹窗效果

1,要求 点击登录按钮,弹出登录窗口 提示1:登录窗口 display:none 隐藏状态; 提示2:登录按钮点击后,触发事件,修改 display:block 显示状态 提示3:登录窗口中点击关闭按钮&#xff0…...

wps或office的word接入豆包API(VBA版本)

直接上代码,由于时间匆忙,以后写个详细的教程 #If VBA7 ThenPrivate Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As…...

深入浅出 Python Logging:从基础到进阶日志管理

在 Python 开发过程中,日志(Logging)是不可或缺的调试和监控工具。合理的日志管理不仅能帮助开发者快速定位问题,还能提供丰富的数据支持,让应用更具可观测性。本文将带你全面了解 Python logging 模块,涵盖…...

系统巡检脚本分享:守护服务器的“健康卫士”

在日常的运维工作中,系统巡检是一项至关重要的任务。它可以帮助我们及时发现服务器的潜在问题,确保系统的稳定运行。今天,我想和大家分享一个实用的系统巡检脚本,它能够帮助我们快速、全面地检查服务器的健康状况。 一、为什么需…...

【Elasticsearch】运行时字段(Runtime Fields)索引时定义运行时字段

在 Elasticsearch 中,运行时字段(Runtime Fields)是一种在查询时动态计算的字段,而不是在索引时预先存储的字段。运行时字段为数据处理提供了极大的灵活性,尤其是在处理结构不固定的日志数据或需要动态生成字段值的场景…...

C++从入门到实战(四)C++引用与inline,nullptr

C从入门到实战(四)C引用与inline,nullptr 前言一、C 引用(一)什么是引用(二)引用的特点(三)引用作为函数参数(四)引用作为函数返回值(…...

DeepSeek 助力 Vue 开发:打造丝滑的卡片(Card)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...

Azure Synapse Dedicated SQL Pool统计指定表中各字段的空值、空字符串或零值比例

-- 创建临时表存储结果 CREATE TABLE #Results (DatabaseName NVARCHAR(128),TableName NVARCHAR(128),ColumnName NVARCHAR(128),DataType NVARCHAR(128),NullOrEmptyCount INT,TotalRows INT,Percentage DECIMAL(10,2) );DECLARE db_name SYSNAME DB_NAME(); -- 获取当前数…...

【深度学习】计算机视觉(CV)-目标检测-SSD(Single Shot MultiBox Detector)—— 单次检测多框检测器

🔹 SSD(Single Shot MultiBox Detector)—— 单次检测多框检测器 1️⃣ 什么是 SSD? SSD (Single Shot MultiBox Detector) 是一种用于 目标检测(Object Detection) 的 深度学习模型,由 Wei L…...

力扣100. 相同的树(利用分解思想解决)

Problem: 100. 相同的树 文章目录 题目描述思路Code 题目描述 思路 题目要求判断两个二叉树是否完全相同,而此要求可以利用问题分解的思想解决,即判断当前节点的左右子树是否完全相同,而在二叉树问题分解的一般题目中均会带有返回值&#xff…...

在SpringBoot服务器端采购上,如何选择操作系统、Cpu、内存和带宽、流量套餐

在Spring Boot服务器端采购时,选择操作系统、CPU、内存、带宽和流量套餐需根据应用需求、预算和性能要求综合考虑。以下是具体建议: 1. 操作系统 Linux发行版(如Ubuntu、CentOS):适合大多数Spring Boot应用&#xff…...

我的新书《青少年Python趣学编程(微课视频版)》出版了!

🎉 激动人心的时刻来临啦! 🎉 小伙伴们久等了,我的第一本新书 《青少年Python趣学编程(微课视频版)》 正式出版啦! 📚✨ 在这个AI时代,市面上的Python书籍常常过于枯燥&…...

elementUI rules 判断 el-cascader控件修改值未生效

今天修改一个前端项目,增加一个多选字段,使用的是el-cascader控件,因页面是通过引用子页面组件形式使用,出现一个点选后再勾选原有值,输入框内不展示或取消后的也未正常隐藏,如果勾选的值是全新的则其他已选…...

深度学习与人工智能:解锁未来的无限可能

在当今这个科技飞速发展的时代,深度学习和人工智能已不再只是科幻小说中的概念,它们正以惊人的速度渗透到我们生活的方方面面,从智能手机上的语音助手到医疗领域的疾病诊断,从自动驾驶汽车到金融市场的风险预测,其影响…...

pwa应用进阶2-动态加载manifest.json文件

接pwa应用进阶-区分AB面-添加安装按钮而且区分不同的系统和浏览器的各种情况继续优化,主要是让manifest.json文件动态加载。 pwa应用进阶2-动态加载manifest.json文件 主要用途如下: 动态切换PWA的清单文件,例如根据不同的语言或者主题加载不…...

UI用例调试_元素能定位到且不在frame内_无法点击/录入文本

关于单据新增,编辑子集信息遇到的2个阻塞点,做记录已供后续参考 1、新增按钮元素能定位,就是无法点击 实现效果: 单据新增时,前面单据数据编辑完之后,开始新增证件信息,需要先点击新增按钮。…...

Python的web框架Flask适合哪些具体的应用开发?

Flask 适用的具体应用及实现案例代码 Flask 是一个轻量级的 Web 应用框架,以其简洁性和灵活性而广受欢迎。以下是 Flask 适合的具体应用场景及相关的实现案例代码: 1. 小型网站或博客 由于 Flask 的简洁性和易于使用的特性,它非常适合用来搭建个人博客或者小型的企业网站…...

oracle使用动态sql将多层级组织展平

ERP或者其他企业管理软件中都会有一张组织机构表,可以写固定sql的方式将其展平获取组织表中的字段信息,如负责人、上级组织负责人、分管领导、成立时间等。但是这种方式有个缺陷,就是如果只写到处理4个层级,那么后期层级增多就无法…...

vue学习笔记10

ChatGPT & Copilot AI 的认知 两个工具 1、ChatGPT 3.5 2、Github Copilot ChatGPT 的基本使用 - Prompt 优化 AI 互动的过程中,容易出现的问题: 1、 AI未能理解问题的核心要点 2、 AI的回答过于宽泛 或 过于具体 3、 AI提供了错误的信息或…...

网络安全常识

随着互联网和移动互联网的持续火热,人们的生活也越来越离不开网络,网络安全,在这个信息化时代显得尤为重要,那么网络攻击和安全,这一攻守之间,主要涵盖哪些要点呢,下面我们就来对此进行抽丝剥茧…...

如何在 Visual Studio Code 中使用 DeepSeek R1 和 Cline?

让我们面对现实吧:像 GitHub Copilot 这样的 AI 编码助手非常棒,但它们的订阅费用可能会在你的钱包里烧一个洞。进入 DeepSeek R1 — 一个免费的开源语言模型,在推理和编码任务方面可与 GPT-4 和 Claude 3.5 相媲美。将它与 Cline 配对&#…...

从Sora到有言:3D视频生成技术的突破与应用

近年来,AIGC领域飞速发展,这个词也越来越高频地出现在了大家的生活中。AIGC 能完成的任务也越来越多,大模型的能力飞速增长 —— 从Deepseek生成文字,到StableDiffusion生成图像,再到Sora可以生成视频。 而现在&#x…...

算法18(力扣136)只出现一次的数字

1、问题 给你一个 非空 整数数组 nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。 2、示例 (1&…...

基于HTML5 Canvas 和 JavaScript 实现的烟花动画效果

以下是一个使用 HTML5 Canvas 和 JavaScript 实现的烟花动画效果代码盒子: <!DOCTYPE html> <html> <head><title>烟花效果...

网络变压器的主要电性参数与测试方法(1)

Hqst盈盛&#xff08;华强盛&#xff09;电子导读&#xff1a;网络变压器的主要电性参数与测试方法&#xff08;1&#xff09;.. 今天我们就一起先来看看网络变压器的2个主要电性参数与它的测试方法&#xff1a; 1. 开路电感&#xff08;OCL or Lx----Open Circuit Ind…...

Python + WhisperX:解锁语音识别的高效新姿势

大家好&#xff0c;我是烤鸭&#xff1a; 最近在尝试做视频的质量分析&#xff0c;打算利用asr针对声音判断是否有人声&#xff0c;以及识别出来的文本进行进一步操作。asr看了几个开源的&#xff0c;最终选择了openai的whisper&#xff0c;后来发现性能不行&#xff0c;又换了…...

Qt的isVisible ()函数介绍和判断窗口是否在当前界面显示

1、现象&#xff1a;当Qt的窗口最小化时&#xff0c;isVisible值一定是true&#xff0c;这是正常的。 解释&#xff1a;在Qt中&#xff0c;当你点击窗口的最小化按钮时&#xff0c;Qt内部不会自动调用 hide() 方或 setVisible(false) 来隐藏窗口。相反&#xff0c;它会改变窗口…...

Github 2025-02-12 C开源项目日报 Top7

根据Github Trendings的统计,今日(2025-02-12统计)共有7个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量C项目7Python项目2OpenSSL - 强大的开源加密工具包 创建周期:4012 天开发语言:C协议类型:Apache License 2.0Star数量:23449 个Fork数量:10…...

PostgreSQL 数据类型

PostgreSQL 数据类型 PostgreSQL 是一款功能强大的开源关系型数据库管理系统,它以其出色的性能、灵活的数据类型和强大的扩展性而闻名。在 PostgreSQL 中,数据类型是构建数据库表和执行各种操作的基础。本文将详细介绍 PostgreSQL 中常用的数据类型,并探讨它们的使用场景。…...

synchronized关键字

文章目录 synchronized 关键字介绍synchronized 的内存语义 synchronized 关键字介绍 synchronized 块是 Java 提供的一种原子性 内 置锁&#xff0c; Java 中的每个对象都可以把它当作一个 同步锁来使用 &#xff0c; 这些 Java 内置的使用者看不到的锁被称为内部锁 &#xf…...

MATLAB计算反映热需求和能源消耗的度数日指标(HDD+CDD)(全代码)

目录 度数日(Degree Days, DD)概述计算公式MATLAB计算代码调用函数1:计算单站点的 CDD参考度数日(Degree Days, DD)概述 度数日(Degree Days, DD)是用于衡量建筑、城市和地区的热需求和能源消耗模式的指标。它分为两部分: 加热度日(Heating Degree Days, HDD):当室…...

在Linux中Redis不支持lua脚本的处理方法

redis安装在IP为x.x.x.x的服务器上 redis安装 第一步&#xff0c;安装前&#xff0c;检测系统是否安装了redis。若安装了redis&#xff0c;则需要删除redis&#xff1b;若没有安装redis&#xff0c;则需要安装2.6版本以上的redis。 # 确保Redis版本支持Lua脚本。从Redis 2.6…...

第39周:猫狗识别 2(Tensorflow实战第九周)

目录 前言 一、前期工作 1.1 设置GPU 1.2 导入数据 输出 二、数据预处理 2.1 加载数据 2.2 再次检查数据 2.3 配置数据集 2.4 可视化数据 三、构建VGG-16网络 3.1 VGG-16网络介绍 3.2 搭建VGG-16模型 四、编译 五、训练模型 5.1 上次程序的主要Bug 5.2 修改版…...

SpringBoot自定义starter

首先创建Maven项目 引入依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId><version>3.4.2</version></dependency> </dependencies…...

JVM学习

JVM 1、JVM是一个跨语言的平台&#xff0c;与语言无关 2、java虚拟机规范&#xff1a;一流企业做标准&#xff0c;二流企业做品牌&#xff0c;三流企业做产品 JVM种类 Hotspot&#xff1a;Oracle 公司&#xff0c;有商业版和免费版 open jdk 内部包含免费版本hotspot虚拟机 Jr…...

RAG入门: RetroMAE、BGE、M3、MemoRAG

RAG实际上第一步都是先做Retrieval&#xff0c;关于Retrieval的思路有很多&#xff0c;持续更新&#xff1a; RetroMAE &#xff08;论文RetroMAE: Pre-Training Retrieval-oriented Language Models Via Masked Auto-Encoder&#xff09; RetraoMAE包括两个模块&#xff0c;…...

ruby 的安装

在51cto搜索的资料 ruby on rails的安装 http://developer.51cto.com/art/200906/129669.htm http://developer.51cto.com/art/200912/169391.htm http://developer.51cto.com/art/200908/147276.htm 史上最完整的ruby&#xff0c;rails环境架设配置&#xff08;Apachefast…...

MySQL的备份与还原

备份数据库 使用mysqldump工具是备份MySQL数据库的一种常用方法。mysqldump可以导出数据库的结构和数据到一个SQL文件中&#xff0c;这个文件稍后可以被用来重新创建数据库或恢复数据。以下是mysqldump命令的详细扩写&#xff1a; mysqldump -u <username> -p<passw…...

文心快码|AI重构开发新范式,从工具到人机协同

本系列视频来自百度前端架构师张立理&#xff0c;他在以“应用来了”为主题的2024百度世界大会上&#xff0c;进行了文心快码3.0能力演示&#xff0c;端到端能力展示。 以下视频是关于文心快码全栈编程智能体-AI重构开发新范式 文心快码AI重构开发新范式 百度前端架构师张立理认…...

Windows11+PyCharm利用MMSegmentation训练自己的数据集保姆级教程

系统版本&#xff1a;Windows 11 依赖环境&#xff1a;Anaconda3 运行软件&#xff1a;PyCharm 一.环境配置 通过Anaconda Prompt(anaconda)打开终端创建一个虚拟环境 conda create --name mmseg python3.93.激活虚拟环境 conda activate mmseg 4.安装pytorch和cuda tor…...

方法(构造方法、方法重载、可变参数)

方法&#xff08;Method&#xff09; 方法是组织好的、可以重复使用的代码块&#xff0c;用于实现单一或相关联的功能。方法有助于提高代码的模块化和可读性&#xff0c;并且通过减少代码冗余来促进代码的重用。 一个方法通常包含5中部分组成&#xff1a; 访问修饰符&#xf…...

ES节点配置的最佳实践

一个 Elasticsearch&#xff08;ES&#xff09;节点可以同时包含数据节点和主节点的角色。这种配置在某些场景下是可行的&#xff0c;尤其是在小型集群中。然而&#xff0c;在生产环境中&#xff0c;通常建议将主节点和数据节点的角色分离&#xff0c;以提高集群的稳定性和性能…...

langchain学习笔记之langserve服务部署

langchain学习笔记之langserve服务部署 引言 LangServe \text{LangServe} LangServe简单介绍安装过程示例应用调用模型接口实现交互使用 Requests \text{Requests} Requests方式进行交互 附&#xff1a; server.py \text{server.py} server.py完整代码 引言 本节将介绍 LangSe…...

Docker安装分布式vLLM

Docker安装分布式vLLM 1 介绍 vLLM是一个快速且易于使用的LLM推理和服务库&#xff0c;适合用于生产环境。单主机部署会遇到显存不足的问题&#xff0c;因此需要分布式部署。 分布式安装方法 https://docs.vllm.ai/en/latest/serving/distributed_serving.html2 安装方法 …...

Java SpringBoot的ProblemDetail实现全局异常统一处理让接口不在需要catch/ProblemDetail实现错误处理的标准化

在开发 Web 应用时&#xff0c;有效的错误处理和响应是提升用户体验和系统健壮性的关键。Spring Boot 3.2 引入了对 ProblemDetail 的更好支持&#xff0c;使得错误处理更加标准化和便捷。本文将通过实战演示&#xff0c;带你深入了解如何在 Spring Boot 3.2 中使用 ProblemDet…...

PHP 基础介绍

PHP 学习资料 PHP 学习资料 PHP 学习资料 PHP 是一种广泛使用的开源服务器端脚本语言&#xff0c;尤其适合 Web 开发&#xff0c;能轻松嵌入 HTML 中&#xff0c;生成动态网页内容。接下来&#xff0c;让我们一起了解 PHP 的基础内容。 一、PHP 的安装与配置 在开始编写 PH…...

CI/CD部署打包方法

项目目前部署方式&#xff1a; 各地区服务器打包同一个runner&#xff08;需要互相排队&#xff0c;不并发&#xff09;各地区客户端可以并发打包&#xff0c;同个地区客户端打多个包需要排队 部署方法 下载gitlab-runner&#xff1a; https://docs.gitlab.com/runner/insta…...