Transformers documentation

PhoBERT

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 2020-03-02 e contribuído para o Hugging Face Transformers em 2020-11-16.

PhoBERT

Visão geral

O modelo PhoBERT foi proposto em PhoBERT: Pre-trained language models for Vietnamese por Dat Quoc Nguyen e Anh Tuan Nguyen.

O resumo do artigo é o seguinte:

Apresentamos o PhoBERT em duas versões, PhoBERT-base e PhoBERT-large, os primeiros modelos de linguagem monolíngues de grande escala pré-treinados para o vietnamita, disponíveis publicamente. Os resultados experimentais mostram que o PhoBERT supera consistentemente o melhor modelo multilíngue pré-treinado recente, o XLM-R (Conneau et al., 2020), e melhora o estado da arte em várias tarefas específicas de PLN para o vietnamita, incluindo marcação de classes gramaticais, análise de dependência, reconhecimento de entidades nomeadas e inferência de linguagem natural.

Este modelo foi contribuído por dqnguyen. O código original pode ser encontrado aqui.

Exemplo de uso

import torch

from transformers import AutoModel, AutoTokenizer


phobert = AutoModel.from_pretrained("vinai/phobert-base", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("vinai/phobert-base")

# INPUT TEXT MUST BE ALREADY WORD-SEGMENTED!
line = "Tôi là sinh_viên trường đại_học Công_nghệ ."

input_ids = torch.tensor([tokenizer.encode(line)])

with torch.no_grad():
    features = phobert(input_ids)  # Models outputs are now tuples

A implementação do PhoBERT é a mesma do BERT, exceto pela tokenização. Consulte a documentação do BERT para informações sobre as classes de configuração e seus parâmetros. O tokenizador específico do PhoBERT está documentado abaixo.

PhobertTokenizer

classe transformers.PhobertTokenizer

< >

( vocab_filemerges_filebos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'mask_token = '<mask>'**kwargs )

Parâmetros

  • vocab_file (str) — Caminho para o arquivo de vocabulário.
  • merges_file (str) — Caminho para o arquivo de mesclagens.
  • 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.

Construa um tokenizador PhoBERT. Baseado em Byte-Pair-Encoding.

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.

add_from_file

< >

( f )

Carrega um dicionário existente de um arquivo de texto e adiciona seus símbolos a esta instância.

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 do PhoBERT tem o seguinte formato:

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

convert_tokens_to_string

< >

( tokens )

Converte uma sequência de tokens (string) em uma única string.

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 pares de sequências. O PhoBERT não utiliza 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.

Update on GitHub