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

【GPT】从GPT1到GPT3

every blog every motto: Although the world is full of suffering, it is full also of the overcoming of it

0. 前言

从GPT1 到GPT3

20250219175022

1. GPT1

论文: https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf
时间:2018年
作者: Alec Radford Karthik Narasimhan Tim Salimans Ilya Sutskever

1.1 整理理解

在GPT-1之前(和ELMo同一年),传统的NLP模型往往使用大量的数据对有监督的模型进行任务相关的模型训练,但是这种有监督学习的任务存在两个缺点:

  • 需要大量的标注数据,高质量的标注数据往往很难获得,因为在很多任务中,图像的标签并不是唯一的或者实例标签并不存在明确的边界;
  • 根据一个任务训练的模型很难泛化到其它任务中,这个模型只能叫做“领域专家”而不是真正的理解了NLP。

GPT1的思想是先再无标签的数据上学习通用的语言模型,再在特定的任务上进行微调。
GPT1的思想是先再无标签的数据上学习通用的语言模型,再在特定的任务上进行微调。
GPT1的思想是先再无标签的数据上学习通用的语言模型,再在特定的任务上进行微调。

主要的原因还是现实生活中,无标签数据占大多数,而有标签数据往往很少,而且有标签数据往往需要花费大量的人力物力去标注。所以,GPT1的思想就是先在无标签数据上学习通用的语言模型,然后再在特定的任务上进行微调。

1.2 进一步

1.2.1 网络结构

下面是标准的Transformer结构,GPT1就是基于这个结构进行改进的(采用decoder,并删除其中没有mask的多头注意力(红框))。
20240903173151
具体来说,GPT1采用的是decoder部分,由于其是单向的,所以encoder中的多头注意力不适用(没有mask的话,预测当前词能看到其前面和后面的),所以采用了decoder部分(由于其有mask,预测当前词只能看到其前面的词)。

整体由12个decoder组成。
20240903173745

1.2.2 关于输入

由于GPT1下游有不同的任务,而这些任务之间的输入格式是不一样的,所以对不同的输入(分类、推理、相似、问答)进行了统一,这样后续微调是就不用再动输入形式了。如下图。

20240903174925

其中分词采用的是Byte Pair Encoding (BPE)。
简单来说,根据子词频率搞的进行合并。

1.2.3 无监督预训练

优化目标:
20240910161037

  • k: 滑动窗口大小
  • P: 条件概率
  • Θ \Theta Θ : 模型参数

1.2.4 微调

输入是m各token x 1 , . . . , x m {x^1,...,x^m} x1,...,xm , 对应的标签是y。
首先将这些token输入到预训练好的模型中,得到最终的特征向量 h l m h_l^{m} hlm,然后再通过全连接层得到预测结果y。

20240910162415

优化目标:
20240910162434

微调阶段增加**语言模型(language model)**作为辅助,最终的由优化目标为:
20240910163128

1.3 能力

在有监督学习的12个任务中,GPT-1在9个任务上的表现超过了state-of-the-art的模型。在没有见过数据的zero-shot任务中,GPT-1的模型要比基于LSTM的模型稳定,且随着训练次数的增加,GPT-1的性能也逐渐提升,表明GPT-1有非常强的泛化能力,能够用到和有监督任务无关的其它NLP任务中。GPT-1证明了transformer对学习词向量的强大能力,在GPT-1得到的词向量基础上进行下游任务的学习,能够让下游任务取得更好的泛化能力。对于下游任务的训练,GPT-1往往只需要简单的微调便能取得非常好的效果。

GPT-1在未经微调的任务上虽然也有一定效果,但是其泛化能力远远低于经过微调的有监督任务,说明了GPT-1只是一个简单的领域专家,而非通用的语言学家。

1.4 结论

  1. 使用Transformer作为基础结构,避免了LSTM在捕获长期依赖关系上的困难。
  2. 使用无监督预训练,在大量无标签数据上进行预训练,提高了模型的泛化能力。
  3. 使用微调,在特定任务上进行微调,提高了模型的性能。

2. GPT2

2.1 整体理解

GPT2相比GPT1做的更加“极端”,直接无监督训练,抛弃的微调过程。讲究的是“大力出奇迹”。

作者猜测,单任务训练在单一领域数据集上的普遍性是当前系统缺乏泛化能力的主要原因之一。

所以作者采用在在更广泛的领域和数据集上训练模型,以获得更好的泛化能力。

模型依然采用的是Transformer结构的decoder部分,分为四个不同的版本。层数分别为12、24、36、48。其中,

  • 12层为了GPT1作对比;
  • 24层为了BERT作对比;
  • 36层用于对比;
  • 48层为真正的GPT2。

模型种类:

名成层数参数输入维度备注
smallest12117M768和GPT1对比
medium24345M1024和BERT对比
large36762M1280
largeest481542M1600GPT2

20240911155432

训练数据采集自Reddit,命令为WebText,数据量为:40G。 其中剔除了Wikipedia的文章。

2.2 模型和数据

2.2.1 模型结构

整体来说和GPT1类似,由多个decoder层组合而来,略微做了一点小改动。

  1. Layer Normalization移动到每个Transformer Block之前;
  2. self-attention之后增加了Layer Normalization;
  3. 修改了残差连接的权重 1 N 1 \over \sqrt{N} N 1
  4. 词表增加到50257;
  5. 上下文大小从512增加到1024;‘
  6. bactch size 512。

左边是GPT1的block,右边是GPT2的block。
20240911162732

2.2.1 数据

GPT-2的文章取自于Reddit上高赞的文章,命名为WebText。数据集共有约800万篇文章,累计体积约40G。为了避免和测试集的冲突,WebText移除了涉及Wikipedia的文章。

2.3 训练目标

训练目标:
20240911163328

即,根据输入预测下文,可以表示为: p ( o u t p u t ∣ i n p u t ) p(output|input) p(outputinput)

2.4 能力

  1. 在8各语言模型任务中,在zero-shot情况下,有7个超过了SOTA
  2. 在文本总结表现不佳,但它的效果与由监督的模型接近。

2.5 小结

**GPT-2的最大贡献是验证了通过海量数据和大量参数训练出来的词向量模型有迁移到其它类别任务中而不需要额外的训练。**但是很多实验也表明,GPT-2的无监督学习的能力还有很大的提升空间,甚至在有些任务上的表现不比随机的好。尽管在有些zero-shot的任务上的表现不错,但是我们仍不清楚GPT-2的这种策略究竟能做成什么样子。GPT-2表明随着模型容量和数据量的增大,其潜能还有进一步开发的空间,基于这个思想,诞生了我们下面要介绍的GPT-3。

3. GPT3

之前的研究主要基于pretrain+finetune,当模型在下游任务上训练以后,往往失去了泛化能力,为此,GPT3相比GPT2更进一步,模型更大,训练数据更多。

3.1 不同方法

3.1.1 fine-tuing(微调)

主流的一种方式,对预训练任务在有标签的数据上进行监督训练。
微调的主要优点是可以在许多基准测试中表现出色。主要缺点是每个任务都需要一个新的大数据集,可能导致模型在分布外泛化能力差 [MPL19],以及可能利用训练数据中的虚假特征 [GSL+18, NK19],这可能导致与人类表现的不公平比较

20240929142742

3.1.2 few-shot learning(少样本学习)

少样本(Few-Shot, FS)是我们在本研究中使用的术语,指的是模型在推理时给定少量任务示例的设置,作为条件输入 [RWC+19],但不允许更新权重

对于一个典型的数据集,一个示例具有上下文和期望结果(例如,一个英语句子及其法语翻译),少样本学习通过提供 K 个上下文和完成示例来实现,然后再给出一个上下文示例,模型需提供相应的完成。

我们通常将 K 设置在 10 到 100 之间,因为这是模型上下文窗口(nctx = 2048)能够容纳的示例数量。少样本学习的主要优点是显著减少对任务特定数据的需求,并降低从大型但狭窄的微调数据集中学习过于狭窄分布的潜在风险

主要缺点是这种方法的结果迄今为止远不及最先进的微调模型。 此外,仍然需要少量的任务特定数据。如其名称所示,这里描述的语言模型的少样本学习与在其他机器学习上下文中使用的少样本学习相关 [HYC01, VBL+16]——两者都涉及基于广泛任务分布(在此情况下隐含于预训练数据)进行学习,然后快速适应新任务。

简单来说: 在推理阶段,给少量的样本,然后进行推理,不需要微调。
严格来说: 不是传统意义上的学习,因为没有参数的更新。

20240929142810

3.1.3 one-shot learning(单样本学习)

一例样本(One-Shot, 1S)与少样本学习相同,唯一的区别是只允许一个示例,并提供任务的自然语言描述,区分一例样本、少样本和零样本的原因在于,它最接近某些任务向人类传达的方式。例如,当要求人类生成一个关于人类工人服务的数据集(例如 Mechanical Turk)时,通常会给出一个任务示例。相反,如果没有示例,有时很难传达任务的内容或格式。

20240929142826

3.1.4 zero-shot learning(零样本学习)

零样本(Zero-Shot, 0S)与一例样本相同,但不允许提供任何示例,模型只获得描述任务的自然语言指令。 这种方法提供了最大的便利性、潜在的鲁棒性,并避免了虚假关联(除非这些关联在大规模预训练数据中非常普遍),但也是最具挑战性的设置。

在某些情况下,即使是人类在没有先前示例的情况下也可能难以理解任务的格式,因此这种设置在某些情况下是“过于困难”的。

例如,如果有人被要求“制作一张关于200米短跑的世界纪录表”,这个请求可能会模糊不清,因为可能不清楚表格的具体格式应是什么,或应包含哪些内容(即使经过仔细澄清,确切理解所需内容也可能很困难)。

尽管如此,至少在某些情况下,零样本最接近人类执行任务的方式——例如,在图 2.1 的翻译示例中,人类可能仅凭文本指令就知道该怎么做。

20240929142844

3.1.5 小结

这三种“shot”方法虽然在推理时给出的示例数量不同,但实际上它们在适应新任务时的机制是不同的。

  • 零样本(Zero-Shot): 模型仅依赖于自然语言指令,没有示例。 这种方式要求模型充分利用其在预训练阶段所学的知识和模式,来理解和完成任务。
  • 一例样本(One-Shot): 模型在推理时提供一个示例,使其能够更好地理解任务的格式和要求。 这个示例可以帮助模型更准确地进行推理。
  • 少样本(Few-Shot):提供多个示例, 使模型能够捕捉到更多的任务特征和模式,从而提高性能。

虽然在这三种设置中都没有进行参数更新,但模型在处理任务时利用的上下文信息和已知示例的数量不同,导致其在理解和推理能力上的差异。因此,它们的表现通常会有所不同。少样本和一例样本方法通常能更有效地指导模型,从而提升性能。

不是传统意义上更新参数进行“学习”,而是利用上下文信息进行“学习”。

这三种方法都是在推理阶段进行的,而不是在训练阶段进行的。因此,它们不需要额外的训练数据,只需要在预训练阶段学习到的知识。
这三种方法都是在推理阶段进行的,而不是在训练阶段进行的。因此,它们不需要额外的训练数据,只需要在预训练阶段学习到的知识。
这三种方法都是在推理阶段进行的,而不是在训练阶段进行的。因此,它们不需要额外的训练数据,只需要在预训练阶段学习到的知识。

3.2 模型与数据

3.2.1 模型

GPT-3进一步将模型扩大。GPT2参数量为1.5B(15亿),GPT3参数量扩大到175B(1750亿)。整整扩大了116倍。

对比更加丰富,总共有8种不同的模型,参数量从125M到175B不等。
20240929121806

模型整体和GTP2类似,主要区别是将其中的attention替换为sparse attention,即稀疏注意力机制。稀疏注意力机制可以减少计算量,从而提高模型的训练速度和效率。
传统的attention是两两token进行计算,复杂度为O(n^2),而稀疏注意力机制只对部分token进行计算,复杂度为O(nlogn),从而大大减少了计算量。

20240929142622

3.2.2 数据

GPT-3的训练数据包括低质量的Common Crawl(对其进行了过滤),高质量的WebText2,Books1,Books2和Wikipedia。GPT-3根据数据集的不同的质量赋予了不同的权值,权值越高的在训练的时候越容易抽样到。

总数据量达到570G

20240929143719

训练时间:
20240929144347

3.3 结果

GPT3主要利用的是上下文学习(in-context learning),具体可以细分为上面提到的三种方式(zero-shot、one-shot、few-shot)。
尽管在推理阶段没有更新参数,上下文学习(in-context learning)仍被称为“学习”,是因为模型利用其预训练过程中获得的知识和模式来适应新任务。这种适应过程虽然不涉及参数调整,但模型能够根据提供的示例和指令识别并执行任务,因此仍然被视为一种学习形式。实际上,它更多地是依赖于模型的泛化能力和上下文理解,而非传统意义上的学习。

如下图所示,随着参数的增加模型更强,同时few-shot > one-shot > zero-shot。

20240929151741

下图,可以看到随着参数的增加,模型在各个任务上的表现都得到了提升。

  • 当测试案例数量越多时,效果越好。
  • 当测试案例很多时,prompt(自然语言描述)变得不那么重要,因为模型已经学会了如何处理任务。
    20240929152104

3.4 小结

  1. 随着模型增大(GPT2 1.5B,GPT3 175B),数据量增大(GPT2 40G GPT3 570G),模型在各个任务上的表现都得到了提升。
  2. 存在一定的数据污染问题
  3. GPT-3在处理某些任务时可能会出现错误或不准确的结果,以及不合理或不合逻辑的结果。

4. 总结

时间模型参数量层数词向量长度训练数据
2018.6GPT1117M127685G
2019.2GPT21.5B(1542M)48160040G
2020.5GPT3175B3612288570G

关于参数,如下是GPT2-small示例:
20240929162351

 

参考

  1. https://zhuanlan.zhihu.com/p/620494604
  2. https://zhuanlan.zhihu.com/p/350017443
  3. https://www.cnblogs.com/Chatdanta/p/18235460
  4. https://blog.csdn.net/beilizhang/article/details/109282032
  5. https://blog.csdn.net/weixin_60734652/article/details/132470086

相关文章:

【GPT】从GPT1到GPT3

every blog every motto: Although the world is full of suffering, it is full also of the overcoming of it 0. 前言 从GPT1 到GPT3 1. GPT1 论文: https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/lan…...

Java IO 设计模式总结

装饰器模式 装饰器(Decorator)模式 可以在不改变原有对象的情况下拓展其功能。 装饰器模式通过组合替代继承来扩展原始类的功能,在一些继承关系比较复杂的场景(IO 这一场景各种类的继承关系就比较复杂)更加实用。 对…...

js版本ES6、ES7、ES8、ES9、ES10、ES11、ES12、ES13、ES14[2023]新特性

ES全称ECMAScript,ECMAScript是ECMA制定的标准化脚本语言,本文讲述Javascript[ECMAScript]版本ES6、ES7、ES8、ES9、ES10、ES11、ES12、ES13、ES14[2023]的新特性,帮助朋友们更好的熟悉和使用Javascript ES5 1.严格模式 use strict2.Object getPrototypeOf,返回一个对象的原…...

基于ffmpeg+openGL ES实现的视频编辑工具-解码(四)

在开发视频编辑工具时,预览功能是基石,它涵盖视频、图片以及音频播放,而视频解码则是实现视频预览及后续编辑操作的关键环节。本文聚焦于基于 FFmpeg 实现视频解码的过程,详细阐述开发中遭遇的痛点、对应的解决方式,以及核心代码的运作原理。 一、开发背景与目标 视频编…...

机器学习:决策树

1. 初步概念 决策树是一种基于分裂特征的机器学习方法,用于分类和回归任务。它通过将数据按特征值进行分割,最终做出预测。与线性模型不同,决策树能够自动识别重要的特征,并根据数据情况生成复杂的决策规则。 2. 决策树的核心思想 决策树的核心思想在于选择一个特征作为…...

@media 的常用场景与示例

media 的常用场景与示例 1. 基本概念2. 常用场景2.1 不同屏幕宽度的布局调整2.2 隐藏或显示元素2.3 字体大小调整2.4 图片大小调整2.5 高度调整2.6 颜色调整2.7 鼠标悬停效果 3. 常用示例3.1 基本响应式布局3.2 隐藏侧边栏3.3 字体大小和图片大小 4. 总结 在现代网页设计中&…...

深入浅出:基于SpringBoot和JWT的后端鉴权系统设计与实现

文章目录 什么是鉴权系统定义与作用主要组成部分工作原理常用技术和框架 基于SpringBoot JWT的鉴权系统设计与实现指南前言技术对比令牌技术JWT令牌实现全流程1. **依赖引入**2. **JWT 工具类**3. **JWT 拦截器(Interceptor)** 4. **拦截器注册**5. **登…...

怎麼利用靜態ISP住宅代理在指紋流覽器中管理社媒帳號?

靜態ISP住宅代理是一種基於真實住宅IP的代理服務。這類代理IP通常由互聯網服務提供商(ISP)分配,具有非常高的真實性,與普通數據中心代理相比,更不容易被平臺檢測到為“虛假IP”或“代理IP”,靜態ISP住宅代理…...

DeepSeek掘金——SpringBoot 调用 DeepSeek API 快速实现应用开发

Spring Boot 实现 DeepSeek API 调用 1. 项目依赖 在 pom.xml 中添加以下依赖: <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></dependency>&l…...

解决本地模拟IP的DHCP冲突问题

解决 DHCP 冲突导致的多 IP 绑定失效问题 前言 续接上一篇在本机上模拟IP地址。 在实际操作中&#xff0c;如果本机原有 IP&#xff08;如 192.168.2.7&#xff09;是通过 DHCP 自动获取的&#xff0c;直接添加新 IP&#xff08;如 10.0.11.11&#xff09;可能会导致 DHCP 服…...

Git LFS介绍(Large File Storage)大文件扩展,将大文件存储在外部存储,仓库中只记录文件的元数据(大文件的指针,类似一个小的占位符文件)

文章目录 LFS的功能&#xff1f;如何使用LFS&#xff1f;将大文件存储在外部系统是什么意思&#xff1f;具体是如何运作的&#xff1f;为什么要这样做&#xff1f; 对开发者的影响&#xff1f;1. **性能和效率**2. **协作体验**3. **版本管理差异**4. **额外的工具和配置** LFS…...

数据中心储能蓄电池状态监测管理系统 组成架构介绍

安科瑞刘鸿鹏 摘要 随着数据中心对供电可靠性要求的提高&#xff0c;蓄电池储能系统成为关键的后备电源。本文探讨了蓄电池监测系统在数据中心储能系统中的重要性&#xff0c;分析了ABAT系列蓄电池在线监测系统的功能、技术特点及其应用优势。通过蓄电池监测系统的实施&#…...

三甲医院网络架构与安全建设实战

一、设计目标 实现医疗业务网/卫生专网/互联网三网隔离 满足等保2.0三级合规要求 保障PACS影像系统低时延传输 实现医疗物联网统一接入管控 二、全网拓扑架构 三、网络分区与安全设计 IP/VLAN规划表 核心业务配置&#xff08;华为CE6865&#xff09; interface 100G…...

如何在 React 中测试高阶组件?

在 React 中测试高阶组件可以采用多种策略&#xff0c;以下是常见的测试方法&#xff1a; 1. 测试高阶组件返回的组件 高阶组件本身是一个函数&#xff0c;它返回一个新的组件。因此&#xff0c;可以通过测试这个返回的组件来间接测试高阶组件的功能。通常使用 Jest 作为测试…...

INA219电流、电压、功率测量芯片应用

INA219电流、电压、功率测量芯片应用 简述芯片引脚应用电路寄存器驱动代码 简述 ‌INA219是一款由德州仪器&#xff08;Texas Instruments&#xff09;生产的高精度电流/功率监测芯片&#xff0c;广泛应用于电池监控、电源管理等需要精确电流和功率测量的应用中‌‌。该芯片通…...

深入解析设计模式之工厂模式

深入解析设计模式之工厂模式 在软件开发的复杂体系中&#xff0c;设计模式作为解决常见问题的有效方案&#xff0c;为开发者提供了强大的工具。工厂模式作为一种广泛应用的创建型设计模式&#xff0c;专注于对象的创建过程&#xff0c;通过巧妙的设计&#xff0c;将对象的创建…...

ollama修改监听ip: 0.0.0.0

确认Ollama绑定IP地址 默认情况下&#xff0c;Ollama可能仅监听本地回环地址&#xff08;127.0.0.1&#xff09;。要允许外部访问&#xff0c;需将其配置为监听所有IP&#xff08;0.0.0.0&#xff09;或指定IP&#xff08;如10…19&#xff09;。 修改启动命令&#xff08;推荐…...

.NET MVC实现电影票管理

.NET MVC&#xff08;Model-View-Controller&#xff09;是微软推出的基于 Model-View-Controller 设计模式的 Web 应用框架&#xff0c;属于 ASP.NET Core 的重要组成部分。其核心目标是通过清晰的分层架构实现 高内聚、低耦合 的开发模式&#xff0c;适用于构建可扩展的企业级…...

FPGA DSP:Vivado 中带有 DDS 的 FIR 滤波器

本文使用 DDS 生成三个信号&#xff0c;并在 Vivado 中实现低通滤波器。低通滤波器将滤除相关信号。 介绍 用DDS生成三个信号&#xff0c;并在Vivado中实现低通滤波器。低通滤波器将滤除较快的信号。 本文分为几个主要部分&#xff1a; 信号生成&#xff1a;展示如何使用DDS&am…...

大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(2)

Paimon的下载及安装&#xff0c;并且了解了主键表的引擎以及changelog-producer的含义参考&#xff1a; 大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(1) 利用Paimon表做lookup join&#xff0c;集成mysql cdc等参考&#xff1a; 大数据组件(四)快速入门实时数据…...

vue3父子组件props传值,defineprops怎么用?(组合式)

目录 1.基础用法 2.使用解构赋值的方式定义props 3.使用toRefs的方式解构props (1).通过ref响应式变量&#xff0c;修改对象本身不会触发响应式 1.基础用法 父组件通过在子组件上绑定子组件中定义的props&#xff08;:props“”&#xff09;传递数据给子组件 <!-- 父组件…...

Linux /etc/fstab文件详解:自动挂载配置指南(中英双语)

Linux /etc/fstab 文件详解&#xff1a;自动挂载配置指南 在 Linux 系统中&#xff0c;/etc/fstab&#xff08;File System Table&#xff09;是一个至关重要的配置文件&#xff0c;它用于定义系统开机时自动挂载的文件系统。如果你想让磁盘分区、远程存储&#xff08;如 NFS&…...

Test the complete case

Test the complete case python写的一段 由pytest测试框架/allure报告框架/parameters数据驱动组成的完整案例代码 目录结构 project/ ├── test_cases/ │ ├── __init__.py │ └── test_math_operations.py # 测试用例 ├── test_data/ │ └── math_dat…...

装win10系统提示“windows无法安装到这个磁盘,选中的磁盘采用GPT分区形式”解决方法

问题描述 我们在u盘安装原版win10 iso镜像时&#xff0c;发现在选择硬盘时提示了“windows无法安装到这个磁盘,选中的磁盘采用GPT分区形式”&#xff0c;直接导致了无法继续安装下去。出现这种情况要怎么解决呢&#xff1f; 原因分析&#xff1a; 当您在安装Windows操作系统…...

【pytest-jira】自动化用例结合jira初版集成思路

【pytest】编写自动化测试用例命名规范README 【python】连接Jira获取token以及jira对象 【python】解析自动化脚本文件并按照测试周期存储记录 【python】向Jira推送自动化用例执行成功 【python】向Jira测试计划下&#xff0c;附件中增加html测试报告 以下内容主要是介绍jira…...

PHP 会话(Session)实现用户登陆功能

Cookie是一种在客户端和服务器之间传递数据的机制。它是由服务器发送给客户端的小型文本文件&#xff0c;保存在客户端的浏览器中。每当浏览器向同一服务器发送请求时&#xff0c;它会自动将相关的Cookie信息包含在请求中&#xff0c;以便服务器可以使用这些信息来提供个性化的…...

大模型安全问题详解(攻击技术、红队测试与安全漏洞)

文章目录 大模型攻击技术提示注入攻击&#xff08;Prompt Injection&#xff09;数据投毒攻击&#xff08;Data Poisoning&#xff09;模型克隆攻击&#xff08;Model Cloning&#xff09;拒绝服务攻击&#xff08;DoS&#xff09;和拒绝钱包攻击&#xff08;DoW&#xff09;插…...

【愚公系列】《鸿蒙原生应用开发从零基础到多实战》002-TypeScript 类型系统详解

标题详情作者简介愚公搬代码头衔华为云特约编辑&#xff0c;华为云云享专家&#xff0c;华为开发者专家&#xff0c;华为产品云测专家&#xff0c;CSDN博客专家&#xff0c;CSDN商业化专家&#xff0c;阿里云专家博主&#xff0c;阿里云签约作者&#xff0c;腾讯云优秀博主&…...

C# 将非托管Dll嵌入exe中(一种实现方法)

一、环境准备 电脑系统:Windows 10 专业版 20H2 IDE:Microsoft Visual Studio Professional 2022 (64 位) - Current 版本 17.11.4 其他: 二、测试目的 将基于C++创建DLL库,封装到C#生成的exe中。 一般C++创建的库,在C#中使用,都是采用DllImport导入的,且要求库处…...

c sharp 特性详解

文章目录 一、特性基础用法二、常见的内置特性三、自定义特性四、通过反射读取特性五、实际应用场景六、练习 一、特性基础用法 什么是特性&#xff1f; 特性是一种继承System.Attribute类&#xff0c;用于标记代码元素 特性的语法&#xff1a; [AttributeName(Parameter1, P…...

Langchain vs. LlamaIndex:哪个在集成MongoDB并分析资产负债表时效果更好?

Langchain vs. LlamaIndex&#xff1a;哪个在集成MongoDB并分析资产负债表时效果更好&#xff1f; 随着大语言模型&#xff08;LLM&#xff09;在实际应用中的普及&#xff0c;许多开发者开始寻求能够帮助他们更高效地开发基于语言模型的应用框架。在众多框架中&#xff0c;La…...

MySQL日常维护工具------备份

MySQL日常维护工具-备份 一、MySQL字符集 &#xff08;一&#xff09;字符集介绍 字符(Character)是各种文字和符号的总称&#xff0c;包括各国家文字、标点符号、图形符号、数字等。字符集(Character set)是多个字符的集合&#xff0c;字符集种类较多&#xff0c;每个字符集…...

硬核技术组合!用 DeepSeek R1、Ollama、Docker、RAGFlow 打造专属本地知识库

文章目录 一、引言二、安装Ollama部署DeepSeekR1三、安装Docker四、安装使用RAGFlow4.1 系统架构4.2 部署流程4.3 使用RAGFlow4.4 在RAGFlow中新增模型4.5 创建知识库4.6 创建私人助理使用RGA 一、引言 本地部署DeepSeek R1 Ollama RAGFlow构建个人知识库&#xff0c;通过将…...

[VSCode]彻底卸载和重装,并搭建Java开发环境

VSCode彻底卸载 由于当初是朋友帮忙装的&#xff0c;所以准备卸载,自己装一遍 从控制面板找到 vscode 将其卸载。 此时仅仅是删除了应用软件 删除安装插件 在图示路径中找到 .vscode 文件夹&#xff0c;将其删除&#xff0c;即可彻底清除安装的插件 C:\Users\user\.vscode …...

Scrum方法论指导下的Deepseek R1医疗AI部署开发

一、引言 1.1 研究背景与意义 在当今数智化时代&#xff0c;软件开发方法论对于项目的成功实施起着举足轻重的作用。Scrum 作为一种广泛应用的敏捷开发方法论&#xff0c;以其迭代式开发、快速反馈和高效协作的特点&#xff0c;在软件开发领域占据了重要地位。自 20 世纪 90 …...

政安晨的AI大模型训练实践 九 - 熟悉LLaMA Factory的详细参数含义-基本概念理解一下

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 小伙伴铁子们&#xff0c;上手先熟悉起来训练工具的每一个参数&#xff0c;很重要。 参照我…...

保姆级教程 | Office-Word中图目录制作及不显示图注引文的方法

背景 由于毕业论文的格式修改需要&#xff08;没错&#xff0c;我终于要拿下PhD了。差不多四个月没更新&#xff0c;主要是①根据处理完的数据完成小论文撰写&#xff1b;②找工作...③完成学位论文的撰写。因而对建模和数据处理的需求不高&#xff0c;对有些时隔久远的博文具…...

Linux lsblk 命令详解:查看磁盘和分区信息 (中英双语)

Linux lsblk 命令详解&#xff1a;查看磁盘和分区信息 在 Linux 系统中&#xff0c;管理磁盘设备和分区是日常运维工作的重要部分。而 lsblk 命令是一个强大的工具&#xff0c;它用于列出系统中的块设备&#xff08;block devices&#xff09;信息&#xff0c;可以帮助我们快速…...

使用API有效率地管理Dynadot域名,为域名部署DNS安全拓展(DNSSEC)

关于Dynadot Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮…...

前后端项目部署服务器(传统部署和Docker部署)

内外网 开发环境连外网&#xff08;8.140.26.187&#xff09;&#xff0c;测试/生产环境连内网&#xff08;172.20.59.17&#xff09; 内外网地址不同&#xff0c;但指定的库是同一个 内网IP地址范围包括&#xff1a; 10.0.0.0 到 10.255.255.255172.16.0.0 到 172.31.2551…...

深入HBase——核心组件

引入 通过上一篇对HBase核心算法和数据结构的梳理&#xff0c;我们对于其底层设计有了更多理解。现在我们从引入篇里面提到的HBase架构出发&#xff0c;去看看其中不同组件是如何设计与实现。 核心组件 首先&#xff0c;需要提到的就是HBase架构中会依赖到的Zookeeper和HDFS。…...

虚拟机从零实现机器人控制

1. 系统安装 因Docker不适合需要图形界面的开发&#xff0c;因此使用虚拟机VMware方便可视化界面方式查看效果&#xff0c;相关软件可以从官网下载&#xff0c;这里有一整套免费安装文件百度网盘地址&#xff1a; 2. ROS安装 Ubuntu 22.04&#xff1a;https://docs.ros.org…...

最新本地部署 DeepSeekR1 蒸馏\满血量化版 + WebOpenUI 完整教程(Ubuntu\Linux系统\Ollama)

测试机为6133CPU(40Cores)256G D44*4090D 24G 一种方法是部署蒸馏版Distill模型。一种是部署Huggingface上unsloth的量化版模型 Ollama及模型安装 1.下载并安装ollama curl -fsSL https://ollama.com/install.sh | sh如果下载不动可以试试挂梯子或者再试几次 挂代理代码&…...

Linux基本指令(三)+ 权限

文章目录 基本指令grep打包和压缩zip/unzipLinux和windows压缩包互传tar&#xff08;重要&#xff09;Linux和Linux压缩包互传 bcuname -r常用的热键关机外壳程序 知识点打包和压缩 Linux中的权限用户权限 基本指令 grep 1. grep可以过滤文本行 done用于标记循环的结束&#x…...

kafka-集群缩容

一. 简述&#xff1a; 当业务增加时&#xff0c;服务瓶颈&#xff0c;我们需要进行扩容。当业务量下降时&#xff0c;为成本考虑。自然也会涉及到缩容。假设集群有 15 台机器&#xff0c;预计缩到 10 台机器&#xff0c;那么需要做 5 次缩容操作&#xff0c;每次将一个节点下线…...

【nextJs】官网demo学习

最近在看nextjs官方的demo&#xff0c;把一些值得记录的记下来&#xff0c;方便查询&#xff1b; 1.连接数据库 1.1需要把代码传到远程仓库&#xff1a; 执行下面的命令&#xff1a; // 把#后面内容写入readme文件中 echo "# nextjs-dashboard" >> README.…...

在nodejs中使用ElasticSearch(一)安装,使用

使用docker安装ElasticSearch和Kibana 1&#xff09;创建相应的data文件夹和子文件夹用来持久化ElasticSearch和kibana数据 2&#xff09;提前创建好elasticsearch配置文件 data/elasticsearch/config/elasticsearch.yml文件 # Elasticsearch Configuration # # NOTE: Elas…...

图的最短路径:Dijkstra算法和Bellman-Ford算法(C++)

上文中我们了解了拓扑排序, 本节我们来学习最短路径的算法. 在图论中, 最短路径问题是指在一个加权图中找到两个节点之间的权重和最小的路径. 最短路径问题是一个基础且重要的主题. 它不仅在理论上具有挑战性, 而且在实际应用中也非常广泛, 比如交通导航, 社交网络分析等. 本…...

【WebGL】fbo双pass案例

双pass渲染案例&#xff08;离线渲染一个三角面&#xff0c;然后渲染到一个占满屏幕的矩阵上&#xff09; 离线渲染如何需要开启深度测试的话&#xff0c;需要额外操作&#xff0c;这里不展开 <!DOCTYPE html> <html lang"en"><head><meta ch…...

【机器学习】CNN与Transformer的表面区别与本质区别

仅供参考 表面区别 1. 结构和原理: CNN:主要通过卷积层来提取特征,这些层通过滑动窗口(卷积核)捕捉局部特征,并通过池化层(如最大池化)来降低特征的空间维度。CNN非常适合处理具有网格状拓扑结构的数据,如图像。Transformer:基于自注意力(Self-Attention)机制,能…...