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

Este modelo foi publicado no HF papers em 2021-09-20 e contribuído para o Hugging Face Transformers em 2021-10-18.

BARTpho

BARTpho é um modelo de sequência-para-sequência em grande escala para o vietnamita. Ele oferece uma versão baseada em palavras e uma baseada em sílabas. Este modelo é construído sobre a grande arquitetura BART com seu pré-treinamento de desruido.

Você pode encontrar todos os checkpoints originais na organização VinAI.

Este modelo foi contribuído por dqnguyen. Consulte a barra lateral à direita para ver exemplos de como aplicar o BARTpho a diferentes tarefas de linguagem.

O exemplo abaixo demonstra como resumir texto com Pipeline ou a classe 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]

Observações

  • BARTpho usa a grande arquitetura do BART com uma camada adicional de normalização de camada no topo do codificador e do decodificador. As classes específicas do BART devem ser substituídas pelas classes específicas do mBART.
  • Esta implementação trata apenas a tokenização por meio do arquivo monolingual_vocab_file. Trata-se de um subconjunto específico do vietnamita dos tipos de tokens extraídos desse vocabulário multilíngue. Se você deseja usar este tokenizador para outro idioma, substitua o monolingual_vocab_file por um especializado no seu idioma de destino.

BartphoTokenizer

classe 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 )

Parâmetros

  • vocab_file (str) — Caminho para o arquivo de vocabulário. Este vocabulário é o modelo SentencePiece pré-treinado disponível no XLM-RoBERTa multilíngue, também usado no mBART, composto por 250 mil tipos.
  • monolingual_vocab_file (str) — Caminho para o arquivo de vocabulário monolíngue. Este vocabulário monolíngue consiste em tipos especializados em vietnamita extraídos do vocabulário multilíngue vocab_file de 250 mil tipos.
  • bos_token (str, opcional, padrão é "<s>") — O token de início de sequência usado durante o pré-treinamento. Pode ser usado como token de classificador de sequência.

    Ao construir uma sequência usando tokens especiais, este não é o token utilizado para o início da sequência. O token utilizado é o cls_token.

  • eos_token (str, opcional, padrão é "</s>") — O token de fim de sequência. Ao construir uma sequência usando tokens especiais, este não é o token usado para o fim da sequência. O token utilizado é o sep_token.

    Ao construir uma sequência usando tokens especiais, este não é o token utilizado para o fim da sequência. O token utilizado é o sep_token.

  • sep_token (str, opcional, padrão "</s>") — O token separador, usado ao construir uma sequência a partir de múltiplas sequências, por exemplo, duas sequências para classificação de sequência ou um texto e uma pergunta para question answering. Também é usado como o último token de uma sequência construída com tokens especiais.
  • cls_token (str, opcional, padrão "<s>") — O token de classificador usado na classificação de sequência (classificação da sequência inteira, em vez da classificação por token). É o primeiro token da sequência quando esta é construída com tokens especiais.
  • unk_token (str, opcional, padrão "<unk>") — O token desconhecido. Um token que não está no vocabulário não pode ser convertido em um ID e é definido como este token em vez disso.
  • pad_token (str, opcional, padrão "<pad>") — O token usado para preenchimento, por exemplo, ao agrupar sequências de comprimentos diferentes.
  • mask_token (str, opcional, padrão "<mask>") — O token usado para mascarar valores. Este é o token utilizado ao treinar este modelo com modelagem de linguagem mascarada. É o token que o modelo tentará prever.
  • sp_model_kwargs (dict, opcional) — Será passado para o SentencePieceProcessor.__init__() método. O wrapper em Python para SentencePiece pode ser usado, entre outras coisas, para definir:
    • enable_sampling: Ativa a regularização de subpalavras.

    • nbest_size: Parâmetros de amostragem para unigramas. Inválido para BPE-Dropout.

      • nbest_size = {0,1}: Nenhuma amostragem é realizada.
      • nbest_size > 1: amostra dos resultados do nbest_size.
      • nbest_size < 0: assume que nbest_size é infinito e amostra de todas as hipóteses (lattice) usando o algoritmo de filtragem para frente e amostragem para trás (forward-filtering-and-backward-sampling).
    • alpha: Parâmetro de suavização para amostragem de unigramas e probabilidade de dropout para operações de mesclagem no BPE-dropout.

  • sp_model (SentencePieceProcessor) — O processador SentencePiece usado em todas as conversões (string, tokens e IDs).

Adaptado de XLMRobertaTokenizer. Baseado em SentencePiece.

Este tokenizer herda de PreTrainedTokenizer, que contém a maioria dos métodos principais. Os usuários devem consultar essa superclasse para obter mais informações sobre esses métodos.

build_inputs_with_special_tokens

< >

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

Parâmetros

  • token_ids_0 (list[int]) — Lista de IDs aos quais os tokens especiais serão adicionados.
  • token_ids_1 (list[int], opcional) — Lista opcional de IDs para pares de sequências.

Retorna

list[int]

Lista de IDs de entrada com os tokens especiais apropriados.

Construa as entradas do modelo a partir de uma sequência ou de um par de sequências para tarefas de classificação de sequência, concatenando e adicionando tokens especiais. Uma sequência BARTPho tem o seguinte formato:

  • sequência única: <s> X </s>
  • par de sequências: <s> A </s></s> B </s>

create_token_type_ids_from_sequences

< >

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

Parâmetros

  • token_ids_0 (list[int]) — Lista de IDs.
  • token_ids_1 (list[int], opcional) — Lista opcional de IDs para pares de sequências.

Retorna

list[int]

Lista de zeros.

Cria uma máscara a partir das duas sequências passadas para ser usada em uma tarefa de classificação de par de sequências. O BARTPho não faz uso de ids de tipo de token, portanto, uma lista de zeros é retornada.

get_special_tokens_mask

< >

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

Parâmetros

  • token_ids_0 (list[int]) — Lista de IDs.
  • token_ids_1 (list[int], opcional) — Lista opcional de IDs para pares de sequências.
  • already_has_special_tokens (bool, opcional, padrão False) — Indica se a lista de tokens já está formatada com tokens especiais para o modelo.

Retorna

list[int]

Uma lista de inteiros no intervalo [0, 1]: 1 para um token especial, 0 para um token de sequência.

Recupera os ids de sequência de uma lista de tokens que não possui tokens especiais adicionados. Este método é chamado ao adicionar tokens especiais usando o método prepare_for_model do tokenizer.

get_vocab

< >

( )

Substituir para usar o vocabulário do fairseq

Update on GitHub