# 데이터 콜레이터

Data collator는 `train_dataset` 또는 `eval_dataset`의 요소와 동일한 유형의 데이터셋 요소 목록을 입력으로 받아 배치(batch)를 형성하는 객체입니다.

배치를 구성하기 위해 데이터 콜레이터는 패딩과 같은 일부 전처리를 수행할 수 있습니다. 일부 콜레이터(예: [DataCollatorForLanguageModeling](/docs/transformers/v5.23.0/ko/main_classes/data_collator#transformers.DataCollatorForLanguageModeling))는 형성된 배치에 대해 랜덤 마스킹과 같은 무작위 데이터 증강을 적용하기도 합니다.

사용 예제는 [예제 노트북](https://github.com/huggingface/notebooks/tree/main/examples)에서 확인할 수 있습니다.

## 기본 데이터 콜레이터[[transformers.default_data_collator]]

#### transformers.default_data_collator[[transformers.default_data_collator]]

```python
transformers.default_data_collator(features: list[typing.Any], return_tensors = 'pt')
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/data/data_collator.py#L71)

dict 형태의 객체 배치에 대해 매우 간단한 collate 작업을 수행하고, 다음 이름의 키에 대해 특별한 처리를 수행하는 간단한 데이터 collator입니다:

- `label`: 개체당 단일 값(int 또는 float)을 처리합니다
- `label_ids`: 개체별 값 목록을 처리합니다

추가 전처리 작업을 수행하지 않습니다: 입력 객체의 속성 이름이 모델의 해당 입력으로 사용됩니다. 유용한 사용 예로는 glue와 ner를 참고하세요.

## DefaultDataCollator[[transformers.DefaultDataCollator]]

#### transformers.DefaultDataCollator[[transformers.DefaultDataCollator]]

```python
transformers.DefaultDataCollator(return_tensors: str = 'pt')
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/data/data_collator.py#L95)

**매개변수:**

return_tensors (`str`, *선택 사항*, 기본값 `"pt"`) : 반환할 Tensor의 유형입니다. 허용되는 값은 "np" 또는 "pt"입니다.

dict 형태의 객체 배치에 대해 매우 간단한 collate 작업을 수행하고, 다음 이름의 키에 대해 특별한 처리를 수행하는 간단한 데이터 collator입니다:

- `label`: 개체당 단일 값(int 또는 float)을 처리합니다
- `label_ids`: 개체별 값 목록을 처리합니다

추가 전처리 작업을 수행하지 않습니다: 입력 객체의 속성 이름이 모델의 해당 입력으로 사용됩니다. 유용한 사용 예로는 glue와 ner를 참고하세요.

default_data_collator와 같은 순수 함수가 아니라, 다른 data collator와 마찬가지로 객체입니다. 초기화 시 return_tensors 값을 설정해야 하는 경우 유용할 수 있습니다.

## DataCollatorWithPadding[[transformers.DataCollatorWithPadding]]

#### transformers.DataCollatorWithPadding[[transformers.DataCollatorWithPadding]]

```python
transformers.DataCollatorWithPadding(tokenizer: PreTrainedTokenizerBase, padding: bool | str | transformers.utils.generic.PaddingStrategy = True, max_length: int | None = None, pad_to_multiple_of: int | None = None, return_tensors: str = 'pt')
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/data/data_collator.py#L191)

**매개변수:**

tokenizer ([PreTrainedTokenizer](/docs/transformers/v5.23.0/ko/main_classes/tokenizer#transformers.PythonBackend) 또는 [PreTrainedTokenizerFast](/docs/transformers/v5.23.0/ko/main_classes/tokenizer#transformers.TokenizersBackend)) : 데이터를 인코딩하는 데 사용되는 토크나이저.

padding (`bool`, `str` 또는 [PaddingStrategy](/docs/transformers/v5.23.0/ko/internal/file_utils#transformers.utils.PaddingStrategy), *optional*, 기본값 `True`) : 반환되는 시퀀스에 패딩을 적용할 전략을 선택합니다(모델의 패딩 방향 및 패딩 인덱스에 따라). 선택지는 다음과 같습니다. - `True` 또는 `'longest'` (기본값): 배치 내 가장 긴 시퀀스 길이로 패딩합니다(단일 시퀀스만 제공된 경우 패딩하지 않음). - `'max_length'`: `max_length` 인수로 지정된 최대 길이로 패딩하거나, 해당 인수가 제공되지 않은 경우 모델이 허용하는 최대 입력 길이로 패딩합니다. - `False` 또는 `'do_not_pad'`: 패딩하지 않음(즉, 길이가 서로 다른 시퀀스로 구성된 배치를 출력할 수 있음).

max_length (`int`, *선택 사항*) : 반환되는 리스트의 최대 길이 및 선택적으로 패딩 길이(위 참조).

pad_to_multiple_of (`int`, *선택 사항*) : 설정된 경우, 시퀀스를 제공된 값의 배수로 패딩합니다. 이는 NVIDIA 하드웨어에서 Volta(컴퓨트 캐패빌리티 >= 7.0)와 같은 환경에서 Tensor Cores 사용을 활성화하는 데 특히 유용합니다.

return_tensors (`str`, *선택 사항*, 기본값 `"pt"`) : 반환할 Tensor의 유형입니다. 허용되는 값은 "np" 또는 "pt"입니다.

수신된 입력을 동적으로 패딩하는 데이터 콜레이터입니다.

## DataCollatorForTokenClassification[[transformers.DataCollatorForTokenClassification]]

#### transformers.DataCollatorForTokenClassification[[transformers.DataCollatorForTokenClassification]]

```python
transformers.DataCollatorForTokenClassification(tokenizer: PreTrainedTokenizerBase, padding: bool | str | transformers.utils.generic.PaddingStrategy = True, max_length: int | None = None, pad_to_multiple_of: int | None = None, label_pad_token_id: int = -100, return_tensors: str = 'pt')
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/data/data_collator.py#L243)

**매개변수:**

tokenizer ([PreTrainedTokenizer](/docs/transformers/v5.23.0/ko/main_classes/tokenizer#transformers.PythonBackend) 또는 [PreTrainedTokenizerFast](/docs/transformers/v5.23.0/ko/main_classes/tokenizer#transformers.TokenizersBackend)) : 데이터를 인코딩하는 데 사용되는 토크나이저.

padding (`bool`, `str` 또는 [PaddingStrategy](/docs/transformers/v5.23.0/ko/internal/file_utils#transformers.utils.PaddingStrategy), *optional*, 기본값 `True`) : 반환되는 시퀀스에 패딩을 적용할 전략을 선택합니다(모델의 패딩 방향 및 패딩 인덱스에 따라). 선택지는 다음과 같습니다. - `True` 또는 `'longest'` (기본값): 배치 내 가장 긴 시퀀스 길이로 패딩합니다(단일 시퀀스만 제공된 경우 패딩하지 않음). - `'max_length'`: `max_length` 인수로 지정된 최대 길이로 패딩하거나, 해당 인수가 제공되지 않은 경우 모델이 허용하는 최대 입력 길이로 패딩합니다. - `False` 또는 `'do_not_pad'`: 패딩하지 않음(즉, 길이가 서로 다른 시퀀스로 구성된 배치를 출력할 수 있음).

max_length (`int`, *선택 사항*) : 반환되는 리스트의 최대 길이 및 선택적으로 패딩 길이(위 참조).

pad_to_multiple_of (`int`, *선택 사항*) : 설정된 경우, 시퀀스를 제공된 값의 배수로 패딩합니다. 이는 NVIDIA 하드웨어에서 Volta(컴퓨트 캐패빌리티 >= 7.0)와 같은 환경에서 Tensor Cores 사용을 활성화하는 데 특히 유용합니다.

label_pad_token_id (`int`, *선택 사항*, 기본값 -100) : 레이블을 패딩할 때 사용할 id입니다. (-100은 PyTorch 손실 함수에 의해 자동으로 무시됩니다.)

return_tensors (`str`, *선택 사항*, 기본값 `"pt"`) : 반환할 Tensor의 유형입니다. 허용되는 값은 "np" 또는 "pt"입니다.

입력과 라벨을 동적으로 패딩하는 데이터 콜레이터입니다.

## DataCollatorForSeq2Seq[[transformers.DataCollatorForSeq2Seq]]

#### transformers.DataCollatorForSeq2Seq[[transformers.DataCollatorForSeq2Seq]]

```python
transformers.DataCollatorForSeq2Seq(tokenizer: PreTrainedTokenizerBase, model: typing.Any | None = None, padding: bool | str | transformers.utils.generic.PaddingStrategy = True, max_length: int | None = None, pad_to_multiple_of: int | None = None, label_pad_token_id: int = -100, return_tensors: str = 'pt')
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/data/data_collator.py#L491)

**매개변수:**

tokenizer ([PreTrainedTokenizer](/docs/transformers/v5.23.0/ko/main_classes/tokenizer#transformers.PythonBackend) 또는 [PreTrainedTokenizerFast](/docs/transformers/v5.23.0/ko/main_classes/tokenizer#transformers.TokenizersBackend)) : 데이터를 인코딩하는 데 사용되는 토크나이저.

model ([PreTrainedModel](/docs/transformers/v5.23.0/ko/main_classes/model#transformers.PreTrainedModel), *optional*) : 학습 중인 모델입니다. 설정되어 있고 *prepare_decoder_input_ids_from_labels*를 가지고 있다면, 이를 사용해 *decoder_input_ids*를 준비합니다. *label_smoothing*을 사용할 때 loss를 두 번 계산하는 것을 방지하는 데 유용합니다.

padding (`bool`, `str` 또는 [PaddingStrategy](/docs/transformers/v5.23.0/ko/internal/file_utils#transformers.utils.PaddingStrategy), *optional*, 기본값 `True`) : 반환되는 시퀀스에 패딩을 적용할 전략을 선택합니다(모델의 패딩 방향 및 패딩 인덱스에 따라). 선택지는 다음과 같습니다. - `True` 또는 `'longest'` (기본값): 배치 내 가장 긴 시퀀스 길이로 패딩합니다(단일 시퀀스만 제공된 경우 패딩하지 않음). - `'max_length'`: `max_length` 인수로 지정된 최대 길이로 패딩하거나, 해당 인수가 제공되지 않은 경우 모델이 허용하는 최대 입력 길이로 패딩합니다. - `False` 또는 `'do_not_pad'`: 패딩하지 않음(즉, 길이가 서로 다른 시퀀스로 구성된 배치를 출력할 수 있음).

max_length (`int`, *선택 사항*) : 반환되는 리스트의 최대 길이 및 선택적으로 패딩 길이(위 참조).

pad_to_multiple_of (`int`, *선택 사항*) : 설정된 경우, 시퀀스를 제공된 값의 배수로 패딩합니다. 이는 NVIDIA 하드웨어에서 Volta(컴퓨트 캐패빌리티 >= 7.0)와 같은 환경에서 Tensor Cores 사용을 활성화하는 데 특히 유용합니다.

label_pad_token_id (`int`, *선택 사항*, 기본값 -100) : 레이블을 패딩할 때 사용할 id입니다. (-100은 PyTorch 손실 함수에서 자동으로 무시됩니다.)

return_tensors (`str`, *선택 사항*, 기본값 `"pt"`) : 반환할 Tensor의 유형입니다. 허용되는 값은 "np" 또는 "pt"입니다.

입력과 라벨을 동적으로 패딩하는 데이터 콜레이터입니다.

## DataCollatorForLanguageModeling[[transformers.DataCollatorForLanguageModeling]]

#### transformers.DataCollatorForLanguageModeling[[transformers.DataCollatorForLanguageModeling]]

```python
transformers.DataCollatorForLanguageModeling(tokenizer: PreTrainedTokenizerBase, mlm: bool = True, whole_word_mask: bool = False, mlm_probability: float | None = 0.15, mask_replace_prob: float = 0.8, random_replace_prob: float = 0.1, pad_to_multiple_of: int | None = None, return_tensors: str = 'pt', seed: int | None = None)
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/data/data_collator.py#L623)

**매개변수:**

tokenizer ([PreTrainedTokenizer](/docs/transformers/v5.23.0/ko/main_classes/tokenizer#transformers.PythonBackend) 또는 [PreTrainedTokenizerFast](/docs/transformers/v5.23.0/ko/main_classes/tokenizer#transformers.TokenizersBackend)) : 데이터를 인코딩하는 데 사용되는 토크나이저.

mlm (`bool`, *선택 사항*, 기본값 `True`) : masked language modeling을 사용할지 여부입니다. `False`로 설정하면 padding token을 무시(값을 -100으로 설정)하여 labels가 입력과 동일해집니다. 그렇지 않으면 labels는 mask되지 않은 token에 대해 -100, mask된 token에 대해 예측할 값이 됩니다.

whole_word_mask (`bool`, *선택 사항*, 기본값 `False`) : 개별 토큰 대신 전체 단어를 마스킹할지 여부.

mlm_probability (`float`, *선택*, 기본값 0.15) : `mlm`이 `True`로 설정된 경우, 입력에서 토큰을 (무작위로) 마스킹할 확률입니다.

mask_replace_prob (`float`, *선택*, 기본값 0.8) : 마스킹된 토큰이 토크나이저의 mask 토큰(예: `[MASK]`)으로 대체될 확률입니다. 기본값은 0.8이며, 이는 마스킹된 토큰의 80%가 `[MASK]`로 대체됨을 의미합니다. `mlm`가 `True`로 설정된 경우에만 작동합니다.

random_replace_prob (`float`, *선택*, 기본값 0.1) : 토크나이저 어휘의 무작위 토큰으로 마스킹된 토큰을 대체할 확률입니다. 기본값은 0.1로, 마스킹된 토큰의 10%가 무작위 토큰으로 대체됩니다. 나머지 마스킹된 토큰(1 - mask_replace_prob - random_replace_prob)은 변경되지 않습니다. `mlm`가 `True`로 설정된 경우에만 작동합니다.

pad_to_multiple_of (`int`, *선택 사항*) : 설정된 경우, 시퀀스를 제공된 값의 배수로 패딩합니다.

return_tensors (`str`) : 반환할 Tensor의 유형. 허용되는 값은 "np" 또는 "pt"입니다.

seed (`int`, *선택 사항*) : 마스킹을 위한 난수 생성기에 사용할 시드입니다. 제공되지 않으면 전역 RNG가 사용됩니다.

언어 모델링에 사용되는 데이터 콜레이터입니다. 입력이 모두 동일한 길이가 아닌 경우, 배치의 최대 길이에 따라 동적으로 패딩됩니다.

최상의 성능을 위해 이 데이터 콜레이터는 [PreTrainedTokenizer](/docs/transformers/v5.23.0/ko/main_classes/tokenizer#transformers.PythonBackend) 또는 `return_special_tokens_mask=True` 인수를 가진 [PreTrainedTokenizerFast](/docs/transformers/v5.23.0/ko/main_classes/tokenizer#transformers.TokenizersBackend)가 반환하는 `"special_tokens_mask"` 키를 포함하는 딕셔너리 또는 BatchEncoding 항목을 가진 데이터셋과 함께 사용해야 합니다.

1. 기본 동작:
   - `mask_replace_prob=0.8`, `random_replace_prob=0.1`.
   - 마스크된 토큰의 80%는 `[MASK]`로, 10%는 무작위 토큰으로 대체되고, 10%는 변경되지 않는 것을 예상합니다.

2. `[MASK]`로 대체된 모든 마스킹 토큰:
   - `mask_replace_prob=1.0`, `random_replace_prob=0.0`.
   - 모든 마스킹된 토큰이 `[MASK]`로 대체되도록 기대합니다. 그대로 유지되거나 무작위 토큰으로 대체되는 토큰은 없습니다.

3. `[MASK]` 대체 없이 랜덤 토큰만 사용:
   - `mask_replace_prob=0.0`, `random_replace_prob=1.0`.
   - 모든 마스킹된 토큰이 무작위 토큰으로 대체되도록 기대합니다. `[MASK]` 대체나 변경되지 않은 토큰은 없습니다.

4. 균형 대체:
   - `mask_replace_prob=0.5`, `random_replace_prob=0.4`.
   - 마스크된 토큰의 50%는 `[MASK]`로, 40%는 무작위 토큰으로 대체되고, 10%는 변경되지 않는 것을 예상할 수 있습니다.

참고: `mask_replace_prob`와 `random_replace_prob`의 합은 1을 초과할 수 없습니다. 두 값의 합이 1보다 작으면, 나머지 비율은 변경되지 않은 masked token으로 구성됩니다.

#### numpy_mask_tokens[[transformers.DataCollatorForLanguageModeling.numpy_mask_tokens]]

```python
numpy_mask_tokens(inputs: Any, special_tokens_mask: typing.Any | None = None, offset_mapping: typing.Any | None = None)
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/data/data_collator.py#L894)

마스크 언어 모델링을 위해 마스크된 토큰의 입력/레이블을 준비합니다.

#### torch_mask_tokens[[transformers.DataCollatorForLanguageModeling.torch_mask_tokens]]

```python
torch_mask_tokens(inputs: Any, special_tokens_mask: typing.Any | None = None, offset_mapping: typing.Any | None = None)
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/data/data_collator.py#L800)

마스크 언어 모델링을 위해 마스크된 토큰의 입력/레이블을 준비합니다.

## DataCollatorForPermutationLanguageModeling[[transformers.DataCollatorForPermutationLanguageModeling]]

#### transformers.DataCollatorForPermutationLanguageModeling[[transformers.DataCollatorForPermutationLanguageModeling]]

```python
transformers.DataCollatorForPermutationLanguageModeling(tokenizer: PreTrainedTokenizerBase, plm_probability: float = 0.16666666666666666, max_span_length: int = 5, return_tensors: str = 'pt')
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/data/data_collator.py#L1032)

치환 언어 모델링에 사용되는 데이터 콜레이터

- collates는 배치의 텐서를 collate하며, 해당 토크나이저의 pad_token을 준수합니다
- XLNet에 특화된 절차로 순열 언어 모델링을 위한 배치 전처리를 수행합니다

#### numpy_mask_tokens[[transformers.DataCollatorForPermutationLanguageModeling.numpy_mask_tokens]]

```python
numpy_mask_tokens(inputs: Any)
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/data/data_collator.py#L1158)

…

0. `cur_len = 0`(지금까지 처리된 토큰 수)를 설정하여 시퀀스의 처음부터 시작합니다.
1. `[1, max_span_length]` 구간의 `span_length`를 샘플링합니다(마스킹할 토큰 스팬의 길이)
2. 마스킹할 span을 감싸기 위해 `context_length = span_length / plm_probability` 길이의 context를 예약합니다
3. 구간 `[cur_len, cur_len + context_length - span_length]`에서 시작 지점 `start_index`를 샘플링하고 토큰 `start_index:start_index + span_length`를 마스킹합니다
4. `cur_len = cur_len + context_length`을 설정합니다. `cur_len < max_len`인 경우(즉, 처리할 토큰이 시퀀스에 남아 있는 경우) Step 1부터 반복합니다.

#### torch_mask_tokens[[transformers.DataCollatorForPermutationLanguageModeling.torch_mask_tokens]]

```python
torch_mask_tokens(inputs: Any)
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/data/data_collator.py#L1059)

…

0. `cur_len = 0`(지금까지 처리된 토큰 수)를 설정하여 시퀀스의 처음부터 시작합니다.
1. `[1, max_span_length]` 구간의 `span_length`를 샘플링합니다(마스킹할 토큰 스팬의 길이)
2. 마스킹할 span을 감싸기 위해 `context_length = span_length / plm_probability` 길이의 context를 예약합니다
3. 구간 `[cur_len, cur_len + context_length - span_length]`에서 시작 지점 `start_index`를 샘플링하고 토큰 `start_index:start_index + span_length`를 마스킹합니다
4. `cur_len = cur_len + context_length`을 설정합니다. `cur_len < max_len`인 경우(즉, 처리할 토큰이 시퀀스에 남아 있는 경우) Step 1부터 반복합니다.

## DataCollatorWithFlattening[[transformers.DataCollatorWithFlattening]]

#### transformers.DataCollatorWithFlattening[[transformers.DataCollatorWithFlattening]]

```python
transformers.DataCollatorWithFlattening(*args, return_position_ids = True, separator_id = -100, return_flash_attn_kwargs = False, return_seq_idx = False, position_ids_start = 0, **kwargs)
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/data/data_collator.py#L1257)

**매개변수:**

return_position_ids (`bool`, *선택 사항*, 기본값 `True`) : 각 평탄화 시퀀스마다 `position_ids_start`에서 다시 시작하는 `position_ids`를 반환할지 여부.

separator_id (`int`, *선택 사항*, 기본값 -100) : 연결된 `labels` 내에서 시퀀스를 구분하는 데 사용되는 값.

return_flash_attn_kwargs (`bool`, *선택 사항*, 기본값 `False`) : FlashAttention에서 사용하는 시퀀스 경계 kwargs(`cu_seq_lens_q`, `cu_seq_lens_k`, `max_length_q`, `max_length_k`)를 반환할지 여부.

return_seq_idx (`bool`, *선택 사항*, 기본값 `False`) : 각 토큰이 속한 시퀀스를 나타내는 `seq_idx`를 반환할지 여부.

position_ids_start (`int`, *선택 사항*, 기본값 0) : 각 시퀀스의 첫 번째 토큰에 부여되는 position id입니다.

패딩 없는 접근에 사용되는 데이터 콜레이터입니다. 다음을 수행합니다:

- concatenates는 전체 미니 배치를 [1, total_tokens] 모양의 단일 긴 시퀀스로 연결합니다
- `separator_id`를 사용하여 연결된 `labels` 내의 시퀀스를 구분하며, 기본값은 -100입니다
- 패딩이 추가되지 않으며 기본적으로 `input_ids`, `labels`, `position_ids`를 반환합니다
- FlashAttentionKwargs에 포함된 kwargs를 선택적으로 반환합니다
- 각 토큰이 어떤 시퀀스에 속하는지를 나타내는 seq_idx를 선택적으로 반환합니다

`DataCollatorWithFlattening`을 사용하면 미니 배치 전체가 하나의 긴 시퀀스로 평탄화됩니다. 어텐션 계산이 이를 처리할 수 있는지 확인하세요!

모든 모델이 자체적으로 position id를 계산할 때 위치 번호를 0부터 매기지는 않습니다. `roberta`, `xlm_roberta`, `camembert`, `mpnet`, 절대 위치 임베딩을 사용하는 `esm`를 포함한 RoBERTa 계열 아키텍처는 `padding_idx + 1`, 즉 보통 2에서 시작합니다. 이러한 모델에 기본 0-based `position_ids`를 전달하면 위치 임베딩이 조용히 이동하여 출력이 저하되므로, 해당 모델에는 `position_ids_start`를 적절히 설정해야 합니다.

## DataCollatorForMultipleChoice[[transformers.DataCollatorForMultipleChoice]]

#### transformers.DataCollatorForMultipleChoice[[transformers.DataCollatorForMultipleChoice]]

```python
transformers.DataCollatorForMultipleChoice(tokenizer: PreTrainedTokenizerBase, padding: bool | str | transformers.utils.generic.PaddingStrategy = True, max_length: int | None = None, pad_to_multiple_of: int | None = None, return_tensors: str = 'pt')
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/data/data_collator.py#L422)

**매개변수:**

tokenizer ([PreTrainedTokenizer](/docs/transformers/v5.23.0/ko/main_classes/tokenizer#transformers.PythonBackend) 또는 [PreTrainedTokenizerFast](/docs/transformers/v5.23.0/ko/main_classes/tokenizer#transformers.TokenizersBackend)) : 데이터를 인코딩하는 데 사용되는 토크나이저.

padding (`bool`, `str` 또는 [PaddingStrategy](/docs/transformers/v5.23.0/ko/internal/file_utils#transformers.utils.PaddingStrategy), *optional*, 기본값 `True`) : 모델의 패딩 방향과 패딩 인덱스에 따라 반환되는 시퀀스를 패딩할 전략을 다음 중 선택합니다. - `True` 또는 `'longest'`: 배치 내 가장 긴 시퀀스 길이로 패딩합니다(단일 시퀀스만 제공된 경우 패딩하지 않음). - `'max_length'`: `max_length` 인수로 지정된 최대 길이로 패딩하거나, 해당 인수가 제공되지 않은 경우 모델이 허용하는 최대 입력 길이로 패딩합니다. - `False` 또는 `'do_not_pad'` (기본값): 패딩하지 않습니다(즉, 서로 다른 길이의 시퀀스를 가진 배치를 출력할 수 있음).

max_length (`int`, *선택 사항*) : 반환되는 리스트의 최대 길이 및 선택적으로 패딩 길이(위 참조).

pad_to_multiple_of (`int`, *선택 사항*) : 시퀀스를 제공된 값의 배수로 패딩합니다. 이는 NVIDIA 하드웨어에서 Volta(컴퓨트 캐패빌리티 >= 7.5)와 같은 환경에서 Tensor Cores 사용을 활성화하는 데 특히 유용합니다.

return_tensors (`str`, *선택 사항*, 기본값 `"pt"`) : 반환할 Tensor의 유형입니다. 허용되는 값은 "np" 또는 "pt"입니다.

다중 선택을 위해 중첩된 예시 배치에 동적으로 패딩을 적용하여 모든 예시의 모든 선택지가 동일한 길이를 갖도록 하는 데이터 콜레이터입니다.

