预训练任务

NLP:预训练 NLP 阅读详情

预训练任务 - Mask Language Model

  1. jieba预分词
  2. 长度小于4的词直接mask(mask_ids就是input_ids)
if rands > self.mask_rate and len(word) < 4:
	word = word_list[i]
	word_encode = tokenizer.encode(word, add_special_tokens=False)
	for token in word_encode:
	    mask_ids.append(token)
	    labels.append(self.ignore_labels)
	record.append(i)
  1. 剩余的词按照ngrams随机抽取mask,mask_rate为0.8
else:
	n = np.random.choice(self.ngrams, p=self.pvals)
	for index in range(n):
	    ind = index + i
	    if ind in record or ind >= len(word_list):
	        continue
	    record.append(ind)
	    word = word_list[ind]
	    word_encode = tokenizer.encode(word, add_special_tokens=False)
	    for token in word_encode:
	        mask_ids.append(self.token_process(token))
	        labels.append(token)
  1. Mask机制:80%mask,10%不变,10%随机替换
def token_process(self, token_id):
        rand = np.random.random()
        if rand <= 0.8:
            return self.tokenizer.mask_token_id
        elif rand <= 0.9:
            return token_id
        else:
            return np.random.randint(1, self.vocab_length)
  1. 结果
#     print('sentence:',sample['text'])
#     print('input_ids:',mask_ids)
#     print('decode inputids:',self.tokenizer.decode(mask_ids))
#     print('labels',labels)
#     print('decode labels:',self.tokenizer.decode(labels))
#     print('*'*20)
      return {
           'input_ids': torch.tensor(input_ids), # mask_ids
           'labels': torch.tensor(batch_labels), # labels
           'attention_mask': torch.tensor(attention_mask),
           'token_type_ids': torch.tensor(token_type_ids)
       }

预训练任务 - Sentence Order Predict

  1. 把输入文本分割成两个部分A和B
def get_a_and_b_segments(sample, np_rng):
    """Divide sample into a and b segments."""

    # Number of sentences in the sample.
    n_sentences = len(sample)
    # Make sure we always have two sentences.
    assert n_sentences > 1, 'make sure each sample has at least two sentences.'

    # First part:
    # `a_end` is how many sentences go into the `A`.
    a_end = 1
    if n_sentences >= 3:
        # Note that randin in numpy is exclusive.
        a_end = np_rng.randint(1, n_sentences)
    tokens_a = []
    for j in range(a_end):
        tokens_a.extend(sample[j])

    # Second part:
    tokens_b = []
    for j in range(a_end, n_sentences):
        tokens_b.extend(sample[j])

    # Random next:
    is_next_random = False
    if np_rng.random() < 0.5:
        is_next_random = True
        tokens_a, tokens_b = tokens_b, tokens_a

    return tokens_a, tokens_b, is_next_random
  1. max_seq_length - 3因为还需要拼上[CLS] ,[SEP] ,[SEP]
  2. 每一个句子内按照字进行Mask
# Masking.
max_predictions_per_seq = self.masked_lm_prob * len(tokens)

(tokens, masked_positions, masked_labels, _, _) = create_masked_lm_predictions(
     tokens, self.vocab_id_list, self.vocab_id_to_token_dict, self.masked_lm_prob,
     self.tokenizer.cls_token_id, self.tokenizer.sep_token_id, self.tokenizer.mask_token_id,
     max_predictions_per_seq, self.np_rng,
     masking_style='bert')
  • 注意需要考虑Bert的WordPiece的分词格式,兼容以前##的形式,如果后面的词是##开头的,那么直接把后面的拼到前面当作一个词
  • 如何抽取词进行Mask,需要采样,几何分布
if not geometric_dist:
       n = np_rng.choice(ngrams[:len(cand_index_set)],
                          p=pvals[:len(cand_index_set)] /
                          pvals[:len(cand_index_set)].sum(keepdims=True))
else:
    # Sampling "n" from the geometric distribution and clipping it to
    # the max_ngrams. Using p=0.2 default from the SpanBERT paper
    # https://arxiv.org/pdf/1907.10529.pdf (Sec 3.1)
    n = min(np_rng.geometric(0.2), max_ngrams)
  1. Span Mask
# 合并[MASK] 因为这里用的是Bert的mask函数,Bert是按字mask的,
# 这里把连续的mask合并成一个MASK从而达到span mask的效果
span_mask_souce = []
for t in source:
    # 如果是连续的多个mask,则跳过
    if len(span_mask_souce) > 0 \
            and t is self.tokenizer.mask_token_id \
            and span_mask_souce[-1] is self.tokenizer.mask_token_id:
        continue
    span_mask_souce.append(t)

source = torch.LongTensor(span_mask_souce)

预训练任务 - BART自回归掩码

  • 注意BART的任务,自回归掩码
prev_output_tokens = torch.zeros_like(target)
# match the preprocessing in fairseq
prev_output_tokens[0] = self.tokenizer.sep_token_id
prev_output_tokens[1:] = target[:-1]

source_ = torch.full((self.max_seq_length,),
                     self.tokenizer.pad_token_id, dtype=torch.long)
source_[:source.shape[0]] = source
target_ = torch.full((self.max_seq_length,), -100, dtype=torch.long)
target_[:target.shape[0]] = target
prev_output_tokens_ = torch.full(
    (self.max_seq_length,), self.tokenizer.pad_token_id, dtype=torch.long)
prev_output_tokens_[:prev_output_tokens.shape[0]] = prev_output_tokens
attention_mask = torch.full((self.max_seq_length,), 0, dtype=torch.long)
attention_mask[:source.shape[0]] = 1
model_inputs.append({
    "input_ids": source_,
    "labels": target_,
    "decoder_input_ids": prev_output_tokens_,
    "attention_mask": attention_mask,
})
  • 除了算loss,还可以算acc
def comput_metrix(self, logits, labels):
    label_idx = labels != -100
    labels = labels[label_idx]
    logits = logits[label_idx].view(-1, logits.size(-1))
    y_pred = torch.argmax(logits, dim=-1)
    y_pred = y_pred.view(size=(-1,))
    y_true = labels.view(size=(-1,)).float()
    corr = torch.eq(y_pred, y_true)
    acc = torch.sum(corr.float())/labels.shape[0]
    return acc

预训练任务 - Next Token Predict

  • https://github.com/Morizeyao/GPT2-Chinese/blob/old_gpt_2_chinese_before_2021_4_22/train.py
  • https://medium.com/@akash.kesrwani99/understanding-next-token-prediction-concept-to-code-1st-part-7054dabda347

outputs = model.forward(input_ids=batch_inputs, labels=batch_inputs)
# forward
transformer_outputs = self.transformer(
            input_ids,
           ...
        )
hidden_states = transformer_outputs[0]
lm_logits = self.lm_head(hidden_states)
loss = None
 if labels is not None:
     labels = labels.to(lm_logits.device)
     shift_logits = lm_logits[..., :-1, :].contiguous()
     shift_labels = labels[..., 1:].contiguous()
     loss_fct = CrossEntropyLoss()
     loss = loss_fct(
         shift_logits.view(-1, shift_logits.size(-1)), shift_labels.view(-1)
     )

loss, logits = outputs[:2]


shift_logits = lm_logits[..., :-1, :].contiguous()  # sequence[:n-1] 
shift_labels = labels[..., 1:].contiguous()	# sequence[1:n]

自己写的代码:

model.train()
losses = []
for idx, data in enumerate(tqdm(loader, desc = f"Epoch {epoch}"), 0):
    y = data["target_ids"].cuda()
    y_ids = y[:, :-1].contiguous()
    lm_labels = y[:, 1:].clone().detach()
    lm_labels[y[:, 1:] == tokenizer.pad_token_id] = -100 # lm pad mask
    
    ids = data["source_ids"].cuda()
    mask = data["source_mask"].cuda()

    outputs = model(
        input_ids=ids, # 【0,n】
        attention_mask=mask,
        decoder_input_ids=y_ids, # 【0,n-1】
        labels=lm_labels, # 【1,n】
    )
    loss = outputs[0].sum()


举个例子:

input_sequence = 【0,1,2,3,4,5】

Decoder的【:n-1】和【1:n】两个序列
shift_logits =【0,1,2,3,4】
shift_labels = 【1,2,3,4,5】
这两个sequence计算ce loss,效果就是0预测1,1预测2,…

  • 也就是next token predict

在这里插入图片描述

T5的实验结论

预训练对比

迁移学习的核心思想就是两阶段:Pre-Train,Fine-tuning

Preliminary work that applied the transfer learning paradigm of pre-training and fine-tuning all of the model’s parameters to NLP problems used a causal language modeling objective for pre-training

  • 预训练阶段:之前主要是因果语言建模(自回归),但是Bert的MLM做Pre-Train性能更佳
    在这里插入图片描述

MLM的方式又有讲究:
在这里插入图片描述
T5 Denoise的方式:
在这里插入图片描述

  • Token的增删替换打乱
    在这里插入图片描述

  • Mask的比例
    在这里插入图片描述

  • Mask合并成Span,Span的长度(spanbert中的几何分布)
    在这里插入图片描述

三大模型架构对应三大注意力机制:
在这里插入图片描述
在这里插入图片描述
总结一下实验策略:
在这里插入图片描述

训练策略

微调策略

  • adapter layers:在FFN层之后 加入dense-ReLU-dense blocks
  • Gradual unfreezing:只微调最后一层
    在这里插入图片描述

多任务学习

  • 在预训练时运用多任务学习,对下游任务没有增益,采样策略没有大的变化

  • 多任务训练集配比:N个任务,第M个任务训练集大小为K(最大值限制)
    计算公式如下:
    rm=min(em,K)∑min(en,K) r_m = \frac{min(e_m,K)}{\sum{min(e_n,K)}} rm​=∑min(en​,K)min(em​,K)​

  • 温度系数配比: T = 1,不变,T越大越接近等比例
    rm=(min(em,K)∑min(en,K))1T r_m =(\frac{min(e_m,K)}{\sum{min(e_n,K)}})^{\frac{1}{T}} rm​=(∑min(en​,K)min(em​,K)​)T1​

  • 等比例采样


  • 在微调时运用多任务学习
  • 预训练时,一般都是无监督学习,那么CV里面会在预训练时使用有监督数据,这会有增益嘛?

结论:

  1. 多任务预训练后,再FT:和无监督预训练再FT差不多
  2. 不经过预训练直接微调:效果有点差
  3. 监督学习的多任务预训练:除了翻译任务,其他都非常差

在这里插入图片描述

Batch size 和训练step

在这里插入图片描述

Beam search

对于长序列的输出非常关键,对性能有提升

模型参数大小

  • Scaling Law成立,涌现现象也存在
    在这里插入图片描述
  • 关于数据的sclaing law,加大训练语料有增益,但也不完全取决于sclaing law

在这里插入图片描述

最后总结

  1. 对于短序列生成,建议无监督的目标函数
  2. 在领域内无监督的数据上预训练,会对下游任务产生增益,重复的数据会损失性能
  3. 训练生成式模型,需要大量且多样的数据集
  4. 小模型在大量数据上训练,要优于大模型在少量数据上训练

BART的预训练任务

  • 5种denoise的策略
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

BART做机器翻译任务

  • we replace BART’s encoder embedding layer with a new randomly initialized encoder.
    The model is trained end-to-end, which trains the new encoder to map foreign words into an input that BART can de-noise to English.

  • The new encoder can use a separate vocabulary from the original BART model.

两阶段训练:

  • In the first step, we freeze most of BART parameters and only update the randomly initialized source encoder, the BART positional embeddings, and the self-attention input projection matrix of BART’s encoder first layer

  • In the second step, we train all model parameters for a small number of iterations.

在这里插入图片描述

BERT预训练的MLM和NSP任务的损失函数都是什么? BERT预训练过程中包括两个主要任务:Masked Language Modeling(MLM) 和 Next Sentence Prediction(NSP)。 阅读详情

相关推荐

模型预训练任务

然而,在模型预训练阶段的损失函数中,由于并未将所有词元的损失都纳入计算,当使用相同规模的数据集进行训练时,采用前缀语言建模训练的模型在性能上通常会稍逊于使用标准语言建模任务训练的模型。混合去噪器,又称 UL2 损失,通过将语言建模和去噪自编码的目标均视为不同类型的去噪任务,对于预训练任务进行了统一建模。除了传统的语言建模任务外,去噪自编码任务是另一种常见的语言模型预训练任务,广泛应用于 BERT、T5 等预训练语言模型中。,语言建模任务的目标定义为词元的预测任务:基于序列中当前位置之前的词元序列。

weixin_43961909的博客 783

预训练语言模型综述(二)—— 预训练任务及训练策略

本系列文章是笔者以邱锡鹏老师《Pre-trained Models for Natural Language Processing: A Survey》为主要参考材料所做的关于“预训练(语言)模型综述”的记录,所涉及之素材也包括其他相关综述与未被纳入此综述的工作,分享出来与大家交流讨论。此篇记录预训练任务及训练技巧。 预训练任务 预训练任务可归类成监督学习、无监督学习和自监督学习三类任务。自监督学习略微特殊,它也有输入和输出标签,所以训练方法其实和监督学习一致,但是它的标签是自动生成而非人工标注的,最典型的

Forskamse's Blog 3957

图文多模态预训练任务整理

在此之后,对比学习的思想逐渐流行,也应用在了多模态预训练任务中,并起到了很好的效果。而在最近的研究中,较为传统的任务已经无法满足多模态性能提升的要求,研究者们主要有两方面的尝试:1)将各种任务统一化,以适应不同模态的输入以及大一统的趋势;其中,除了具体网络结构,预训练任务也对预训练的效果起到了至关重要的作用,下面我就介绍几个常见的多模态预训练任务,以及它们在各种模型上的应用。需要注意的是,虽然MLM和MVM是针对单模态的任务,但由于模型内部会有多模态的交互,因此用到的信息往往已经不是单模态的了。

u013250861的博客 563

预训练模型

一、bert 论文:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 代码:https://github.com/google-research/bert 作者:google 1、贡献 提出一种双向语言模型,基于该预训练模型finetune后在各下游任务取得sota效果。 模型结构图如下,包括两个任务,一个是MLM(mask language model),另一个是NSP任务(next sente

knight的博客 5968

STorM BGC V1.31硬件+SimpleBGC固件:从零搭建三轴云台开发环境(Keil+JLink避坑指南)

本文详细介绍了如何从零搭建STorM BGC V1.31硬件+SimpleBGC固件的三轴云台开发环境,涵盖硬件连接、Keil+JLink开发工具配置、固件编译与烧录等关键步骤,并提供了常见问题的解决方案和调试技巧,帮助开发者快速上手三轴云台开发。

weixin_28693683的博客 380

探索LLM世界:新手小白的学习路线图

通过系统的学习和实践,新手小白也能逐步掌握LLM的核心技术。掌握LLM不仅能提升个人技术水平,还能为职业发展带来广阔的前景。未来,随着技术的不断进步,LLM将在更多领域发挥重要作用,成为推动科技进步的重要力量。学习LLM是一条充满挑战但也充满机遇的道路。只要你坚持不懈、不断学习和实践,就一定能够在LLM领域取得突破。希望本文提供的学习路线图能为你指明方向,助你早日掌握LLM,开启AI学习的新篇章!

m0_62110645的博客 2359

fairseq入门:Simple LSTM

依然是跟随官方文档利用插件扩展(添加一个新的 FairseqEncoderDecoderModel )将简单的LSTM作为encoder和decoder进行机器翻译任务:使用 LSTM 对源句子进行编码,然后将最终的隐藏状态传递给第二个 LSTM 来解码目标句子(不使用注意力机制)。在自然语言处理中,注意力机制主要用于解决机器翻译和文本生成等任务。其基本思想是,在生成每个输出单元(例如,翻译的单词)时,模型不仅关注输入序列的整体信息,还关注输入序列中与当前输出单元最相关的部分。

weixin_43709244的博客 348

Chapter 4 Ripple-Based Control Technique Part I

本文介绍了DC-DC转换器的纹波控制技术,重点分析了迟滞控制、恒定开通时间控制、恒定关断时间控制等方案的工作原理及优缺点。纹波控制无需补偿网络,具有快速瞬态响应和结构简单的优势,特别适合电池供电应用。其中,恒定开通时间控制在轻载时能自动延长关断时间,实现伪定频工作;而恒定关断时间控制轻载效率较低。文章还讨论了纹波注入技术解决Boost转换器右半平面零点问题,并比较了不同控制方案在负载瞬态下的性能表现。最后指出基于纹波的控制技术在提高调节精度和降低EMI方面的改进方向。

2304_76736886的博客 1299

8.1.3预训练语言模型BERT——预训练任务示例

因此模型蒸馏方向的模型或技术被提出来,其主要通过将性能好的大模型作为Teacher模型,将运行效率高的小模型作为Student模型,通过知识蒸馏的方式,将Teacher模型的知识逐步迁移至Student模型中。一样的预训练模型,其主要采用预训练+微调的策略进行使用,预训练主要是帮助BERT模型学习语言知识,在预训练完成后,可基于预训练后的模型,对下游任务进行微调训练,往往能够在下游任务中获得比较好的效果。基于预训练后的BERT模型进行下游任务微调,能够帮助下游任务获得更好的效果。里面,导致上下文碎片化。

我亦无他,唯手熟尔 1646

告别配置烦恼!保姆级教程:在Windows 10/11上为QT5.14.2配置MSVC2017编译器(附VS2022组件避坑指南)

本文提供了一份详细的保姆级教程,指导如何在Windows 10/11上为QT5.14.2配置MSVC2017编译器,包括VS2022组件避坑指南。从环境准备到关键配置,再到调试工具验证和Qt Creator中的编译器设置,一步步解决常见问题,帮助开发者快速搭建稳定可靠的开发环境。

weixin_30615767的博客 501

opencv+nvcodec实现视频硬解码

最近遇到一个新项目,AI推理在上,为了方便和节省成本的考虑决定研究下模块。根据官网的说法显卡具有独立的和模块,所以理论上和是独立互不干涉的。以前的项目都只是把显卡当成推理工具,没有将它的功能利用起来,本身也是一种浪费。事实真的有这么丝滑吗?看到这里,如果你真的觉得是白叫的那就真的是了,事实究竟如何,请听我娓娓道来。NVCODEC全称是 NVIDIA VIDEO CODEC,是NVIDIA为绝大多数显卡配置的硬件编解码单元。不一定是所有显卡都有,一般来讲越新的显卡硬件编解码就越强,支持的格式也就越新。

jiexijihe945的博客 1万+

[预训练]Encoder-only架构的预训练任务核心机制

本文系统解析了BERT预训练模型的核心技术,重点介绍其两大训练任务:掩码语言建模(MLM)和下一句预测(NSP)。MLM通过随机遮蔽15%的单词(其中80%替换为[MASK],10%随机替换,10%保留原词),迫使模型学习双向上下文表征;NSP则通过判断句子对关系提升篇章理解能力。文章还分析了BERT的改进方案,包括RoBERTa的动态掩码、ALBERT的参数优化、SpanBERT的片段掩码等变体,并探讨了句子表征提取方法及各向异性问题的解决方案。

1712

Unity序列帧动画输出全攻略:Recorder+Timeline实战与透明通道处理

序列帧动画是游戏开发、影视动画和UI动效中的基础技术,指将连续动作分解为一系列静态图像并按序播放,形成动态视觉效果。其原理是通过时间轴精确控制每一帧的内容与时机,实现动画的逐帧呈现。在实时渲染领域,序列帧输出技术价值显著,它能够将动态内容高质量地转换为静态图像序列,便于跨平台复用、后期合成与资源分发。应用场景广泛,包括角色动画导出、技能特效制作、宣传片素材生成等。本文聚焦Unity引擎,深入解析如何利用Recorder与Timeline工具链,高效输出带Alpha透明通道的PNG序列帧,并重点攻克透明通道处

weixin_31556767的博客 327

【总结】Transformer预训练任务总结

transformer预训练模型使用记录

Finks 1087

AUTOSAR从入门到精通-【应用实战篇】车载HMI-ADAS

ADAS是高级驾驶辅助系统(Advanced Driving Assistance System)简称ADAS。ADAS高级驾驶辅助系统是利用安装于车上的各式各样的传感器, 在第一时间收集车内外的环境数据, 进行静、动态物体的辨识、侦测与追踪等技术上的处理, 从而能够让驾驶者在最快的时间察觉可能发生的危险, 以引起注意和提高安全性的主动安全技术。

lin_xiu的博客 1433

dify进阶:使用 FastAPI 的 StreamingResponse 实现高效的数据流传输

在 FastAPI 框架中,是一个非常有用的工具,它允许你以流的方式发送数据给客户端,而不是一次性加载所有内容到内存中再发送。这对于处理大型文件下载、视频流或者任何需要长时间处理的任务特别有用。

xiezhipu的博客 1432

BERT可以增加哪些预训练任务?

BERT基于NSP和MLM两个任务进行预训练,如果对BERT进行改进,一个可行的方向就是增加更多的预训练任务,那么除了这两个任务之外,还可以增加哪些预训练任务呢? 可以增加的预训练任务有一个前提,就是这些任务的训练数据要能从无监督的数据中获取,这样才能获取到海量的数据,符合这一要求的任务可以进行尝试。 提供一些预训练任务的思路: 1.Capitalization Prediction Task 预测单词是否大写。与其他词语相比,大写词语通常具有特定的语义价值。 2.Token-Document Rela.

火云明月的博客 1289

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

大模型预训练任务

大型预训练模型(如BERT、GPT等)通常使用一些预训练任务来学习语言表示。这些任务旨在让模型对语言进行深入理解,从而为后续的下游任务提供更好的表征。:模型随机地掩盖输入文本中的一些词汇,然后预测这些被掩盖的词汇。这个任务使模型能够学习上下文中的词汇关系和语义。:给定两个句子,模型需要预测这两个句子是否是连续的。这个任务可以帮助模型理解句子之间的逻辑关系和语义连贯性。:模型需要对输入文本中的每个词汇进行分类,例如词性标注、命名实体识别等。这个任务有助于模型学习词汇的语法和语义信息。

星辰火之梦 2412

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

大模型-模型预训练-预训练任务

设计合适的自监督训练任务,使得模型能够从海量五标注数据中学习到广泛的语义知识与世界知识。

sgliquangang的专栏 590

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

多任务预训练在垂直行业中的应用

很高兴能够撰写这篇技术博客文章,让我们一起探讨"多任务预训练在垂直行业中的应用"这一有趣且富有挑战性的话题。作为一位世界级的人工智能专家和计算机领域的大师,我将以深入浅出的方式,为您呈现这个领域的前沿进展和最佳实践。让我们一起开启这段精彩的技术探索之旅吧! 1. 背景介绍 近年来,随着深度学习技术的飞速发展,预训练模

AI架构师小马 1064

[oneAPI] 基于BERT预训练模型的SWAG问答任务

在Intel® DevCloud for oneAPI平台上,我们搭建了实验环境,充分发挥其完全虚拟化的优势,使我们能够专注于模型开发和优化,无需过多关心底层配置和维护工作。为了进一步提升我们的实验效果,我们充分利用了Intel® Optimization for PyTorch,将其应用于我们的PyTorch模型中,从而实现了高效的优化。这一优化策略不仅提升了模型的训练速度和推断性能,还使模型在英特尔硬件上的表现更加卓越,从而加速了实验的整体进程。在这里,我们使用到的也是论文中所提到的。

lxin690的博客 1387

语言模型|大模型的预训练任务

大模型的预训练主要通过设计【自监督】预训练任务,从无标注数据中学习语义知识和世界知识。

fangyibo24的博客 1152

如何评估不同预训练任务对MLM模型性能的影响?

评估不同预训练任务对MLM(Masked Language Model)模型性能的影响,需要系统地设计实验、收集数据并分析结果。以下是评估过程的一些关键步骤。

借雨醉东风的博客 2078

多模态学习 - 视觉语言预训练综述-2023-下游任务、数据集、基础知识、预训练任务、模型

参考: https://zhuanlan.zhihu.com/p/628840228 https://zhuanlan.zhihu.com/p/628994098 https://zhuanlan.zhihu.com/p/629996372 https://zhuanlan.zhihu.com/p/582424974 多模态学习 - 视觉语言预训练综述-2023-下游任务、数据集、基础知识、模型 1. 多模态介绍 多模态机器学习(multimodal learning )旨在处理和理解不同模态(诸如视觉、语

ruyingcai666666的博客 3283

预训练+微调任务

预训练+微调任务

m0_67084346的博客 1235

如何为不同语言的MLM模型选择合适的预训练任务?

为不同语言的MLM(Masked Language Model)选择合适的预训练任务,需要考虑语言的特性、可用数据量、目标任务类型以及预期的应用场景。以下是一些选择预训练任务的策略。

借雨醉东风的博客 1305
上一篇: 预训练细节
下一篇: 位置编码学习
银晗
博客等级 码龄6年 1万+粉丝 133原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值