Transformers documentation

BARTpho

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

该模型于 2021-09-20 在 HF papers 上发布,并于 2021-10-18 贡献至 Hugging Face Transformers。

BARTpho

BARTpho 是一个大规模越南语序列到序列模型。它提供基于词和基于音节的两个版本。该模型基于 BART 大型架构及其去噪预训练构建。

您可以在 VinAI 组织下找到所有原始检查点。

该模型由 dqnguyen 贡献。 请查看右侧边栏,了解如何将 BARTpho 应用于不同语言任务的示例。

以下示例演示了如何使用 Pipeline 或 AutoModel 类对文本进行摘要。

AutoModel
from transformers import AutoTokenizer, BartForConditionalGeneration


tokenizer = AutoTokenizer.from_pretrained(
    "vinai/bartpho-word",
)
model = BartForConditionalGeneration.from_pretrained(
    "vinai/bartpho-word",
    device_map="auto",
)

text = """
Quang tổng hợp hay gọi tắt là quang hợp là quá trình thu nhận và chuyển hóa năng lượng ánh sáng Mặt trời của thực vật,
tảo và một số vi khuẩn để tạo ra hợp chất hữu cơ phục vụ bản thân cũng như làm nguồn thức ăn cho hầu hết các sinh vật
trên Trái Đất. Quang hợp trong thực vật thường liên quan đến chất tố diệp lục màu xanh lá cây và tạo ra oxy như một sản phẩm phụ
"""
inputs = tokenizer(text, return_tensors="pt").to(model.device)

outputs = model.generate(inputs["input_ids"], num_beams=2, min_length=0, max_length=20)
tokenizer.batch_decode(outputs, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]

备注

  • BARTpho 使用 BART 的大型架构,并在编码器和解码器之上额外添加了一层层归一化层。应将 BART 特定的类替换为 mBART 特定的类。
  • 此实现仅通过 monolingual_vocab_file 文件处理分词。这是从该多语言词表中提取的越南语特定子集。如果您想将此分词器用于其他语言,请将 monolingual_vocab_file 替换为针对目标语言专门设计的文件。

BartphoTokenizer

class transformers.BartphoTokenizer

< >

( vocab_filemonolingual_vocab_filebos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'mask_token = '<mask>'sp_model_kwargs: dict[str, typing.Any] | None = None**kwargs )

参数

  • vocab_file (str) — 词汇表文件的路径。该词汇表是来自多语言 XLM-RoBERTa 的预训练 SentencePiece 模型,同样用于 mBART,包含 250K 个类型。
  • monolingual_vocab_file (str) — 单语词汇表文件的路径。该单语词汇表由从 25 万类型的多语言词汇表 vocab_file 中提取的越南语专用类型组成。
  • bos_token (str, 可选, 默认为 "<s>") — 预训练期间使用的序列起始标记。也可用作序列分类标记。

    在构建序列时,如果使用了特殊标记,序列开头使用的并不是这个标记。实际使用的标记是 cls_token。

  • eos_token (str, 可选, 默认为 "</s>") — 序列结束标记。在构建包含特殊标记的序列时,序列结束使用的并非此标记,而是 sep_token。

    在构建包含特殊标记的序列时,序列末尾使用的并不是这个标记。 实际使用的是 sep_token。

  • sep_token (str,可选,默认为 "</s>") — 分隔符 token,用于从多个序列构建序列时,例如用于序列分类的两个序列,或用于问答的文本和问题。它也用作使用特殊 token 构建的序列的最后一个 token。
  • cls_token (str,可选,默认为 "<s>") — 用于序列分类(对整个序列进行分类,而非逐 token 分类)的分类器 token。当使用特殊 token 构建序列时,它是序列的第一个 token。
  • unk_token (str,可选,默认为 "<unk>") — 未知标记。不在词汇表中的标记无法转换为 ID,因此会被设置为该标记。
  • pad_token (str,可选,默认为 "<pad>") — 用于填充的标记,例如在对长度不同的序列进行批处理时。
  • mask_token (str, 可选,默认为 "<mask>") — 用于掩码值的标记。这是在以掩码语言建模方式训练该模型时所使用的标记,也是模型将尝试预测的标记。
  • sp_model_kwargs (dict, 可选) — 将传递给 SentencePieceProcessor.__init__() 方法。 SentencePiece 的 Python 封装 可用于(除其他用途外)设置:
    • enable_sampling:启用子词正则化。

    • nbest_size:一元模型的采样参数。对 BPE-Dropout 无效。

      • nbest_size = {0,1}:不执行采样。
      • nbest_size > 1:从 nbest_size 个结果中进行采样。
      • nbest_size < 0:假设 nbest_size 为无穷大,并使用前向滤波与后向采样算法从所有假设(格)中进行采样。
    • alpha:用于一元采样(unigram sampling)的平滑参数,以及 BPE-dropout 中合并操作的 dropout 概率。

  • sp_model (SentencePieceProcessor) — 用于所有转换(字符串、token 和 ID)的 SentencePiece 处理器。

改编自 XLMRobertaTokenizer。基于 SentencePiece。

该分词器继承自 PreTrainedTokenizer,其中包含了大部分主要方法。用户应参考该父类以获取有关这些方法的更多信息。

build_inputs_with_special_tokens

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

参数

  • token_ids_0 (list[int]) — 将添加特殊标记的 ID 列表。
  • token_ids_1 (list[int], 可选) — 用于序列对的可选第二组 ID 列表。

返回值

list[int]

包含相应特殊标记的输入 ID列表。

通过拼接并添加特殊标记,从单个序列或序列对构建用于序列分类任务的模型输入。BARTPho 序列的格式如下:

  • 单条序列:<s> X </s>
  • 序列对:<s> A </s></s> B </s>

create_token_type_ids_from_sequences

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

参数

  • token_ids_0 (list[int]) — ID 列表。
  • token_ids_1 (list[int], 可选) — 用于序列对的可选第二组 ID 列表。

返回值

list[int]

零列表。

根据传入的两个序列创建掩码,用于序列对分类任务。BARTPho 不使用 token type ids,因此返回一个全零列表。

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → list[int]

参数

  • token_ids_0 (list[int]) — ID 列表。
  • token_ids_1 (list[int], 可选) — 用于序列对的可选第二组 ID 列表。
  • already_has_special_tokens (bool,可选,默认为 False) — 指示 token 列表是否已针对该模型格式化为包含特殊 token 的形式。

返回值

list[int]

一个整数列表,取值范围为 [0, 1]:1 表示特殊标记,0 表示序列标记。

从未添加特殊标记的标记列表中获取序列 ID。当使用分词器的 prepare_for_model 方法添加特殊标记时,会调用此方法。

get_vocab

< >

( )

重写以使用 fairseq 词汇表

Update on GitHub