Transformers documentation

토크나이저

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

토크나이저

토크나이저는 모델의 입력을 준비하는 역할을 담당합니다. 이 라이브러리에는 모든 모델에 대한 토크나이저가 포함되어 있습니다. 대부분의 토크나이저는 두 가지 형태로 제공됩니다. 하나는 완전한 Python 구현이고, 다른 하나는 Rust 라이브러리 🤗 Tokenizers에 기반한 “Fast” 구현입니다. “Fast” 구현은 다음을 허용합니다:

  1. 특히 배치 토큰화를 수행할 때 상당한 속도 향상을 제공하며
  2. 원본 문자열(문자 및 단어)과 토큰 공간(예: 주어진 문자를 포함하는 토큰의 인덱스 또는 주어진 토큰에 해당하는 문자 범위) 간의 매핑을 위한 추가 메서드

기본 클래스 PreTrainedTokenizer와 PreTrainedTokenizerFast는 모델 입력으로 문자열을 인코딩하는 공통 메서드(아래 참조)를 구현하며, 로컬 파일 또는 디렉터리에서, 또는 라이브러리가 제공하는 사전 학습된 토크나이저(HuggingFace의 AWS S3 저장소에서 다운로드)에서 Python 토크나이저와 “Fast” 토크나이저를 생성/저장합니다. 두 클래스 모두 공통 메서드를 포함하는 PreTrainedTokenizerBase에 의존합니다.

따라서 PreTrainedTokenizer와 PreTrainedTokenizerFast는 모든 토크나이저를 사용하는 데 필요한 주요 메서드를 구현합니다:

  • 토큰화(문자를 서브워드 토큰 문자열로 분할), 토큰 문자열을 id로 변환하고 다시 되돌리는 작업, 그리고 인코딩/디코딩(즉, 토큰화하고 정수로 변환하는 작업)
  • 기저 구조(BPE, SentencePiece…)와 무관하게 어휘에 새 토큰을 추가하는 방법
  • 특수 토큰(마스크, 문장 시작 토큰 등) 관리: 추가, 토크나이저의 속성에 할당하여 쉽게 접근할 수 있도록 설정, 그리고 토크나이제이션 과정에서 분리되지 않도록 보장

BatchEncoding은 PreTrainedTokenizerBase의 인코딩 메서드(__call__, encode_plus, batch_encode_plus)의 출력을 담고 있으며 Python 딕셔너리에서 파생된 클래스입니다. 토크나이저가 순수 Python 토크나이저인 경우, 이 클래스는 표준 Python 딕셔너리와 동일하게 동작하며 해당 메서드들이 계산한 다양한 모델 입력(input_ids, attention_mask 등)을 저장합니다. 토크나이저가 “Fast” 토크나이저(즉, HuggingFace tokenizers library를 기반으로 하는 경우)인 경우, 이 클래스는 원본 문자열(문자 및 단어)과 토큰 공간(예: 특정 문자를 포함하는 토큰의 인덱스 또는 특정 토큰에 해당하는 문자 범위) 간의 매핑에 사용할 수 있는 몇 가지 고급 정렬 메서드를 추가로 제공합니다.

멀티모달 토크나이저

그 외에도 각 tokenizer는 “multimodal” tokenizer일 수 있으며, 이는 tokenizer가 더 쉬운 접근을 위해 관련 특수 토큰을 모두 tokenizer 속성으로 보유한다는 것을 의미합니다. 예를 들어, LLaVA와 같은 vision-language model에서 tokenizer를 로드한 경우, tokenizer.image_token_id에 접근하여 플레이스홀더로 사용되는 특수 이미지 토큰을 가져올 수 있습니다.

모든 유형의 tokenizer에 추가 특수 토큰을 활성화하려면 다음 줄을 추가하고 tokenizer를 저장해야 합니다. 추가 특수 토큰은 반드시 모달리티와 관련이 있을 필요는 없으며, 모델이 자주 접근해야 하는 어떤 것이든 될 수 있습니다. 아래 코드에서 output_dir의 tokenizer는 세 개의 추가 특수 토큰에 직접 접근할 수 있습니다.

vision_tokenizer = AutoTokenizer.from_pretrained(
    "llava-hf/llava-1.5-7b-hf",
    extra_special_tokens={"image_token": "<image>", "boi_token": "<image_start>", "eoi_token": "<image_end>"}
)
print(vision_tokenizer.image_token, vision_tokenizer.image_token_id)
("<image>", 32000)

PreTrainedTokenizer

클래스 transformers.PythonBackend

< >

( **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 in max_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', '>']를 반환합니다.

모든 느린 토크나이저의 베이스 클래스입니다.

PreTrainedTokenizerBase에서 상속됩니다.

토큰화 및 특수 토큰과 관련된 모든 공유 메서드, 사전 학습된 토크나이저의 다운로드/캐싱/로딩 메서드, 어휘에 토큰을 추가하는 메서드를 처리합니다.

이 클래스는 BPE, sentencepiece 등 다양한 기반 사전 구조의 특정 어휘 확장 방법을 별도로 처리할 필요가 없도록, 모든 tokenizer 위에 추가된 토큰을 통합된 방식으로 포함합니다.

클래스 속성(파생 클래스에서 재정의됨)

  • 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__

< >

( 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': PyTorch torch.Tensor 객체를 반환합니다.
    • 'np': Numpy np.ndarray 객체를 반환합니다.
  • return_token_type_ids (bool, 선택 사항) — 토큰 타입 ID를 반환할지 여부. 기본값으로 두면, 해당 토크나이저의 기본값에 따라 토큰 타입 ID를 반환합니다. 이 기본값은 return_outputs 속성으로 정의됩니다.

    토큰 타입 ID란 무엇인가요?

  • 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

다음 필드를 가진 BatchEncoding:

  • input_ids — 모델에 입력할 토큰 ID 목록.

    입력 ID란 무엇인가요?

  • token_type_ids — 모델에 입력할 토큰 유형 ID 목록 (return_token_type_ids=True인 경우 또는 self.model_input_names에 “token_type_ids”가 포함된 경우).

    토큰 타입 ID란 무엇인가요?

  • 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_tokens

< >

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

add_special_tokens

< >

( 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>"

apply_chat_template

< >

( 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': PyTorch torch.Tensor 객체를 반환합니다.
    • 'np': NumPy np.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

< >

( 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를 직접 사용할 수 있습니다.

decode

< >

( 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

< >

( 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': PyTorch torch.Tensor 객체를 반환합니다.
    • 'np': Numpy np.ndarray 객체를 반환합니다.
  • **kwargs — .tokenize() 메서드에 전달됩니다.

반환값

list[int], torch.Tensor 또는 np.ndarray

텍스트의 토큰화 된 id입니다.

토크나이저와 어휘를 사용하여 문자열을 id(정수)의 시퀀스로 변환합니다.

self.convert_tokens_to_ids(self.tokenize(text))를 실행하는 것과 동일합니다.

push_to_hub

< >

( 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")

build_inputs_with_special_tokens

< >

( 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 목록.

특수 토큰을 추가하여 시퀀스 또는 시퀀스 쌍에서 모델 입력을 구성합니다.

이 메서드는 토크나이저의 special_tokens_pattern을 기반으로 입력을 동적으로 구성합니다:

  • "none": 특수 토큰 없음
  • "cls_sep": [CLS] seq0 [SEP] 또는 [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] 또는 seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 또는 [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] 또는 [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] 또는 [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens> (토크나이저에 저장된 사용자 정의 prefix/suffix)

create_token_type_ids_from_sequences

< >

( 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입니다.

시퀀스-페어 분류 작업에 사용될 마스크를 전달된 두 시퀀스에서 생성합니다.

이 메서드는 토크나이저의 구성 속성을 기반으로 토큰 유형 ID를 동적으로 생성합니다:

  • token_type_ids_pattern: 사용할 패턴(“all_zeros” 또는 “bert_style”)
  • token_type_ids_include_special_tokens: 길이 계산에 특수 토큰을 포함할지 여부

예:

# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences

# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairs

get_added_vocab

< >

( ) → dict[str, int]

반환값

dict[str, int]

추가된 토큰입니다.

… 어휘에 추가된 토큰을 토큰에서 인덱스로 매핑된 딕셔너리로 반환합니다. 현재는 토큰이 이미 어휘에 존재하더라도 항상 추가하기 때문에, … 호출 결과와 다를 수 있습니다. 이 부분은 변경해야 할 사항입니다.

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]

매개변수

  • token_ids_0 (list[int]) — 첫 번째 시퀀스의 id 목록.
  • token_ids_1 (list[int], 선택 사항) — 두 번째 시퀀스의 id 목록.
  • already_has_special_tokens (bool, 선택, 기본값 False) — 토큰 목록이 이미 모델의 특수 토큰으로 포맷되어 있는지 여부입니다.

반환값

범위 [0, 1]의 정수 목록

특수 토큰은 1, 시퀀스 토큰은 0입니다.

특수 토큰이 추가되지 않은 토큰 목록에서 시퀀스 ID를 가져옵니다. 이 메서드는 토크나이저의 prepare_for_model 또는 encode_plus 메서드를 사용하여 특수 토큰을 추가할 때 호출됩니다.

이 메서드는 토크나이저의 special_tokens_pattern에 기반하여 특수 토큰 마스크를 동적으로 구성합니다:

  • "none": 특수 토큰 없음(기본값, 0만 반환)
  • "cls_sep": [CLS] seq0 [SEP] 또는 [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] 또는 seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 또는 [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] 또는 [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] 또는 [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens>

num_special_tokens_to_add

< >

( pair: bool = False ) → int

매개변수

  • pair (bool, 선택 사항, 기본값 False) — 추가되는 토큰의 수를 시퀀스 쌍인지 단일 시퀀스인지에 따라 계산할지 여부입니다.

반환값

int

시퀀스에 추가되는 특수 토큰의 수.

특수 토큰을 사용하여 시퀀스를 인코딩할 때 추가된 토큰의 수를 반환합니다.

이것은 더미 입력을 인코딩하고 추가된 토큰의 수를 확인하므로 효율적이지 않습니다. 학습 루프 안에 이 코드를 배치하지 마세요.

prepare_for_model

< >

( ids: listpair_ids: list[int] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Falsemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = False**kwargs )

매개변수

  • ids — 첫 번째 시퀀스의 토큰화된 입력 id.
  • pair_ids — 두 번째 시퀀스의 토큰화된 입력 ID(선택 사항).

모델에서 사용할 수 있도록 입력 id 시퀀스를 준비합니다. 특수 토큰을 추가하고, 잘라내고, 패딩을 적용합니다.

prepare_for_tokenization

< >

( text: stris_split_into_words: bool = False**kwargs ) → tuple[str, dict[str, Any]]

매개변수

  • text (str) — 준비할 텍스트.
  • is_split_into_words (bool, 선택 사항, 기본값 False) — 입력이 이미 사전 토큰화(예: 단어 단위로 분리)되었는지 여부입니다. True로 설정하면 토크나이저는 입력이 이미 단어 단위로 분리되어 있다고 가정하고(예: 공백 기준으로 분리) 이를 토큰화합니다. 이는 NER 또는 토큰 분류에 유용합니다.
  • kwargs (dict[str, Any], 선택) — 토큰화에 사용할 키워드 인자입니다.

반환값

tuple[str, dict[str, Any]]

준비된 텍스트와 사용되지 않은 kwargs입니다.

토큰화 전에 필요한 변환을 수행합니다.

이 메서드는 kwargs에서 인수를 꺼내어 사용하고, 남은 kwargs도 반환해야 합니다. 모든 인수가 사용되었는지 확인하기 위해 인코딩 과정의 마지막에 kwargs를 검사합니다.

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]

매개변수

  • save_directory (str) — 어휘를 저장할 디렉터리입니다.
  • filename_prefix (str, 선택 사항) — 저장할 파일 이름에 추가할 선택적 접두사입니다.

반환값

tuple[str, ...]

저장된 파일의 경로, 파일이 저장되지 않은 경우 빈 튜플.

Default implementation for common vocabulary saving patterns. Saves self.encoder/self.vocab as JSON, optionally with self.bpe_ranks as merges. Returns empty tuple if no vocabulary exists.

토크나이저에 커스텀 저장 로직(예: SentencePiece 모델, 여러 어휘 파일, 특수 파일 형식)이 필요한 경우 이 메서드를 오버라이드하세요.

토큰화

< >

( text: str**kwargs )

매개변수

  • text — 인코딩할 시퀀스.
  • **kwargs — 모델별 prepare_for_tokenization 전처리 메서드에 전달됩니다.

토크나이저를 사용하여 문자열을 토큰 시퀀스로 변환합니다.

truncate_sequences

< >

( ids: listpair_ids: list[int] | None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0 )

지정된 전략에 따라 시퀀스를 잘라냅니다.

PreTrainedTokenizerFast

PreTrainedTokenizerFast는 tokenizers 라이브러리에 의존합니다. 🤗 tokenizers 라이브러리로 생성한 토크나이저는 🤗 transformers에 매우 간단하게 로드할 수 있습니다. 이 과정이 어떻게 이루어지는지 이해하려면 🤗 tokenizers에서 토크나이저 사용하기 페이지를 참고하세요.

클래스 transformers.TokenizersBackend

< >

( *args**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 in max_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', '>']를 반환합니다.
  • tokenizer_object (tokenizers.Tokenizer) — 🤗 tokenizers의 tokenizers.Tokenizer 객체를 인스턴스화할 때 사용할 대상입니다. 자세한 내용은 🤗 tokenizers의 tokenizers 사용을 참조하세요.
  • tokenizer_file (str) — 🤗 tokenizers의 이전에 직렬화된 tokenizers.Tokenizer 객체를 나타내는 로컬 JSON 파일의 경로입니다.

모든 빠른 토크나이저의 베이스 클래스(HuggingFace tokenizers 라이브러리를 래핑).

PreTrainedTokenizerBase에서 상속됩니다.

토큰화 및 특수 토큰에 대한 모든 공유 메서드, 사전 학습된 토크나이저의 다운로드/캐싱/로드 메서드, 어휘에 토큰을 추가하는 메서드를 처리합니다.

이 클래스는 다양한 기본 사전 구조(BPE, sentencepiece 등)의 특정 어휘 확장 방법을 처리할 필요가 없도록, 모든 tokenizer 위에 추가된 토큰을 통합된 방식으로 포함합니다.

클래스 속성(파생 클래스에서 재정의됨)

  • 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__

< >

( 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': PyTorch torch.Tensor 객체를 반환합니다.
    • 'np': Numpy np.ndarray 객체를 반환합니다.
  • return_token_type_ids (bool, 선택 사항) — 토큰 타입 ID를 반환할지 여부. 기본값으로 두면, 해당 토크나이저의 기본값에 따라 토큰 타입 ID를 반환합니다. 이 기본값은 return_outputs 속성으로 정의됩니다.

    토큰 타입 ID란 무엇인가요?

  • 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

다음 필드를 가진 BatchEncoding:

  • input_ids — 모델에 입력할 토큰 ID 목록.

    입력 ID란 무엇인가요?

  • token_type_ids — 모델에 입력할 토큰 유형 ID 목록 (return_token_type_ids=True인 경우 또는 self.model_input_names에 “token_type_ids”가 포함된 경우).

    토큰 타입 ID란 무엇인가요?

  • 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_tokens

< >

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

add_special_tokens

< >

( 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>"

apply_chat_template

< >

( 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': PyTorch torch.Tensor 객체를 반환합니다.
    • 'np': NumPy np.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

< >

( 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를 직접 사용할 수 있습니다.

decode

< >

( 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

< >

( 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': PyTorch torch.Tensor 객체를 반환합니다.
    • 'np': Numpy np.ndarray 객체를 반환합니다.
  • **kwargs — .tokenize() 메서드에 전달됩니다.

반환값

list[int], torch.Tensor 또는 np.ndarray

텍스트의 토큰화 된 id입니다.

토크나이저와 어휘를 사용하여 문자열을 id(정수)의 시퀀스로 변환합니다.

self.convert_tokens_to_ids(self.tokenize(text))를 실행하는 것과 동일합니다.

push_to_hub

< >

( 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")

convert_to_native_format

< >

( trust_remote_code = False**kwargs )

사용 가능한 직렬화 파일(tokenizer.json, sentencepiece 모델, tekken.json, vocab/merges)로부터 tokenizers.Tokenizer 백엔드를 구축합니다.

get_added_vocab

< >

( ) → dict[str, int]

반환값

dict[str, int]

추가된 토큰입니다.

…

num_special_tokens_to_add

< >

( pair: bool = False ) → int

매개변수

  • pair (bool, 선택 사항, 기본값 False) — 추가되는 토큰의 수를 시퀀스 쌍인지 단일 시퀀스인지에 따라 계산할지 여부입니다.

반환값

int

시퀀스에 추가되는 특수 토큰의 수.

특수 토큰을 사용하여 시퀀스를 인코딩할 때 추가된 토큰의 수를 반환합니다.

이것은 더미 입력을 인코딩하고 추가된 토큰의 수를 확인하므로 효율적이지 않습니다. 학습 루프 안에 이 코드를 배치하지 마세요.

save_pretrained

< >

( save_directory: str | os.PathLikelegacy_format: bool | None = Nonefilename_prefix: str | None = Nonepush_to_hub: bool = Falsesave_format: str | None = None**kwargs ) → A tuple of str

매개변수

  • save_format (str, 선택) — "mistral"을 지정하면 원본 파일을 복사하여 네이티브 tekken.json으로 저장합니다(원본 tekken 어휘 파일이 사용 가능해야 함). 저장 시 파일 이름은 tekken.json으로 정규화되며, 인스턴스화된 토크나이저는 여전히 해당 파일과 정확히 일치해야 합니다. "hf" 또는 None은 기본 HuggingFace 형식을 사용합니다.
  • kwargs (dict[str, Any], 선택) — push_to_hub() 메서드에 함께 전달되는 추가 키워드 인자입니다.

반환값

str의 튜플

저장된 파일

토크나이저의 전체 상태를 저장합니다.

save_format 지원을 추가하여 save_pretrained()를 확장했습니다. 이는 네이티브 어휘 파일(예: Mistral의 tekken.json)에서 변환된 토크나이저에 적용됩니다. legacy_format, filename_prefix, push_to_hub에 대해서는 기본 메서드를 참조하세요.

set_truncation_and_padding

< >

( padding_strategy: PaddingStrategytruncation_strategy: TruncationStrategymax_length: intstride: intpad_to_multiple_of: int | Nonepadding_side: str | None )

매개변수

  • padding_strategy (PaddingStrategy) — 입력에 적용될 패딩의 종류
  • truncation_strategy (TruncationStrategy) — 입력에 적용될 절단 방식
  • max_length (int) — 시퀀스의 최대 크기입니다.
  • stride (int) — 오버플로우 처리 시 사용할 스트라이드입니다.
  • pad_to_multiple_of (int, 선택 사항) — 설정된 경우, 시퀀스를 제공된 값의 배수로 패딩합니다. 이는 NVIDIA 하드웨어에서 Volta 아키텍처의 연산 능력 >= 7.5를 활용하여 Tensor Cores를 사용하는 데 특히 유용합니다.
  • padding_side (str, 선택 사항) — 모델에 패딩을 적용할 쪽입니다. [‘right’, ‘left’] 중에서 선택해야 합니다. 기본값은 동일한 이름의 클래스 속성에서 가져옵니다.

HuggingFace tokenizers 라이브러리가 제공하는 빠른 토크나이저에 대해 잘림(truncation) 및 패딩(padding) 전략을 정의한 후, 이후에 토크나이저 설정을 복원합니다.

제공된 tokenizer에는 관리되는 섹션 전에 padding / truncation 전략이 없습니다. tokenizer에 이전에 padding / truncation 전략이 설정되어 있었다면, 관리되는 섹션을 나설 때 padding / truncation이 없는 상태로 초기화됩니다.

train_new_from_iterator

< >

( text_iteratorvocab_sizelength = Nonenew_special_tokens = Nonespecial_tokens_map = None**kwargs ) → PreTrainedTokenizerFast

매개변수

  • text_iterator (list[str]의 generator) — 학습 코퍼스입니다. 텍스트 배치의 generator여야 하며, 모든 데이터가 메모리에 있는 경우 텍스트의 리스트로 된 리스트와 같은 형태일 수 있습니다.
  • vocab_size (int) — 토크나이저에 사용할 어휘의 크기입니다.
  • length (int, 선택 사항) — 이터레이터에 포함된 시퀀스의 총 개수입니다. 이는 의미 있는 진행 상황 추적을 제공하기 위해 사용됩니다.
  • new_special_tokens (str 또는 AddedToken의 목록, 선택 사항) — 학습 중인 토크나이저에 추가할 새로운 특수 토큰 목록입니다.
  • special_tokens_map (dict[str, str], 선택) — 이 토크나이저가 사용하는 특수 토큰 중 일부의 이름을 변경하려면, 이 인자에 기존 특수 토큰 이름에서 새 특수 토큰 이름으로의 매핑을 전달하세요.
  • kwargs (dict[str, Any], 선택) — 🤗 Tokenizers 라이브러리에서 trainer로 전달되는 추가 키워드 인자.

text_iterator에서 학습된, 원본과 동일한 유형의 새로운 tokenizer입니다.

…

update_post_processor

< >

( )

현재 bos_token와 eos_token으로 기본 post processor를 업데이트합니다.

PythonBackend

클래스 transformers.PythonBackend

< >

( **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 in max_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', '>']를 반환합니다.

모든 느린 토크나이저의 베이스 클래스입니다.

PreTrainedTokenizerBase에서 상속됩니다.

토큰화 및 특수 토큰과 관련된 모든 공유 메서드, 사전 학습된 토크나이저의 다운로드/캐싱/로딩 메서드, 어휘에 토큰을 추가하는 메서드를 처리합니다.

이 클래스는 BPE, sentencepiece 등 다양한 기반 사전 구조의 특정 어휘 확장 방법을 별도로 처리할 필요가 없도록, 모든 tokenizer 위에 추가된 토큰을 통합된 방식으로 포함합니다.

클래스 속성(파생 클래스에서 재정의됨)

  • 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'여야 합니다.

build_inputs_with_special_tokens

< >

( 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 목록.

특수 토큰을 추가하여 시퀀스 또는 시퀀스 쌍에서 모델 입력을 구성합니다.

이 메서드는 토크나이저의 special_tokens_pattern을 기반으로 입력을 동적으로 구성합니다:

  • "none": 특수 토큰 없음
  • "cls_sep": [CLS] seq0 [SEP] 또는 [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] 또는 seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 또는 [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] 또는 [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] 또는 [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens> (토크나이저에 저장된 사용자 정의 prefix/suffix)

create_token_type_ids_from_sequences

< >

( 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입니다.

시퀀스-페어 분류 작업에 사용될 마스크를 전달된 두 시퀀스에서 생성합니다.

이 메서드는 토크나이저의 구성 속성을 기반으로 토큰 유형 ID를 동적으로 생성합니다:

  • token_type_ids_pattern: 사용할 패턴(“all_zeros” 또는 “bert_style”)
  • token_type_ids_include_special_tokens: 길이 계산에 특수 토큰을 포함할지 여부

예:

# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences

# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairs

get_added_vocab

< >

( ) → dict[str, int]

반환값

dict[str, int]

추가된 토큰입니다.

… 어휘에 추가된 토큰을 토큰에서 인덱스로 매핑된 딕셔너리로 반환합니다. 현재는 토큰이 이미 어휘에 존재하더라도 항상 추가하기 때문에, … 호출 결과와 다를 수 있습니다. 이 부분은 변경해야 할 사항입니다.

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]

매개변수

  • token_ids_0 (list[int]) — 첫 번째 시퀀스의 id 목록.
  • token_ids_1 (list[int], 선택 사항) — 두 번째 시퀀스의 id 목록.
  • already_has_special_tokens (bool, 선택, 기본값 False) — 토큰 목록이 이미 모델의 특수 토큰으로 포맷되어 있는지 여부입니다.

반환값

범위 [0, 1]의 정수 목록

특수 토큰은 1, 시퀀스 토큰은 0입니다.

특수 토큰이 추가되지 않은 토큰 목록에서 시퀀스 ID를 가져옵니다. 이 메서드는 토크나이저의 prepare_for_model 또는 encode_plus 메서드를 사용하여 특수 토큰을 추가할 때 호출됩니다.

이 메서드는 토크나이저의 special_tokens_pattern에 기반하여 특수 토큰 마스크를 동적으로 구성합니다:

  • "none": 특수 토큰 없음(기본값, 0만 반환)
  • "cls_sep": [CLS] seq0 [SEP] 또는 [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] 또는 seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 또는 [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] 또는 [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] 또는 [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens>

num_special_tokens_to_add

< >

( pair: bool = False ) → int

매개변수

  • pair (bool, 선택 사항, 기본값 False) — 추가되는 토큰의 수를 시퀀스 쌍인지 단일 시퀀스인지에 따라 계산할지 여부입니다.

반환값

int

시퀀스에 추가되는 특수 토큰의 수.

특수 토큰을 사용하여 시퀀스를 인코딩할 때 추가된 토큰의 수를 반환합니다.

이것은 더미 입력을 인코딩하고 추가된 토큰의 수를 확인하므로 효율적이지 않습니다. 학습 루프 안에 이 코드를 배치하지 마세요.

prepare_for_model

< >

( ids: listpair_ids: list[int] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Falsemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = False**kwargs )

매개변수

  • ids — 첫 번째 시퀀스의 토큰화된 입력 id.
  • pair_ids — 두 번째 시퀀스의 토큰화된 입력 ID(선택 사항).

모델에서 사용할 수 있도록 입력 id 시퀀스를 준비합니다. 특수 토큰을 추가하고, 잘라내고, 패딩을 적용합니다.

prepare_for_tokenization

< >

( text: stris_split_into_words: bool = False**kwargs ) → tuple[str, dict[str, Any]]

매개변수

  • text (str) — 준비할 텍스트.
  • is_split_into_words (bool, 선택 사항, 기본값 False) — 입력이 이미 사전 토큰화(예: 단어 단위로 분리)되었는지 여부입니다. True로 설정하면 토크나이저는 입력이 이미 단어 단위로 분리되어 있다고 가정하고(예: 공백 기준으로 분리) 이를 토큰화합니다. 이는 NER 또는 토큰 분류에 유용합니다.
  • kwargs (dict[str, Any], 선택) — 토큰화에 사용할 키워드 인자입니다.

반환값

tuple[str, dict[str, Any]]

준비된 텍스트와 사용되지 않은 kwargs입니다.

토큰화 전에 필요한 변환을 수행합니다.

이 메서드는 kwargs에서 인수를 꺼내어 사용하고, 남은 kwargs도 반환해야 합니다. 모든 인수가 사용되었는지 확인하기 위해 인코딩 과정의 마지막에 kwargs를 검사합니다.

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]

매개변수

  • save_directory (str) — 어휘를 저장할 디렉터리입니다.
  • filename_prefix (str, 선택 사항) — 저장할 파일 이름에 추가할 선택적 접두사입니다.

반환값

tuple[str, ...]

저장된 파일의 경로, 파일이 저장되지 않은 경우 빈 튜플.

일반적인 어휘 저장 패턴에 대한 기본 구현입니다. self.encoder/self.vocab를 JSON으로 저장하며, 선택적으로 self.bpe_ranks를 병합(merges)으로 저장합니다. 어휘가 존재하지 않으면 빈 튜플을 반환합니다.

토크나이저에 커스텀 저장 로직(예: SentencePiece 모델, 여러 어휘 파일, 특수 파일 형식)이 필요한 경우 이 메서드를 오버라이드하세요.

토큰화

< >

( text: str**kwargs )

매개변수

  • text — 인코딩할 시퀀스.
  • **kwargs — 모델별 prepare_for_tokenization 전처리 메서드에 전달됩니다.

토크나이저를 사용하여 문자열을 토큰 시퀀스로 변환합니다.

truncate_sequences

< >

( ids: listpair_ids: list[int] | None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0 )

지정된 전략에 따라 시퀀스를 잘라냅니다.

TokenizersBackend

클래스 transformers.TokenizersBackend

< >

( *args**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 in max_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', '>']를 반환합니다.
  • tokenizer_object (tokenizers.Tokenizer) — 🤗 tokenizers의 tokenizers.Tokenizer 객체를 인스턴스화할 때 사용할 대상입니다. 자세한 내용은 🤗 tokenizers의 tokenizers 사용을 참조하세요.
  • tokenizer_file (str) — 🤗 tokenizers의 이전에 직렬화된 tokenizers.Tokenizer 객체를 나타내는 로컬 JSON 파일의 경로입니다.

모든 빠른 토크나이저의 베이스 클래스(HuggingFace tokenizers 라이브러리를 래핑).

PreTrainedTokenizerBase에서 상속됩니다.

토큰화 및 특수 토큰에 대한 모든 공유 메서드, 사전 학습된 토크나이저의 다운로드/캐싱/로드 메서드, 어휘에 토큰을 추가하는 메서드를 처리합니다.

이 클래스는 다양한 기본 사전 구조(BPE, sentencepiece 등)의 특정 어휘 확장 방법을 처리할 필요가 없도록, 모든 tokenizer 위에 추가된 토큰을 통합된 방식으로 포함합니다.

클래스 속성(파생 클래스에서 재정의됨)

  • 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'여야 합니다.

convert_to_native_format

< >

( trust_remote_code = False**kwargs )

사용 가능한 직렬화 파일(tokenizer.json, sentencepiece 모델, tekken.json, vocab/merges)로부터 tokenizers.Tokenizer 백엔드를 구축합니다.

get_added_vocab

< >

( ) → dict[str, int]

반환값

dict[str, int]

추가된 토큰입니다.

…

num_special_tokens_to_add

< >

( pair: bool = False ) → int

매개변수

  • pair (bool, 선택 사항, 기본값 False) — 추가되는 토큰의 수를 시퀀스 쌍인지 단일 시퀀스인지에 따라 계산할지 여부입니다.

반환값

int

시퀀스에 추가되는 특수 토큰의 수.

특수 토큰을 사용하여 시퀀스를 인코딩할 때 추가된 토큰의 수를 반환합니다.

이것은 더미 입력을 인코딩하고 추가된 토큰의 수를 확인하므로 효율적이지 않습니다. 학습 루프 안에 이 코드를 배치하지 마세요.

save_pretrained

< >

( save_directory: str | os.PathLikelegacy_format: bool | None = Nonefilename_prefix: str | None = Nonepush_to_hub: bool = Falsesave_format: str | None = None**kwargs ) → A tuple of str

매개변수

  • save_format (str, 선택) — "mistral"을 지정하면 원본 파일을 복사하여 네이티브 tekken.json으로 저장합니다(원본 tekken 어휘 파일이 사용 가능해야 함). 저장 시 파일 이름은 tekken.json으로 정규화되며, 인스턴스화된 토크나이저는 여전히 해당 파일과 정확히 일치해야 합니다. "hf" 또는 None은 기본 HuggingFace 형식을 사용합니다.
  • kwargs (dict[str, Any], 선택) — push_to_hub() 메서드에 함께 전달되는 추가 키워드 인자입니다.

반환값

str의 튜플

저장된 파일

토크나이저의 전체 상태를 저장합니다.

save_format 지원을 추가하여 save_pretrained()를 확장했습니다. 이는 네이티브 어휘 파일(예: Mistral의 tekken.json)에서 변환된 토크나이저에 적용됩니다. legacy_format, filename_prefix, push_to_hub에 대해서는 기본 메서드를 참조하세요.

set_truncation_and_padding

< >

( padding_strategy: PaddingStrategytruncation_strategy: TruncationStrategymax_length: intstride: intpad_to_multiple_of: int | Nonepadding_side: str | None )

매개변수

  • padding_strategy (PaddingStrategy) — 입력에 적용될 패딩의 종류
  • truncation_strategy (TruncationStrategy) — 입력에 적용될 절단 방식
  • max_length (int) — 시퀀스의 최대 크기입니다.
  • stride (int) — 오버플로우 처리 시 사용할 스트라이드입니다.
  • pad_to_multiple_of (int, 선택 사항) — 설정된 경우, 시퀀스를 제공된 값의 배수로 패딩합니다. 이는 NVIDIA 하드웨어에서 Volta 아키텍처의 연산 능력 >= 7.5를 활용하여 Tensor Cores를 사용하는 데 특히 유용합니다.
  • padding_side (str, 선택 사항) — 모델에 패딩을 적용할 쪽입니다. [‘right’, ‘left’] 중에서 선택해야 합니다. 기본값은 동일한 이름의 클래스 속성에서 가져옵니다.

HuggingFace tokenizers 라이브러리가 제공하는 빠른 토크나이저에 대해 잘림(truncation) 및 패딩(padding) 전략을 정의한 후, 이후에 토크나이저 설정을 복원합니다.

제공된 tokenizer에는 관리되는 섹션 전에 padding / truncation 전략이 없습니다. tokenizer에 이전에 padding / truncation 전략이 설정되어 있었다면, 관리되는 섹션을 나설 때 padding / truncation이 없는 상태로 초기화됩니다.

train_new_from_iterator

< >

( text_iteratorvocab_sizelength = Nonenew_special_tokens = Nonespecial_tokens_map = None**kwargs ) → PreTrainedTokenizerFast

매개변수

  • text_iterator (list[str]의 generator) — 학습 코퍼스입니다. 텍스트 배치의 generator여야 하며, 모든 데이터가 메모리에 있는 경우 텍스트의 리스트로 된 리스트와 같은 형태일 수 있습니다.
  • vocab_size (int) — 토크나이저에 사용할 어휘의 크기입니다.
  • length (int, 선택 사항) — 이터레이터에 포함된 시퀀스의 총 개수입니다. 이는 의미 있는 진행 상황 추적을 제공하기 위해 사용됩니다.
  • new_special_tokens (str 또는 AddedToken의 목록, 선택 사항) — 학습 중인 토크나이저에 추가할 새로운 특수 토큰 목록입니다.
  • special_tokens_map (dict[str, str], 선택) — 이 토크나이저가 사용하는 특수 토큰 중 일부의 이름을 변경하려면, 이 인자에 기존 특수 토큰 이름에서 새 특수 토큰 이름으로의 매핑을 전달하세요.
  • kwargs (dict[str, Any], 선택) — 🤗 Tokenizers 라이브러리에서 trainer로 전달되는 추가 키워드 인자.

text_iterator에서 학습된, 원본과 동일한 유형의 새로운 tokenizer입니다.

…

update_post_processor

< >

( )

현재 bos_token와 eos_token으로 기본 post processor를 업데이트합니다.

SentencePieceBackend

클래스 transformers.SentencePieceBackend

< >

( **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 in max_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', '>']를 반환합니다.

sentencepiece.model 파일에서 로드되는 SentencePiece 기반 토크나이저의 베이스 클래스입니다.

PreTrainedTokenizer에서 상속됩니다.

토큰화 및 특수 토큰과 관련된 모든 공유 메서드, 사전 학습된 토크나이저의 다운로드/캐싱/로딩 메서드, 어휘에 토큰을 추가하는 메서드를 처리합니다.

이 클래스는 BPE, sentencepiece 등 다양한 기반 사전 구조의 특정 어휘 확장 방법을 별도로 처리할 필요가 없도록, 모든 tokenizer 위에 추가된 토큰을 통합된 방식으로 포함합니다.

클래스 속성(파생 클래스에서 재정의됨)

  • 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'여야 합니다.

convert_tokens_to_string

< >

( tokens: list )

단일 문자열 내 토큰(문자열) 시퀀스를 변환합니다.

get_vocab

< >

( )

vocab을 dict로 반환합니다

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple(str)

매개변수

  • save_directory (str) — 어휘를 저장할 디렉터리입니다.
  • filename_prefix (str, 선택 사항) — 저장할 파일 이름에 추가할 선택적 접두사입니다.

반환값

tuple(str)

저장된 파일의 경로입니다.

…

BatchEncoding

클래스 transformers.BatchEncoding

< >

( data: dict[str, Any] | None = Noneencoding: EncodingFast | Sequence[EncodingFast] | None = Nonetensor_type: None | str | TensorType = Noneprepend_batch_axis: bool = Falsen_sequences: int | None = None )

매개변수

  • data (dict, 선택 사항) — __call__/encode_plus/batch_encode_plus 메서드가 반환하는 리스트/배열/텐서들의 딕셔너리(‘input_ids’, ‘attention_mask’ 등).
  • encoding (tokenizers.Encoding 또는 Sequence[tokenizers.Encoding], 선택 사항) — 토크나이저가 워드/문자 공간에서 토큰 공간으로의 매핑과 같은 추가 정보를 출력하는 fast tokenizer인 경우, tokenizers.Encoding 인스턴스 또는 인스턴스 목록(배치의 경우)에 이 정보가 저장됩니다.
  • tensor_type (Union[None, str, TensorType], 선택 사항) — 초기화 시 PyTorch/Numpy 텐서에서 정수 목록을 변환하려면 여기에 tensor_type을 지정할 수 있습니다.
  • prepend_batch_axis (bool, 선택 사항, 기본값 False) — 텐서로 변환할 때 배치 축을 추가할지 여부입니다(위 tensor_type 참조). tensor_type 파라미터가 설정된 경우에만 이 파라미터가 효과를 가지며, 그렇지 않으면 효과가 없습니다.
  • n_sequences (Optional[int], 선택 사항) — 각 인코딩이 나타내는 입력 시퀀스의 수(알 수 없는 경우 None, 단일 시퀀스인 경우 1, 시퀀스 쌍인 경우 2).

call(), ~tokenization_utils_base.PreTrainedTokenizerBase.encode_plus 및 ~tokenization_utils_base.PreTrainedTokenizerBase.batch_encode_plus 메서드의 출력(tokens, attention_masks 등)을 보유합니다.

이 클래스는 python 딕셔너리에서 파생되어 딕셔너리처럼 사용할 수 있습니다. 또한, 이 클래스는 단어/문자 공간에서 토큰 공간으로 매핑하는 유틸리티 메서드를 제공합니다.

char_to_token

< >

( batch_or_char_index: intchar_index: int | None = Nonesequence_index: int = 0 ) → int

매개변수

  • batch_or_char_index (int) — 배치 내 시퀀스의 인덱스입니다. 배치에 시퀀스가 하나만 포함된 경우, 시퀀스 내 문자의 인덱스일 수 있습니다.
  • char_index (int, 선택 사항) — batch_or_char_index에 배치 인덱스가 제공된 경우, 이는 시퀀스 내 문자의 인덱스가 될 수 있습니다.
  • sequence_index (int, 선택 사항, 기본값 0) — 배치에 시퀀스 쌍이 인코딩된 경우, 제공된 문자 인덱스가 해당 쌍의 어느 시퀀스(0 또는 1)에 속하는지 지정하는 데 사용할 수 있습니다.

반환값

int

토큰의 인덱스입니다. 공백만 포함된 토큰을 가리키는 문자 인덱스이고 trim_offsets=True로 공백이 제거된 경우 None입니다.

batch의 시퀀스에 대해, 인코딩된 출력에서 원본 문자열의 문자를 구성하는 토큰의 인덱스를 가져옵니다.

다음과 같이 호출할 수 있습니다:

  • self.char_to_token(char_index) (batch size가 1인 경우)
  • self.char_to_token(batch_index, char_index)는 배치 크기가 1 이상인 경우

이 메서드는 입력 시퀀스가 사전 토큰화된 시퀀스(즉, 사용자가 단어를 정의한 경우)로 제공될 때 특히 적합합니다. 이 경우 인코딩된 토큰을 사용자가 제공한 토큰화된 단어와 쉽게 대응시킬 수 있습니다.

char_to_word

< >

( batch_or_char_index: intchar_index: int | None = Nonesequence_index: int = 0 ) → int

매개변수

  • batch_or_char_index (int) — 배치 내 시퀀스의 인덱스입니다. 배치에 시퀀스가 하나만 포함된 경우, 원본 문자열 내 문자의 인덱스일 수 있습니다.
  • char_index (int, 선택 사항) — batch_or_char_index에 배치 인덱스가 제공된 경우, 이는 원본 문자열에서 문자의 인덱스일 수 있습니다.
  • sequence_index (int, 선택 사항, 기본값 0) — 배치에 시퀀스 쌍이 인코딩된 경우, 제공된 문자 인덱스가 해당 쌍의 어느 시퀀스(0 또는 1)에 속하는지 지정하는 데 사용할 수 있습니다.

반환값

int

해당 문자가 포함된 단어의 인덱스.

batch의 시퀀스에서 원본 문자열의 특정 문자에 해당하는 원본 문자열의 단어를 가져옵니다.

다음과 같이 호출할 수 있습니다:

  • self.char_to_word(char_index) (batch size가 1인 경우)
  • self.char_to_word(batch_index, char_index)는 배치 크기가 1보다 큰 경우

이 메서드는 입력 시퀀스가 사전 토큰화된 시퀀스(즉, 사용자가 단어를 정의한 경우)로 제공될 때 특히 적합합니다. 이 경우 인코딩된 토큰을 사용자가 제공한 토큰화된 단어와 쉽게 대응시킬 수 있습니다.

convert_to_tensors

< >

( tensor_type: str | TensorType | None = Noneprepend_batch_axis: bool = False )

매개변수

  • tensor_type (str 또는 TensorType, 선택 사항) — 사용할 텐서의 유형입니다. str인 경우, TensorType 열거형의 값 중 하나여야 합니다. None인 경우, 수정이 수행되지 않습니다.
  • prepend_batch_axis (bool, 선택 사항, 기본값 False) — 변환 과정에서 배치 차원을 추가할지 여부.

내부 내용을 텐서로 변환합니다.

sequence_ids

< >

( batch_index: int = 0 ) → list[Optional[int]]

매개변수

  • batch_index (int, 선택 사항, 기본값 0) — 배치에서 접근할 인덱스입니다.

반환값

list[Optional[int]]

각 토큰에 해당하는 시퀀스 id를 나타내는 리스트입니다. 토크나이저에 의해 추가된 특수 토큰은 None으로 매핑되고, 다른 토큰은 해당 시퀀스의 인덱스로 매핑됩니다.

토큰을 해당 토큰의 원래 문장 ID에 매핑하는 목록을 반환합니다:

  • 시퀀스 주위나 사이에 추가되는 특수 토큰에 대해 None
  • 0은 첫 번째 시퀀스의 단어에 해당하는 토큰에 대해
  • 1은 두 시퀀스가 함께 인코딩된 경우, 두 번째 시퀀스의 단어에 해당하는 토큰에 대해 사용됩니다.

(으)로

< >

( device: str | torch.device | intnon_blocking: bool = False ) → BatchEncoding

매개변수

  • device (str 또는 torch.device 또는 int) — 텐서를 배치할 장치입니다.
  • non_blocking (bool) — 복사를 비동기적으로 수행할지 여부.

반환값

BatchEncoding

수정된 후의 동일한 인스턴스.

v.to(device, non_blocking=non_blocking)을 호출하여 모든 값을 device로 전송합니다 (PyTorch 전용).

token_to_chars

< >

( batch_or_token_index: inttoken_index: int | None = None ) → CharSpan

매개변수

  • batch_or_token_index (int) — 배치 내 시퀀스의 인덱스입니다. 배치에 시퀀스가 하나만 포함된 경우, 시퀀스 내 토큰의 인덱스일 수 있습니다.
  • token_index (int, 선택 사항) — batch_or_token_index에 배치 인덱스가 제공된 경우, 이는 시퀀스 내 토큰의 인덱스가 될 수 있습니다.

반환값

CharSpan

원본 문자열에서 해당 토큰(예: , )이 대응하는 문자의 범위를 나타내며, 원본 문자열에 대응하는 문자가 없으면 None입니다.

배치의 시퀀스에서 인코딩된 토큰에 해당하는 문자 범위를 가져옵니다.

Character span은 CharSpan으로 반환되며, 다음을 포함합니다:

  • start — 해당 토큰과 연관된 원본 문자열의 첫 번째 문자 인덱스.
  • end — 해당 토큰에 연결된 원본 문자열에서 마지막 문자 다음에 오는 문자의 인덱스.

다음과 같이 호출할 수 있습니다:

  • self.token_to_chars(token_index) (batch size가 1인 경우)
  • self.token_to_chars(batch_index, token_index) (batch size가 1 이상인 경우)

token_to_sequence

< >

( batch_or_token_index: inttoken_index: int | None = None ) → int

매개변수

  • batch_or_token_index (int) — 배치 내 시퀀스의 인덱스입니다. 배치에 시퀀스가 하나만 포함된 경우, 시퀀스 내 토큰의 인덱스일 수 있습니다.
  • token_index (int, 선택) — batch_or_token_index에 배치 인덱스가 제공된 경우, 이는 시퀀스 내 토큰의 인덱스가 될 수 있습니다.

반환값

int

토큰이 포함된 입력 시퀀스의 인덱스(첫 번째 시퀀스의 경우 0, 쌍의 두 번째 시퀀스의 경우 1).

주어진 토큰이 나타내는 시퀀스의 인덱스를 가져옵니다. 일반적인 사용 사례에서 이 메서드는 단일 시퀀스 또는 쌍의 첫 번째 시퀀스에 대해 0을, 쌍의 두 번째 시퀀스에 대해 1을 반환합니다.

다음과 같이 호출할 수 있습니다:

  • self.token_to_sequence(token_index) (batch size가 1인 경우)
  • self.token_to_sequence(batch_index, token_index) (batch size가 1보다 큰 경우)

이 메서드는 입력 시퀀스가 사전 토큰화된 시퀀스(즉, 사용자가 단어를 정의한 경우)로 제공될 때 특히 적합합니다. 이 경우 인코딩된 토큰을 사용자가 제공한 토큰화된 단어와 쉽게 대응시킬 수 있습니다.

token_to_word

< >

( batch_or_token_index: inttoken_index: int | None = None ) → int

매개변수

  • batch_or_token_index (int) — 배치 내 시퀀스의 인덱스입니다. 배치에 시퀀스가 하나만 포함된 경우, 시퀀스 내 토큰의 인덱스일 수 있습니다.
  • token_index (int, 선택 사항) — batch_or_token_index에 배치 인덱스가 제공된 경우, 이는 시퀀스 내 토큰의 인덱스가 될 수 있습니다.

반환값

int

입력 시퀀스에서 단어의 인덱스.

배치의 시퀀스에서 인코딩된 토큰에 대응하는(즉, 포함하는) 단어의 인덱스를 가져옵니다.

다음과 같이 호출할 수 있습니다:

  • self.token_to_word(token_index) (batch size가 1인 경우)
  • self.token_to_word(batch_index, token_index) (batch size가 1보다 큰 경우)

이 메서드는 입력 시퀀스가 사전 토큰화된 시퀀스(즉, 사용자가 단어를 정의한 경우)로 제공될 때 특히 적합합니다. 이 경우 인코딩된 토큰을 제공된 토큰화된 단어와 쉽게 대응시킬 수 있습니다.

토큰

< >

( batch_index: int = 0 ) → list[str]

매개변수

  • batch_index (int, 선택 사항, 기본값 0) — 배치에서 접근할 인덱스입니다.

반환값

list[str]

해당 인덱스의 토큰 목록입니다.

…

word_ids

< >

( batch_index: int = 0 ) → list[Optional[int]]

매개변수

  • batch_index (int, 선택 사항, 기본값 0) — 배치에서 접근할 인덱스입니다.

반환값

list[Optional[int]]

각 토큰에 해당하는 단어를 나타내는 목록입니다. 토크나이저에 의해 추가된 특수 토큰은 None으로 매핑되고, 다른 토큰은 해당 단어의 인덱스로 매핑됩니다(단어의 일부인 여러 토큰은 동일한 단어 인덱스로 매핑될 수 있습니다).

빠른 토크나이저(fast tokenizer)의 경우, 토큰을 원래 문장의 실제 단어에 매핑하는 목록을 반환합니다.

word_to_chars

< >

( batch_or_word_index: intword_index: int | None = Nonesequence_index: int = 0 ) → CharSpan

매개변수

  • batch_or_word_index (int) — 배치 내 시퀀스의 인덱스입니다. 배치에 시퀀스가 하나만 포함된 경우, 시퀀스 내 단어의 인덱스일 수 있습니다.
  • word_index (int, 선택 사항) — batch_or_word_index에 배치 인덱스가 제공된 경우, 이는 시퀀스 내 단어의 인덱스일 수 있습니다.
  • sequence_index (int, 선택 사항, 기본값 0) — 배치에 시퀀스 쌍이 인코딩된 경우, 제공된 단어 인덱스가 해당 쌍의 어느 시퀀스(0 또는 1)에 속하는지 지정하는 데 사용할 수 있습니다.

반환값

CharSpan

문자열에서 해당 문자 또는 문자들의 범위. CharSpan은 다음을 포함하는 NamedTuple입니다:

  • start: 원본 문자열에서 해당 단어와 연결된 첫 번째 문자의 인덱스
  • end: 원본 문자열에서 해당 단어와 연관된 마지막 문자 다음에 오는 문자의 인덱스

…

Character spans은 CharSpan NamedTuple로 반환되며, 다음을 포함합니다:

  • start: 원본 문자열에서 첫 번째 문자의 인덱스
  • end: 원본 문자열의 마지막 문자 다음에 오는 문자의 인덱스

다음과 같이 호출할 수 있습니다:

  • self.word_to_chars(word_index) (batch size가 1인 경우)
  • self.word_to_chars(batch_index, word_index) (batch size가 1 이상인 경우)

word_to_tokens

< >

( batch_or_word_index: intword_index: int | None = Nonesequence_index: int = 0 ) → (TokenSpan, optional)

매개변수

  • batch_or_word_index (int) — 배치 내 시퀀스의 인덱스입니다. 배치에 시퀀스가 하나만 포함된 경우, 시퀀스 내 단어의 인덱스로 사용할 수 있습니다.
  • word_index (int, 선택 사항) — batch_or_word_index에 배치 인덱스가 제공된 경우, 이는 시퀀스 내 단어의 인덱스일 수 있습니다.
  • sequence_index (int, 선택 사항, 기본값 0) — 배치에 시퀀스 쌍이 인코딩된 경우, 제공된 단어 인덱스가 해당 쌍의 어느 시퀀스(0 또는 1)에 속하는지 지정하는 데 사용할 수 있습니다.

반환값

(TokenSpan, 선택 사항)

인코딩된 시퀀스에서 토큰의 범위(Span)를 반환합니다. 해당 단어에 대응하는 토큰이 없으면 None을 반환합니다. 이는 토큰이 토큰화를 포맷하는 데 사용된 특수 토큰인 경우 특히 발생할 수 있습니다. 예를 들어, 토큰화의 맨 앞에 클래스 토큰을 추가하는 경우입니다.

batch의 시퀀스에서 특정 단어에 해당하는 인코딩된 토큰 범위를 가져옵니다.

Token span은 TokenSpan으로 반환되며, 다음을 포함합니다:

  • start — 첫 번째 토큰의 인덱스.
  • end — 마지막 토큰 바로 다음 토큰의 인덱스.

다음과 같이 호출할 수 있습니다:

  • self.word_to_tokens(word_index, sequence_index: int = 0) (batch size가 1인 경우)
  • self.word_to_tokens(batch_index, word_index, sequence_index: int = 0) 배치 크기가 1 이상인 경우

이 메서드는 입력 시퀀스가 사전 토큰화된 시퀀스(즉, 사용자가 단어를 정의한 경우)로 제공될 때 특히 적합합니다. 이 경우 인코딩된 토큰을 사용자가 제공한 토큰화된 단어와 쉽게 대응시킬 수 있습니다.

Update on GitHub