Transformers documentation
토크나이저 유틸리티
토크나이저 유틸리티
이 페이지에서는 토크나이저에서 사용하는 모든 유틸리티 함수를 나열합니다. 주로 PreTrainedTokenizer와 PreTrainedTokenizerFast 사이의 공통 메서드를 구현하는 PreTrainedTokenizerBase 클래스입니다.
이 중 대부분은 라이브러리의 토크나이저 코드를 연구하는 경우에만 유용합니다.
PreTrainedTokenizerBase
클래스 transformers.PreTrainedTokenizerBase
< source >( **kwargs )
매개변수
- model_max_length (
int, optional) — The maximum length (in number of tokens) for the inputs to the transformer model. When the tokenizer is loaded with from_pretrained(), this will be set to the value stored for the associated model inmax_model_input_sizes(see above). If no value is provided, will default to VERY_LARGE_INTEGER (int(1e30)). - padding_side (
str, 선택 사항) — 모델에 패딩을 적용할 쪽입니다. [‘right’, ‘left’] 중에서 선택해야 합니다. 기본값은 동일한 이름의 클래스 속성에서 가져옵니다. - truncation_side (
str, 선택 사항) — 모델에 잘림을 적용할 쪽입니다. [‘right’, ‘left’] 중에서 선택해야 합니다. 기본값은 동일한 이름의 클래스 속성에서 가져옵니다. - chat_template (
str, 선택 사항) — 채팅 메시지 목록을 포맷팅하는 데 사용되는 Jinja 템플릿 문자열입니다. 전체 설명은 https://huggingface.co/docs/transformers/chat_templating을 참조하세요. - model_input_names (
list[string], 선택 사항) — 모델의 forward pass가 받는 입력 목록(예:"token_type_ids"또는"attention_mask"). 기본값은 동일한 이름의 클래스 속성에서 선택됩니다. - bos_token (
str또는tokenizers.AddedToken, 선택 사항) — 문장의 시작을 나타내는 특수 토큰입니다. - eos_token (
str또는tokenizers.AddedToken, 선택 사항) — 문장의 끝을 나타내는 특수 토큰입니다. - unk_token (
str또는tokenizers.AddedToken, 선택 사항) — 어휘 밖(out-of-vocabulary) 토큰을 나타내는 특수 토큰입니다. - sep_token (
str또는tokenizers.AddedToken, 선택 사항) — 같은 입력 내의 서로 다른 두 문장을 구분하는 특수 토큰입니다(예: BERT에서 사용). - pad_token (
str또는tokenizers.AddedToken, 선택 사항) — 배치 처리를 위해 토큰 배열의 크기를 동일하게 만드는 데 사용되는 특수 토큰입니다. 이후 attention 메커니즘이나 손실 계산에서 무시됩니다. - cls_token (
str또는tokenizers.AddedToken, 선택 사항) — 입력의 클래스를 나타내는 특수 토큰입니다(예: BERT에서 사용). - mask_token (
str또는tokenizers.AddedToken, 선택 사항) — 마스크된 토큰을 나타내는 특수 토큰입니다(BERT와 같은 masked-language modeling 사전 학습 목적에 사용됨).self.mask_token및self.mask_token_id에 연결됩니다. - extra_special_tokens (
str또는tokenizers.AddedToken의 목록, 선택 사항) — 모델에 특화된 추가 특수 토큰 목록입니다.skip_special_tokens가 True로 설정된 경우 디코딩 시 이 토큰들이 건너뛰어지도록 하려면 여기에 추가하세요. 어휘에 포함되지 않은 경우 어휘의 끝에 추가됩니다. - split_special_tokens (
bool, 선택 사항, 기본값False) — 토큰화 과정에서 특수 토큰을 분리할지 여부입니다. 이 값을 전달하면 토크나이저의 내부 상태에 영향을 미칩니다. 기본 동작은 특수 토큰을 분리하지 않는 것입니다. 즉,<s>가bos_token인 경우tokenizer.tokenize("<s>") = ['<s>']가 됩니다. 반면,split_special_tokens=True인 경우tokenizer.tokenize("<s>")은['<','s', '>']를 반환합니다.
모든 토크나이저 백엔드의 베이스 클래스입니다.
클래스 속성(파생 클래스에서 재정의됨)
- vocab_files_names (
dict[str, str]) — 모델이 필요로 하는 각 어휘 파일의__init__키워드 이름을 키로, 해당 파일을 저장할 파일 이름(문자열)을 값으로 가지는 사전입니다. - pretrained_vocab_files_map (
dict[str, dict[str, str]]) — 사전 학습된 어휘 파일에 대한 사전의 사전입니다. 상위 레벨 키는 모델이 필요로 하는 각 어휘 파일의__init__키워드 이름이며, 하위 레벨 키는 사전 학습된 모델의short-cut-names이고, 관련 값은 해당 사전 학습된 어휘 파일의url입니다. - model_input_names (
list[str]) — 모델의 forward pass에서 예상되는 입력 목록입니다. - padding_side (
str) — 모델에 패딩을 적용할 측면의 기본값입니다.'right'또는'left'여야 합니다. - truncation_side (
str) — 모델에 절단을 적용할 측면의 기본값입니다.'right'또는'left'여야 합니다.
__call__
< source >( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding
매개변수
- text (
str,list[str],list[list[str]], 선택 사항) — 인코딩할 시퀀스 또는 시퀀스 배치입니다. 각 시퀀스는 문자열 또는 문자열 목록(사전 토큰화된 문자열)일 수 있습니다. 시퀀스가 문자열 목록(사전 토큰화)로 제공되는 경우,is_split_into_words=True를 설정해야 합니다(시퀀스 배치와의 모호성을 제거하기 위함). - text_pair (
str,list[str],list[list[str]], 선택 사항) — 인코딩할 시퀀스 또는 시퀀스 배치입니다. 각 시퀀스는 문자열 또는 문자열 목록(사전 토큰화된 문자열)일 수 있습니다. 시퀀스가 문자열 목록(사전 토큰화)로 제공되는 경우,is_split_into_words=True를 설정해야 합니다(시퀀스 배치와의 모호성을 제거하기 위함). - text_target (
str,list[str],list[list[str]], 선택 사항) — 타겟 텍스트로 인코딩할 시퀀스 또는 시퀀스 배치입니다. 각 시퀀스는 문자열 또는 문자열 목록(사전 토큰화된 문자열)일 수 있습니다. 시퀀스가 문자열 목록(사전 토큰화)로 제공되는 경우,is_split_into_words=True를 설정해야 합니다(시퀀스 배치와의 모호성을 제거하기 위함). - text_pair_target (
str,list[str],list[list[str]], 선택 사항) — 타겟 텍스트로 인코딩할 시퀀스 또는 시퀀스 배치입니다. 각 시퀀스는 문자열 또는 문자열 목록(사전 토큰화된 문자열)일 수 있습니다. 시퀀스가 문자열 목록(사전 토큰화)로 제공되는 경우,is_split_into_words=True를 설정해야 합니다(시퀀스 배치와의 모호성을 제거하기 위해). - tokenizer_kwargs (
dict[str, Any], 선택) — 토크나이저에 전달할 추가 kwargs입니다. 이들은 명시적 매개변수 및 기타 kwargs와 병합되며, 명시적 매개변수가 우선합니다. - add_special_tokens (
bool, 선택 사항, 기본값True) — 시퀀스를 인코딩할 때 특수 토큰을 추가할지 여부입니다. 이는 입력 ID에 자동으로 추가되는 토큰을 정의하는 기반 함수인PretrainedTokenizerBase.build_inputs_with_special_tokens를 사용합니다.bos또는eos토큰을 자동으로 추가하려는 경우 유용합니다. - padding (
bool,str또는 PaddingStrategy, 선택 사항, 기본값은False) — 패딩을 활성화하고 제어합니다. 다음 값을 허용합니다:True또는'longest': 배치 내 가장 긴 시퀀스 길이에 맞게 패딩을 수행합니다(단일 시퀀스만 제공된 경우 패딩을 하지 않음).'max_length':max_length인수로 지정된 최대 길이로 패딩하거나, 해당 인수가 제공되지 않으면 모델이 허용하는 최대 입력 길이로 패딩합니다.False또는'do_not_pad'(기본값): 패딩을 하지 않습니다(즉, 서로 다른 길이의 시퀀스로 구성된 배치로 출력할 수 있습니다).
- truncation (
bool,str또는 TruncationStrategy, 선택 사항, 기본값은False) — 잘림을 활성화하고 제어합니다. 다음 값을 허용합니다:True또는'longest_first':max_length인수로 지정된 최대 길이로 잘라내거나, 해당 인수가 제공되지 않으면 모델이 허용하는 최대 입력 길이로 잘라냅니다. 이 경우 토큰 단위로 잘라내며, 시퀀스 쌍(또는 쌍의 배치)이 제공되면 쌍 중 가장 긴 시퀀스에서 토큰을 하나씩 제거합니다.'only_first':max_length인수로 지정된 최대 길이 또는 해당 인수가 제공되지 않은 경우 모델이 허용하는 최대 입력 길이로 잘립니다. 이 옵션은 시퀀스 쌍(또는 쌍의 배치)이 제공된 경우 쌍의 첫 번째 시퀀스만 잘립니다.'only_second':max_length인수로 지정된 최대 길이로 잘라내거나, 해당 인수가 제공되지 않은 경우 모델이 허용하는 최대 입력 길이로 잘라냅니다. 이 옵션은 시퀀스 쌍(또는 쌍의 배치)이 제공된 경우에만 쌍의 두 번째 시퀀스를 잘라냅니다.False또는'do_not_truncate'(기본값): 잘라내기 없음 (즉, 모델이 허용하는 최대 입력 크기보다 긴 시퀀스 길이를 가진 배치 출력 가능).
- max_length (
int, 선택 사항) — truncation/padding 파라미터 중 하나가 사용할 최대 길이를 제어합니다.설정하지 않거나
None으로 설정하면, truncation/padding 파라미터 중 하나가 최대 길이를 요구할 경우 미리 정의된 모델 최대 길이를 사용합니다. 모델에 특정 최대 입력 길이가 없는 경우(XLNet 등) 최대 길이로 truncation/padding하는 기능이 비활성화됩니다. - stride (
int, 선택 사항, 기본값 0) —max_length와 함께 숫자로 설정하면,return_overflowing_tokens=True일 때 반환되는 오버플로 토큰에는 잘린 시퀀스의 끝부분에서 가져온 일부 토큰이 포함됩니다. 이를 통해 잘린 시퀀스와 오버플로 시퀀스 사이에 일부 중복이 생깁니다. 이 인수의 값은 중복되는 토큰의 수를 정의합니다. - is_split_into_words (
bool, 선택 사항, 기본값False) — 입력이 이미 사전 토큰화(예: 단어 단위로 분리)되었는지 여부입니다.True로 설정하면 토크나이저는 입력이 이미 단어 단위로 분리되어 있다고 가정하고(예: 공백 기준으로 분리) 이를 토큰화합니다. 이는 NER 또는 토큰 분류에 유용합니다. - pad_to_multiple_of (
int, 선택 사항) — 설정하면 시퀀스를 제공된 값의 배수로 패딩합니다.padding이 활성화되어 있어야 합니다. 이는 Volta에서>= 7.5의 컴퓨트 기능을 가진 NVIDIA 하드웨어에서 Tensor Cores 사용을 활성화하는 데 특히 유용합니다. - padding_side (
str, 선택 사항) — 모델에 패딩을 적용할 쪽입니다. [‘right’, ‘left’] 중에서 선택해야 합니다. 기본값은 동일한 이름의 클래스 속성에서 가져옵니다. - return_tensors (
str또는 TensorType, 선택 사항) — 설정된 경우, Python 정수 목록 대신 텐서를 반환합니다. 허용되는 값은 다음과 같습니다:'pt': PyTorchtorch.Tensor객체를 반환합니다.'np': Numpynp.ndarray객체를 반환합니다.
- return_token_type_ids (
bool, 선택 사항) — 토큰 타입 ID를 반환할지 여부. 기본값으로 두면, 해당 토크나이저의 기본값에 따라 토큰 타입 ID를 반환합니다. 이 기본값은return_outputs속성으로 정의됩니다. - return_attention_mask (
bool, 선택 사항) — attention mask를 반환할지 여부. 기본값으로 두면,return_outputs속성에 의해 정의된 해당 tokenizer의 기본값에 따라 attention mask를 반환합니다. - return_overflowing_tokens (
bool, 선택 사항, 기본값False) — 넘치는 토큰 시퀀스를 반환할지 여부입니다. 입력 ID의 시퀀스 쌍(또는 쌍의 배치)이truncation_strategy = longest_first또는True와 함께 제공되면, 넘치는 토큰을 반환하는 대신 오류가 발생합니다. - return_special_tokens_mask (
bool, 선택 사항, 기본값False) — 특수 토큰 마스크 정보를 반환할지 여부. - return_offsets_mapping (
bool, 선택 사항, 기본값은False) — 각 토큰에 대해(char_start, char_end)를 반환할지 여부입니다.이 기능은 PreTrainedTokenizerFast를 상속하는 빠른 토크나이저에서만 사용할 수 있으며, Python의 토크나이저를 사용하는 경우 이 메서드는
NotImplementedError를 발생시킵니다. - return_length (
bool, 선택 사항, 기본값False) — 인코딩된 입력의 길이를 반환할지 여부. - verbose (
bool, 선택 사항, 기본값True) — 추가 정보와 경고를 출력할지 여부. - **kwargs —
self.tokenize()메서드에 전달됩니다
반환값
다음 필드를 가진 BatchEncoding:
-
input_ids — 모델에 입력할 토큰 ID 목록.
-
token_type_ids — 모델에 입력할 토큰 유형 ID 목록 (
return_token_type_ids=True인 경우 또는self.model_input_names에 “token_type_ids”가 포함된 경우). -
attention_mask — 모델이 어떤 토큰에 주의를 기울여야 하는지 지정하는 인덱스 목록 (
return_attention_mask=True이거나self.model_input_names에 “attention_mask”가 포함된 경우). -
overflowing_tokens — 넘친 토큰 시퀀스 목록(
max_length이 지정되고return_overflowing_tokens=True인 경우). -
num_truncated_tokens — 잘림된 토큰의 개수(
max_length가 지정되고return_overflowing_tokens=True인 경우). -
special_tokens_mask — 0과 1의 목록으로, 1은 추가된 특수 토큰을, 0은 일반 시퀀스 토큰을 나타냅니다(
add_special_tokens=True이고return_special_tokens_mask=True인 경우). -
length — 입력의 길이 (
return_length=True인 경우)
하나 이상의 시퀀스 또는 하나 이상의 시퀀스 쌍을 토큰화하여 모델에 맞게 준비하는 주요 메서드입니다.
add_special_tokens
< source >( special_tokens_dict: dict[str, str | AddedToken | Sequence[str | AddedToken]]replace_extra_special_tokens = True ) → int
매개변수
- special_tokens_dict (사전 문자열 에서 문자열,
tokenizers.AddedToken, 또는Sequence[Union[str, AddedToken]]) — 키에는 사전에 정의된 특수 속성 목록에 있는 값만 사용할 수 있습니다: [bos_token,eos_token,unk_token,sep_token,pad_token,cls_token,mask_token,extra_special_tokens].토큰은 이미 어휘에 없는 경우에만 추가됩니다(
unk_token인덱스가 해당 토큰에 할당되는지 확인하여 테스트합니다). - replace_extra_special_tokens (
bool, 선택 사항, 기본값True) —True인 경우, 기존 추가 특수 토큰 목록이special_tokens_dict에 제공된 목록으로 대체됩니다. 그렇지 않으면extra_special_tokens가 확장됩니다. 전자인 경우, 토큰은 토크나이저의 전체 어휘에서 제거되지 않으며, 단순히 특수 토큰이 아닌 것으로만 표시됩니다. 이 설정은 디코딩 중에 건너뛰는 토큰만 영향을 주며,added_tokens_encoder와added_tokens_decoder에는 영향을 주지 않는다는 점을 기억하세요. 즉, 이전의extra_special_tokens는 여전히 추가된 토큰이며, 모델에 의해 분리되지 않습니다.
반환값
int
어휘에 추가된 토큰의 수.
인코더에 특수 토큰(eos, pad, cls 등)의 사전(dictionary)을 추가하고 클래스 속성에 연결합니다. 특수 토큰이 어휘(vocabulary)에 없으면 현재 어휘의 마지막 인덱스부터 인덱스를 부여하여 어휘에 추가됩니다.
어휘에 새로운 토큰을 추가할 때는 모델의 토큰 임베딩 행렬 크기도 함께 조정하여, 모델의 임베딩 행렬이 토크나이저와 일치하도록 해야 합니다.
이를 위해 resize_token_embeddings() 메서드를 사용하세요.
add_special_tokens를 사용하면 특수 토큰을 여러 방식으로 사용할 수 있습니다:
skip_special_tokens = True를 사용하여 디코딩 시 특수 토큰을 건너뛸 수 있습니다.- Special tokens는
AddedTokens와 유사하게 토크나이저에 의해 신중하게 처리됩니다(절반으로 분리되지 않음). tokenizer.cls_token와 같은 tokenizer 클래스 속성을 사용하면 특수 토큰을 쉽게 참조할 수 있습니다. 이를 통해 모델에 종속되지 않는 학습 및 파인튜닝 스크립트를 개발하기가 쉬워집니다.
가능한 경우, 제공된 사전 학습 모델에는 특수 토큰이 이미 등록되어 있습니다(예를 들어 BertTokenizer의 cls_token은 이미 '[CLS]'로 등록되어 있고, XLM의 토큰도 '</s>'로 등록되어 있습니다).
예:
# Let's see how to add a new classification token to GPT-2
tokenizer = GPT2Tokenizer.from_pretrained("openai-community/gpt2")
model = GPT2Model.from_pretrained("openai-community/gpt2")
special_tokens_dict = {"cls_token": "<CLS>"}
num_added_toks = tokenizer.add_special_tokens(special_tokens_dict)
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))
assert tokenizer.cls_token == "<CLS>"add_tokens
< source >( new_tokens: str | AddedToken | Sequence[str | AddedToken]special_tokens: bool = False ) → int
매개변수
- new_tokens (
str,tokenizers.AddedToken또는 str 또는tokenizers.AddedToken의 시퀀스) — 토큰은 이미 어휘에 존재하지 않는 경우에만 추가됩니다.tokenizers.AddedToken은 문자열 토큰을 래핑하여 해당 토큰의 동작을 사용자 정의할 수 있게 합니다. 예를 들어, 이 토큰이 단일 단어와만 매칭되어야 하는지, 왼쪽의 모든 잠재적 공백을 제거해야 하는지, 오른쪽의 모든 잠재적 공백을 제거해야 하는지 등을 지정할 수 있습니다. - special_tokens (
bool, 선택 사항, 기본값False) — 토큰이 특수 토큰인지 지정합니다. 이는 주로 정규화 동작을 변경합니다. HuggingFace tokenizers 라이브러리의tokenizers.AddedToken세부 정보를 참조하세요.
반환값
int
어휘에 추가된 토큰의 수.
#TODO 여기서 제거해야 합니다! PreTrainedTokenizerBase는 AddedToken에 무관해야 합니다.
새 토큰 목록을 추가합니다. 새 토큰이 어휘에 없으면 끝에 추가됩니다. 따라서 추가된 토큰과 토큰화 알고리즘의 어휘에 있는 토큰은 동일한 방식으로 처리되지 않습니다.
Metaspace프리토크나이저를 사용하는 빠른 토크나이저에서prepend_scheme="always"를 사용할 경우(예: NLLB), 추가된 토큰 뒤에 오는 텍스트 앞에"▁"가 붙습니다.tokenizer.add_tokens(["abcd"])를 호출한 후,"abcdgym"은["abcd", "▁gym"]으로 토큰화되고"abcd gym"으로 디코딩됩니다. 추가된 토큰이 단어 중간에 나타날 수 있는 경우, 프리토크나이저를입력의 시작 부분에만 접두사가 붙도록
prepend_scheme="first"로 설정합니다:from tokenizers import pre_tokenizers pre_tokenizer = tokenizer.backend_tokenizer.pre_tokenizer tokenizer.backend_tokenizer.pre_tokenizer = pre_tokenizers.Metaspace( replacement=pre_tokenizer.replacement, prepend_scheme="first", split=pre_tokenizer.split )
예:
# Let's see how to increase the vocabulary of Bert model and tokenizer
tokenizer = BertTokenizerFast.from_pretrained("google-bert/bert-base-uncased")
model = BertModel.from_pretrained("google-bert/bert-base-uncased")
num_added_toks = tokenizer.add_tokens(["new_tok1", "my_new-tok2"])
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))apply_chat_template
< source >( conversation: list[dict[str, str]] | list[list[dict[str, str]]]tools: list[dict | Callable] | None = Nonedocuments: list[dict[str, str]] | None = Nonechat_template: str | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool | str = Falsetokenize: bool = Truesanitize_control_tokens: bool = Falsepadding: bool | str | PaddingStrategy = Falsetruncation: bool = Falsemax_length: int | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_dict: bool = Truereturn_assistant_tokens_mask: bool = Falsetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → Union[list[int], Dict]
매개변수
- conversation (Union[list[dict[str, str]], list[list[dict[str, str]]]]) — “role”와 “content” 키를 가진 딕셔너리의 목록으로, 지금까지의 채팅 히스토리를 나타냅니다.
- tools (
list[Union[Dict, Callable]], 선택 사항) — 모델이 접근할 수 있는 도구(호출 가능한 함수) 목록입니다. 템플릿이 함수 호출을 지원하지 않으면 이 인수는 효과가 없습니다. 각 도구는 도구의 이름, 설명 및 인자 유형을 지정하는 JSON Schema로 전달해야 합니다. 자세한 내용은 도구 사용 가이드를 참고하세요. - documents (
list[dict[str, str]], 선택) — RAG(retrieval-augmented generation)를 수행하는 경우 모델이 접근할 수 있는 문서를 나타내는 dict 목록입니다. 템플릿이 RAG를 지원하지 않으면 이 인수는 효과가 없습니다. 각 문서는 “title”과 “text” 키를 포함하는 dict인 것을 권장합니다. - chat_template (
str, 선택 사항) — 이 변환에 사용할 Jinja 템플릿입니다. 기본적으로 모델의 템플릿이 사용되므로 이 인자에 값을 전달할 필요가 거의 없습니다. - add_generation_prompt (bool, 선택 사항) — 이 값이 설정되면, 어시스턴트 메시지의 시작을 나타내는 토큰이 포함된 프롬프트가 포맷된 출력에 추가됩니다. 이는 모델로부터 응답을 생성하려는 경우에 유용합니다. 이 인수는 채팅 템플릿에 전달되므로, 이 인수가 효과를 발휘하려면 템플릿에서 해당 인수를 지원해야 합니다.
- continue_final_message (bool or str, 선택 사항) —
이 값이 설정되면 채팅은 마지막 메시지가 EOS 토큰 없이 열린 형태로 포맷팅됩니다. 모델은 새로운 메시지를 시작하는 대신 이 메시지를 계속 작성합니다. 이를 통해 모델 응답의 일부를 미리 채울 수 있습니다. 문자열이 전달되면 계속할 필드의 키로 사용되며(예: “reasoning_content”),
add_generation_prompt와 동시에 사용할 수 없습니다. - tokenize (
bool, 기본값True) — 출력을 토큰화할지 여부입니다.False인 경우 출력이 문자열이 됩니다. - sanitize_control_tokens (
bool, 기본값False) — 이 값이 설정되면 메시지, 도구 또는 문서에 나타나는 제어 토큰은 일반 텍스트로 인코딩됩니다. 따라서 채팅 템플릿 자체에 의해 작성된 제어 토큰만 토큰으로 인코딩됩니다. 제어 토큰은 토크나이저의 특수 토큰과tokenizer.chat_control_tokens에 포함된 추가 토큰입니다. 해당 변수가 설정되지 않은 경우, 제어 토큰은 채팅 템플릿의 텍스트와 문자열 리터럴에 나타나는 추가 토큰에서 추론됩니다. 전체 제어 토큰만 정제되므로, 템플릿이 입력에서 문자열을 결합하여 제어 토큰을 만드는 경우('<|' + message['role'] + '|>'와 같이) 해당 문자열은 별도로 검증해야 합니다. 딕셔너리 키도 정제되지 않습니다. - padding (
bool,str또는 PaddingStrategy, 선택 사항, 기본값은False) — 모델의 패딩 방향과 패딩 인덱스에 따라 반환된 시퀀스에 적용할 패딩 전략을 다음 중 선택합니다:True또는'longest': 배치 내 가장 긴 시퀀스 길이에 맞게 패딩을 수행합니다(단일 시퀀스만 제공된 경우 패딩을 하지 않음).'max_length':max_length인수로 지정된 최대 길이로 패딩하거나, 해당 인수가 제공되지 않으면 모델이 허용하는 최대 입력 길이로 패딩합니다.False또는'do_not_pad'(기본값): 패딩을 하지 않습니다(즉, 서로 다른 길이의 시퀀스로 구성된 배치로 출력할 수 있습니다).
- truncation (
bool, 기본값False) — 최대 길이에서 시퀀스를 잘릴지 여부입니다. tokenize가False인 경우 효과가 없습니다. - max_length (
int, 선택 사항) — 패딩 또는 잘라내기(padding or truncation)에 사용할 최대 길이(토큰 단위). tokenize가False인 경우 효과가 없습니다. 지정하지 않으면 토크나이저의max_length속성이 기본값으로 사용됩니다. - return_tensors (
str또는 TensorType, 선택 사항) — 설정된 경우, 특정 프레임워크의 텐서를 반환합니다. tokenize가False. 허용되는 값은 다음과 같습니다:'pt': PyTorchtorch.Tensor객체를 반환합니다.'np': NumPynp.ndarray객체를 반환합니다.
- return_dict (
bool, 기본값True) — 이름이 지정된 출력이 포함된 딕셔너리를 반환할지 여부입니다. tokenize가False인 경우 효과가 없습니다. - tokenizer_kwargs (
dict[str -- Any], 선택): 토크나이저에 전달할 추가 kwargs입니다. - return_assistant_tokens_mask (
bool, 기본값False) — 어시스턴트가 생성한 토큰의 마스크를 반환할지 여부입니다. 어시스턴트가 생성한 토큰에 대해 마스크에는 1이 포함됩니다. 사용자 및 시스템 토큰에 대해 마스크에는 0이 포함됩니다. 이 기능은{% generation %}키워드를 통해 이를 지원하는 채팅 템플릿에서만 사용할 수 있습니다. - **kwargs — 템플릿 렌더러에 전달할 추가 kwargs입니다. 채팅 템플릿에서 접근할 수 있습니다.
반환값
Union[list[int], Dict]
지금까지 토큰화된 채팅을 나타내는 토큰 ID 목록이며, 제어 토큰을 포함합니다. 이 출력은 generate()와 같은 메서드를 통해 또는 직접 모델에 전달할 수 있는 상태입니다. return_dict가 설정된 경우, 대신 토크나이저 출력의 딕셔너리를 반환합니다.
"role" 및 "content" 키를 가진 사전 목록을 토큰 ID 목록으로 변환합니다. 이 메서드는 채팅 모델과 함께 사용할 목적으로 설계되었으며, 변환 시 사용할 형식 및 제어 토큰을 결정하기 위해 토크나이저의 chat_template 속성을 읽습니다.
batch_decode
< source >( sequences: list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → list[str]
매개변수
- sequences (
Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — 토큰화된 입력 ID 목록입니다.__call__메서드를 사용하여 얻을 수 있습니다. - skip_special_tokens (
bool, 선택 사항, 기본값False) — 디코딩 과정에서 특수 토큰을 제거할지 여부입니다. - clean_up_tokenization_spaces (
bool, 선택) — 토큰화 공백을 정리할지 여부입니다.None인 경우 기본값으로self.clean_up_tokenization_spaces를 사용합니다. - kwargs (추가 키워드 인자, 선택 사항) — 기저 모델의 특정 decode 메서드에 전달됩니다.
반환값
list[str]
디코딩된 문장의 목록입니다.
decode를 호출하여 토큰 ID의 리스트로 된 리스트를 문자열의 리스트로 변환합니다.
이 메서드는 하위 호환성을 위해 제공됩니다. decode 메서드가 이제 배치 입력을 네이티브로 처리하므로, batch_decode 대신 decode를 직접 사용할 수 있습니다.
주어진 텍스트의 토큰화 공백을 정리합니다. 이 메서드는 주로 원격 코드 지원을 위해 사용됩니다.
convert_ids_to_tokens
< source >( ids: int | list[int]skip_special_tokens: bool = False ) → str or list[str]
…
convert_tokens_to_ids
< source >( tokens: str | list[str] ) → int or list[int]
…
convert_tokens_to_string
< source >( tokens: list[str] ) → str
단일 문자열의 토큰 시퀀스를 변환합니다. 가장 간단한 방법은 " ".join(tokens)이지만, 동시에 서브워드 토큰화 산출물을 제거하는 것이 더 바람직한 경우가 많습니다.
decode
< source >( token_ids: int | list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = False**kwargs ) → Union[str, list[str]]
매개변수
- token_ids (
Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — 토큰화된 입력 ID의 단일 시퀀스 또는 배치(시퀀스 목록)입니다.__call__메서드를 사용하여 얻을 수 있습니다. - skip_special_tokens (
bool, 선택 사항, 기본값False) — 디코딩 과정에서 특수 토큰을 제거할지 여부입니다. - kwargs (추가 키워드 인자, 선택 사항) — 기저 모델의 특정 decode 메서드에 전달됩니다.
반환값
Union[str, list[str]]
단일 시퀀스에 대한 디코딩된 문자열, 또는 시퀀스 배치에 대한 디코딩된 문자열 목록.
토크나이저와 어휘를 사용하여 특수 토큰을 제거하고 토크나이제이션 공백을 정리하는 옵션을 포함하여 id 시퀀스를 문자열로, 또는 시퀀스 목록을 문자열 목록으로 변환합니다.
self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids))를 실행하는 것과 유사합니다.
encode
< source >( text: TextInput | PreTokenizedInput | EncodedInputtext_pair: TextInput | PreTokenizedInput | EncodedInput | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0padding_side: str | None = Nonereturn_tensors: str | TensorType | None = None**kwargs ) → list[int], torch.Tensor, or np.ndarray
매개변수
- text (
str,list[str]또는list[int]) — 인코딩할 첫 번째 시퀀스입니다. 이는 문자열, 문자열 목록(tokenize메서드를 사용한 토큰화된 문자열) 또는 정수 목록(convert_tokens_to_ids메서드를 사용한 토큰화된 문자열 ID)일 수 있습니다. - text_pair (
str,list[str]또는list[int], 선택) — 인코딩할 선택적 두 번째 시퀀스입니다. 이는 문자열, 문자열 목록(tokenize메서드를 사용한 토큰화된 문자열) 또는 정수 목록(convert_tokens_to_ids메서드를 사용한 토큰화된 문자열 ID)일 수 있습니다. - add_special_tokens (
bool, 선택 사항, 기본값True) — 시퀀스를 인코딩할 때 특수 토큰을 추가할지 여부입니다. 이는 입력 ID에 자동으로 추가되는 토큰을 정의하는 기반 함수인PretrainedTokenizerBase.build_inputs_with_special_tokens를 사용합니다.bos또는eos토큰을 자동으로 추가하려는 경우 유용합니다. - padding (
bool,str또는 PaddingStrategy, 선택 사항, 기본값은False) — 패딩을 활성화하고 제어합니다. 다음 값을 허용합니다:True또는'longest': 배치 내 가장 긴 시퀀스 길이에 맞게 패딩을 수행합니다(단일 시퀀스만 제공된 경우 패딩을 하지 않음).'max_length':max_length인수로 지정된 최대 길이로 패딩하거나, 해당 인수가 제공되지 않으면 모델이 허용하는 최대 입력 길이로 패딩합니다.False또는'do_not_pad'(기본값): 패딩을 하지 않습니다(즉, 서로 다른 길이의 시퀀스로 구성된 배치로 출력할 수 있습니다).
- truncation (
bool,str또는 TruncationStrategy, 선택 사항, 기본값은False) — 잘림을 활성화하고 제어합니다. 다음 값을 허용합니다:True또는'longest_first':max_length인수로 지정된 최대 길이로 잘라내거나, 해당 인수가 제공되지 않으면 모델이 허용하는 최대 입력 길이로 잘라냅니다. 이 경우 토큰 단위로 잘라내며, 시퀀스 쌍(또는 쌍의 배치)이 제공되면 쌍 중 가장 긴 시퀀스에서 토큰을 하나씩 제거합니다.'only_first':max_length인수로 지정된 최대 길이 또는 해당 인수가 제공되지 않은 경우 모델이 허용하는 최대 입력 길이로 잘립니다. 이 옵션은 시퀀스 쌍(또는 쌍의 배치)이 제공된 경우 쌍의 첫 번째 시퀀스만 잘립니다.'only_second':max_length인수로 지정된 최대 길이로 잘라내거나, 해당 인수가 제공되지 않은 경우 모델이 허용하는 최대 입력 길이로 잘라냅니다. 이 옵션은 시퀀스 쌍(또는 쌍의 배치)이 제공된 경우에만 쌍의 두 번째 시퀀스를 잘라냅니다.False또는'do_not_truncate'(기본값): 잘라내기 없음 (즉, 모델이 허용하는 최대 입력 크기보다 긴 시퀀스 길이를 가진 배치 출력 가능).
- max_length (
int, 선택 사항) — truncation/padding 파라미터 중 하나가 사용할 최대 길이를 제어합니다.설정하지 않거나
None으로 설정하면, truncation/padding 파라미터 중 하나가 최대 길이를 요구할 경우 미리 정의된 모델 최대 길이를 사용합니다. 모델에 특정 최대 입력 길이가 없는 경우(XLNet 등) 최대 길이로 truncation/padding하는 기능이 비활성화됩니다. - stride (
int, 선택 사항, 기본값 0) —max_length와 함께 숫자로 설정하면,return_overflowing_tokens=True일 때 반환되는 오버플로 토큰에는 잘린 시퀀스의 끝부분에서 가져온 일부 토큰이 포함됩니다. 이를 통해 잘린 시퀀스와 오버플로 시퀀스 사이에 일부 중복이 생깁니다. 이 인수의 값은 중복되는 토큰의 수를 정의합니다. - is_split_into_words (
bool, 선택 사항, 기본값False) — 입력이 이미 사전 토큰화(예: 단어 단위로 분리)되었는지 여부입니다.True로 설정하면 토크나이저는 입력이 이미 단어 단위로 분리되어 있다고 가정하고(예: 공백 기준으로 분리) 이를 토큰화합니다. 이는 NER 또는 토큰 분류에 유용합니다. - pad_to_multiple_of (
int, 선택 사항) — 설정하면 시퀀스를 제공된 값의 배수로 패딩합니다.padding이 활성화되어 있어야 합니다. 이는 Volta에서>= 7.5의 컴퓨트 기능을 가진 NVIDIA 하드웨어에서 Tensor Cores 사용을 활성화하는 데 특히 유용합니다. - padding_side (
str, 선택 사항) — 모델에 패딩을 적용할 쪽입니다. [‘right’, ‘left’] 중에서 선택해야 합니다. 기본값은 동일한 이름의 클래스 속성에서 가져옵니다. - return_tensors (
str또는 TensorType, 선택 사항) — 설정된 경우, Python 정수 목록 대신 텐서를 반환합니다. 허용되는 값은 다음과 같습니다:'pt': PyTorchtorch.Tensor객체를 반환합니다.'np': Numpynp.ndarray객체를 반환합니다.
- **kwargs —
.tokenize()메서드에 전달됩니다.
반환값
list[int], torch.Tensor 또는 np.ndarray
텍스트의 토큰화 된 id입니다.
토크나이저와 어휘를 사용하여 문자열을 id(정수)의 시퀀스로 변환합니다.
self.convert_tokens_to_ids(self.tokenize(text))를 실행하는 것과 동일합니다.
encode_message_with_chat_template
< source >( message: dict[str, str]conversation_history: list[dict[str, str]] | None = None**kwargs ) → list[int]
매개변수
- message (
dict) — 토큰화할 메시지를 나타내는 “role” 및 “content” 키를 가진 사전입니다. - conversation_history (
list[dict], 선택) — “role” 및 “content” 키를 가진 딕셔너리의 목록으로, 지금까지의 채팅 히스토리를 나타냅니다. 메시지를 하나씩 토큰화하는 경우, 대화의 이전 메시지를 여기에 전달해야 합니다. - **kwargs —
apply_chat_template메서드에 전달할 추가 kwargs.
반환값
list[int]
토큰화된 메시지를 나타내는 토큰 ID 목록입니다.
단일 메시지를 토큰화합니다. 이 메서드는 apply_chat_template를 감싸는 편의 래퍼로, 메시지를 하나씩 토큰화할 수 있습니다. 이는 토큰 단위 스트리밍과 같은 작업에 유용합니다.
이 메서드가 완벽하게 동작한다고 보장되지 않습니다. 일부 모델에서는 단일 메시지를 견고하게 토큰화하는 것이 불가능할 수 있습니다. 예를 들어, 채팅 템플릿이 각 메시지 뒤에 토큰을 추가하되 전체 채팅에 추가되는 접두사(prefix)도 있는 경우, 채팅 시작 토큰과 메시지 시작 토큰을 구별하는 것이 불가능합니다.
이러한 경우, 이 메서드는 올바른 토큰화를 찾기 위해 최선을 다하지만 완벽하지 않을 수 있습니다. 참고: 이 메서드는 add_generation_prompt를 지원하지 않습니다. 생성 프롬프트를 추가하려면 대화 내용을 토큰화한 후 별도로 수행해야 합니다.
from_pretrained
< source >( pretrained_model_name_or_path: str | os.PathLike*init_inputscache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'trust_remote_code = False**kwargs )
매개변수
- pretrained_model_name_or_path (
str또는os.PathLike) — 다음 중 하나일 수 있습니다:- huggingface.co의 모델 저장소에 호스팅된 사전 정의된 토크나이저의 model id를 나타내는 문자열
- 토크나이저에 필요한 어휘 파일을 포함하는 디렉터리의 경로입니다. 예를 들어 save_pretrained() 메서드를 사용하여 저장한 경우,
./my_model_directory/와 같습니다. - (비추천, 모든 파생 클래스에 적용되지 않음) 단일 저장 어휘 파일의 경로 (Bert나 XLNet처럼 단일 어휘 파일만 필요한 토크나이저인 경우에만), 예:
./my_model_directory/vocab.txt.
- cache_dir (
str또는os.PathLike, 선택 사항) — 표준 캐시를 사용하지 않을 경우, 다운로드된 사전 정의된 토크나이저 어휘 파일이 캐시될 디렉터리의 경로입니다. - force_download (
bool, 선택 사항, 기본값False) — 어휘 파일을 (재)다운로드를 강제하고, 캐시된 버전이 존재하는 경우 이를 무시할지 여부. - proxies (
dict[str, str], 선택) — 프로토콜 또는 엔드포인트별로 사용할 프록시 서버의 사전, 예:{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. 각 요청에 프록시가 사용됩니다. - token (
str또는 bool, 선택 사항) — 원격 파일에 대한 HTTP bearer 인증으로 사용할 토큰입니다.True인 경우,hf auth login실행 시 생성된 토큰(~/.huggingface에 저장됨)을 사용합니다. - local_files_only (
bool, 선택 사항, 기본값False) — 로컬 파일에만 의존하고 파일을 다운로드하지 않으려면 True로 설정합니다. - revision (
str, 선택 사항, 기본값"main") — 사용할 특정 모델 버전입니다. huggingface.co에서 모델과 기타 아티팩트를 저장하기 위해 git 기반 시스템을 사용하므로,revision은 git에서 허용하는 모든 식별자, 즉 브랜치 이름, 태그 이름 또는 커밋 ID가 될 수 있습니다. - subfolder (
str, 선택 사항) — huggingface.co의 모델 저장소에서 관련 파일이 하위 폴더에 있는 경우(예: facebook/rag-token-base) 여기에 지정합니다. - inputs (추가 위치 인자, 선택 사항) —
Tokenizer의
__init__메서드에 전달됩니다. - trust_remote_code (
bool, 선택 사항, 기본값False) — Hub에서 자체 modeling 파일로 정의된 커스텀 모델을 허용할지 여부입니다. 이 옵션은 Hub에 존재하는 코드가 로컬 머신에서 실행되므로, 신뢰할 수 있는 저장소에서만True로 설정하고 해당 코드를 검토한 후에 사용해야 합니다. - kwargs (추가 키워드 인자, 선택 사항) —
Tokenizer의
__init__메서드에 전달됩니다.bos_token,eos_token,unk_token,sep_token,pad_token,cls_token,mask_token,extra_special_tokens와 같은 특수 토큰을 설정하는 데 사용할 수 있습니다. 자세한 내용은__init__의 매개변수를 참조하세요.
PreTrainedTokenizerBase(또는 파생 클래스)를 사전 정의된 토크나이저에서 인스턴스화합니다.
비공개 모델을 사용하려면
token=True를 전달해야 합니다.
예:
# We can't instantiate directly the base class *PreTrainedTokenizerBase* so let's show our examples on a derived class: BertTokenizer
# Download vocabulary from huggingface.co and cache.
tokenizer = BertTokenizer.from_pretrained("google-bert/bert-base-uncased")
# Download vocabulary from huggingface.co (user-uploaded) and cache.
tokenizer = BertTokenizer.from_pretrained("dbmdz/bert-base-german-cased")
# If vocabulary files are in a directory (e.g. tokenizer was saved using *save_pretrained('./test/saved_model/')*)
tokenizer = BertTokenizer.from_pretrained("./test/saved_model/")
# If the tokenizer uses a single vocabulary file, you can point directly to this file
tokenizer = BertTokenizer.from_pretrained("./test/saved_model/my_vocab.txt")
# You can link tokens to special vocabulary when instantiating
tokenizer = BertTokenizer.from_pretrained("google-bert/bert-base-uncased", unk_token="<unk>")
# You should be sure '<unk>' is in the vocabulary when doing that.
# Otherwise use tokenizer.add_special_tokens({'unk_token': '<unk>'}) instead)
assert tokenizer.unk_token == "<unk>"get_chat_template
< source >( chat_template: str | None = Nonetools: list[dict] | None = None ) → str
매개변수
- chat_template (
str, 선택 사항) — 이 변환에 사용할 Jinja 템플릿 또는 템플릿 이름입니다. 기본적으로 모델의 템플릿이 사용되므로 이 인자에 값을 전달할 필요가 거의 없습니다. - tools (
list[Dict], 선택 사항) — 모델이 접근할 수 있는 도구(호출 가능한 함수) 목록입니다. 템플릿이 함수 호출을 지원하지 않으면 이 인수는 효과가 없습니다. 각 도구는 JSON Schema로 전달해야 하며, 도구의 이름, 설명 및 인자 유형을 지정합니다. 자세한 내용은 채팅 템플릿 가이드를 참고하세요.
반환값
str
채팅 템플릿 문자열.
채팅 메시지를 토큰화하는 데 사용되는 채팅 템플릿 문자열을 가져옵니다. 이 템플릿은 apply_chat_template 메서드에서 내부적으로 사용되며, 생성 추적을 개선하기 위해 모델의 채팅 템플릿을 외부에서 가져오는 데에도 사용할 수 있습니다.
get_response_parser
< source >( response_template: dict | None = Noneprefix: str | list[int] | np.ndarray | torch.Tensor | None = Nonetools: list[dict | Callable] | None = None )
스트리밍된 응답을 점진적으로 파싱하기 위한 상태가 있는 ResponseParser를 반환합니다. response_template 속성이 오버라이드되지 않는 한 토크나이저의 response_template 속성을 사용합니다.
prefix(문자열, 토큰 ID 목록 또는 1차원 텐서)은 필수입니다. 스트림은 채팅 프롬프트 컨텍스트가 암시하는 상태로 초기화되며(스펙의 start_anchor 이후를 오른쪽으로 잘라낸 상태), 따라서 stream.feed()를 통해 공급되는 생성된 청크는 모델이 계속하는 어시스턴트 턴 콘텐츠(예: <think>\n)가 채팅 템플릿에서 출력된 경우에도 올바르게 분류됩니다. 이 인수를 생략하면 예외가 발생하며, 스트림이 실제로 깨끗한 어시스턴트 턴에서 시작되는 경우 prefix=""를 전달하여 이 동작을 비활성화할 수 있습니다.
tools (list[Union[Dict, Callable]], 선택 사항): 모델이 사용할 수 있는 도구 목록으로, apply_chat_template가 받는 형식과 동일합니다. 이 값이 설정되면 각 region이 닫힐 때 호출된 도구의 JSON schema를 사용하여 tool-call 인수를 변환하므로, 스트리밍 region_close 이벤트에는 타입이 지정된 인수가 포함됩니다.
get_special_tokens_mask
< source >( token_ids_0: list[int]token_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]
…
빠른 토크나이저의 경우, 데이터 콜레이터는 이미 포맷된 시퀀스에 대한 마스크를 생성하기 위해 already_has_special_tokens=True를 전달하여 이 함수를 호출합니다. 이 경우 all_special_ids에 대한 멤버십을 확인하여 마스크를 계산합니다.
토큰에서 인덱스로 매핑된 사전 형식으로 어휘를 반환합니다.
token이 어휘 사전에 있는 경우, tokenizer.get_vocab()[token]은 tokenizer.convert_tokens_to_ids(token)과 동일합니다.
패딩
< source >( encoded_inputs: BatchEncoding | list[BatchEncoding] | dict[str, EncodedInput] | dict[str, list[EncodedInput]] | list[dict[str, EncodedInput]]padding: bool | str | PaddingStrategy = Truemax_length: int | None = Nonepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_attention_mask: bool | None = Nonereturn_tensors: str | TensorType | None = Noneverbose: bool = True )
매개변수
- encoded_inputs (BatchEncoding, 의 리스트 BatchEncoding,
dict[str, list[int]],dict[str, list[list[int]]또는list[dict[str, list[int]]]) — 토큰화된 입력입니다. 단일 입력(BatchEncoding 또는dict[str, list[int]]) 또는 토큰화된 입력의 배치( BatchEncoding, dict[str, list[list[int]]] 또는 list[dict[str, list[int]]]) 이므로, 이 메서드를 전처리 단계와 PyTorch Dataloader의 collate 함수에서 모두 사용할 수 있습니다.list[int]대신 텐서(numpy 배열 또는 PyTorch 텐서)를 사용할 수 있으며, 반환 타입에 대해서는 위의 참고 사항을 참조하세요. - padding (
bool,str또는 PaddingStrategy, 선택 사항, 기본값은True) — 모델의 패딩 방향과 패딩 인덱스에 따라 반환된 시퀀스에 적용할 패딩 전략을 다음 중 선택합니다:True또는'longest'(기본값): 배치 내 가장 긴 시퀀스 길이에 맞게 패딩을 수행합니다(단일 시퀀스만 제공된 경우 패딩을 하지 않음).'max_length':max_length인수로 지정된 최대 길이로 패딩하거나, 해당 인수가 제공되지 않으면 모델이 허용하는 최대 입력 길이로 패딩합니다.False또는'do_not_pad': 패딩을 하지 않습니다(즉, 서로 다른 길이의 시퀀스로 구성된 배치로 출력할 수 있습니다).
- max_length (
int, 선택 사항) — 반환되는 목록의 최대 길이 및 선택적으로 패딩 길이(위 참조). - pad_to_multiple_of (
int, 선택 사항) — 설정하면 시퀀스를 제공된 값의 배수로 패딩합니다.이 기능은 컴퓨트 캐피빌리티가
>= 7.5(Volta)인 NVIDIA 하드웨어에서 Tensor Cores 사용을 활성화하는 데 특히 유용합니다. - padding_side (
str, 선택 사항) — 모델에 패딩을 적용할 쪽입니다. [‘right’, ‘left’] 중에서 선택해야 합니다. 기본값은 동일한 이름의 클래스 속성에서 가져옵니다. - return_attention_mask (
bool, 선택 사항) — attention mask를 반환할지 여부. 기본값으로 두면,return_outputs속성에 의해 정의된 해당 tokenizer의 기본값에 따라 attention mask를 반환합니다. - return_tensors (
str또는 TensorType, 선택 사항) — 설정된 경우, Python 정수 목록 대신 텐서를 반환합니다. 허용되는 값은 다음과 같습니다:'pt': PyTorchtorch.Tensor객체를 반환합니다.'np': Numpynp.ndarray객체를 반환합니다.
- verbose (
bool, 선택 사항, 기본값True) — 추가 정보와 경고를 출력할지 여부.
단일 인코딩 입력 또는 배치의 인코딩 입력을 사전 정의된 길이 또는 배치 내 최대 시퀀스 길이까지 패딩합니다.
Padding side (left/right) padding token id는 tokenizer 수준에서 정의됩니다(self.padding_side, self.pad_token_id, self.pad_token_type_id).
빠른 토크나이저를 사용하는 경우, 텍스트를 인코딩하는 메서드를 호출한 후 패딩된 인코딩을 얻기 위해 pad 메서드를 호출하는 것보다 __call__ 메서드를 사용하는 것이 더 빠릅니다.
encoded_inputs로 전달된 값이 numpy 배열의 딕셔너리 또는 PyTorch 텐서인 경우,return_tensors로 다른 텐서 유형을 지정하지 않는 한 결과도 동일한 유형을 사용합니다. PyTorch 텐서의 경우, 텐서의 특정 디바이스가 손실됩니다.
parse_response
< source >( response: str | list[int] | list[str] | list[list[int]] | np.ndarray | torch.Tensorschema: dict | None = Noneprefix: str | list[int] | list[str] | list[list[int]] | np.ndarray | torch.Tensor | None = Nonetools: list[dict | Callable] | None = None )
매개변수
- response (
str, token ids, 1D/2D tensor, 또는 이들의 목록) — 모델이 생성한 출력입니다. 단일 시퀀스(str/list[int]/ 1D 배열 / 1D tensor) 또는 배치(list[str]/list[list[int]]/ 2D 배열 / 2D tensor) 형태의 디코딩된 텍스트 또는 token ids입니다. 이전 프롬프트 텍스트가 아닌 모델 출력만 포함해야 하며, 프롬프트 텍스트는prefix에 넣어야 합니다. - schema (
dict, 선택) — 예상 출력 형식과 파싱 방식을 나타내는 응답 템플릿입니다. 제공되지 않으면 토크나이저의response_template속성이 사용됩니다. - prefix (
str, token ids, 1D/2D tensor, 또는 이러한 것들의 목록) — 생성 전에 있던 프롬프트입니다. 많은 채팅 템플릿이 메시지의 일부를 미리 작성하므로, 올바르게 파싱하려면 프롬프트를 확인해야 합니다. 배치된response의 경우, 단일 prefix(모든 항목에 브로드캐스트) 또는 항목별 prefix를 전달합니다. - tools (
list[Union[Dict, Callable]], 선택 사항) —apply_chat_template가 받는 것과 동일한 형식으로, 모델이 사용할 수 있는 도구입니다. 인수로 전달되면, 도구 호출 인수는 해당 도구의 JSON 스키마를 사용하여 캐스팅됩니다:"7"은 정수 매개변수의 경우7이 되지만, 문자열 매개변수의 경우"7"으로 유지됩니다.
모델에서 텍스트를 생성하여 만든 출력 문자열을 파싱된 메시지 딕셔너리로 변환합니다.
이 메서드는 채팅 모델과 함께 사용할 목적으로 설계되었으며, schema 인수가 직접 전달되지 않는 한 토크나이저의 response_template 속성을 읽어 파싱을 제어합니다.
단일 시퀀스 또는 배치 중 하나를 입력으로 받습니다. 단일 시퀀스(문자열 또는 1차원 토큰 ID 시퀀스)는 파싱된 메시지 dict 하나를 반환하고, 배치(문자열 목록, 토큰 ID 시퀀스 목록, 또는 2차원 텐서/배열)는 항목별로 파싱된 메시지 dict를 담은 list를 반환합니다.
push_to_hub
< source >( repo_id: strcommit_message: str | None = Nonecommit_description: str | None = Noneprivate: bool | None = Nonetoken: bool | str | None = Nonerevision: str | None = Nonecreate_pr: bool = Falsemax_shard_size: int | str | None = '50GB'tags: list[str] | None = None )
매개변수
- repo_id (
str) — 토크나이저를 푸시하려는 저장소의 이름입니다. 특정 조직에 푸시할 경우 조직 이름을 포함해야 합니다. - commit_message (
str, 선택 사항) — 푸시할 때 커밋할 메시지입니다. 기본값은"Upload tokenizer"입니다. - commit_description (
str, 선택 사항) — 생성될 커밋의 설명 - private (
bool, 선택 사항) — 리포지토리를 비공개로 만들지 여부를 지정합니다.None(기본값)인 경우, 조직의 기본 설정이 비공개가 아닌 한 리포지토리는 공개됩니다. 리포지토리가 이미 존재하면 이 값은 무시됩니다. - token (
bool또는str, 선택 사항) — 원격 파일에 대한 HTTP bearer 인증으로 사용할 토큰입니다.True(기본값)인 경우,hf auth login실행 시 생성된 토큰(~/.huggingface에 저장됨)을 사용합니다. - revision (
str, 선택 사항) — 업로드된 파일을 푸시할 브랜치. - create_pr (
bool, 선택 사항, 기본값False) — 업로드된 파일로 PR을 생성할지 아니면 직접 커밋할지 여부. - max_shard_size (
int또는str, 선택 사항, 기본값"50GB") — 모델에만 적용됩니다. 샤딩되기 전 체크포인트의 최대 크기입니다. 샤딩된 각 체크포인트의 크기는 이 크기보다 작아집니다. 문자열로 표현하는 경우, 숫자 뒤에 단위(예:"5MB")가 따라와야 합니다. - tags (
list[str], 선택) — Hub에 push할 태그 목록.
토크나이저 파일을 🤗 Model Hub에 업로드합니다.
예:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-cased")
# Push the tokenizer to your namespace with the name "my-finetuned-bert".
tokenizer.push_to_hub("my-finetuned-bert")
# Push the tokenizer to an organization with the name "my-finetuned-bert".
tokenizer.push_to_hub("huggingface/my-finetuned-bert")register_for_auto_class
< source >( auto_class = 'AutoTokenizer' )
이 클래스를 주어진 auto 클래스에 등록합니다. 라이브러리에 포함된 토크나이저는 이미 AutoTokenizer에 매핑되어 있으므로, 이 메서드는 커스텀 토크나이저에만 사용해야 합니다.
save_chat_templates
< source >( save_directory: str | os.PathLiketokenizer_config: dictfilename_prefix: str | Nonesave_jinja_files: bool )
새 형식을 사용하는 경우 채팅 템플릿을 저장 디렉토리에 기록하고, 토크나이저 설정에 이미 존재하는 경우 이를 제거합니다. 레거시 형식을 사용하는 경우 파일을 기록하지 않고, 대신 템플릿을 올바른 형식으로 토크나이저 설정에 기록합니다.
save_pretrained
< source >( save_directory: str | os.PathLikelegacy_format: bool | None = Nonefilename_prefix: str | None = Nonepush_to_hub: bool = False**kwargs ) → A tuple of str
매개변수
- save_directory (
str또는os.PathLike) — 토크나이저를 저장할 디렉터리의 경로입니다. - legacy_format (
bool, 선택 사항) — fast tokenizer에만 적용됩니다. 설정하지 않은 경우(기본값), legacy 형식이 존재하는 경우(즉, tokenizer별 어휘와 별도의 added_tokens 파일)에도 통합 JSON 형식으로 tokenizer를 저장합니다.False인 경우, 통합 JSON 형식으로만 토크나이저를 저장합니다. 이 형식은 tokenizers 라이브러리를 사용하지 않는 “slow” 토크나이저와 호환되지 않으므로, 해당 “slow” 토크나이저로 로드할 수 없습니다.True인 경우, 토크나이저를 레거시 형식으로 저장합니다. “slow” 토크나이저가 존재하지 않으면 값 오류가 발생합니다. - filename_prefix (
str, 선택 사항) — 토크나이저가 저장하는 파일 이름에 추가할 접두사입니다. - push_to_hub (
bool, 선택 사항, 기본값False) — 모델을 저장한 후 Hugging Face 모델 허브에 푸시할지 여부입니다.repo_id를 사용하여 푸시할 저장소를 지정할 수 있으며, 지정하지 않으면 네임스페이스 내save_directory의 이름이 기본값으로 사용됩니다. - kwargs (
dict[str, Any], 선택) — push_to_hub() 메서드에 함께 전달되는 추가 키워드 인자입니다.
반환값
str의 튜플
저장된 파일
토크나이저의 전체 상태를 저장합니다.
이 메서드는 전체 토크나이저가 ~tokenization_utils_base.PreTrainedTokenizer.from_pretrained 클래스 메서드를 사용하여 다시 로드될 수 있도록 보장합니다.
Warning,None 인스턴스화 이후에 토크나이저에 적용한 수정 사항(예: 생성 후 tokenizer.do_lower_case를 수정하는 경우)은 저장되지 않습니다.
save_vocabulary
< source >( save_directory: strfilename_prefix: str | None = None ) → tuple(str)
토크나이저의 어휘만 저장합니다(어휘 + 추가 토큰).
이 메서드는 토크나이저의 설정 및 특수 토큰 매핑을 저장하지 않습니다. 토크나이저의 전체 상태를 저장하려면 _save_pretrained()를 사용하세요.
토큰화
< source >( text: strpair: str | None = Noneadd_special_tokens: bool = False**kwargs ) → list[str]
매개변수
- text (
str) — 인코딩할 시퀀스. - pair (
str, 선택 사항) — 첫 번째 시퀀스와 함께 인코딩할 두 번째 시퀀스. - add_special_tokens (
bool, 선택 사항, 기본값False) — 해당 모델과 연관된 특수 토큰을 추가할지 여부. - kwargs (추가 키워드 인자, 선택 사항) — 기저 모델의 특정 encode 메서드에 전달됩니다. 자세한 내용은 call()를 참조하세요.
반환값
list[str]
토큰 목록
문자열을 토큰 시퀀스로 변환하며, 알려지지 않은 토큰은 unk_token으로 대체합니다.
Enums 및 namedtuples
클래스 transformers.tokenization_utils_base.TruncationStrategy
< source >( valuenames = Nonemodule = Nonequalname = Nonetype = Nonestart = 1boundary = None )
PreTrainedTokenizerBase.call()의 truncation 인자에서 사용할 수 있는 값입니다. IDE에서 탭 완성 기능을 사용할 때 유용합니다.
클래스 transformers.CharSpan
< source >( start: ForwardRef('int')end: ForwardRef('int') )
원본 문자열의 문자 범위.
클래스 transformers.TokenSpan
< source >( start: ForwardRef('int')end: ForwardRef('int') )
인코딩된 문자열(토큰 목록)의 토큰 범위.