BloombergGPT—金融领域大模型

文章目录

  • 背景
  • BloombergGPT
    • 数据集
    • 金融领域数据集
    • 通用数据集
    • 分词
  • 模型
    • 模型结构
    • 模型相关参数
    • 训练配置
    • 训练过程
  • 模型评估
    • 评估任务分布
    • 模型对比
    • 金融领域评估
    • 通用领域评估

背景

GPT-3的发布证明了训练非常大的自回归语言模型(LLM)的强大优势。GPT-3有1750亿个参数,比以前的GPT-2模型增加了一百倍,并且在现在流行的一系列LLM任务中表现出色,包括阅读理解、开放式问答和代码生成。

在GPT-3之后,模型的规模逐渐增加到2800亿、5400亿和1万亿参数。工作还探讨了实现高性能LLM的其他重要方面,如不同的训练目标、优化多语言模型、寻找更高效和更小的模型,以及寻找数据和参数最优化的训练规模。

这些工作几乎完全集中在一般LLM(通用LLM)上,这种模型在涵盖广泛主题和领域的数据集上进行培训。虽然这些数据集包括一些专门领域的数据集(例如,代码或生物医学文章),但模型训练重点仍然是构建具有广泛能力的LLM。最近,仅使用特定领域数据训练模型的工作已经产生了一些成果,这些模型虽然小得多,但在这些领域内的任务上击败了通用LLM,例如科学和医学。这些发现推动了专注于特定领域的模型的进一步发展。

金融科技(FinTech)是一个庞大且不断发展的领域,NLP技术发挥着越来越重要的作用。金融NLP任务包括情绪分析、命名实体识别、新闻分类以及人机问答等。虽然任务范围与一般NLP基准中的任务范围相似,但金融领域的复杂性和特定术语需要适用于特定领域的系统。出于所有这些原因,将LLM专注于金融领域将是有价值的。

BloombergGPT

BloombergGPT来自于彭博社(Bloomberg)和约翰霍普金斯大学的Shijie Wu等人在2023年3月30日公开在arXiv的一篇文章:BloombergGPT: A Large Language Model for Finance,全文共76页。彭博社,是全球商业、金融信息和财经资讯的领先提供商,是一家资讯公司。

BloombergGPT是一个拥有500亿参数的语言模型,其训练主要是使用大规模的金融财务数据,即基于彭博社的广泛数据源构建了3630亿个标签的特有数据集(363 billion token dataset),这可能是迄今为止最大的特定领域数据集,并增加了3450亿个标签的通用数据集的数据,总数据量多达7000亿。

数据集

BloombergGPT采用将金融领域数据集和通用数据集混合构建的方式,使得模型兼具通用能力和特定领域任务的能力。
作者将数据集命名为FinPile,其中金融领域的数据是由一系列英文金融信息组成,包括新闻、文件、新闻稿、网络爬取的金融文件以及提取到的社交媒体消息。通用数据集包含如The Pile、C4和Wikipedia。FinPile的训练数据集中大约一半是特定领域的文本,一半是通用文本。为了提高数据质量,每个数据集都进行了去重处理。

金融领域数据集

金融领域数据集共包含了3630亿个token,占总数据集token量的54.2%,具体由以下几个部分构成:

金融领域相关网页,2980亿token,占比42.01%;
金融领域知名新闻源,380亿token,占比5.31%;
公司财报,140亿token,占比2.04%;
金融相关公司的出版物,90亿token,占比1.21%;
bloomberg,50亿token,占比0.7%。

因为包含一部分收费和私有数据,所以这份数据集不会被公开。

通用数据集

通用数据集共包含了3450亿个token,占总数据集token量的48.73%,具体分为如下几个部分:

  • The Pile数据集,1840亿token,占比25.9%;
  • C4数据集,1380亿token,占比19.48%;
  • Wikipedia数据集,240亿token,占比3.35%。

其中,The Pile 数据集是一个 825 GiB 多样化的开源语言建模数据集。其构成如下表,其中从Pile-CC是从Common Craw获取的网页数据,占比约18%,高质量数据占比越82%。
在这里插入图片描述
Common Crawl 是一个海量的、非结构化的、多语言的网页数据集。它包含了超过 8 年的网络爬虫数据集,包含原始网页数据(WARC)、元数据(WAT)和文本提取(WET),拥有PB级规模,可从 Amazon S3 上免费获取。下载地址:http://commoncrawl.org/the-data/get-started/

Colossal Clean crawl Corpus (C4)是一个用于训练大模型的常用数据集引入支持训练T5。虽然它和Pile-CC有重叠的部分,但C4的清洗和处理方式不同,因此具有很高的质量。

Wikipedia数据集:The Pile和C4都包含一些过时的维基百科的副本,所以包含最新维基百科页面的数据对模型的真实性可能是有好处的。因此,又选用了包括2022年7月1日起的英文维基百科数据。

分词

数据集使用Unigram tokenizer对原始文本进行tokenize。作者进行了两点改进:

  • 在pre tokenization这一步,将数字视为单个token,并且允许词组的存在,以提高信息密度减少句子长度(参考了PaLM的处理方式);
  • 由于在整个Pile数据集上使用Unigram tokenizer进行分词会比较低效,因此使用分治的思想(先分割处理后进行合并)优化Unigram tokenizer在大数据集上的实现,将Pile中22个领域分别拆分为256个大小基本相同的块。然后在22个领域的256个(共5632个)块的每一个上训练一个词汇量为65,536( 2 16 2^{16} 216) 的Unigram tokenizer,最后对这些词表进行合并,并将最终词表大小控制在13万这个数量级上。
    在这里插入图片描述
    Byte Pair Encoding(字节对编码):就是寻找经常出现在一起的Byte对,合并成一个新的Byte加入词汇库中。

WordPiece算法

WordPiece算法可以看作是BPE的变种。**Google的Bert模型在分词的时候使用的是WordPiece算法。**不同点在于,如何选择两个子词进行合并:BPE选择频数最高的相邻子词合并,而WordPiece选择能够提升语言模型概率最大的相邻子词加入词表。

  1. 准备足够大的训练语料
  2. 确定期望的subword词表大小
  3. 将单词拆分成字符序列
  4. 基于第3步数据训练语言模型
  5. 从所有可能的subword单元中选择加入语言模型后能最大程度地增加训练数据概率的单元作为新的单元
  6. 重复第5步直到达到第2步设定的subword词表大小或概率增量低于某一阈值。

Unigram Language Model (ULM)

与WordPiece一样,Unigram Language Model(ULM)同样使用语言模型来挑选子词。不同之处在于,BPE和WordPiece算法的词表大小都是从小到大变化,属于增量法。而Unigram Language Model则是减量法,即先初始化一个大词表,根据评估准则不断丢弃词表,直到满足限定条件。ULM算法考虑了句子的不同分词可能,因而能够输出带概率的多个子词分段。

SentencePiece算法

把一个句子看作一个整体,再拆分成片段,没有保留天然的词语的概念。把空格space当做一种特殊字符来处理,再用BPE或者Unigram算法来构造词表。
比如,XLNetTokenizer就采用了_来代替空格,解码的时候会再用空格替换回来。
目前,Tokenizers库中,所有使用了SentencePiece的都是与Unigram算法联合使用的,比如ALBERT、XLNet、Marian和T5。

模型

模型结构

模型基于BLOOM模型的自回归结构(decoder-only causal language model based on BLOOM),具体包含了70层transformer decoder。

  • 前馈层(FFN)中的非线性函数采用GELU
  • 位置编码采用ALiBi编码
  • 模型在第一层多了一个layer normalization

模型相关参数

整个训练过程是在64台8卡的A100 GPU(40G显存)上进行的,一共花费了约130万美元,模型相关参数如下:
transformer decoder的层数:70
注意力层多头的头数:40
每个头的纬度:192
词表大小:131072
隐藏层维度:7680
模型参数量:500亿
在这里插入图片描述

训练配置

  • 作者在每篇文档的最后添加了特殊标记<|endoftext|>,模型训练时选取的句子长度为2048token
  • 训练时采用的优化方法是AdamW,beta1、beta2、weight decay取值分别为0.9、0.95、0.1,初始学习率为6e-5,采用cosine衰减、线性warmup方式
  • 模型参数随机初始化为均值0、标准差0.006588的正态分布,并对MLP的第二层和注意力层输出进行缩放
  • 关于训练的不稳定性,文章中没有描述训练BloombergGPT时采用的方法,只是介绍了相关进展
  • 关于计算使用到的硬件,使用了64个AWS的p4d.24xlarge实例,每个p4d.24xlarge实例包含了8块40GB的A100GPU

训练过程

训练使用AWS提供的AmazonSageMaker来训练和评估BloombergGPT,并在总共64p4d.24xlarge实例上进行训练。每个p4d.24xlarge实例都有8个NVIDIA 40GB A100 GPU,这总共产生512个40GB A100 GPU。为了快速访问数据,还使用Amazon FSX For Lustre,它支持每个TiB存储单元高达1000 MB/s的读写吞吐量。

损失函数随训练步数变化曲线如下图:
在这里插入图片描述
模型共训练了139,200步,进行了约0.8个epoch训练了53天

一个epoch都没有训练完的原因是这时验证集上的损失函数已经不再继续下降了。

具体训练过程如下

  • 初始训练的batch size大小为1024,warm-up过程持续了7200步,随后作者将batch size修改为2048。
  • 115,500步之后,验证集上的损失不再下降,然后作者将学习率缩小为原始的2/3;
  • 129,900步之后,学习率缩小为之前的1/2,同时增加dropout
  • 137,100步之后,学习率再次缩小为之前的1/2
  • 最终,训练在146,000步结束。作者选取139,200这一步的模型最为最终使用的模型。

模型评估

评估任务分布

对BloombergGPT的评估分成了两部分金融领域任务与通用任务。这样做的目的也比较直观,就是验证在特定领域预训练后的模型能够在特定领域表现好,同时在通用领域的表现也不会差太多这一观点。

金融特定任务有助于检验假设,即对高质量金融特定数据进行训练将在金融任务中产生更好的结果。通用任务主要评估模型的性能是否与之前公布的结果直接可比。

对于金融相关的任务,分别收集了公开可用的金融数据任务,我们还包括了从Bloomberg内部高质量评估集中提取的任务,如用于情绪分析和命名实体识别等。对于通用任务,我们从多个现有的基准和小组结果中得出以下类别:BIG bench Hard、知识评估、阅读理解和语言任务。每种类型的任务数量和组的定义如下表所示。
在这里插入图片描述

模型对比

对比了BloombergGPT、GPT-NeoX、OPT、BLOOM、GPT-3在不同任务上的表现。注意,这里因为GPT-3模型无法获取,故仅在部分通用任务上进行了评测

各个模型使用到的token数量、参数数量、计算量如下:
在这里插入图片描述
作者对每一个模型均独立进行了评测,并且在每一个任务中使用相同的标准prompt、相同的样例、不使用任务描述和任何CoT prompt,以保证评测结果的公平性。

对于有多个答案的任务,文章中采用了**基于似然的分类方法(likelihood-based classification)进行评估;对于其他任务,文章采用贪心解码(greedy decoding)**的方式进行评估。

holdout loss

作者首先在FinPile数据集预留的部分样本上对各个模型进行了bits per byte的评估。

bits per byte指标是评估语言模型的一种常见指标,类似于perplexity,取值越小,模型越好。具体计算方法可见**How to compute bits per character (BPC)?**
各个模型在各个类型的数据上的bits per byte值如下:
在这里插入图片描述
可以看出,BloombergGPT在金融语料上的bits per byte均好于其他模型,并且在财报(Filings)这个类别上表现尤其突出。这个结果也符合预期。否则可能就没有后面任务对比的必要了。

金融领域评估

金融领域任务共有6种类型,3种判别式任务、3种生成式任务。具体任务的格式如下:
在这里插入图片描述
文章又将金融领域任务分成了外部任务和Bloomberg内部任务。在每个任务上,作者除了评估模型在任务上的表现,还评估了同一任务下不同模型生成结果之间两两比较的胜率(WR)。

外部任务

外部任务主要如下:
在这里插入图片描述

  • ConvFinQA数据集是一个针对金融领域的问答数据集,包括从新闻文章中提取出的问题和答案,旨在测试模型对金融领域相关问题的理解和推理能力
  • FiQA SA,情感分析任务,测试英语金融新闻和社交媒体标题中的情感走向。
  • Headline,新闻标题在预定义标签下的二分类。数据集包括关于黄金商品领域的英文新闻标题,标注了不同的子集。任务是判断新闻标题是否包含特定信息,例如价格上涨或价格下跌等。
  • FPB,金融短语库数据集包括来自金融新闻的句子情绪分类任务。
  • NER,命名实体识别任务,针对从提交给SEC的金融协议中收集金融数据,进行信用风险评估。

对于ConvFinQA来说,这个差距尤为显著,因为它需要使用对话式输入来对表格进行推理并生成答案,具有一定挑战性。

从评估结果来看,BloombergGPT在五项任务中的四项(ConvFinQA,FiQA SA,FPB和Headline)表现最佳,在NER(Named Entity Recognition)中排名第二。因此,BloombergGPT有其优势性。

Bloomberg内部任务之情感分析

这个任务中的情感分析均为基于内部特定方面的情感分析数据集(aspect-specific)。
在这里插入图片描述
探索性任务:NER

NER(Named Entity Recognition,命名实体识别)在很大程度上是生成LLM尚未探索的任务,我们研究的LLM论文中没有一篇报告NER性能。因此,我们将NER视为一项探索性任务,并报告初步结果。

对于生成性LLM来说,NER可能是一项艰巨的任务,这有几个原因。

  • 首先,NER是一项信息提取任务,更适合于编码器-解码器或仅编码器架构。LLM的生成性并没有给NER带来优势。
  • 与其他任务相比,NER需要大量的即时工程和更多的案例训练才能获得合理的结果。特定于金融的NER有一些微妙之处,这使得零次或少次学习变得特别困难。

例如,如果有这样一个标题“彭博社:马斯克为推特和对中国的评论添加了新功能(Bloomberg: Mr. Musk adds new features to Twitter and comments on China)”。
根据说明和下游任务需求:
(1)报道新闻机构“彭博社”是否可以被标记,这取决于我们是否想要突出的实体,
(2)“马斯克先生”或“马斯克”是要被标记为PER(人物),
(3)“推特”可以被标记为ORG(组织)或PRD(产品),因为推特产品中添加了功能,而不是组织,
(4)“中国”可能标记为ORG或LOC(地区),尽管正确的标记可能是ORG。

如果没有在提示中添加更详细的说明,LLM就不知道预期的标记行为。基于初步测试,将要预测的实体类型限制为ORG、PER和LOC,以在所有模型的内部NER任务中获得最佳性能。总的来说,过滤掉的实体不到1%。

因此,这里的NER只涉及到ORG、PER、LOC这三类实体。

同时探索性任务NER+NED是指识别出实体后再将实体链接到上市公司的股票简称。比如“AAPL announced that they will stop using Intel chips in future products.” 这句话NER的结果是“AAPL, Intel”,NER+NED的结果是 “AAPL, INTC”。

这两类任务涉及到的数据集包括了7个数据集,分别为BN(Bloomberg BN wire上内容)、BFW(Bloomberg First Word上的内容)、Filings(财报内容)、Headlines(Bloomberg news内容)、Premium(Bloogberg收录 的第三方新闻内容)、Transcripts(公司新闻发布会的文字记录)、Social Media。

最终,NER任务下,BloombergGPT仅在Headlines这一个数据集上得分最高;但在NER+NED任务下,BloombergGPT在除了Social Media任务的其他任务上均得分第一。

具体结果如下:
在这里插入图片描述

通用领域评估

作者在BIG-bench Hard(BIG-bench的一个子集,仅包含目前模型表现无法超过人类的任务)、常识测试(不提供任何背景知识,仅可以训练时使用的数据)、阅读理解语言学(消歧、语法识别、蕴含判别等)等任务上进行了测试。

在BIG-bench Hard任务上,BloombergGPT得分低于参数量更大的PaLM和BLOOM,但是与参数规模类似的GPT-NeoX或OPT66B相比,BloombergGPT的性能更接近BLOOM,这说明开发金融专用的大语言模型并没有明显牺牲其通用能力。

在常识测试任务中,BloombergGPT在1个任务上取得了第一名,在其余3个任务上取得了第二名(这里未考虑GPT-3)

在阅读理解任务上,GPT-3在所有任务上排名第一,BloombergGPT在5/6个任务上排名第二,且得分远高于BLOOM模型。

在语言学任务上,GPT-3在综合排名第一,BloombergGPT综合排名第二,且综合得分高于BLOOM模型。

评测总结

在金融领域任务上,BloombergGPT综合表现最好;

在通用任务上,BloombergGPT的综合得分优于相同参数量级的其他模型,并且在某些任务上的得分要高于参数量更大的模型。

这都说明,开发金融专用的大语言模型在金融领域取得好效果的同时,并没有以牺牲模型通用能力为代价。

要点总结:

  • BloombergGPT是Bloomberg训练出来的金融大语言模型(LLM for Finance)
  • 模型参数量为500亿,使用了包含3630亿token的金融领域数据集以及3450亿token的通用数据集
  • 隐藏层维度为7680,多头的头数为40
  • 模型采用Unigram tokenizerAdamW优化器
  • 模型在64个AWS的p4d.24xlarge实例上训练了53天,其中每个p4d.24xlarge实例包含了8块40GB的A100GPU
  • 对BloombergGPT的评估包含了两部分:金融领域评估与通用领域评估
  • 评估对比的其他大语言模型有GPT-NeoX、OPT、BLOOM、GPT-3
  • 在金融领域任务上,BloombergGPT综合表现最好在通用任务上,BloombergGPT的综合得分同样优于相同参数量级的其他模型,并且在某些任务上的得分要高于参数量更大的模型
  • BloombergGPT模型在金融领域取得好效果的同时,并没有以牺牲模型通用能力为代价
  • 对模型定性评估的结果表明,BloombergGPT可以提高工作效率
  • 出于安全性的考虑,BloogbergGPT模型不会被公开,但是模型训练和评估的相关经验和思考会被分享出来
  • 作者认为,对模型效果提升促进最大的三个因素(按影响从高到低排序)分别为精心清洗的数据集、合理的tokenizer、流行的模型结构

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java并发编程(一)

1.什么是线程和进程&#xff0c;区别是什么? 进程&#xff1a;进程是程序的一次执行过程&#xff0c;是系统运行程序的基本单位&#xff0c;因此进程是动态的。系统运行一个程序即是一个进程从创建&#xff0c;运行到消亡的过程。 线程&#xff1a;线程与进程相似&#xff0…

亿欧智库详解2023人力资源数字化,红海云解决方案受关注

近日&#xff0c;亿欧智库发布《2023中国人力资源数字化企业需求分析》报告&#xff0c;基于调研结果对开展人力资源数字化转型的企业进行画像分析&#xff0c;揭示了不同企业下人力资源数字化转型需求的差异性&#xff0c;同时为企业人力资源数字化转型路径、方法及平台工具选…

springboot带微信端小程序智慧校园电子班牌系统源码

随着时代进步&#xff0c;数字信息化不断发展&#xff0c;很多学校都开始了数字化的转变。智慧校园电子班牌系统源码是电子班牌集合信息化技术、物联网、智能化&#xff0c;电子班牌以云平台、云服务器为基础&#xff0c;融合了班级文化展示、课程管理、物联控制、教务管理、考…

如何配置TLSv1.2版本的ssl

1、tomcat配置TLSv1.2版本的ssl 如下图所示&#xff0c;打开tomcat\conf\server.xml文件&#xff0c;进行如下配置&#xff1a; 注意&#xff1a;需要将申请的tomcat版本的ssl认证文件&#xff0c;如server.jks存放到tomcat\conf\ssl_file\目录下。 <Connector port"1…

【Vue篇】基础篇—Vue指令,Vue生命周期

&#x1f38a;专栏【JavaSE】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【如愿】 &#x1f384;欢迎并且感谢大家指出小吉的问题&#x1f970; 文章目录 &#x1f354;Vue概述&#x1f384;快速入门&#x1f33a;Vue指令⭐v-…

LTD257次升级 | 商品库存能提醒 • 商品运费批量改 • 小程序官网发视频 • 网页地址可设中文

1、 商城新增库存提醒&#xff0c;支持批量改运费&#xff1b; 2、 极速官微支持发布视频&#xff1b; 3、 官微中心登录新增公众号验证码验证&#xff1b; 4、 编辑器页面地址支持设置为中文&#xff1b; 5、 其他已知问题修复与优化&#xff1b; 01 商城 1) 新增商品库存提醒…

SpringMVC:SSM(Spring+SpringMVC+MyBatis)代码整理

文章目录 SpringMVC - 07SSM 框架代码整理一、准备工作1. 分析需求、准备数据库2. 新建一个项目&#xff0c;导入依赖&#xff1a;pom.xml3. 用 IDEA 连接数据库 二、MyBatis 层1. 外部配置文件&#xff1a;db.properties2. MyBatis 核心配置文件&#xff1a;mybatis-config.xm…

fpga xvc 调试实现,支持多端口同时调试多颗FPGA芯片

xilinx 推荐的实现结构方式如下&#xff1a; 通过一个ZYNQ运行xvc服务器&#xff0c;然后通过zynq去配置其他的FPGA&#xff0c;具体参考设计可以参考手册xapp1251&#xff0c;由于XVC运行的协议是标准的TCP协议&#xff0c;这种方式需要ZYNQ运行TCP协议&#xff0c;也就需要运…

单片机外设矩阵键盘之行列扫描识别原理与示例

单片机外设矩阵键盘之行列扫描识别原理与示例 1.概述 这篇文章介绍单片机通过行列扫描的方式识别矩阵键盘的按键&#xff0c;通过程序执行相应的操作。 2.行列扫描识别原理 2.1.独立按键识别原理 为什么需要矩阵按键 独立按键操作简单&#xff0c;当数量较多时候会占用单片机…

win10: 搭建本地pip镜像源

前言&#xff1a; windows下和linux下都可以搭建本地pip镜像源。操作流程上一样&#xff0c;但是细节上存在一些差异。建议在linux上搭建本地镜像&#xff0c;流程简单很多。在windows系统上&#xff0c;会在多个地方存在问题&#xff08;比如不识别.symlink文件&#xff0c;一…

【MySQL】索引特性

文章目录 一、索引的概念二、MySQL与磁盘三、索引的理解观察主键索引现象推导主键索引结构的构建索引结构可以采用的数据结构聚簇索引 VS 非聚簇索引 四、索引操作创建主键索引创建唯一索引创建普通索引创建全文索引查询索引删除索引索引创建原则 一、索引的概念 数据库表中存…

PostgreSQL | FunctionProcedure | 函数与存储过程的区别

文章目录 PostgreSQL | Function&Procedure | 函数与存储过程的区别1. 简述书面说法大白话讲 2. 函数&#xff08;Function&#xff09;2.1 定义2.2 用途2.3 执行2.4 事务处理2.5 说点例子1. 当参数都是IN类时2. 参数中出现OUT、INOUT参数时 3. 存储过程&#xff08;Proced…

【Java】工业园区高精准UWB定位系统源码

UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术&#xff0c;它不采用正弦载波&#xff0c;而是利用纳秒级的非正弦波窄脉冲传输数据&#xff0c;因此其所占的频谱范围很宽。UWB定位系统依托在移动通信&#xff0c;雷达&#xff0c;微波电路&#xff0c;云计算与大数据…

02之Python运算符与if结构

Day02之Python运算符与if结构 一、昨日回顾 1、回顾昨天的课程内容 略 2、回顾昨天的作业 定义变量&#xff0c;c1 ‘可乐’&#xff0c;c2 ‘牛奶’&#xff0c;通过Python代码把c1内容调整为牛奶&#xff0c;c2调整为可乐。 # 1、定义两个变量 c1 可乐 c2 牛奶# 2、…

以源码为驱动:Java版工程项目管理系统平台助力工程企业迈向数字化管理的巅峰

随着企业规模的不断扩大和业务的快速发展&#xff0c;传统的工程项目管理方式已经无法满足现代企业的需求。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;企业需要借助先进的数字化技术进行转型。本文将介绍一款采用Spring CloudSpring BootMybat…

[Linux] MySQL数据库的备份与恢复

一、数据库备份的分类和备份策略 1.1 数据库备份的分类 1&#xff09;物理备份 物理备份&#xff1a;对数据库操作系统的物理文件&#xff08;如数据文件、日志文件等&#xff09;的备份。 物理备份方法&#xff1a; 冷备份(脱机备份) &#xff1a;是在关闭数据库的时候进…

Text-to-SQL小白入门(十)RLHF在Text2SQL领域的探索实践

本文内容主要基于以下开源项目探索实践&#xff0c; Awesome-Text2SQL:GitHub - eosphoros-ai/Awesome-Text2SQL: Curated tutorials and resources for Large Language Models, Text2SQL, Text2DSL、Text2API、Text2Vis and more.DB-GPT-Hub&#xff1a;GitHub - eosphoros-ai…

Java 对象内存布局

在虚拟机中&#xff0c;Java对象在内存中的布局可以分为三块&#xff1a; 对象头&#xff08;Header&#xff09; &#xff1a;包含 markword 标记字段和类型指针&#xff0c;32 位上大小是 8 个字节&#xff0c;64 位 16 个字节&#xff0c;实例数据&#xff08;Instance Dat…

特殊求和(C++)

系列文章目录 进阶的卡莎C++_睡觉觉觉得的博客-CSDN博客数1的个数_睡觉觉觉得的博客-CSDN博客双精度浮点数的输入输出_睡觉觉觉得的博客-CSDN博客足球联赛积分_睡觉觉觉得的博客-CSDN博客大减价(一级)_睡觉觉觉得的博客-CSDN博客小写字母的判断_睡觉觉觉得的博客-CSDN博客纸币(…

LeetCode206反转链表(java实现)

今天带来的题目解析是leetcode206&#xff0c;反转链表&#xff0c;我们来看下题目描述 如何实现链表的反转呢&#xff1f;我在这里提供的思路是双指针的思路。 具体的思路如下&#xff1a; 假设我们的原链表如下 首先定义一个指针pre&#xff0c;用于指向head之前的位置&am…