Transformers documentation
PhoBERT
이 모델은 2020-03-02에 HF papers에 게시되었으며, 2020-11-16에 Hugging Face Transformers에 기여되었습니다.
PhoBERT
개요
PhoBERT 모델은 Dat Quoc Nguyen, Anh Tuan Nguyen의 PhoBERT: Pre-trained language models for Vietnamese에서 제안되었습니다.
해당 논문의 초록은 다음과 같습니다:
베트남어를 위한 최초의 공개 대규모 단일 언어 사전 학습 언어 모델인 PhoBERT를 PhoBERT-base와 PhoBERT-large 두 버전으로 제시합니다. 실험 결과에 따르면 PhoBERT는 최근 최상의 사전 학습 다국어 모델인 XLM-R(Conneau et al., 2020)을 일관되게 능가하며, 품사 태깅, 의존 구문 분석, 개체명 인식, 자연어 추론을 포함한 여러 베트남어 특화 NLP 작업에서 최첨단 성능을 향상시킵니다.
이 모델은 dqnguyen님이 기여했습니다. 원본 코드는 여기에서 찾을 수 있습니다.
사용 예시
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 tuplesPhoBERT 구현은 토큰화를 제외하고 BERT와 동일합니다. 설정 클래스 및 해당 매개변수에 대한 정보는 BERT 문서를 참고하세요. PhoBERT 전용 토크나이저는 아래에 설명되어 있습니다.
PhobertTokenizer
클래스 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 )
매개변수
- vocab_file (
str) — 어휘 파일의 경로입니다. - merges_file (
str) — merges 파일의 경로. - bos_token (
str, 선택 사항, 기본값은"<s>") — 사전 학습 시 사용된 시퀀스 시작 토큰입니다. 시퀀스 분류기 토큰으로 사용할 수 있습니다.특수 토큰을 사용하여 시퀀스를 구성할 때, 시퀀스의 시작에 사용되는 토큰은 이 토큰이 아닙니다. 사용되는 토큰은
cls_token입니다. - eos_token (
str, 선택 사항, 기본값은"</s>") — 시퀀스 종료 토큰입니다. 특수 토큰을 사용하여 시퀀스를 구성할 때, 시퀀스 종료에 사용되는 토큰은 이 토큰이 아닙니다. 시퀀스 종료에 사용되는 토큰은 sep_token입니다.특수 토큰을 사용하여 시퀀스를 구성할 때, 시퀀스 끝에는 이 토큰이 사용되지 않습니다. 사용되는 토큰은
sep_token입니다. - sep_token (
str, 선택, 기본값"</s>") — 여러 시퀀스로 시퀀스를 구성할 때 사용되는 구분 토큰입니다. 예를 들어 시퀀스 분류의 두 시퀀스나 질의응답의 텍스트와 질문 등에 사용됩니다. 특수 토큰으로 구성된 시퀀스의 마지막 토큰으로도 사용됩니다. - cls_token (
str, 선택 사항, 기본값"<s>") — 시퀀스 분류(토큰별 분류가 아닌 전체 시퀀스 분류)를 수행할 때 사용되는 분류기 토큰입니다. 특수 토큰을 사용하여 시퀀스를 구성할 경우 시퀀스의 첫 번째 토큰입니다. - unk_token (
str, 선택 사항, 기본값"<unk>") — 미지의 토큰입니다. 어휘에 없는 토큰은 ID로 변환할 수 없으므로, 대신 이 토큰으로 설정됩니다. - pad_token (
str, 선택 사항, 기본값"<pad>") — 패딩에 사용되는 토큰입니다. 예를 들어, 길이가 다른 시퀀스를 배치(batching)할 때 사용됩니다. - mask_token (
str, 선택 사항, 기본값"<mask>") — 값을 마스킹하는 데 사용되는 토큰입니다. 이는 masked language modeling으로 이 모델을 학습할 때 사용되는 토큰이며, 모델이 예측을 시도하는 대상이 되는 토큰입니다.
Byte-Pair-Encoding 기반의 PhoBERT 토크나이저를 구성합니다.
이 토크나이저는 대부분의 주요 메서드를 포함하는 PreTrainedTokenizer를 상속합니다. 해당 메서드에 대한 자세한 내용은 이 상위 클래스를 참고하세요.
…
build_inputs_with_special_tokens
< source >( 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 목록
시퀀스 분류 작업을 위해 시퀀스 하나 또는 시퀀스 쌍을 연결하고 특수 토큰을 추가하여 모델 입력을 구성합니다. PhoBERT 시퀀스는 다음 형식을 가집니다:
- 단일 시퀀스:
<s> X </s> - 시퀀스 쌍:
<s> A </s></s> B </s>
단일 문자열 내 토큰(문자열) 시퀀스를 변환합니다.
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
시퀀스-페어 분류 작업에 사용될 두 시퀀스로부터 마스크를 생성합니다. PhoBERT는 토큰 타입 ID를 사용하지 않으므로, 0의 리스트가 반환됩니다.
get_special_tokens_mask
< source >( token_ids_0: listtoken_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → list[int]
특수 토큰이 추가되지 않은 토큰 목록에서 시퀀스 ID를 가져옵니다. 이 메서드는 토크나이저의 prepare_for_model 메서드를 사용하여 특수 토큰을 추가할 때 호출됩니다.