实习笔记三-transformer的language modeling解析-1

1.地址:

https://github.com/huggingface/transformers/blob/main/examples/pytorch/language-modeling/run_clm.py

2. CLM MLM TLM

来源

Causal Language Modeling (CLM) :因果语言模型,无监督,同Transformer,给定一个句子,根据前k个单词预测第k个单词。

Masked Language Modeling (MLM) :掩模语言模型(MLM),无监督,同BERT,随机替换部分token进行完形填空。不同之处在于,输入不是句子对,而是任意个句子组成的文本流(截断512),并且为了均衡稀有tokens和高频tokens(比如标点符号和停止词), 对高频词进行subsampling后mask。

Translation Language Modeling (TLM) :翻译语言模型,有监督且存在平行语料,将平行句子对作为输入,然后经过mask后进行完形填空。有助于对齐不同语种的representation space,低资源语种可以利用平行语料的上下文信息。

1. 导入包

import logging
import math
import os
import sys
import warnings
from dataclasses import dataclass, field
# 它是一个需要一系列可迭代对象并返回一个迭代器的函数。
# 它将所有可迭代对象组合在一起,并生成一个可迭代对象作为输出。
# 它的输出不能直接使用,因此不能显式转换为可迭代对象。此函数在终止迭代器的类别迭代器下。
from itertools import chain
# Optional表示参数可以是指定类型或者None。
from typing import Optional

import datasets
"""
evaluate 是huggingface在2022年5月底搞的一个用于评估机器学习模型和数据集的库,需 python 3.7 及以上。包含三种评估类型:
Metric:用来通过预测值和参考值进行模型评价,是传统意义上的指标,比如 f1、bleu、rouge 等。
Comparison:同一个测试集对两个(多个)模型评价,比如俩模型结果的 match 程度。
Measurement:用来评价数据集,比如字数、去重后的词数等。
"""

import evaluate
import torch
from datasets import load_dataset
# 检查当前transformers库的版本是否符合指定的要求。
check_min_version("4.37.0.dev0")
# 确保当前所需要的库是在当前范围内
require_version("datasets>=1.8.0", "To fix: pip install -r examples/pytorch/language-modeling/requirements.txt")
from transformers import (
    CONFIG_MAPPING,# 用于映射不同架构的配置类
    MODEL_FOR_CAUSAL_LM_MAPPING,# 用于映射不同模型架构到相应的预训练模型类
    AutoConfig,# 用于根据给定的模型标识符自动选择和加载相应的配置类
    AutoModelForCausalLM,#
    AutoTokenizer,# 是 transformers 库中的一个类,用于自动选择和加载适用于给定模型的标记器。
    HfArgumentParser,# 是 transformers 库中的一个类,它是 argparse 模块的一个扩展,用于解析命令行参数并生成对应的训练和评估参数。
    Trainer,#
    TrainingArguments,#  transformers 库中的一个类,它存储了训练时使用的各种参数,例如学习率、批量大小、训练步数等。
    default_data_collator,# 是 transformers 库中的一个函数,用于将样本数据进行批量处理,生成模型训练所需的输入。
    is_torch_tpu_available,# 是 transformers 库中的一个函数,用于检查当前环境是否支持使用 PyTorch TPU(Tensor Processing Unit)。
    set_seed,
)
MODEL_CONFIG_CLASSES: 包含了所有与模型配置相关的类。这些类是用于配置模型的,例如定义模型的架构、超参数等。
MODEL_TYPES: 包含了所有模型的类型标识符。这些标识符通常是字符串,用于区分不同类型的预训练模型。

在这里插入图片描述

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向上Claire

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值