Transformers documentation

CLVP

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

이 모델은 2023-05-12에 HF papers에 게시되었으며, 2023-11-10에 Hugging Face Transformers에 기여되었습니다.

CLVP

개요

CLVP(Contrastive Language-Voice Pretrained Transformer) 모델은 James Betker가 Better speech synthesis through scaling에서 제안했습니다.

해당 논문의 초록은 다음과 같습니다:

최근 몇 년간, 자기회귀형 transformer와 DDPM의 적용으로 이미지 생성 분야가 혁신적으로 변화했습니다. 이러한 접근법은 이미지 생성 과정을 단계별 확률적 과정으로 모델링하고, 대량의 컴퓨트와 데이터를 활용하여 이미지 분포를 학습합니다. 성능을 향상시키는 이러한 방법론은 이미지에만 국한될 필요가 없습니다. 이 논문은 이미지 생성 분야의 진전을 음성 합성에 적용하는 방법을 설명합니다. 그 결과로, 표현력이 풍부하고 여러 목소리를 지원하는 텍스트-투-스피치 시스템인 TorToise가 탄생했습니다.

이 모델은 Susnato Dhar님이 기여했습니다. 원본 코드는 여기에서 찾을 수 있습니다.

사용 팁

  1. CLVP는 Tortoise TTS 모델의 필수적인 부분입니다.
  2. CLVP는 제공된 텍스트와 서로 다른 생성된 음성 후보를 비교하는 데 사용할 수 있으며, 최적의 음성 토큰은 diffusion model로 전달됩니다.
  3. tortoise 사용 시 ClvpModelForConditionalGeneration.generate() 메서드 사용을 강력히 권장합니다.
  4. CLVP 모델은 16 kHz를 기대하는 다른 오디오 모델과 달리 22.05 kHz로 샘플링된 오디오를 기대한다는 점에 유의하세요.

간단한 설명

  • ClvpTokenizer은 텍스트 입력을 토큰화하고, ClvpFeatureExtractor는 원하는 오디오에서 로그 멜 스펙트로그램을 추출합니다.
  • ClvpConditioningEncoder는 해당 텍스트 토큰과 오디오 표현을 받아 텍스트와 오디오에 조건부화된 임베딩으로 변환합니다.
  • ClvpForCausalLM는 해당 임베딩을 사용하여 여러 음성 후보를 생성합니다.
  • 각 음성 후보는 음성 인코더(ClvpEncoder)를 통해 벡터 표현으로 변환되며, 텍스트 인코더(ClvpEncoder)는 텍스트 토큰을 동일한 잠재 공간으로 변환합니다.
  • 마지막으로, 각 음성 벡터를 텍스트 벡터와 비교하여 텍스트 벡터와 가장 유사한 음성 벡터를 확인합니다.
  • ClvpModelForConditionalGeneration.generate()는 위에서 설명한 모든 로직을 하나의 메서드로 압축합니다.

예:

import datasets

from transformers import ClvpModelForConditionalGeneration, ClvpProcessor


# Define the Text and Load the Audio (We are taking an audio example from HuggingFace Hub using `datasets` library).
text = "This is an example text."

ds = datasets.load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", datasets.Audio(sampling_rate=22050))
sample = ds[0]["audio"]

# Define processor and model.
processor = ClvpProcessor.from_pretrained("susnato/clvp_dev")
model = ClvpModelForConditionalGeneration.from_pretrained("susnato/clvp_dev", device_map="auto")

# Generate processor output and model output.
processor_output = processor(raw_speech=sample["array"], sampling_rate=sample["sampling_rate"], text=text, return_tensors="pt").to(model.device)
generated_output = model.generate(**processor_output)

ClvpConfig

클래스 transformers.ClvpConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonespeech_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonedecoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneprojection_dim: int = 768logit_scale_init_value: float = 2.6592initializer_factor: float = 1.0 )

매개변수

  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig], 선택) — 텍스트 백본의 config 객체 또는 사전입니다.
  • speech_config (dict, 선택) — CLVP 음성 인코더를 초기화하는 데 사용되는 설정 옵션의 사전입니다.
  • decoder_config (dict, 선택) — ClvpDecoderConfig를 초기화하는 데 사용되는 설정 옵션의 사전입니다.
  • projection_dim (int, 선택 사항, 기본값 768) — 텍스트 및 비전 투영 레이어의 차원입니다.
  • logit_scale_init_value (float, 선택 사항, 기본값 2.6592) — logit_scale 매개변수의 초기 값입니다.
  • initializer_factor (float, 선택 사항, 기본값 1.0) — 모든 가중치 행렬을 초기화하는 계수입니다(1로 유지해야 하며, 초기화 테스트를 위해 내부적으로 사용됨).

이것은 ClvpModelForConditionalGeneration의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Clvp 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 susnato/clvp_dev와 유사한 설정이 생성됩니다.

Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.

예:

>>> from transformers import ClvpConfig, ClvpModelForConditionalGeneration

>>> # Initializing a ClvpConfig with susnato/clvp_dev style configuration
>>> configuration = ClvpConfig()

>>> # Initializing a ClvpModelForConditionalGeneration (with random weights) from the susnato/clvp_dev style configuration
>>> model = ClvpModelForConditionalGeneration(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

>>> # We can also initialize a CLVPConfig from a CLVPTextConfig, CLVPSpeechConfig and a CLVPAutoRegressiveConfig
>>> from transformers import ClvpEncoderConfig, ClvpDecoderConfig

>>> # Initializing a CLVP text, CLVP speech and CLVP decoder configuration
>>> config_text = ClvpEncoderConfig()
>>> config_speech = ClvpEncoderConfig()
>>> decoder_config = ClvpDecoderConfig()

>>> config = ClvpConfig(config_text, config_speech, decoder_config)

ClvpEncoderConfig

클래스 transformers.ClvpEncoderConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 256hidden_size: int = 768intermediate_size: int = 1536projection_dim: int = 768num_hidden_layers: int = 20num_attention_heads: int = 12hidden_act: str = 'gelu'layer_norm_eps: float = 1e-05attention_dropout: float | int = 0.1dropout: float | int = 0.1use_rotary_embedding: bool = Trueuse_attention_bias: bool = Falsesummary_type: str = 'mean'initializer_factor: float = 1.0bos_token_id: int | None = 255eos_token_id: int | list[int] | None = 0pad_token_id: int | None = None )

매개변수

  • vocab_size (int, 선택 사항, 기본값 256) — 모델의 어휘 크기입니다. input_ids로 표현할 수 있는 서로 다른 토큰의 수를 정의합니다.
  • hidden_size (int, 선택 사항, 기본값 768) — 숨겨진 표현의 차원입니다.
  • intermediate_size (int, 선택 사항, 기본값 1536) — MLP 표현의 차원입니다.
  • projection_dim (int, 선택 사항, 기본값 768) — 텍스트 및 비전 투영 레이어의 차원입니다.
  • num_hidden_layers (int, 선택 사항, 기본값 20) — Transformer decoder의 hidden layer 수입니다.
  • num_attention_heads (int, 선택 사항, 기본값 12) — Transformer decoder의 각 attention layer에 사용할 attention head의 수입니다.
  • hidden_act (str, 선택 사항, 기본값 gelu) — 디코더에서 사용되는 비선형 활성화 함수(함수 또는 문자열)입니다. 예를 들어, "gelu", "relu", "silu" 등이 있습니다.
  • layer_norm_eps (float, 선택 사항, 기본값 1e-05) — 레이어 정규화 레이어에서 사용되는 epsilon 값입니다.
  • attention_dropout (Union[float, int], 선택 사항, 기본값 0.1) — Attention 확률에 적용할 dropout 비율입니다.
  • dropout (Union[float, int], 선택 사항, 기본값 0.1) — 모든 dropout 레이어에 적용할 비율입니다.
  • use_rotary_embedding (bool, 선택 사항, 기본값 True) — rotary_embedding을 사용할지 여부를 지정합니다.
  • use_attention_bias (bool, 선택 사항, 기본값 False) — 자기 주의(self attention) 과정에서 Query, Key, Value 레이어에 bias를 사용할지 여부입니다.
  • summary_type (str, optional, defaults to "mean") — What strategy to use to get pooler_output from the last_hidden_state. "last", "first", "mean" and "cls_index" are supported.
  • initializer_factor (float, 선택 사항, 기본값 1.0) — 모든 가중치 행렬을 초기화하는 계수입니다(1로 유지해야 하며, 초기화 테스트를 위해 내부적으로 사용됨).
  • bos_token_id (int, 선택 사항, 기본값 255) — 어휘에서 스트림 시작에 사용되는 토큰 ID입니다.
  • eos_token_id (Union[int, list[int]], 선택 사항, 기본값 0) — 어휘에서 스트림 종료에 사용되는 토큰 id입니다.
  • pad_token_id (int, 선택 사항) — 어휘에서 패딩에 사용되는 토큰 ID입니다.

이것은 ClvpModelForConditionalGeneration의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Clvp 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 susnato/clvp_dev와 유사한 설정이 생성됩니다.

Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.

예:

>>> from transformers import ClvpEncoderConfig, ClvpEncoder

>>> # Initializing a ClvpEncoderConfig with susnato/clvp_dev style configuration
>>> encoder_configuration = ClvpEncoderConfig()

>>> # Initializing a ClvpEncoder (with random weights) from the susnato/clvp_dev style configuration
>>> model = ClvpEncoder(encoder_configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

ClvpDecoderConfig

클래스 transformers.ClvpDecoderConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 8194max_position_embeddings: int = 608max_text_tokens: int = 404hidden_size: int = 1024num_hidden_layers: int = 30num_attention_heads: int = 16n_inner: int | None = Nonenum_mel_attn_blocks: int = 6activation_function: str = 'gelu_new'resid_pdrop: float | int = 0.1embd_pdrop: float | int = 0.1attention_dropout: float | int = 0.1layer_norm_epsilon: float = 1e-05initializer_range: float = 0.02summary_type: str = 'cls_index'summary_use_proj: bool = Truesummary_activation: str | None = Nonesummary_proj_to_labels: bool = Truesummary_first_dropout: float | int = 0.1use_cache: bool = Truebos_token_id: int | None = 8192eos_token_id: int | list[int] | None = 8193pad_token_id: int | None = Nonefeature_size: int = 80use_attention_bias: bool = Trueinitializer_factor: float = 1.0decoder_fixing_codes: list[int] | tuple[int, ...] = (83, 45, 45, 248)add_cross_attention: bool = False )

매개변수

  • vocab_size (int, 선택 사항, 기본값 8194) — 모델의 어휘 크기입니다. input_ids로 표현할 수 있는 서로 다른 토큰의 수를 정의합니다.
  • max_position_embeddings (int, 선택 사항, 기본값 608) — 이 모델이 사용될 수 있는 최대 시퀀스 길이입니다.
  • max_text_tokens (int, 선택, 기본값 404) — 이 모델이 사용될 때 적용될 수 있는 텍스트 토큰의 최대 시퀀스 길이입니다. GPT2Config의 n_positions와 유사합니다.
  • hidden_size (int, 선택 사항, 기본값 1024) — 숨겨진 표현의 차원입니다.
  • num_hidden_layers (int, 선택 사항, 기본값 30) — Transformer decoder의 숨겨진 레이어 수입니다.
  • num_attention_heads (int, 선택 사항, 기본값 16) — Transformer decoder의 각 attention layer에 사용할 attention head의 수입니다.
  • n_inner (int, 선택 사항) — 내부 피드포워드 레이어의 차원입니다. None이면 hidden_size의 4배로 설정됩니다.
  • num_mel_attn_blocks (int, 선택 사항, 기본값 6) — ClvpConditioningEncoder의 self attention 레이어 수를 나타냅니다.
  • activation_function (str, 선택 사항, 기본값 gelu_new) — 디코더에서 사용되는 비선형 활성화 함수(함수 또는 문자열). 예를 들어, "gelu", "relu", "silu" 등이 있습니다.
  • resid_pdrop (Union[float, int], 선택 사항, 기본값 0.1) — 임베딩, 인코더, 풀러의 모든 완전 연결 계층에 적용되는 dropout 확률입니다.
  • embd_pdrop (Union[float, int], 선택 사항, 기본값 0.1) — 임베딩에 적용할 dropout 비율입니다.
  • attention_dropout (Union[float, int], 선택 사항, 기본값 0.1) — Attention 확률에 적용할 dropout 비율입니다.
  • layer_norm_epsilon (float, 선택 사항, 기본값 1e-05) — 레이어 정규화 레이어에서 사용되는 epsilon 값입니다.
  • initializer_range (float, 선택 사항, 기본값 0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다.
  • summary_type (string, 선택 사항, 기본값은 "cls_index") — 시퀀스 요약 시 사용되는 인수입니다. 다음 옵션 중 하나여야 합니다:
    • "last": 마지막 토큰의 hidden state를 가져옵니다(XLNet과 유사).
    • "first": 첫 번째 토큰의 hidden state를 사용합니다(BERT와 동일).
    • "mean": 모든 토큰의 hidden states 평균을 취합니다.
    • "cls_index": 분류 토큰 위치(Tensor)를 지정합니다(GPT/GPT-2와 유사).
    • "attn": 현재 구현되지 않았으며, multi-head attention을 사용합니다.
  • summary_use_proj (bool, 선택 사항, 기본값 True) — 벡터 추출 후 투영을 추가할지 여부입니다.
  • summary_activation (str, 선택 사항) — 출력에 tanh 활성화 함수를 적용하려면 "tanh"를 전달합니다. 다른 값은 활성화 함수를 적용하지 않습니다.
  • summary_proj_to_labels (bool, 선택 사항, 기본값 True) — 투출 출력이 config.num_labels개 클래스인지, 아니면 config.hidden_size개 클래스인지 여부.
  • summary_first_dropout (float, 선택 사항, 기본값 0.1) — 투영 및 활성화 이후에 사용할 dropout 비율입니다.
  • use_cache (bool, 선택 사항, 기본값 True) — 모델이 마지막 key/values attention을 반환할지 여부입니다(모든 모델에서 사용되지 않음). config.is_decoder=True인 경우 또는 모델이 decoder-only 생성 모델인 경우에만 관련이 있습니다.
  • bos_token_id (int, 선택 사항, 기본값 8192) — 어휘에서 스트림 시작에 사용되는 토큰 ID입니다.
  • eos_token_id (Union[int, list[int]], 선택 사항, 기본값 8193) — 어휘에서 스트림 종료에 사용되는 토큰 ID입니다.
  • pad_token_id (int, 선택 사항) — 어휘에서 패딩에 사용되는 토큰 ID입니다.
  • feature_size (int, 선택 사항, 기본값 80) — 추출된 mel feature의 차원입니다. 이 값은 ClvpConditioningEncoder에서 사용됩니다.
  • use_attention_bias (bool, 선택 사항, 기본값 True) — 자기 주의(self attention) 과정에서 Query, Key, Value 레이어에 bias를 사용할지 여부입니다.
  • initializer_factor (float, 선택 사항, 기본값 1.0) — 모든 가중치 행렬을 초기화하는 계수입니다(1로 유지해야 하며, 초기화 테스트를 위해 내부적으로 사용됨).
  • decoder_fixing_codes (list, 선택 사항, 기본값 [83, 45, 45, 248]) — 이 값들은 fix_speech_decoder_output 메서드에서 디코더가 생성한 출력을 수정하는 데 사용됩니다.
  • add_cross_attention (bool, 선택 사항, 기본값 False) — 모델에 cross-attention 레이어를 추가할지 여부.

이것은 ClvpModelForConditionalGeneration의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Clvp 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 susnato/clvp_dev와 유사한 설정이 생성됩니다.

Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.

예:

>>> from transformers import ClvpDecoderConfig, ClvpDecoder

>>> # Initializing a ClvpDecoderConfig with susnato/clvp_dev style configuration
>>> decoder_configuration = ClvpDecoderConfig()

>>> # Initializing a ClvpDecoder (with random weights) from the susnato/clvp_dev style configuration
>>> model = ClvpDecoder(decoder_configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

ClvpTokenizer

클래스 transformers.ClvpTokenizer

< >

( vocab_filemerges_fileerrors = 'replace'unk_token = '[UNK]'bos_token = '<|endoftext|>'eos_token = '[STOP]'pad_token = '[STOP]'add_prefix_space = False**kwargs )

매개변수

  • vocab_file (str) — 어휘 파일의 경로입니다.
  • merges_file (str) — merges 파일의 경로.
  • errors (str, 선택, 기본값 "replace") — 바이트를 UTF-8로 디코딩할 때 따를 패러다임. 자세한 내용은 bytes.decode를 참조하세요.
  • unk_token (str, 선택 사항, 기본값 "[UNK]") — 미지의 토큰입니다. 어휘에 없는 토큰은 ID로 변환할 수 없으므로, 대신 이 토큰으로 설정됩니다.
  • bos_token (str, 선택 사항, 기본값 "<|endoftext|>") — 시퀀스 시작 토큰입니다.
  • eos_token (str, 선택 사항, 기본값 "[STOP]") — 시퀀스 종료 토큰입니다.
  • pad_token (str, 선택 사항, 기본값 "[STOP]") — 시퀀스의 패드 토큰입니다.
  • add_prefix_space (bool, 선택 사항, 기본값 False) — 입력에 맨 앞에 공백을 추가할지 여부입니다. 이를 통해 맨 앞의 단어를 다른 단어와 동일하게 처리할 수 있습니다. (CLVP 토크나이저는 앞선 공백을 통해 단어의 시작을 감지합니다).

CLVP 토크나이저를 구성합니다. 바이트 수준의 Byte-Pair-Encoding에 기반합니다.

이 토크나이저는 공백을 토큰의 일부로 취급하도록 학습되었습니다(sentencepiece와 유사한 방식) 따라서 한 단어는

문장의 시작(공백 없이)에 위치하는 경우와 그렇지 않은 경우에 따라 다르게 인코딩됩니다:

>>> from transformers import ClvpTokenizer

>>> tokenizer = ClvpTokenizer.from_pretrained("susnato/clvp_dev")
>>> tokenizer("Hello world")["input_ids"]
[62, 84, 28, 2, 179, 79]

>>> tokenizer(" Hello world")["input_ids"]
[2, 62, 84, 28, 2, 179, 79]

add_prefix_space=True를 전달하여 이 토크나이저를 인스턴스화하거나 특정 텍스트에 호출할 때 해당 동작을 우회할 수 있지만, 모델이 이러한 방식으로 사전 학습되지 않았으므로 성능이 저하될 수 있습니다.

is_split_into_words=True와 함께 사용할 경우, 이 토크나이저는 각 단어(첫 번째 단어를 포함하여) 앞에 공백을 추가합니다.

이 토크나이저는 대부분의 주요 메서드를 포함하는 PreTrainedTokenizer를 상속합니다. 해당 메서드에 대한 자세한 내용은 이 상위 클래스를 참고하세요.

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 모델, 여러 어휘 파일, 특수 파일 형식)이 필요한 경우 이 메서드를 오버라이드하세요.

ClvpFeatureExtractor

class transformers.ClvpFeatureExtractor

< >

( feature_size = 80sampling_rate = 22050default_audio_length = 6hop_length = 256chunk_length = 30n_fft = 1024padding_value = 0.0mel_norms = Nonereturn_attention_mask = False**kwargs )

매개변수

  • feature_size (int, 선택 사항, 기본값 80) — 추출된 특징의 차원입니다.
  • sampling_rate (int, 선택 사항, 기본값 22050) — 오디오 파일을 디지털화할 때 사용할 샘플링 레이트를 헤르츠(Hz) 단위로 나타낸 값입니다.
  • default_audio_length (int, 선택 사항, 기본값 6) — 초 단위의 원시 오디오 기본 길이입니다. __call__ 호출 시 max_length가 설정되지 않으면 자동으로 default_audio_length * self.sampling_rate로 설정됩니다.
  • hop_length (int, 선택 사항, 기본값 256) — Mel Frequency 계수를 얻기 위해 사용되는 STFT의 겹치는 윈도우 길이입니다.
  • chunk_length (int, 선택 사항, 기본값 30) — 더 길거나 더 짧은 오디오 시퀀스를 자르고 패딩하는 데 사용되는 sampling_rate 샘플 수의 최대 청크 수입니다.
  • n_fft (int, 선택 사항, 기본값 1024) — 푸리에 변환의 크기.
  • padding_value (float, 선택 사항, 기본값 0.0) — 오디오를 패딩하는 데 사용되는 값입니다. 무음 구간과 대응해야 합니다.
  • mel_norms (list, 길이 feature_size, 선택 사항) — mel_norms가 제공되면 각 mel 필터에 따라 log-mel 스펙트로그램을 정규화하는 데 사용됩니다.
  • return_attention_mask (bool, 선택 사항, 기본값은 False) — attention mask를 반환할지 여부입니다. 기본값을 그대로 두면 attention mask가 반환됩니다.

    어텐션 마스크란 무엇인가요?

CLVP feature extractor를 생성합니다.

이 feature extractor는 SequenceFeatureExtractor를 상속하며, 이 클래스에는 대부분의 주요 메서드가 포함되어 있습니다. 해당 메서드에 대한 자세한 내용은 이 상위 클래스를 참고하세요.

이 클래스는 pytorch의 torch.stft와 일치해야 하는 Short Time Fourier Transform의 커스텀 numpy 구현을 사용하여 원시 음성에서 log-mel-spectrogram 특징을 추출합니다.

__call__

< >

( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]sampling_rate: int | None = Nonetruncation: bool = Truepad_to_multiple_of: int | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_attention_mask: bool | None = Truepadding: str | None = 'max_length'max_length: int | None = None**kwargs )

매개변수

  • raw_speech (np.ndarray, list[float], list[np.ndarray], list[list[float]]) — 패딩할 시퀀스 또는 시퀀스 배치입니다. 각 시퀀스는 numpy 배열, float 값의 리스트, numpy 배열의 리스트, 또는 float 값의 리스트의 리스트일 수 있습니다. 스테레오가 아닌 모노 채널 오디오여야 하며, 즉 각 타임스텝당 float 값이 하나만 있어야 합니다.
  • sampling_rate (int, 선택 사항) — raw_speech 입력이 샘플링된 샘플링 레이트입니다. 조용한 오류를 방지하고 자동 음성 인식 파이프라인을 사용할 수 있도록, forward 호출 시 sampling_rate를 전달하는 것을 강력히 권장합니다.
  • truncation (bool, 선택 사항, 기본값 True) — max_length보다 긴 입력 시퀀스를 max_length로 잘라내는 truncation을 활성화합니다.
  • pad_to_multiple_of (int, 선택 사항) — 설정하면 시퀀스를 제공된 값의 배수로 패딩합니다.

    이 기능은 NVIDIA 하드웨어에서 Tensor Cores 사용을 활성화하는 데 특히 유용하며, 이는 compute capability가 >= 7.5(Volta)인 하드웨어나, 시퀀스 길이가 128의 배수일 때 성능 향상을 얻는 TPU에서 해당됩니다.

  • return_attention_mask (bool, 선택 사항, 기본값은 True) — attention mask를 반환할지 여부입니다. 기본값을 유지하면 attention mask가 반환됩니다.

    어텐션 마스크란 무엇인가요?

  • return_tensors (str 또는 TensorType, 선택 사항) — 설정된 경우, Python 정수 목록 대신 텐서를 반환합니다. 허용되는 값은 다음과 같습니다:
    • 'pt': PyTorch torch.Tensor 객체를 반환합니다.
    • 'np': Numpy np.ndarray 객체를 반환합니다.
  • padding_value (float, 선택 사항, 기본값 0.0) — 패딩 값/벡터를 채우는 데 사용되는 값입니다.
  • max_length (int, 선택 사항) — 입력의 최대 길이입니다.

ClvpFeatureExtractor는 샘플 음성 또는 raw_speech에서 음높이와 음색, 발화 속도, 그리고 발음 장애나 말더듬과 같은 발화 결함 등 다양한 음성 특성을 추출하는 데 사용됩니다.

먼저 음성 신호가 self.default_audio_length초 길이의 웨이브폼이 되도록 패딩되거나 잘린 후, 해당 신호에서 로그 멜 스펙트로그램이 추출됩니다.

ClvpProcessor

클래스 transformers.ClvpProcessor

< >

( feature_extractortokenizer )

매개변수

  • feature_extractor (ClvpFeatureExtractor) — 피처 추출기는 필수 입력입니다.
  • tokenizer (ClvpTokenizer) — 토크나이저는 필수 입력값입니다.

ClvpProcessor를 생성하며, feature extractor와 tokenizer를 단일 processor로 래핑합니다.

ClvpProcessor는 ClvpFeatureExtractor와 ClvpTokenizer의 모든 기능을 제공합니다. 자세한 내용은 ~ClvpFeatureExtractor와 ~ClvpTokenizer를 참고하세요.

__call__

< >

( *argstext = Noneaudio = None**kwargs )

매개변수

  • text (`) -- The sequence or batch of sequences to be encoded. Each sequence can be a string or a list of strings (pretokenized string). If you pass a pretokenized input, set is_split_into_words=True` to avoid ambiguity with batched inputs.
  • audio (“) — 준비할 오디오 또는 오디오 배치입니다. 각 오디오는 NumPy 배열 또는 PyTorch 텐서일 수 있습니다. NumPy 배열/PyTorch 텐서의 경우, 각 오디오의 shape은 (C, T)여야 하며, 여기서 C는 채널 수, T는 오디오의 샘플 길이입니다.
  • return_tensors (str 또는 TensorType, 선택 사항) — 설정된 경우, 특정 프레임워크의 텐서를 반환합니다. 허용되는 값은 다음과 같습니다:
    • 'pt': PyTorch torch.Tensor 객체를 반환합니다.
    • 'np': NumPy np.ndarray 객체를 반환합니다.

decode

< >

( *args**kwargs )

이 메서드는 모든 인수를 PreTrainedTokenizer의 decode()로 전달합니다. 자세한 내용은 해당 메서드의 docstring을 참조하세요.

batch_decode

< >

( *args**kwargs )

이 메서드는 모든 인수를 PreTrainedTokenizer의 batch_decode()로 전달합니다. 자세한 내용은 해당 메서드의 docstring을 참고하세요.

ClvpModelForConditionalGeneration

클래스 transformers.ClvpModelForConditionalGeneration

< >

( config: ClvpConfig )

매개변수

  • config (ClvpConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

텍스트 인코더, 음성 인코더 및 음성 디코더 모델로 구성된 복합 CLVP 모델.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneconditioning_encoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonetext_encoder_inputs_embeds: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonereturn_loss: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → ClvpOutput or tuple(torch.Tensor)

매개변수

  • input_ids (torch.LongTensor 형상이 (batch_size, sequence_length), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.

    AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.

    입력 ID란 무엇인가요?

  • input_features (torch.Tensor, shape (batch_size, sequence_length, feature_dim), 선택 사항) — 입력 오디오 특징에 해당하는 텐서입니다. 오디오 특징은 ClvpFeatureExtractor를 사용하여 얻을 수 있습니다. 자세한 내용은 ClvpFeatureExtractor.call()를 참조하세요 (ClvpProcessor는 오디오 처리에 ClvpFeatureExtractor를 사용합니다).
  • conditioning_encoder_inputs_embeds (torch.Tensor, 선택 사항) — ClvpConditioningEncoder의 inputs_embeds입니다. input_ids 대신 사용할 수 있습니다.
  • text_encoder_inputs_embeds (torch.Tensor, 선택 사항) — input_ids 대신 텍스트 인코더 모델에 전달되는 inputs_embeds입니다.
  • attention_mask (torch.LongTensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • return_loss (bool, 선택) — contrastive loss를 반환할지 여부.

반환값

ClvpOutput 또는 tuple(torch.Tensor)

ClvpOutput 또는 torch.Tensor의 튜플(return_dict=False가 전달되거나 config.return_dict=False인 경우)로, ClvpConfig 및 입력에 따라 다양한 요소를 포함합니다.

ClvpModelForConditionalGeneration의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (torch.Tensor, shape (1,), 선택 사항, return_loss가 True일 때 반환됨) — 음성-텍스트 유사도를 위한 Contrastive loss.
  • speech_ids (torch.LongTensor, 선택 사항) — ClvpForCausalLM 모델이 생성한 speech_ids(또는 음성 후보).
  • logits_per_speech (torch.Tensor, shape (speech_batch_size, text_batch_size)) — speech_embeds와 text_embeds 사이의 스케일된 도트 프로덕트 점수입니다. 이는 음성-텍스트 유사도 점수를 나타냅니다.
  • logits_per_text (torch.Tensor, shape (text_batch_size, speech_batch_size)) — text_embeds와 speech_embeds 사이의 스케일된 도트 프로덕트 점수입니다. 이는 텍스트-음성 유사도 점수를 나타냅니다.
  • text_embeds (torch.Tensor, shape (batch_size, output_dim) — 텍스트 인코더의 풀링된 출력에 투영 계층을 적용하여 얻은 텍스트 임베딩
  • speech_embeds (torch.Tensor, shape (batch_size, output_dim) — speech encoder 모델의 풀링된 출력에 투영 계층을 적용하여 얻은 음성 임베딩
  • text_model_output (~modeling_outputs.BaseModelOutputWithPooling, 선택) — 텍스트 인코더 모델의 last_hidden_state에 대한 풀링된 출력입니다.
  • speech_model_output (~modeling_outputs.BaseModelOutputWithPooling, 선택) — 음성 인코더 모델의 last_hidden_state에 대한 풀링된 출력입니다.
  • decoder_hidden_states (torch.Tensor, 선택 사항) — 디코더 모델의 히든 상태입니다.
  • text_encoder_hidden_states (torch.Tensor, 선택 사항) — 텍스트 인코더 모델의 히든 상태입니다.
  • speech_encoder_hidden_states (torch.Tensor, 선택 사항) — 음성 인코더 모델의 숨겨진 상태(hidden states)입니다.

예:

>>> import datasets
>>> from transformers import ClvpProcessor, ClvpModelForConditionalGeneration

>>> # Define the Text and Load the Audio (We are taking an audio example from HuggingFace Hub using `datasets` library)
>>> text = "This is an example text."

>>> ds = datasets.load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", datasets.Audio(sampling_rate=22050))
>>> audio = ds.sort("id")["audio"][0]
>>> audio_sample, sr = audio["array"], audio["sampling_rate"]

>>> # Define processor and model
>>> processor = ClvpProcessor.from_pretrained("susnato/clvp_dev")
>>> model = ClvpModelForConditionalGeneration.from_pretrained("susnato/clvp_dev")

>>> # processor outputs and model outputs
>>> processor_output = processor(raw_speech=audio_sample, sampling_rate=sr, text=text, return_tensors="pt")
>>> outputs = model(
...     input_ids=processor_output["input_ids"],
...     input_features=processor_output["input_features"],
...     return_dict=True,
... )

generate

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonegeneration_config: transformers.generation.configuration_utils.GenerationConfig | None = Nonepad_to_max_mel_tokens: int | None = Noneoutput_hidden_states: bool | None = None**kwargs ) → ClvpOutput or tuple

매개변수

  • input_ids (torch.Tensor, shape (batch_size, sequence_length), 선택 사항) — 입력 텍스트 토큰. ClvpTokenizer에서 처리된 값입니다.
  • attention_mask (torch.Tensor 다음 shape를 가진 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 attention을 수행하지 않도록 하는 마스크. [0, 1] 범위에서 선택된 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇일까요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • generation_config (~generation.GenerationConfig, 선택) — 생성 호출의 기본 파라미터화로 사용할 생성 구성입니다. **kwargs로 전달된 값 중 generation_config의 속성과 일치하는 값은 해당 속성을 덮어씁니다. generation_config가 제공되지 않으면 기본값이 사용되며, 이 기본값은 다음 우선순위로 로드됩니다. 1) generation_config.json 모델 파일이 존재하는 경우 해당 파일에서; 2) 모델 구성에서. 명시되지 않은 파라미터는 GenerationConfig의 기본값을 상속받으므로, 생성을 파라미터화하려면 해당 문서에서 기본값을 확인하시기 바랍니다.
  • pad_to_max_mel_tokens (int, 선택) — 생성된 speech_ids를 지정된 값으로 패딩합니다. 이는 공식 저장소의 동일한 로직을 구현하기 위한 것으로, 링크: https://github.com/neonbjb/tortoise-tts/blob/80f89987a5abda5e2b082618cd74f9c7411141dc/tortoise/api.py#L430 를 참고하여 logits가 동일하도록 보장합니다. 이것은 생성 품질에 영향을 주지 않으므로 효율성이 낮으므로 사용을 고려하지 않는 것이 좋습니다.
  • output_hidden_states (bool, 선택 사항) — decoder 모델, text encoder 모델, speech encoder 모델의 hidden states를 반환할지 여부입니다.

반환값

ClvpOutput 또는 tuple

ClvpOutput (return_dict_in_generate=True인 경우 또는 config.return_dict_in_generate=True인 경우) 또는 tuple입니다.

ClvpModelForConditionalGeneration의 Generate 메서드입니다. 이 메서드는 ClvpForCausalLM의 generate 메서드를 호출한 뒤, 생성된 speech_ids를 사용하여 ClvpEncoder로 text_embeds와 speech_embeds를 처리합니다.

get_text_features

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonetext_encoder_inputs_embeds: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → ClvpEncoderOutput or tuple(torch.Tensor)

매개변수

  • input_ids (torch.LongTensor 형상이 (batch_size, sequence_length), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.

    AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.

    입력 ID란 무엇인가요?

  • text_encoder_inputs_embeds (torch.Tensor, 선택 사항) — input_ids 대신 텍스트 인코더 모델에 전달되는 inputs_embeds입니다.
  • attention_mask (torch.LongTensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

반환값

ClvpEncoderOutput 또는 tuple(torch.Tensor)

ClvpEncoderOutput 또는 torch.Tensor의 튜플(return_dict=False가 전달되거나 config.return_dict=False인 경우). 구성(ClvpConfig) 및 입력에 따라 다양한 요소를 포함합니다.

이 메서드는 텍스트에서 text_embeds를 추출하는 데 사용할 수 있습니다. CLVP 텍스트 인코더 모델의 풀링된 출력에 투영 레이어를 적용하여 얻은 텍스트 임베딩입니다.

  • embeds (torch.Tensor, shape (batch_size, output_dim), 선택 사항, 모델이 with_projection=True로 초기화되었을 때 반환됨) — pooler_output에 투영 계층을 적용하여 얻은 임베딩입니다.

  • last_hidden_state (torch.Tensor, shape (batch_size, sequence_length, hidden_size)) — 모델의 마지막 레이어의 hidden state입니다.

  • pooler_output (torch.Tensor, shape (batch_size, hidden_size)) — last_hidden_state의 풀링된 출력입니다.

  • hidden_states (tuple[torch.Tensor], 선택 사항, output_hidden_states=True가 전달되거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은 (batch_size, sequence_length, hidden_size)입니다.

    각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.

  • attentions (tuple[torch.Tensor], 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다.

    self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.

예:

>>> from transformers import ClvpProcessor, ClvpModelForConditionalGeneration

>>> # Define the Text
>>> text = "This is an example text."

>>> # Define processor and model
>>> processor = ClvpProcessor.from_pretrained("susnato/clvp_dev")
>>> model = ClvpModelForConditionalGeneration.from_pretrained("susnato/clvp_dev")

>>> # Generate processor output and text embeds
>>> processor_output = processor(text=text, return_tensors="pt")
>>> text_embeds = model.get_text_features(input_ids=processor_output["input_ids"])

get_speech_features

< >

( speech_ids: typing.Optional[torch.LongTensor] = Noneinput_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneconditioning_encoder_inputs_embeds: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonegeneration_config: transformers.generation.configuration_utils.GenerationConfig | None = None**kwargs ) → torch.Tensor of shape (batch_size, output_dim)

매개변수

  • speech_ids (torch.LongTensor, shape (batch_size, num_speech_ids), 선택 사항) — Speech Tokens입니다. Padding을 제공하더라도 기본적으로 무시됩니다. speech_ids가 제공되면 input_ids와 input_features는 자동으로 무시됩니다.
  • input_ids (torch.LongTensor, shape (batch_size, sequence_length), 선택 사항) — 입력 텍스트 토큰입니다. ClvpTokenizer로 처리됩니다. speech_ids가 제공되지 않으면 input_ids와 input_features가 사용됩니다.
  • conditioning_encoder_inputs_embeds (torch.Tensor, 선택 사항) — ClvpConditioningEncoder의 inputs_embeds입니다. input_ids 대신 사용할 수 있습니다.
  • attention_mask (torch.LongTensor 다음 형태의 (batch_size, sequence_length), , 선택 사항) — 패딩 음성 토큰 인덱스에 대한 attention을 수행하지 않도록 하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • generation_config (GenerationConfig, 선택 사항) — speech_ids가 제공되지 않은 경우 speech_ids 생성을 제어하기 위한 generation config입니다.

반환값

torch.Tensor, shape (batch_size, output_dim)

CLVP Speech Model의 풀링된 출력에 투영 계층을 적용하여 얻은 음성 임베딩입니다.

이 메서드는 speech_embeds를 추출하는 데 사용할 수 있습니다. 음성 임베딩은 speech_ids에 음성 모델을 적용하여 얻어집니다. speech_ids가 없으나 input_ids와 input_features가 모두 제공된 경우, 디코더 모델이 먼저 speech_ids를 생성한 후 음성 모델을 적용합니다.

예:

>>> import datasets
>>> from transformers import ClvpProcessor, ClvpModelForConditionalGeneration

>>> # Define the Text and Load the Audio (We are taking an audio example from HuggingFace Hub using `datasets` library)
>>> text = "This is an example text."
>>> ds = datasets.load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", datasets.Audio(sampling_rate=22050))
>>> audio = ds.sort("id")["audio"][0]
>>> audio_sample, sr = audio["array"], audio["sampling_rate"]

>>> # Define processor and model
>>> processor = ClvpProcessor.from_pretrained("susnato/clvp_dev")
>>> model = ClvpModelForConditionalGeneration.from_pretrained("susnato/clvp_dev")

>>> # Generate processor output and model output
>>> processor_output = processor(raw_speech=audio_sample, sampling_rate=sr, text=text, return_tensors="pt")
>>> speech_embeds = model.get_speech_features(
...     input_ids=processor_output["input_ids"], input_features=processor_output["input_features"]
... )

ClvpForCausalLM

클래스 transformers.ClvpForCausalLM

< >

( config: ClvpDecoderConfig )

매개변수

  • config (ClvpDecoderConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

언어 모델링 헤드가 위에 있는 CLVP 디코더 모델.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneattention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutputWithCrossAttentions or tuple(torch.Tensor)

매개변수

  • input_ids (torch.LongTensor 형상이 (batch_size, sequence_length), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.

    AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.

    입력 ID란 무엇인가요?

  • past_key_values (~cache_utils.Cache, 선택 사항) — 순차적 디코딩을 가속화할 수 있는 사전 계산된 hidden-states(self-attention 블록과 cross-attention 블록의 key 및 value). 일반적으로 이는 past_key_values 디코딩의 이전 단계에서 모델이 반환한 use_cache=True 또는 config.use_cache=True.

    입력으로 Cache 인스턴스만 허용되며, kv cache 가이드를 참고하세요. past_key_values가 전달되지 않으면 기본적으로 DynamicCache가 초기화됩니다.

    모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.

    past_key_values를 사용하는 경우, 이 모델에 과거 키 값 상태가 제공되지 않은 input_ids만 입력해야 하며, 이때의 shape은 (batch_size, unprocessed_length)입니다. shape이 (batch_size, sequence_length)인 전체 input_ids를 입력하지 않습니다.

  • attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • token_type_ids (torch.LongTensor 형상이 (batch_size, sequence_length), 선택 사항) — 입력의 첫 번째 및 두 번째 부분을 나타내는 세그먼트 토큰 인덱스. 인덱스는 [0, 1]:
    • 0은 sentence A 토큰에 해당합니다.
    • 1은 sentence B 토큰에 해당합니다.

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

  • position_ids (torch.LongTensor 의 shape (batch_size, sequence_length), , 선택 사항) — 위치 임베딩에서 각 입력 시퀀스 토큰의 위치 인덱스. 범위 [0, config.n_positions - 1].

    포지션 ID란 무엇인가요?

  • inputs_embeds (torch.Tensor, shape (batch_size, sequence_length, hidden_size), 선택) — input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다 input_ids 인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다.
  • labels (torch.LongTensor, shape (batch_size, sequence_length), 선택 사항) — 언어 모델링을 위한 라벨입니다. 모델 내부에서 라벨이 시프트(shift)됩니다. 즉, labels = input_ids를 설정할 수 있습니다. 인덱스는 [-100, 0, ..., config.vocab_size] 범위에서 선택됩니다. -100으로 설정된 모든 라벨은 무시(마스크)되며, 손실은 [0, ..., config.vocab_size] 범위의 라벨에 대해서만 계산됩니다.
  • use_cache (bool, 선택 사항) — True로 설정하면 past_key_values 키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다( past_key_values 참조).

반환값

CausalLMOutputWithCrossAttentions 또는 tuple(torch.Tensor)

torch.Tensor의 튜플 또는 CausalLMOutputWithCrossAttentions(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(ClvpConfig)과 입력에 따라 다양한 요소를 포함합니다.

ClvpForCausalLM의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (torch.Tensor, shape (1,), 선택 사항, labels이 제공될 때 반환됨) — 언어 모델링 손실(다음 토큰 예측용).

  • logits (torch.Tensor, shape (batch_size, sequence_length, config.vocab_size)) — 언어 모델링 헤드에서 생성된 예측 점수(SoftMax 적용 전 각 어휘 토큰에 대한 점수).

  • hidden_states (tuple(torch.Tensor), 선택 사항, output_hidden_states=True가 전달되거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은 (batch_size, sequence_length, hidden_size)입니다.

    각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.

  • attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다.

    self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.

  • cross_attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다.

    cross-attention 헤드의 가중 평균을 계산하는 데 사용되는, attention softmax 이후의 cross attention 가중치입니다.

  • past_key_values (Cache, 선택 사항, use_cache=True가 전달되었거나 config.use_cache=True인 경우 반환됨) — Cache 인스턴스입니다. 자세한 내용은 kv cache 가이드를 참고하세요.

    순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(attention 블록의 key와 value)를 포함합니다(입력 past_key_values 참조).

ClvpModel

클래스 transformers.ClvpModel

< >

( config: ClvpDecoderConfig )

매개변수

  • config (ClvpDecoderConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

Clvp 모델은 특정 헤드가 없는 상태에서 원시 hidden-states를 출력합니다.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPastAndCrossAttentions or tuple(torch.Tensor)

매개변수

  • input_ids (torch.LongTensor 형상이 (batch_size, sequence_length), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.

    AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.

    입력 ID란 무엇인가요?

  • attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • token_type_ids (torch.LongTensor 형상이 (batch_size, sequence_length), 선택 사항) — 입력의 첫 번째 및 두 번째 부분을 나타내는 세그먼트 토큰 인덱스. 인덱스는 [0, 1]:
    • 0은 sentence A 토큰에 해당합니다.
    • 1은 sentence B 토큰에 해당합니다.

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

  • position_ids (torch.LongTensor 의 shape (batch_size, sequence_length), , 선택 사항) — 위치 임베딩에서 각 입력 시퀀스 토큰의 위치 인덱스. 범위 [0, config.n_positions - 1].

    포지션 ID란 무엇인가요?

  • past_key_values (~cache_utils.Cache, 선택 사항) — 순차적 디코딩을 가속화할 수 있는 사전 계산된 hidden-states(self-attention 블록과 cross-attention 블록의 key 및 value). 일반적으로 이는 past_key_values 디코딩의 이전 단계에서 모델이 반환한 use_cache=True 또는 config.use_cache=True.

    입력으로 Cache 인스턴스만 허용되며, kv cache 가이드를 참고하세요. past_key_values가 전달되지 않으면 기본적으로 DynamicCache가 초기화됩니다.

    모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.

    past_key_values를 사용하는 경우, 이 모델에 과거 키 값 상태가 제공되지 않은 input_ids만 입력해야 하며, 이때의 shape은 (batch_size, unprocessed_length)입니다. shape이 (batch_size, sequence_length)인 전체 input_ids를 입력하지 않습니다.

  • inputs_embeds (torch.Tensor, shape (batch_size, sequence_length, hidden_size), 선택) — input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다 input_ids 인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다.
  • use_cache (bool, 선택 사항) — True로 설정하면 past_key_values 키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다( past_key_values 참조).

반환값

BaseModelOutputWithPastAndCrossAttentions 또는 tuple(torch.Tensor)

torch.Tensor의 튜플 또는 BaseModelOutputWithPastAndCrossAttentions(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(ClvpConfig)과 입력에 따라 다양한 요소를 포함합니다.

ClvpModel의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • last_hidden_state (torch.Tensor, shape (batch_size, sequence_length, hidden_size)) — 모델의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.

    past_key_values가 사용되면, (batch_size, 1, hidden_size) 형태의 시퀀스의 마지막 hidden-state만 출력됩니다.

  • past_key_values (Cache, 선택 사항, use_cache=True가 전달되었거나 config.use_cache=True인 경우 반환됨) — Cache 인스턴스입니다. 자세한 내용은 kv cache 가이드를 참고하세요.

    순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록의 key와 value, 그리고 config.is_encoder_decoder=True인 경우 크로스 어텐션 블록의 key와 value)를 포함합니다(입력 past_key_values 참조).

  • hidden_states (tuple(torch.Tensor), 선택 사항, output_hidden_states=True가 전달되거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은 (batch_size, sequence_length, hidden_size)입니다.

    각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.

  • attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다.

    self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.

  • cross_attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True와 config.add_cross_attention=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다.

    decoder의 cross-attention 레이어에서 attention softmax를 적용한 후, cross-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention 가중치입니다.

ClvpEncoder

class transformers.ClvpEncoder

< >

( config: ClvpEncoderConfig )

매개변수

  • config — ClvpConfig

config.num_hidden_layers개의 self attention layer로 구성된 Transformer encoder입니다. 각 layer는 ClvpEncoderLayer입니다.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → ClvpEncoderOutput or tuple(torch.Tensor)

매개변수

  • input_ids (torch.LongTensor 형상이 (batch_size, sequence_length), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.

    AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.

    입력 ID란 무엇인가요?

  • inputs_embeds (torch.LongTensor, shape (batch_size, sequence_length, hidden_size), 선택) — input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다 input_ids 인덱스를 관련 벡터로 변환하는 방식을 더 세밀하게 제어하려는 경우에 유용합니다.
  • attention_mask (torch.LongTensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • position_ids (torch.LongTensor 의 shape (batch_size, sequence_length), , 선택 사항) — 위치 임베딩에서 각 입력 시퀀스 토큰의 위치 인덱스. 범위 [0, config.n_positions - 1].

    포지션 ID란 무엇인가요?

반환값

ClvpEncoderOutput 또는 tuple(torch.Tensor)

ClvpEncoderOutput 또는 torch.Tensor의 튜플(return_dict=False가 전달되거나 config.return_dict=False인 경우). 구성(ClvpConfig) 및 입력에 따라 다양한 요소를 포함합니다.

ClvpEncoder의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • embeds (torch.Tensor, shape (batch_size, output_dim), 선택 사항, 모델이 with_projection=True로 초기화되었을 때 반환됨) — pooler_output에 투영 계층을 적용하여 얻은 임베딩입니다.

  • last_hidden_state (torch.Tensor, shape (batch_size, sequence_length, hidden_size)) — 모델의 마지막 레이어의 hidden state입니다.

  • pooler_output (torch.Tensor, shape (batch_size, hidden_size)) — last_hidden_state의 풀링된 출력입니다.

  • hidden_states (tuple[torch.Tensor], 선택 사항, output_hidden_states=True가 전달되거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은 (batch_size, sequence_length, hidden_size)입니다.

    각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.

  • attentions (tuple[torch.Tensor], 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다.

    self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.

ClvpDecoder

클래스 transformers.ClvpDecoder

< >

( config: ClvpDecoderConfig )

config.num_hidden_layers개의 레이어로 구성된 Transformer decoder입니다. 각 레이어는 ClvpDecoderLayer입니다.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPastAndCrossAttentions or tuple(torch.Tensor)

매개변수

  • input_ids (torch.LongTensor 형상이 (batch_size, sequence_length), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.

    AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.

    입력 ID란 무엇인가요?

  • attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • token_type_ids (torch.LongTensor 형상이 (batch_size, sequence_length), 선택 사항) — 입력의 첫 번째 및 두 번째 부분을 나타내는 세그먼트 토큰 인덱스. 인덱스는 [0, 1]:
    • 0은 sentence A 토큰에 해당합니다.
    • 1은 sentence B 토큰에 해당합니다.

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

  • position_ids (torch.LongTensor 의 shape (batch_size, sequence_length), , 선택 사항) — 위치 임베딩에서 각 입력 시퀀스 토큰의 위치 인덱스. 범위 [0, config.n_positions - 1].

    포지션 ID란 무엇인가요?

  • past_key_values (~cache_utils.Cache, 선택 사항) — 순차적 디코딩을 가속화할 수 있는 사전 계산된 hidden-states(self-attention 블록과 cross-attention 블록의 key 및 value). 일반적으로 이는 past_key_values 디코딩의 이전 단계에서 모델이 반환한 use_cache=True 또는 config.use_cache=True.

    입력으로 Cache 인스턴스만 허용되며, kv cache 가이드를 참고하세요. past_key_values가 전달되지 않으면 기본적으로 DynamicCache가 초기화됩니다.

    모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.

    past_key_values를 사용하는 경우, 이 모델에 과거 키 값 상태가 제공되지 않은 input_ids만 입력해야 하며, 이때의 shape은 (batch_size, unprocessed_length)입니다. shape이 (batch_size, sequence_length)인 전체 input_ids를 입력하지 않습니다.

  • inputs_embeds (torch.Tensor, shape (batch_size, sequence_length, hidden_size), 선택) — input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다 input_ids 인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다.
  • use_cache (bool, 선택 사항) — True로 설정하면 past_key_values 키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다( past_key_values 참조).

반환값

BaseModelOutputWithPastAndCrossAttentions 또는 tuple(torch.Tensor)

torch.Tensor의 튜플 또는 BaseModelOutputWithPastAndCrossAttentions(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(ClvpConfig)과 입력에 따라 다양한 요소를 포함합니다.

ClvpDecoder의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • last_hidden_state (torch.Tensor, shape (batch_size, sequence_length, hidden_size)) — 모델의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.

    past_key_values가 사용되면, (batch_size, 1, hidden_size) 형태의 시퀀스의 마지막 hidden-state만 출력됩니다.

  • past_key_values (Cache, 선택 사항, use_cache=True가 전달되었거나 config.use_cache=True인 경우 반환됨) — Cache 인스턴스입니다. 자세한 내용은 kv cache 가이드를 참고하세요.

    순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록의 key와 value, 그리고 config.is_encoder_decoder=True인 경우 크로스 어텐션 블록의 key와 value)를 포함합니다(입력 past_key_values 참조).

  • hidden_states (tuple(torch.Tensor), 선택 사항, output_hidden_states=True가 전달되거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은 (batch_size, sequence_length, hidden_size)입니다.

    각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.

  • attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다.

    self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.

  • cross_attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True와 config.add_cross_attention=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다.

    decoder의 cross-attention 레이어에서 attention softmax를 적용한 후, cross-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention 가중치입니다.

Update on GitHub