Transformers documentation
PhoBERT
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 tuplesA 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
< source >( 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.
Carrega um dicionário existente de um arquivo de texto e adiciona seus símbolos a esta instância.
build_inputs_with_special_tokens
< source >( 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>
Converte uma sequência de tokens (string) em uma única string.
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
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
< source >( 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ãoFalse) — 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.