万字长文解读深度学习——GPT、BERT、T5

news2024/11/13 10:34:18

文章目录

  • 🌺深度学习面试八股汇总🌺
  • 一、GPT
      • 为何采用单向Transformer
    • 基于Transformer的优化
      • 层归一化位置
      • 位置编码方式的改进
      • 激活函数
      • 后续改进:指令微调和人类反馈强化学习(RLHF)
  • 二、BERT
    • 预训练任务
    • 1. MLM(Masked Language Model)——掩码语言模型
      • 1.1 原理
      • 1.2 步骤
      • 1.3 掩码的机制
      • 1.4 MLM 的作用
    • 2. NSP(Next Sentence Prediction)——下一句预测
      • 2.1 原理
      • 2.2 步骤
      • 2.3 NSP 的作用
      • 2.4 NSP 的局限性与改进
    • 3. MLM 和 NSP 的结合
    • 4. MLM和NSP任务对比
    • 基于Transformer的优化
      • 特殊的输入表示
      • 激活函数
  • 三、GPT与BERT的主要区别
  • 四、T5
    • 一、T5 的设计理念
    • 二、T5 的架构
    • 三、T5 的预训练任务及过程
      • 1. Span Corruption 填空任务
        • 相较于 BERT 的 MLM
      • 2. 预训练过程
        • 预训练过程
    • 四、微调(Fine-tuning)
    • 五、T5 的变体
    • 六、T5 的优势与局限性
    • 七、T5 的应用场景
    • 八、总结
    • 基于Transformer的优化
      • 相对位置编码(Relative Position Encoding)
      • 去掉 Layer Normalization 中的偏置
      • 简化的模型结构
  • 五、T5、BERT 和 GPT 的对比
      • 总结

🌺深度学习面试八股汇总🌺

GPT(Generative Pre-trained Transformer)、BERT(Bidirectional Encoder Representations from Transformers)和T5(Text-To-Text Transfer Transformer)都是基于Transformer架构的自然语言处理模型,但它们在结构、训练方式和应用场景上有显著的区别。

一、GPT

GPT的全称是“生成式预训练模型”,其主要设计思想是通过大规模的语言建模任务进行预训练,并通过微调来解决下游的具体任务。GPT的结构特点如下:

  1. Transformer解码器架构

    • GPT使用的是Transformer的**解码器(Decoder)**部分。这个架构主要由自注意力机制(self-attention)和前馈神经网络(Feedforward Neural Networks)组成。解码器可以处理序列数据,生成新的序列,因此适合生成任务,如文本生成。
  2. 单向(Autoregressive)语言模型

    • GPT是单向模型,即只能从左到右生成词语。输入的每个词只能依赖于前面的词,不能看后面的词。这种设计使得它在处理语言生成任务时很有效,但在理解句子整体时略显不足。
  3. 预训练任务

    • 预训练阶段,GPT通过自回归的语言建模任务进行训练,目标是预测句子中下一个词。然后,针对不同任务(如文本分类、问答等)进行微调。
  4. 适合生成任务

    • GPT强大的生成能力,自回归的生成文本,每次生成一个词并将其作为输入,再生成下一个词。这种方式使它特别适合生成连贯的段落和长文本。

为何采用单向Transformer

使用的是解码器自回归生成模式
使用了Masked Self-Attention(所谓Masked,即遮蔽的意思),即句子中的每个词,都只能对包括自己在内的前面所有词进行Attention,这就是单向Transformer。

基于Transformer的优化

除了仅使用解码器堆叠的架构、未来遮蔽(自回归语言模型)外,还做了下面的优化。

层归一化位置

  • 在标准 Transformer 中,层归一化(Layer Normalization)通常放在残差连接和前馈网络之后,而 GPT 将层归一化放在残差连接之前,称为 Pre-Layer Normalization
  • 这种调整有助于在深层网络中保持梯度的稳定性,并减轻训练深度模型时梯度消失的问题。

位置编码方式的改进

  • GPT 最初使用的绝对位置编码(如 GPT-2 和 GPT-3 中使用的简单绝对位置编码),后续的 GPT-4 等新版本采用了 混合位置编码旋转位置编码 等技术,使得位置编码对更长序列具有更好的泛化性。
  • 这些改进帮助模型在长文本和复杂结构的文本上表现更好。

激活函数

BERT 使用的是 GELU 激活函数,而不是传统 Transformer 的 ReLU。GELU 的平滑性和更好的梯度流动特性,使其在深度语言模型中表现更优,提升了模型在复杂自然语言任务上的性能。

后续改进:指令微调和人类反馈强化学习(RLHF)

  • 在 GPT-3.5 和 GPT-4 中,引入了 指令微调基于人类反馈的强化学习(RLHF)。通过在人类指令和偏好的数据上微调模型,使其在对话、问答等任务中更符合用户意图。
  • RLHF 训练方法提高了生成文本的自然性和用户满意度,使得模型在提供建议和解释复杂问题时更加精确。

二、BERT

BERT全称是“Transformers的双向编码表示”,它是为了提升语言理解任务(如文本分类、问答等)的效果而设计的。BERT的结构特点如下:

  1. Transformer编码器架构

    • BERT使用的是Transformer的编码器(Encoder)部分。与解码器不同,编码器主要用于表示输入序列中的每个词,并关注该词与序列中其他词之间的关系
  2. 双向(Bidirectional)语言模型

    • BERT是一种双向模型,即在处理某个词时,既可以考虑到该词左边的词,也可以考虑到右边的词。通过这种双向机制,BERT在理解句子的全局语义上有显著优势
  3. 预训练任务

    • BERT的预训练主要基于两项任务:
      • Masked Language Model (MLM):随机遮盖输入序列中的部分词语,然后让模型预测被遮盖的词。这使得模型在训练过程中学会了利用上下文信息。
      • Next Sentence Prediction (NSP):预测两句话是否相邻。这个任务增强了模型理解句间关系的能力。
  4. 适合理解任务

    • 由于BERT的双向特性,它在处理语言理解任务时表现极为出色,如文本分类、问答系统、命名实体识别等。

预训练任务

MLM(Masked Language Model)NSP(Next Sentence Prediction) 是 BERT(Bidirectional Encoder Representations from Transformers)模型的两种预训练任务。它们的设计目的是帮助BERT 更好地理解语言结构和语义关系,尤其是在下游自然语言处理任务(如分类、问答、命名实体识别等)中增强模型的表现。下面分别介绍这两个任务的原理和目的。

1. MLM(Masked Language Model)——掩码语言模型

1.1 原理

MLM 通过随机掩盖输入序列中的一些词,并要求模型通过上下文信息预测这些被掩盖的词,来帮助模型学习上下文中的词语关系

1.2 步骤

  1. 输入序列:BERT 接收输入序列,如一个句子或者一段文本。
  2. 随机掩盖部分词汇:BERT 随机选择输入序列中15% 的词,并将它们替换为特殊的 [MASK] 标记。
  3. 模型预测被掩盖的词:模型的目标是基于上下文(即未被掩盖的其他词),预测被 [MASK] 掩盖的词。BERT 通过最大化被掩盖词的正确预测概率来进行训练。

1.3 掩码的机制

掩盖的词中:

  • 80%:用 [MASK] 代替这个词。
  • 10%:随机替换为词汇表中的其他词。
  • 10%:保持词语不变。

这种机制是为了让模型不仅能学会对 [MASK] 标记进行预测,还能在下游任务中更好地处理实际出现的词,因为在推理阶段不会有 [MASK] 标记。

1.4 MLM 的作用

  • 双向上下文学习:通过预测被掩盖的词,BERT 能够同时利用词的左侧和右侧上下文进行训练,学习语言的全局信息。这使得 BERT 成为双向语言模型,能够捕捉到句子中的前后依赖关系。
  • 语言理解增强:MLM 帮助 BERT 学习丰富的词汇表示和句子结构,使其在处理复杂的自然语言理解任务时具备更强的能力。

2. NSP(Next Sentence Prediction)——下一句预测

2.1 原理

NSP 目的是帮助模型理解句子之间的关系,尤其是在涉及多个句子上下文的任务中,如阅读理解、句子推理等。具体来说,NSP 任务要求模型判断两个句子是否在原文中是连续的

2.2 步骤

  1. 输入两句话:在训练过程中,模型会被输入两个句子(句子 A 和句子 B)。
  2. 判断句子关系
    • 50% 的情况下:句子 B 是句子 A 的实际后续句子,即这两个句子在原始文本中是连续的
    • 另外 50% 的情况下:句子 B 是随机选择的一个句子,两个句子没有关系
  3. 模型预测:BERT 的任务是判断句子 B 是否为句子 A 的真实后续句子。这一任务通过在BERT的 [CLS] 标记位置添加一个分类层来完成,输出是 “是” 或 “否” 的二分类问题。

2.3 NSP 的作用

  • 学习句子间的语义关系:通过 NSP 任务,BERT 能够理解句子之间的逻辑顺序和语义关联。这对于多句子的自然语言推理、文档级别的任务、问答等场景非常重要。
  • 增强文本的全局理解:NSP 不仅帮助模型理解单个句子的上下文,还让模型能够推理出跨句子的语义关系,从而在一些任务(如文本相似度、上下文依赖问答等)中表现更好。

2.4 NSP 的局限性与改进

  • 改进版本(RoBERTa):在后来的研究中,例如 RoBERTa 模型中,研究者发现 NSP 任务对某些下游任务的提升有限,因此 RoBERTa 移除了 NSP 任务,只使用了更大规模的语料库和更长的训练时间,但仍然在许多任务中取得了更好的性能。

3. MLM 和 NSP 的结合

  • MLM 和 NSP 结合训练

    • 通过 MLM,学习了如何从局部上下文中预测词语,从而增强语言的理解能力;
    • 通过 NSP,学会了如何理解句子之间的逻辑顺序和语义联系,从而提升了其在跨句子任务上的表现。
  • MLM 和 NSP 的相互作用MLM 关注单个句子的上下文,而 NSP 通过跨句子预测使模型掌握了多句子理解的能力。它们共同作用,使得 BERT 在各类自然语言处理任务(如文本分类、问答系统、文本生成等)中表现优异。

4. MLM和NSP任务对比

任务MLM(Masked Language Model)NSP(Next Sentence Prediction)
目的预测被掩盖的词语,帮助模型学习上下文中的词语关系判断两句话是否在原文中连续,学习句子间的语义关系
输入一个被随机掩盖词语的句子两个句子 A 和 B
输出预测掩盖词的正确词语判断句子 B 是否是句子 A 的真实后续句
任务目标学习句子内部的词语依赖关系,增强词表示学习句子之间的语义联系,增强句子对的理解
对模型的作用强化模型对上下文的理解能力,提高词表示的质量增强句子间关系的推理能力,适合多句子任务
局限性与改进使用掩码词语导致预测任务偏离真实场景对部分任务贡献较小(如在 RoBERTa 中被移除)

基于Transformer的优化

除了双向编码器的架构、MLM和NSP的预训练任务外,还做了下面的优化。

特殊的输入表示

  • BERT 引入了特殊的 [CLS][SEP] 标记:
    • [CLS] 标记:每个输入序列的开头都包含一个 [CLS] 标记,它的输出表示整个序列的聚合信息,常用于分类任务。
    • [SEP] 标记用于分隔两个句子,特别是在句子对任务中,例如句子间的关系判断。
  • 这种输入表示方式便于模型处理单句和句子对任务,同时在预训练和微调过程中保持一致。

激活函数

BERT 使用的是 GELU 激活函数,而不是传统 Transformer 的 ReLU。GELU 的平滑性和更好的梯度流动特性,使其在深度语言模型中表现更优,提升了模型在复杂自然语言任务上的性能。

三、GPT与BERT的主要区别

特性GPTBERT
架构基于 Transformer 解码器单向基于 Transformer 编码器双向
方向性单向(从左到右,自回归生成)双向(同时考虑左侧和右侧上下文)
预训练任务自回归语言模型掩码语言模型(MLM)和下一句预测(NSP
应用领域文本生成、对话系统、故事生成等生成任务自然语言理解任务,如分类、NER、问答系统
模型强项强大的生成能力,适合长文本生成强大的语义理解能力,适合分类、句子配对等
  • GPT主要用于生成任务,基于Transformer的解码器,单向训练。
  • BERT用于理解任务,基于Transformer的编码器,双向训练。

GPT和BERT分别在文本生成和文本理解上具有领先的性能,各自适用于不同的自然语言处理任务。

四、T5

T5(Text-To-Text Transfer Transformer)是 Google 提出的一个通用NLP模型,其核心思想是将所有 NLP 任务转换为“文本到文本”(Text-to-Text)的问题统一 NLP 任务格式,提升了模型在多任务上的通用性和泛化能力。

一、T5 的设计理念

T5 的设计目标是构建一个通用的NLP任务模型。T5 团队提出了一种框架,把不同任务(例如翻译、分类、问答等)统一为文本输入到文本输出的格式。因此,不论任务的复杂度和类型如何,所有任务都能在相同的文本格式下进行处理。这一设计带来了以下优点:

  1. 任务统一化:通过将所有任务转换为文本到文本问题,T5 不需要针对不同任务设计特殊的头部或架构改动,提升了模型的通用性。
  2. 灵活性强:T5 的文本到文本框架能处理大量任务,使得模型可以在多任务环境下高效共享知识。
  3. 简化任务适配:对新任务而言,只需将任务描述和目标文本格式化为输入输出对,就可以轻松融入到 T5 的框架中。

二、T5 的架构

T5 使用完整的 Transformer 序列到序列(Seq2Seq)架构,包括编码器和解码器,适合处理生成和理解类任务。

  • 编码器(Encoder):将输入文本转化为编码表示,编码器通过多层自注意力(Self-Attention)和前馈神经网络(Feed-Forward Network)模块,从输入中学习上下文信息。

  • 解码器(Decoder):接收编码器生成的表示,基于解码器的自回归特性逐步生成输出文本。解码器不仅包含自注意力层,还包括与解码器-编码器之间的跨注意力(Cross-Attention)层,从而能够在生成时同时关注到输入和前一步生成的内容。

这种 Seq2Seq 结构使得 T5 适合处理机器翻译、文本生成、问答等需要生成序列的任务,同时也可以通过指定格式执行理解类任务,如文本分类和情感分析。

三、T5 的预训练任务及过程

T5 通过无监督的预训练任务掌握语言知识,之后在具体任务上微调。其预训练任务是一种“填空任务”的变体,称为Span Corruption,核心目的是让模型在大规模无监督文本数据上学习语言模式和上下文理解。

1. Span Corruption 填空任务

在预训练中,T5 通过遮蔽输入中的若干词语片段(spans)并要求模型恢复这些被遮蔽的内容。这一任务过程如下:

  1. 遮蔽片段:在一段输入文本中,随机选择若干不连续的词片段,这些词片段长度不一,通常每个片段包括几个词。被选择的词片段用特定的占位符标记“<extra_id_X>”替换

  2. 生成目标:模型的目标是生成这些被遮蔽的词片段的完整内容。例如,假设输入是“我今天买了<extra_id_0>,还<extra_id_1>。”,目标输出可能是“苹果”对应“<extra_id_0>”,而“去了图书馆”对应“<extra_id_1>”。

  3. 自回归生成:解码器部分需要依次生成遮蔽的词片段,训练时通过预测缺失内容来学习词语之间的相关性。

相较于 BERT 的 MLM

这种方式相较于 BERT 的 MLM(Masked Language Model)有几个优势:

特点T5 的 Span Corruption(片段遮蔽任务)BERT 的 MLM(Masked Language Modeling)
遮蔽方式遮蔽不连续的词片段(spans),每个片段包含多个连续词随机遮蔽单个词(15%的词),每次只遮蔽单个词或字符
遮蔽标记使用统一的占位符(如 <extra_id_0>)替代整个片段,每个片段有唯一标识符每个被遮蔽词用 [MASK] 替换,但只遮蔽单词,无区分标识
预测目标要求模型生成被遮蔽的整个词片段,生成的片段可以包含多个词要求模型预测被掩盖的单个词,预测是单词级别的
上下文建模通过片段遮蔽,模型在预测时需要考虑更长的上下文,能更好地捕获片段之间的关系通过单词级遮蔽,模型关注局部上下文,对长距离依赖支持较弱
生成与理解能力同时提升生成理解能力,尤其适合生成类任务主要提升理解能力,适合分类、匹配等理解类任务
任务形式生成被遮蔽片段的完整序列,适合文本到文本的生成和理解任务预测单词,适合文本理解任务
优势- 强化长距离上下文的理解
- 提升生成任务效果,适合序列生成类任务
- 对片段关系建模良好
- 双向上下文对理解类任务支持好
- 实现较简单
- 更适合单词理解
局限性- 训练更复杂,计算开销更大
- 依赖更复杂的数据格式化
- 不适合仅依赖单词理解的任务
- 不适合生成任务
- 仅单词级别遮蔽,对长依赖关系支持弱

详细对比分析:
T5 的 Span Corruption 增强了模型的生成和理解能力,适合多任务和生成任务;BERT 的 MLM 更偏向理解类任务,适合分类、情感分析等应用。

  • 增强生成能力:T5 的 Span Corruption 任务可以更好地提升生成能力,因为模型在训练中需要生成连续的片段,而非单独的词。
  • 处理长依赖关系:T5 的设计通过恢复长短不一的片段,可以帮助模型更好地理解上下文中的长距离关系。

2. 预训练过程

预训练过程
  1. 选择遮蔽片段:在输入文本中,随机选择不连续的片段(spans),并对每个片段使用一个特殊的占位符(如 <extra_id_0>, <extra_id_1> 等)替换。每个被遮蔽片段长度不一,这样的设计可以模拟现实中的缺失文本情况。

    • 例如,原始输入句子是:“The quick brown fox jumps over the lazy dog.”
    • 遮蔽后的输入可能是:“The quick <extra_id_0> jumps <extra_id_1> dog.”
  2. 构建目标输出:模型的输出目标是生成所有被遮蔽的片段内容。模型需要生成 <extra_id_0> 为 “brown fox”,<extra_id_1> 为 “over the lazy”。

    • 输入:“The quick <extra_id_0> jumps <extra_id_1> dog.”
    • 输出:“<extra_id_0> brown fox <extra_id_1> over the lazy”
  3. 自回归生成:模型通过解码器依次生成每个遮蔽片段的内容。由于生成是自回归的,模型在生成一个片段时只能看到前面已经生成的内容,增强了其生成能力。

四、微调(Fine-tuning)

在完成无监督的预训练之后,T5 通过微调适应具体的下游任务。在微调阶段,任务需要按照预定义的格式转化为文本输入和输出。例如:

  • 翻译任务:格式化输入:“translate English to French: The cat is on the mat”,目标输出为对应的法语翻译:“Le chat est sur le tapis”。
  • 问答任务:格式化输入:“question: Where does the cat sit? context: The cat is on the mat”,目标输出为答案:“on the mat”。
  • 文本分类任务:格式化输入:“sentiment analysis: I love this movie”,目标输出为情感分类结果,如“positive”。

通过这样的格式化方法,T5 可以适应几乎所有的 NLP 任务而无需改变架构。

五、T5 的变体

T5 提供了多个不同参数量的模型变体以适应不同的任务需求和计算资源条件:

  1. T5-Small(3000 万参数)
  2. T5-Base(2.2 亿参数)
  3. T5-Large(7.7 亿参数)
  4. T5-3B(30 亿参数)
  5. T5-11B(110 亿参数)

用户可以根据任务的复杂性和硬件资源选择适合的变体,以平衡模型性能与计算资源需求。

六、T5 的优势与局限性

优势:

  1. 任务统一化:T5 的文本到文本框架使得任务的格式和数据处理变得简单,不需要为不同任务单独设计架构或头部。
  2. 多任务泛化能力强:通过在不同任务上的共享训练,T5 可以高效地在多个任务上表现优异。
  3. 生成和理解任务兼顾:T5 的架构不仅适合生成任务(如翻译、摘要),也适合理解任务(如分类、情感分析)。

局限性:

  1. 计算开销大:由于 T5 需要通过自回归生成输出,尤其在长文本生成任务上,计算量比 BERT 更大。
  2. 任务依赖格式化:虽然 T5 的框架通用,但不同任务的格式化仍然需要额外的预处理。
  3. 大模型参数:T5 的大参数变体(如 11B)在训练和推理时需要大量计算资源,通常对硬件要求较高。

七、T5 的应用场景

由于 T5 采用了统一的“文本到文本”框架,几乎所有 NLP 任务都可以格式化为 T5 处理:

  1. 文本生成:如自动摘要、文章续写等,T5 在生成类任务中表现出色。
  2. 文本分类:通过输入任务说明和待分类文本,T5 可以进行情感分析、主题分类等任务。
  3. 机器翻译:T5 支持多种语言的翻译任务,输入格式化为“translate A to B”即可。
  4. 问答系统:T5 可以根据上下文回答问题,尤其在封闭领域问答任务中效果良好。
  5. 填空和完形填空:适合信息抽取任务或信息补全。
  6. 语言理解:例如文本蕴含、语义相似度判断等,T5 可以通过文本到文本框架轻松处理。

八、总结

T5 是一个具备多任务能力的强大 NLP 模型,其“文本到文本”框架使其在理解和生成任务中均表现出色。T5 的设计、预训练和任务转换流程展示了其通用性和灵活性,广泛适用于机器翻译、文本分类、问答和文本生成等多种任务。

基于Transformer的优化

除了统一的文本到文本框架(Text-to-Text Framework)、片段掩蔽(Span Corruption)外,还做了下面的优化。

相对位置编码(Relative Position Encoding)

  • T5 使用了 相对位置编码,而不是传统 Transformer 的绝对位置编码(例如正弦和余弦位置编码)。在 T5 中,位置信息是通过注意力分数中的相对位置偏置来表示的,而不是直接加入到输入嵌入中。
  • 相对位置编码可以更灵活地适应不同长度的序列,使模型在长文本处理和生成任务中具有更好的表现。

去掉 Layer Normalization 中的偏置

  • T5 去掉了,这在保持模型性能的前提下简化了模型结构并减少了参数量。
  • 尽管这一改动较小,但在 T5 的大规模训练中,

简化的模型结构

  • T5 取消了标准 Transformer 中的额外偏置和层的冗余设计(去除多头自注意力、前馈网络和 Layer Normalization 中的偏置项),简化了编码器-解码器结构,提升了计算效率。
  • 在架构上,T5 保持了标准 Transformer 的堆叠结构,但在参数优化上进行了简化,保证了较少的冗余计算。这种优化有助于减少计算资源的消耗,特别是在分布式训练场景中更为高效。

五、T5、BERT 和 GPT 的对比

以下是 T5、BERT 和 GPT 的详细对比总结表格:

特点T5(Text-To-Text Transfer Transformer)BERT(Bidirectional Encoder Representations from Transformers)GPT(Generative Pre-trained Transformer)
任务类型通用:文本生成和理解任务理解任务(自然语言理解)生成任务(自然语言生成)
模型架构完整的 Seq2Seq 结构(编码器 + 解码器仅编码器仅解码器
预训练任务Span Corruption(片段遮蔽任务):遮蔽词片段并生成完整内容Masked Language Modeling + Next Sentence Prediction自回归:给定前 n 个词预测下一个词
训练目标生成被遮蔽片段的完整序列预测被掩盖词和判断句子间的关系逐词预测下一个词
上下文方向双向编码器 + 自回归(单向)解码器完全双向单向(从左到右)
生成任务适应性出色,适合生成类任务(如机器翻译、摘要)不适合生成任务优秀,适合生成类任务(如对话生成、文本生成)
理解任务适应性良好,可处理情感分析、问答等任务出色,适合文本分类、命名实体识别等理解任务较弱,对上下文理解有限
多任务适应性高,多任务能力强,能统一处理生成和理解任务较低,专注理解任务较低,主要用于生成任务
优势- 多任务适应性强,统一框架便于理解和生成任务
- 适用于多种 NLP 任务
- 生成和理解任务均可胜任
- 理解任务效果优异
- 双向上下文增强对语义理解
- 适合分类和实体识别等任务
- 生成任务中表现出色
- 文本生成自然连贯
- 适合对话和续写等任务
局限性- 训练开销大,对计算资源需求高
- 需要格式化处理不同任务
- 不能生成文本
- 仅适合理解类任务
- 对理解任务表现有限
- 单向上下文限制上下文理解
典型应用- 翻译、摘要生成
- 情感分类
- 问答系统
- 多任务环境
- 文本分类
- 命名实体识别
- 情感分析
- 句子对分类
- 对话生成
- 文章续写
- 自动文本生成

总结

  • T5:适用于多任务处理,通过统一的“文本到文本”框架,兼顾生成和理解任务,尤其在需要处理多种任务的环境中表现优异。
  • BERT:专注理解任务,尤其适合需要双向上下文理解的任务,如文本分类和实体识别等。
  • GPT:适合生成任务,通过自回归生成自然流畅的文本,擅长对话、续写等任务,但在理解任务上表现较弱。

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

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

相关文章

高校宿舍信息管理系统小程序

作者主页&#xff1a;编程千纸鹤 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验&#xff0c;被多个学校常年聘为校外企业导师&#xff0c;指导学生毕业设计并参…

森林防火责任大于天,可视化监控大屏让隐患无处遁形。

在大自然的生态系统中&#xff0c;森林是地球之肺&#xff0c;为我们提供着清新的空气、丰富的资源和优美的环境。然而&#xff0c;森林火灾却如同一场可怕的灾难&#xff0c;随时可能摧毁这片宝贵的绿色财富。森林防火责任大于天&#xff0c;而可视化监控大屏的出现&#xff0…

“穿梭于容器之间:C++ STL迭代器的艺术之旅”

引言&#xff1a; 迭代器&#xff08;Iterator&#xff09;是C STL&#xff08;标准模板库&#xff09;中非常重要的一部分&#xff0c;它提供了一种统一的方式来遍历容器中的元素。无论容器是数组、链表、树还是其他数据结构&#xff0c;迭代器都能够以一致的方式访问这些数据…

el-scrollbar 动态更新内容 鼠标滚轮无效

有以下功能逻辑&#xff0c;实现了一个时间轴组件&#xff0c;点击、-号后像地图那样放大组件以显示不同的UI。 默认显示年月&#xff1a; 当点击一下加号时切换为年&#xff1a; 当点击减号时切换为日&#xff1a; 即加号、减号点击就是在年月日显示进行切换。给Scrollvie…

Linux【基础篇】

-- 原生罪 linux的入门安装学习 什么是操作系统&#xff1f; 用户通过操作系统和计算机硬件联系使用。桥梁~ 什么是Linux&#xff1f; 他是一套开放源代码&#xff08;在互联网上找到Linux系统的源代码&#xff0c;C语言写出的软件&#xff09;&#xff0c;可以自由 传播&…

C++类(5)

1.<<和>>操作符重载 我们该如何重载操作符<<和>>呢&#xff1f; 如果在类里面&#xff0c; void operator<<(ostream& out) {out << _year << "年" << _month << "月" << _day <&l…

【MM-Align】学习基于输运的最优对齐动力学,快速准确地推断缺失模态序列

代码地址 - > github传送 abstract 现有的多模态任务主要针对完整的输入模态设置&#xff0c;即每个模态在训练集和测试集中要么是完整的&#xff0c;要么是完全缺失的。然而&#xff0c;随机缺失的情况仍然没有得到充分的研究。在本文中&#xff0c;我们提出了一种新的方…

高精度算法-保姆级讲解

目录 1.什么是高精度算法 2.高精度加法 3.高精度减法 4.高精度乘法 5.高精度除法 &#xff08;高精度除以低精度&#xff09; 6.高精度阶乘&#xff08;n个低精度数相乘&#xff09; 1.什么是高精度算法 高精度算法&#xff08;High Accuracy Algorithm&#xff09;是…

vue大疆建图航拍功能实现

介绍 无人机在规划一块区域的时候&#xff0c;我们需要手动的给予一些参数来影响无人机飞行&#xff0c;对于一块地表&#xff0c;无人机每隔N秒在空中间隔的拍照地表的一块区域&#xff0c;在整个任务执行结束后&#xff0c;拍到的所有区域照片能够完整的表达出一块地表&…

learnopencv系列三:GrabCut和DeepLabv3分割模型在文档扫描应用中的实现

文章目录 一、使用OpenCV实现自动文档扫描1.1 图片预处理1.2 查找轮廓1.3 检测角点1.4 仿射变换1.5 Streamlit Web App1.5.1 设置扫描函数和图像下载链接函数1.5.2 streamlit app1.5.3 测试结果 二&#xff1a;DeepLabv3文档分割2.1 项目背景2.2 合成数据集2.2.1 图像收集与预处…

SQLite的BLOB数据类型与C++二进制存储学习记录

一、BLOB数据类型简介 Blob&#xff08;Binary Large Object&#xff09;是一种用于存储二进制数据的数据类型&#xff0c;在数据库中常用于存储图片、音频和视频等大型&#xff08;大数据量&#xff09;的二进制数据[1-2]。需要注意的是&#xff0c;SQLite中BLOB类型的单对象最…

C# 自己编写web服务

文件后缀响应 "text/html"; 文件后缀响应 "application/json"; httpListenerContext.Response.ContentType 文件后缀响应; httpListenerContext.Response.AppendHeader("Access-Control-Allow-Origin", "*"); // L…

微服务day04

网关 网关路由 快速入门 创建新模块&#xff1a;hm-gateway继承hmall父项目。 引入依赖&#xff1a;引入网关依赖和nacos负载均衡的依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"…

Agent框架调研:19种Agent架构对比分析

代理&#xff08;Agent&#xff09;指能自主感知环境并采取行动实现目标的智能体&#xff0c;即AI作为一个人或一个组织的代表&#xff0c;进行某种特定行为和交易&#xff0c;降低一个人或组织的工作复杂程度&#xff0c;减少工作量和沟通成本。 背景 目前&#xff0c;我们在…

ODOO学习笔记(4):Odoo与SAP的主要区别是什么?

Odoo 和 SAP 都是知名的企业资源规划&#xff08;ERP&#xff09;软件&#xff0c;它们之间存在以下一些主要区别&#xff1a; Odoo与SAP的区别 一、功能特点 功能广度 Odoo&#xff1a;提供了一整套全面的业务应用程序&#xff0c;涵盖了销售、采购、库存管理、生产、会计、…

python之正则表达式总结

正则表达式 对于正则表达式的学习&#xff0c;我整理了网上的一些资料&#xff0c;希望可以帮助到各位&#xff01;&#xff01;&#xff01; 我们可以使用正则表达式来定义字符串的匹配模式&#xff0c;即如何检查一个字符串是否有跟某种模式匹配的部分或者从一个字符串中将与…

【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板

文章目录 一、日志框架介绍1、浅谈与slfj4、log4j、logback的关系2、性能方面3、Slf4j使用方法 二、log4j配置三、log4j2配置1、SpringBoot整合Log4j22、非SpringBoot项目引入的依赖3、log4j2-spring.xml文件&#xff08;Spring项目&#xff09;或log4j2.xml&#xff08;非Spri…

StarUML建模工具安装学习与汉化最新零基础详细教程【一键式下载】(适用于Windows、MacOS系统、Linux系统)

StarUML破解安装下载教程 前言&#xff1a; StarUML破解与汉化安装下载教程&#xff0c;仅供学习研究和交流使用&#xff0c;禁止作为商业用途或其他非法用途&#xff01; 仓库作者&#xff1a;X1a0He&#xff0c;经仓库作者授权使用。 目录 StarUML破解安装下载教程1. 下载…

【网络安全】2.3 安全的网络设计_2.防御深度原则

文章目录 一、网络架构二、网络设备三、网络策略四、处理网络安全事件五、实例学习&#xff1a;安全的网络设计结论 网络设计是网络安全的基础&#xff0c;一个好的网络设计可以有效的防止攻击者的入侵。在本篇文章中&#xff0c;我们将详细介绍如何设计一个安全的网络&#…

IoTDB 与 HBase 对比详解:架构、功能与性能

五大方向&#xff0c;洞悉 IoTDB 与 HBase 的详尽对比&#xff01; 在物联网&#xff08;IoT&#xff09;领域&#xff0c;数据的采集、存储和分析是确保系统高效运行和决策准确的重要环节。随着物联网设备数量的增加和数据量的爆炸式增长&#xff0c;开发者和决策者们需要选择…