Transformers documentation

SeamlessM4T

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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

SDPA

SeamlessM4T

개요

SeamlessM4T 모델은 Meta AI의 Seamless Communication 팀이 SeamlessM4T — Massively Multilingual & Multimodal Machine Translation에서 제안했습니다.

이것은 모델의 version 1 릴리스입니다. 업데이트된 version 2 릴리스에 대해서는 Seamless M4T v2 문서를 참조하세요.

SeamlessM4T는 다양한 언어 공동체의 사람들이 음성 및 텍스트를 통해 자연스럽게 소통할 수 있도록 고품질 번역을 제공하는 모델 모음입니다.

SeamlessM4T는 별도의 모델에 의존하지 않고도 여러 작업을 수행할 수 있습니다:

  • 음성-음성 번역(S2ST)
  • 음성-텍스트 번역(S2TT)
  • 텍스트-음성 번역(T2ST)
  • 텍스트-대-텍스트 번역(T2TT)
  • 자동 음성 인식(ASR)

SeamlessM4TModel은 위의 모든 작업을 수행할 수 있지만, 각 작업에는 전용 서브모델이 별도로 존재합니다.

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

어떤 요소가 필요할까요? 두 언어 간 음성 번역을 돕는 도구인 Babel Fish를 만들기 위해서는? 최근 텍스트 기반 모델의 돌파구로 기계 번역의 언어 커버리지가 200개 언어를 넘어섰지만, 통합된 음성-음성 번역 모델은 아직 유사한 진전을 이루지 못했습니다. 보다 구체적으로, 기존의 음성-음성 번역 시스템은 번역을 단계적으로 수행하는 연쇄(cascaded) 시스템에 의존하여, 고품질의 통합 시스템을 구현하는 것이 어려웠습니다. 이러한 격차를 해결하기 위해, 우리는 SeamlessM4T를 소개합니다. SeamlessM4T는 최대 100개 언어에 대해 음성-음성 번역, 음성-텍스트 번역, 텍스트-음성 번역, 텍스트-텍스트 번역, 자동 음성 인식(ASR)을 지원하는 단일 모델입니다. 이를 구축하기 위해, 우리는 100만 시간의 오픈 음성 오디오 데이터를 사용하여 w2v-BERT 2.0으로 자기지도 학습(self-supervised) 음성 표현을 학습했습니다. 이후, 자동으로 정렬된 음성 번역으로 구성된 멀티모달 코퍼스를 생성했습니다. 이를 필터링하고 인간 라벨링 데이터 및 의사 라벨링(pseudo-labeled) 데이터와 결합하여, 음성 및 텍스트 모두에서 영어로 번역하고 영어에서 번역할 수 있는 첫 번째 다국어 시스템을 개발했습니다. FLEURS 벤치마크에서 SeamlessM4T는 여러 대상 언어로의 번역에 대해 새로운 기준을 설정하며, 직접적인 음성-텍스트 번역에서 이전 SOTA 대비 20% BLEU 향상을 달성했습니다. 강력한 연쇄 모델과 비교할 때, SeamlessM4T는 음성-텍스트에서 영어로 번역하는 품질을 1.3 BLEU 포인트, 음성-음성에서 2.6 ASR-BLEU 포인트 향상시킵니다. 견고성(robustness)을 테스트한 결과, 우리의 시스템은 현재 SOTA 모델에 비해 음성-텍스트 작업에서 배경 소음과 화자 변화에 대해 더 나은 성능을 보였습니다. 특히, 우리는 SeamlessM4T를 성별 편향과 추가된 독성(toxicity)에 대해 평가하여 번역의 안전성을 평가했습니다. 마지막으로, 이 작업의 모든 기여는 오픈소스로 공개되어 있으며 https://github.com/facebookresearch/seamless_communication에서 접근할 수 있습니다.

사용

먼저, 프로세서와 모델의 체크포인트를 로드합니다:

from transformers import AutoProcessor, SeamlessM4TModel


processor = AutoProcessor.from_pretrained("facebook/hf-seamless-m4t-medium")
model = SeamlessM4TModel.from_pretrained("facebook/hf-seamless-m4t-medium", device_map="auto")

이 모델은 텍스트 또는 오디오에 대해 자연스럽게 사용할 수 있으며, 번역된 텍스트나 번역된 오디오를 생성할 수 있습니다.

프로세서를 사용하여 텍스트와 오디오를 처리하는 방법은 다음과 같습니다:

# let's load an audio sample from an Arabic speech corpus
from datasets import load_dataset


dataset = load_dataset("halabi2016/arabic_speech_corpus", split="test", streaming=True)
audio_sample = next(iter(dataset))["audio"]

# now, process it
audio_inputs = processor(audio=audio_sample["array"], return_tensors="pt").to(model.device)

# now, process some English test as well
text_inputs = processor(text = "Hello, my dog is cute", src_lang="eng", return_tensors="pt").to(model.device)

음성

SeamlessM4TModel은 거의 또는 전혀 변경하지 않고도 텍스트나 음성 생성을 매끄럽게 수행할 수 있습니다. 러시아어 음성 번역을 목표로 해 보겠습니다:

audio_array_from_text = model.generate(**text_inputs, tgt_lang="rus")[0].cpu().numpy().squeeze()
audio_array_from_audio = model.generate(**audio_inputs, tgt_lang="rus")[0].cpu().numpy().squeeze()

거의 동일한 코드로 영어 텍스트와 아랍어 음성에서 러시아어 음성 샘플로 번역했습니다.

텍스트

마찬가지로, 동일한 모델로 오디오 파일이나 텍스트에서 번역된 텍스트를 생성할 수 있습니다. SeamlessM4TModel.generate()에 generate_speech=False를 전달하기만 하면 됩니다. 이번에는 프랑스어로 번역해 보겠습니다.

# from audio
output_tokens = model.generate(**audio_inputs, tgt_lang="fra", generate_speech=False)
translated_text_from_audio = processor.decode(output_tokens[0].tolist()[0], skip_special_tokens=True)

# from text
output_tokens = model.generate(**text_inputs, tgt_lang="fra", generate_speech=False)
translated_text_from_text = processor.decode(output_tokens[0].tolist()[0], skip_special_tokens=True)

팁

1. 전용 모델 사용

SeamlessM4TModel은 음성 및 텍스트를 생성하기 위한 transformers의 최상위 모델입니다. 하지만 추가 구성 요소 없이 해당 작업을 수행하는 전용 모델을 사용하면 메모리 사용량을 줄일 수도 있습니다. 예를 들어, 오디오-오디오 생성 스니펫을 S2ST 작업에 특화된 모델로 대체할 수 있으며, 나머지 코드는 완전히 동일합니다:

from transformers import SeamlessM4TForSpeechToSpeech


model = SeamlessM4TForSpeechToSpeech.from_pretrained("facebook/hf-seamless-m4t-medium", device_map="auto")

또는 텍스트-텍스트 생성 스니펫을 T2TT 작업에 특화된 모델로 교체할 수 있으며, 이 경우 generate_speech=False만 제거하면 됩니다.

from transformers import SeamlessM4TForTextToText


model = SeamlessM4TForTextToText.from_pretrained("facebook/hf-seamless-m4t-medium", device_map="auto")

SeamlessM4TForSpeechToText와 SeamlessM4TForTextToSpeech도 자유롭게 사용해 보세요.

2. 화자 ID 변경

spkr_id 인수를 사용하여 음성 합성에 사용할 화자를 변경할 수 있습니다. 일부 언어의 경우 특정 spkr_id가 다른 것보다 더 잘 작동합니다!

3. 생성 전략 변경

음성 및 텍스트 생성에 서로 다른 생성 전략을 사용할 수 있습니다. 예를 들어 .generate(input_ids=input_ids, text_num_beams=4, speech_do_sample=True)를 사용하면 텍스트 모델에서는 beam-search 디코딩을, 음성 모델에서는 다항 분포 샘플링을 순차적으로 수행합니다.

4. 음성 및 텍스트를 동시에 생성

return_intermediate_token_ids=True를 SeamlessM4TModel과 함께 사용하면 음성 및 텍스트를 모두 반환합니다!

모델 아키텍처

SeamlessM4T는 텍스트와 음성 순차 생성을 매끄럽게 처리하는 다재다능한 아키텍처를 갖추고 있습니다. 이 구성은 두 개의 sequence-to-sequence (seq2seq) 모델로 이루어져 있습니다. 첫 번째 모델은 입력 모달리티를 번역된 텍스트로 변환하고, 두 번째 모델은 번역된 텍스트에서 음성 토큰인 'unit tokens'를 생성합니다.

각 모달리티는 고유한 아키텍처를 가진 전용 인코더를 사용합니다. 또한 음성 출력을 위해, HiFi-GAN 아키텍처에서 영감을 받은 보코더가 두 번째 seq2seq 모델 위에 배치됩니다.

생성 과정은 다음과 같이 작동합니다:

  • 입력 텍스트 또는 음성 데이터는 해당 인코더를 통해 처리됩니다.
  • 디코더는 원하는 언어의 텍스트 토큰을 생성합니다.
  • 음성 생성이 필요한 경우, 표준 인코더-디코더 구조를 따르는 두 번째 seq2seq 모델이 unit token을 생성합니다.
  • 이러한 unit token은 최종 vocoder를 통과하여 실제 음성으로 생성됩니다.

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

SeamlessM4TModel

class transformers.SeamlessM4TModel

< >

( config: SeamlessM4TConfigcurrent_modality = 'text' )

매개변수

  • config (SeamlessM4TConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
  • current_modality (str, 선택 사항, 기본값 "text") — 기본 모달리티입니다. 모델 초기화에 사용됩니다.

SeamlessM4T의 원래 모델 transformer로, 사용 가능한 모든 작업(S2ST, S2TT, T2TT, T2ST)에 사용할 수 있습니다.

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

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

generate

< >

( input_ids: typing.Optional[torch.Tensor] = Noneinput_features: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespkr_id: int | None = 0generate_speech: bool | None = True**kwargs ) → Union[SeamlessM4TGenerationOutput, tuple[Tensor], ModelOutput]

매개변수

  • input_ids (torch.LongTensor 의 형태 (batch_size, sequence_length), , 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다.

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

    입력 ID란 무엇인가요?

  • input_features (torch.Tensor, shape (batch_size, sequence_length, num_banks), 선택 사항) — 입력 오디오 특징입니다. SeamlessM4TFeatureExtractor 클래스 또는 SeamlessM4TProcessor 클래스에서 반환된 값이어야 합니다. 자세한 내용은 SeamlessM4TFeatureExtractor.call()를 참조하세요.
  • return_intermediate_token_ids (bool, 선택 사항) — True인 경우, 중간 생성 텍스트와 유닛 토큰도 반환합니다. 오디오와 함께 번역된 텍스트도 얻고 싶다면 True로 설정하세요. generate_speech=False인 경우 이 매개변수는 무시되고 텍스트 토큰이 반환됩니다.
  • tgt_lang (str, 선택 사항) — 번역의 대상 언어로 사용할 언어입니다.
  • spkr_id (int, 선택 사항, 기본값 0) — 음성 합성에 사용되는 화자의 id입니다. config.vocoder_num_spkrs보다 작아야 합니다.
  • generate_speech (bool, 선택 사항, 기본값 True) — False인 경우, 텍스트 토큰만 반환하고 음성 생성을 수행하지 않습니다.
  • kwargs (선택 사항) — 로 전달되는 나머지 키워드 인자 딕셔너리 GenerationMixin.generate(). 키워드 인자는 두 가지 유형이 있습니다: 접두사가 없는 경우, decoder_input_ids를 제외하고 각 서브 모델의 generate 메서드에 **kwargs로 입력됩니다. decoder_input_ids는 텍스트 컴포넌트에만 전달됩니다. text_ 또는 speech_ 접두사가 있는 경우, 각각 텍스트 모델과 음성 모델의 generate 메서드에 입력됩니다. 접두사가 없는 키워드보다 우선순위가 높습니다. 즉, 한 가지 생성에는 생성 전략을 지정하고 다른 생성에는 지정하지 않는 등의 작업이 가능합니다.
    • 접두사가 없으면 각 서브모델의 generate 메서드에 **kwargs로 입력되며, decoder_input_ids는 텍스트 컴포넌트를 통해서만 전달됩니다.
    • text_ 또는 speech_ 접두사가 있는 경우, 각각 텍스트 모델과 음성 모델의 generate 메서드에 입력으로 사용됩니다. 접두사가 없는 키워드보다 우선순위가 높습니다.

    즉, 예를 들어 한 생성에는 생성 전략을 지정하고 다른 생성에는 지정하지 않을 수 있습니다.

반환값

Union[SeamlessM4TGenerationOutput, tuple[Tensor], ModelOutput]

  • generate_speech와 return_intermediate_token_ids가 True인 경우, SeamlessM4TGenerationOutput를 반환합니다.
  • generate_speech가 호출되고 return_intermediate_token_ids가 False인 경우, (batch_size, sequence_length) 형태의 웨이브폼과 각 샘플의 길이를 나타내는 waveform_lengths로 구성된 튜플을 반환합니다.
  • generate_speech=False인 경우 ModelOutput를 반환합니다.

번역된 토큰 ID 및/또는 번역된 오디오 웨이브폼을 생성합니다.

이 메서드는 두 개의 서로 다른 서브모델의 .generate 함수를 순차적으로 호출합니다. 두 가지 수준에서 키워드 인수를 지정할 수 있습니다. 두 모델 모두에 전달되는 일반 인수를 지정하거나, 둘 중 하나에만 전달되는 접두사가 붙은 인수를 지정할 수 있습니다.

예를 들어, .generate(input_ids=input_ids, num_beams=4, speech_do_sample=True)를 호출하면 텍스트 모델에는 beam-search decoding을, 음성 모델에는 multinomial beam-search sampling을 순차적으로 수행합니다.

생성 전략 개요와 코드 예제는 다음 가이드를 참고하세요.

SeamlessM4TForTextToSpeech

class transformers.SeamlessM4TForTextToSpeech

< >

( config: SeamlessM4TConfig )

매개변수

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

T2ST에 사용할 수 있는 텍스트-음성 변환 SeamlessM4T 모델 transformer입니다.

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

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

generate

< >

( input_ids: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespkr_id: int | None = 0**kwargs ) → Union[SeamlessM4TGenerationOutput, tuple[Tensor]]

매개변수

  • input_ids (torch.LongTensor 의 형태 (batch_size, sequence_length)) — 어휘 사전에서 입력 시퀀스 토큰의 인덱스입니다. SeamlessM4TTokenizer 또는 SeamlessM4TProcessor를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()을 참조하세요. input ID란 무엇인가요?

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

    입력 ID란 무엇인가요?

  • return_intermediate_token_ids (bool, 선택 사항) — True인 경우, 중간 생성 텍스트와 유닛 토큰도 반환합니다. 오디오와 함께 번역된 텍스트도 얻고 싶다면 True로 설정하세요.
  • tgt_lang (str, 선택 사항) — 번역의 대상 언어로 사용할 언어입니다.
  • spkr_id (int, 선택 사항, 기본값 0) — 음성 합성에 사용되는 화자의 id입니다. config.vocoder_num_spkrs보다 작아야 합니다.
  • kwargs (선택 사항) — 로 전달되는 나머지 키워드 인자 딕셔너리 GenerationMixin.generate(). 키워드 인자는 두 가지 유형이 있습니다: 접두사가 없는 경우, decoder_input_ids를 제외하고 각 서브 모델의 generate 메서드에 **kwargs로 입력됩니다. decoder_input_ids는 텍스트 컴포넌트에만 전달됩니다. text_ 또는 speech_ 접두사가 있는 경우, 각각 텍스트 모델과 음성 모델의 generate 메서드에 입력됩니다. 접두사가 없는 키워드보다 우선순위가 높습니다. 즉, 한 가지 생성에는 생성 전략을 지정하고 다른 생성에는 지정하지 않는 등의 작업이 가능합니다.
    • 접두사가 없으면 각 서브모델의 generate 메서드에 **kwargs로 입력되며, decoder_input_ids는 텍스트 컴포넌트를 통해서만 전달됩니다.
    • text_ 또는 speech_ 접두사가 있는 경우, 각각 텍스트 모델과 음성 모델의 generate 메서드에 입력으로 사용됩니다. 접두사가 없는 키워드보다 우선순위가 높습니다.

    즉, 예를 들어 한 생성에는 생성 전략을 지정하고 다른 생성에는 지정하지 않을 수 있습니다.

반환값

Union[SeamlessM4TGenerationOutput, tuple[Tensor]]

  • return_intermediate_token_ids가 True인 경우, SeamlessM4TGenerationOutput를 반환합니다.
  • return_intermediate_token_ids가 False인 경우, (batch_size, sequence_length) 형태의 웨이브폼과 각 샘플의 길이를 나타내는 waveform_lengths로 구성된 튜플을 반환합니다.

번역된 오디오 웨이브폼을 생성합니다.

이 메서드는 두 개의 서로 다른 서브모델의 .generate 함수를 순차적으로 호출합니다. 두 가지 수준에서 키워드 인수를 지정할 수 있습니다. 두 모델 모두에 전달되는 일반 인수를 지정하거나, 둘 중 하나에만 전달되는 접두사가 붙은 인수를 지정할 수 있습니다.

예를 들어, .generate(input_ids, num_beams=4, speech_do_sample=True)를 호출하면 텍스트 모델에는 beam-search decoding을, 음성 모델에는 multinomial beam-search sampling을 순차적으로 수행합니다.

생성 전략 개요와 코드 예제는 다음 가이드를 참고하세요.

SeamlessM4TForSpeechToSpeech

class transformers.SeamlessM4TForSpeechToSpeech

< >

( config: SeamlessM4TConfig )

매개변수

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

S2ST에 사용할 수 있는 음성-음성 SeamlessM4T 모델 transformer입니다.

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

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

generate

< >

( input_features: typing.Optional[torch.Tensor] = Nonereturn_intermediate_token_ids: bool | None = Nonetgt_lang: str | None = Nonespkr_id: int | None = 0**kwargs ) → Union[SeamlessM4TGenerationOutput, tuple[Tensor]]

매개변수

  • input_features (torch.Tensor, shape (batch_size, sequence_length, num_banks)) — 입력 오디오 특징입니다. SeamlessM4TFeatureExtractor 클래스 또는 SeamlessM4TProcessor 클래스에서 반환된 값이어야 합니다. 자세한 내용은 SeamlessM4TFeatureExtractor.call()를 참고하세요.
  • return_intermediate_token_ids (bool, 선택 사항) — True인 경우, 중간 생성 텍스트와 유닛 토큰도 반환합니다. 오디오와 함께 번역된 텍스트도 얻고 싶다면 True로 설정하세요.
  • tgt_lang (str, 선택 사항) — 번역의 대상 언어로 사용할 언어입니다.
  • spkr_id (int, 선택 사항, 기본값 0) — 음성 합성에 사용되는 화자의 id입니다. config.vocoder_num_spkrs보다 작아야 합니다.
  • kwargs (선택 사항) — 로 전달되는 나머지 키워드 인자 딕셔너리 GenerationMixin.generate(). 키워드 인자는 두 가지 유형이 있습니다: 접두사가 없는 경우, decoder_input_ids를 제외하고 각 서브 모델의 generate 메서드에 **kwargs로 입력됩니다. decoder_input_ids는 텍스트 컴포넌트에만 전달됩니다. text_ 또는 speech_ 접두사가 있는 경우, 각각 텍스트 모델과 음성 모델의 generate 메서드에 입력됩니다. 접두사가 없는 키워드보다 우선순위가 높습니다. 즉, 한 가지 생성에는 생성 전략을 지정하고 다른 생성에는 지정하지 않는 등의 작업이 가능합니다.
    • 접두사가 없으면 각 서브모델의 generate 메서드에 **kwargs로 입력되며, decoder_input_ids는 텍스트 컴포넌트를 통해서만 전달됩니다.
    • text_ 또는 speech_ 접두사가 있는 경우, 각각 텍스트 모델과 음성 모델의 generate 메서드에 입력으로 사용됩니다. 접두사가 없는 키워드보다 우선순위가 높습니다.

    즉, 예를 들어 한 생성에는 생성 전략을 지정하고 다른 생성에는 지정하지 않을 수 있습니다.

반환값

Union[SeamlessM4TGenerationOutput, tuple[Tensor]]

  • return_intermediate_token_ids가 True인 경우, SeamlessM4TGenerationOutput를 반환합니다.
  • return_intermediate_token_ids가 False인 경우, (batch_size, sequence_length) 형태의 웨이브폼과 각 샘플의 길이를 나타내는 waveform_lengths로 구성된 튜플을 반환합니다.

번역된 오디오 웨이브폼을 생성합니다.

이 메서드는 두 개의 서로 다른 서브모델의 .generate 함수를 순차적으로 호출합니다. 두 가지 수준에서 키워드 인수를 지정할 수 있습니다. 두 모델 모두에 전달되는 일반 인수를 지정하거나, 둘 중 하나에만 전달되는 접두사가 붙은 인수를 지정할 수 있습니다.

예를 들어, .generate(input_features, num_beams=4, speech_do_sample=True)를 호출하면 텍스트 모델에는 beam-search decoding을, 음성 모델에는 multinomial beam-search sampling을 순차적으로 수행합니다.

생성 전략 개요와 코드 예제는 다음 가이드를 참고하세요.

SeamlessM4TForTextToText

class transformers.SeamlessM4TForTextToText

< >

( config: SeamlessM4TConfig )

매개변수

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

T2TT에 사용할 수 있는 텍스트-대-텍스트 SeamlessM4T Model transformer입니다.

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput 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

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

  • decoder_input_ids (torch.LongTensor shape (batch_size, target_sequence_length), 선택 사항) — 어휘(decoder input sequence) 토큰의 인덱스입니다. 인덱스는 AutoTokenizer를 사용하여 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()을 참조하세요. decoder input ID란 무엇인가요? Bart는 decoder_input_ids 생성의 시작 토큰으로 eos_token_id를 사용합니다. past_key_values를 사용하는 경우, 선택적으로 마지막 decoder_input_ids만 입력하면 됩니다(past_key_values 참조). 번역 및 요약 학습의 경우 decoder_input_ids를 제공해야 합니다. decoder_input_ids가 제공되지 않으면, 해당 논문에 따라 노이즈 제거 사전 학습을 위해 input_ids를 오른쪽으로 이동시켜 이 텐서를 생성합니다.

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

    디코더 입력 ID란 무엇인가요?

    Bart는 decoder_input_ids 생성의 시작 토큰으로 eos_token_id를 사용합니다. past_key_values를 사용하는 경우, 선택적으로 마지막 decoder_input_ids만 입력하면 됩니다(past_key_values 참조).

    번역 및 요약 학습을 위해 decoder_input_ids를 제공해야 합니다. decoder_input_ids가 제공되지 않으면, 해당 논문에 따라 노이즈 제거 사전 학습을 위해 input_ids를 오른쪽으로 이동시켜 이 텐서를 생성합니다.

  • decoder_attention_mask (torch.LongTensor 다음 형태의 (batch_size, target_sequence_length), 선택 사항) — 기본 동작: decoder_input_ids. 의 pad 토큰을 무시하는 텐서를 생성합니다. 기본값으로 Causal mask도 사용됩니다. 패딩 동작을 변경하려면 modeling_bart._prepare_decoder_attention_mask를 읽고 필요에 맞게 수정해야 합니다. 기본 전략에 대한 자세한 내용은 논문에서 다이어그램 1을 참고하세요.

    패딩 동작을 변경하려면 modeling_bart._prepare_decoder_attention_mask를 읽고 필요에 맞게 수정해야 합니다. 기본 전략에 대한 자세한 정보는 논문의 다이어그램 1을 참고하세요.

  • encoder_outputs (tuple[tuple[torch.Tensor]], 선택 사항) — (last_hidden_state, 선택 사항: hidden_states, 선택 사항: attentions)으로 구성된 Tuple입니다. last_hidden_state의 shape은 (batch_size, sequence_length, hidden_size), 선택 사항)이며, 인코더의 마지막 레이어 출력에서 생성된 hidden-states의 시퀀스입니다. 디코더의 cross-attention에 사용됩니다.
  • 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 형상이(batch_size, sequence_length, hidden_size), 선택 사항) — 선택적으로, input_ids 대신 임베딩된 표현을 직접 전달할 수 있습니다. 이는 input_ids 인덱스를 관련 벡터로 변환하는 방식에 대해 모델 내부 임베딩 조회 행렬보다 더 많은 제어가 필요할 때 유용합니다.

    labels (torch.LongTensor, shape (batch_size, sequence_length), 선택 사항): 마스크 언어 모델링 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는 [-100, 0, ..., config.vocab_size] 범위여야 합니다(input_ids docstring 참조). 인덱스가 -100으로 설정된 토큰은 무시(마스크)되며, 손실은 라벨이 [0, ..., config.vocab_size] 범위에 있는 토큰에 대해서만 계산됩니다.

  • decoder_inputs_embeds (torch.Tensor 형상 (batch_size, target_sequence_length, hidden_size), 선택 사항) — 선택적으로, decoder_input_ids 대신에 임베딩된 표현을 직접 전달할 수 있습니다. past_key_values 이 사용되면, 선택적으로 마지막 decoder_inputs_embeds 만 입력하면 됩니다(참고: past_key_values). 이는 decoder_input_ids 인덱스를 관련 벡터로 변환하는 방식을 모델의 내부 임베딩 조회 행렬보다 더 세밀하게 제어하려는 경우에 유용합니다.

    decoder_input_ids와 decoder_inputs_embeds가 모두 설정되지 않은 경우, decoder_inputs_embeds는 inputs_embeds의 값을 가져옵니다.

  • labels (torch.LongTensor, shape (batch_size, sequence_length), 선택 사항) — 마스크 언어 모델링 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는 [0, ..., config.vocab_size] 범위 내의 값이거나 -100이어야 합니다(input_ids docstring 참조). 인덱스가 -100으로 설정된 토큰은 무시(마스크)되며, 손실은 [0, ..., config.vocab_size] 범위의 라벨을 가진 토큰에 대해서만 계산됩니다.
  • use_cache (bool, 선택 사항) — True로 설정하면 past_key_values 키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다( past_key_values 참조).

반환값

Seq2SeqLMOutput 또는 tuple(torch.Tensor)

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

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

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

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

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

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

    순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록과 크로스 어텐션 블록의 key 및 value)를 포함합니다(입력 past_key_values 참조).

  • decoder_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와 초기 임베딩 출력을 더한 값.

  • decoder_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 이후의 decoder의 attention 가중치입니다.

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

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

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

  • encoder_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와 초기 임베딩 출력을 더한 값.

  • encoder_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 가중치입니다.

generate

< >

( input_ids = Nonetgt_lang = Nonegeneration_config = Nonelogits_processor = Nonestopping_criteria = Noneprefix_allowed_tokens_fn = Nonesynced_gpus = False**kwargs ) → ModelOutput or torch.LongTensor

매개변수

  • input_ids (torch.Tensor 모달리티에 따라 형태가 달라지는 선택 사항) — 어휘 사전에서 입력 시퀀스 토큰의 인덱스입니다.

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

    입력 ID란 무엇인가요?

  • tgt_lang (str, 선택 사항) — 번역의 대상 언어로 사용할 언어입니다.
  • generation_config (~generation.GenerationConfig, 선택) — 생성 호출의 기본 파라미터화로 사용할 생성 구성입니다. **kwargs로 전달된 값 중 generation_config의 속성과 일치하는 값은 해당 속성을 덮어씁니다. generation_config가 제공되지 않으면 기본값이 사용되며, 이 기본값은 다음 우선순위로 로드됩니다. 1) generation_config.json 모델 파일이 존재하는 경우 해당 파일에서; 2) 모델 구성에서. 명시되지 않은 파라미터는 GenerationConfig의 기본값을 상속받으므로, 생성을 파라미터화하려면 해당 문서에서 기본값을 확인하시기 바랍니다.
  • logits_processor (LogitsProcessorList, 선택) — 인자와 generation config에서 기본으로 생성되는 logits processor를 보완하는 사용자 정의 logits processor입니다. 인자나 generation config로 이미 생성된 logit processor를 전달하면 오류가 발생합니다. 이 기능은 고급 사용자를 위해 제공됩니다.
  • stopping_criteria (StoppingCriteriaList, 선택 사항) — 인자와 generation config에서 기본으로 생성되는 stopping criteria를 보완하는 사용자 정의 stopping criteria입니다. 인자 또는 generation config로 이미 생성된 stopping criteria가 전달되면 오류가 발생합니다. 이 기능은 고급 사용자를 대상으로 합니다.
  • prefix_allowed_tokens_fn (Callable[[int, torch.Tensor], list[int]], 선택) — 지정된 경우, 이 함수는 각 단계에서 beam search를 허용된 토큰으로만 제한합니다. 지정되지 않으면 제약이 적용되지 않습니다. 이 함수는 두 개의 인수를 받습니다: 배치 ID batch_id와 input_ids. 배치 ID batch_id와 이전에 생성된 토큰 inputs_ids에 조건부인 다음 생성 단계에 허용되는 토큰의 목록을 반환해야 합니다. 이 인수는 Autoregressive Entity Retrieval에 설명된 바와 같이 접두사에 조건부인 제약 생성에 유용합니다.
  • synced_gpus (bool, 선택 사항, 기본값 False) — FullyShardedDataParallel 및 DeepSpeed ZeRO Stage 3에서 데드락을 방지하기 위해 max_length까지 while 루프를 계속 실행할지 여부.
  • kwargs (dict[str, Any], 선택) — generate_config의 즉석 파라미터화 및/또는 모델의 forward 함수로 전달되는 모델 특정 추가 kwargs입니다.

반환값

ModelOutput 또는 torch.LongTensor

return_dict_in_generate=True인 경우 또는 config.return_dict_in_generate=True인 경우 ModelOutput, 아니면 torch.Tensor입니다. 가능한 ModelOutput 유형은 다음과 같습니다:

토큰 ID의 시퀀스를 생성합니다.

대부분의 생성 제어 매개변수는 generation_config에 설정되며, 전달되지 않으면 모델의 기본 생성 구성으로 설정됩니다. generation_config의 항목은 generate()에 해당 매개변수를 전달하여 오버라이드할 수 있습니다. 예를 들어 .generate(inputs, num_beams=4, do_sample=True)와 같이 사용할 수 있습니다.

생성 전략 개요와 코드 예제는 다음 가이드를 참고하세요.

SeamlessM4TForSpeechToText

클래스 transformers.SeamlessM4TForSpeechToText

< >

( config: SeamlessM4TConfig )

매개변수

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

S2TT에 사용할 수 있는 음성-텍스트 변환 SeamlessM4T 모델 transformer입니다.

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

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

forward

< >

( input_features: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput or tuple(torch.Tensor)

매개변수

  • input_features (torch.Tensor, shape (batch_size, sequence_length, num_banks)) — 입력 오디오 특징입니다. SeamlessM4TFeatureExtractor 클래스 또는 SeamlessM4TProcessor 클래스에서 반환된 값이어야 합니다. 자세한 내용은 SeamlessM4TFeatureExtractor.call()를 참고하세요.
  • attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

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

  • decoder_input_ids (torch.LongTensor shape (batch_size, target_sequence_length), 선택 사항) — 어휘(decoder input sequence) 토큰의 인덱스입니다. 인덱스는 AutoTokenizer를 사용하여 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()을 참조하세요. decoder input ID란 무엇인가요? Bart는 decoder_input_ids 생성의 시작 토큰으로 eos_token_id를 사용합니다. past_key_values를 사용하는 경우, 선택적으로 마지막 decoder_input_ids만 입력하면 됩니다(past_key_values 참조). 번역 및 요약 학습의 경우 decoder_input_ids를 제공해야 합니다. decoder_input_ids가 제공되지 않으면, 해당 논문에 따라 노이즈 제거 사전 학습을 위해 input_ids를 오른쪽으로 이동시켜 이 텐서를 생성합니다.

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

    디코더 입력 ID란 무엇인가요?

    Bart는 decoder_input_ids 생성의 시작 토큰으로 eos_token_id를 사용합니다. past_key_values를 사용하는 경우, 선택적으로 마지막 decoder_input_ids만 입력하면 됩니다(past_key_values 참조).

    번역 및 요약 학습을 위해 decoder_input_ids를 제공해야 합니다. decoder_input_ids가 제공되지 않으면, 해당 논문에 따라 노이즈 제거 사전 학습을 위해 input_ids를 오른쪽으로 이동시켜 이 텐서를 생성합니다.

  • decoder_attention_mask (torch.LongTensor 다음 형태의 (batch_size, target_sequence_length), 선택 사항) — 기본 동작: decoder_input_ids. 의 pad 토큰을 무시하는 텐서를 생성합니다. 기본값으로 Causal mask도 사용됩니다. 패딩 동작을 변경하려면 modeling_bart._prepare_decoder_attention_mask를 읽고 필요에 맞게 수정해야 합니다. 기본 전략에 대한 자세한 내용은 논문에서 다이어그램 1을 참고하세요.

    패딩 동작을 변경하려면 modeling_bart._prepare_decoder_attention_mask를 읽고 필요에 맞게 수정해야 합니다. 기본 전략에 대한 자세한 정보는 논문의 다이어그램 1을 참고하세요.

  • encoder_outputs (tuple[tuple[torch.Tensor]], 선택 사항) — (last_hidden_state, 선택 사항: hidden_states, 선택 사항: attentions)으로 구성된 Tuple입니다. last_hidden_state의 shape은 (batch_size, sequence_length, hidden_size), 선택 사항)이며, 인코더의 마지막 레이어 출력에서 생성된 hidden-states의 시퀀스입니다. 디코더의 cross-attention에 사용됩니다.
  • 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 형상이(batch_size, sequence_length, hidden_size), 선택 사항) — 선택적으로, input_ids 대신 임베딩된 표현을 직접 전달할 수 있습니다. 이는 input_ids 인덱스를 관련 벡터로 변환하는 방식에 대해 모델 내부 임베딩 조회 행렬보다 더 많은 제어가 필요할 때 유용합니다.

    labels (torch.LongTensor, shape (batch_size, sequence_length), 선택 사항): 마스크 언어 모델링 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는 [-100, 0, ..., config.vocab_size] 범위여야 합니다(input_ids docstring 참조). 인덱스가 -100으로 설정된 토큰은 무시(마스크)되며, 손실은 라벨이 [0, ..., config.vocab_size] 범위에 있는 토큰에 대해서만 계산됩니다.

  • decoder_inputs_embeds (torch.Tensor 형상 (batch_size, target_sequence_length, hidden_size), 선택 사항) — 선택적으로, decoder_input_ids 대신에 임베딩된 표현을 직접 전달할 수 있습니다. past_key_values 이 사용되면, 선택적으로 마지막 decoder_inputs_embeds 만 입력하면 됩니다(참고: past_key_values). 이는 decoder_input_ids 인덱스를 관련 벡터로 변환하는 방식을 모델의 내부 임베딩 조회 행렬보다 더 세밀하게 제어하려는 경우에 유용합니다.

    decoder_input_ids와 decoder_inputs_embeds가 모두 설정되지 않은 경우, decoder_inputs_embeds는 inputs_embeds의 값을 가져옵니다.

  • labels (torch.LongTensor, shape (batch_size, sequence_length), 선택 사항) — 마스크 언어 모델링 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는 [0, ..., config.vocab_size] 범위 내의 값이거나 -100이어야 합니다(input_ids docstring 참조). 인덱스가 -100으로 설정된 토큰은 무시(마스크)되며, 손실은 [0, ..., config.vocab_size] 범위의 라벨을 가진 토큰에 대해서만 계산됩니다.
  • use_cache (bool, 선택 사항) — True로 설정하면 past_key_values 키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다( past_key_values 참조).

반환값

Seq2SeqLMOutput 또는 tuple(torch.Tensor)

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

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

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

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

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

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

    순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록과 크로스 어텐션 블록의 key 및 value)를 포함합니다(입력 past_key_values 참조).

  • decoder_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와 초기 임베딩 출력을 더한 값.

  • decoder_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 이후의 decoder의 attention 가중치입니다.

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

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

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

  • encoder_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와 초기 임베딩 출력을 더한 값.

  • encoder_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 AutoProcessor, SeamlessM4TForSpeechToText
>>> from datasets import load_dataset
>>> import torch

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> processor = AutoProcessor.from_pretrained("facebook/hf-seamless-m4t-medium")
>>> model = SeamlessM4TForSpeechToText.from_pretrained("facebook/hf-seamless-m4t-medium")

>>> # audio file is decoded on the fly
>>> inputs = processor(dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
>>> with torch.no_grad():
...     logits = model(**inputs).logits
>>> predicted_ids = torch.argmax(logits, dim=-1)

>>> # transcribe speech
>>> transcription = processor.batch_decode(predicted_ids)
>>> transcription[0]
...

>>> inputs["labels"] = processor(text=dataset[0]["text"], return_tensors="pt").input_ids

>>> # compute loss
>>> loss = model(**inputs).loss
>>> round(loss.item(), 2)
...

generate

< >

( input_features = Nonetgt_lang = Nonegeneration_config = Nonelogits_processor = Nonestopping_criteria = Noneprefix_allowed_tokens_fn = Nonesynced_gpus = False**kwargs ) → ModelOutput or torch.LongTensor

매개변수

  • input_features (torch.Tensor, shape (batch_size, sequence_length, num_banks)) — 입력 오디오 특징입니다. SeamlessM4TFeatureExtractor 클래스 또는 SeamlessM4TProcessor 클래스에서 반환된 값이어야 합니다. 자세한 내용은 SeamlessM4TFeatureExtractor.call()를 참고하세요.
  • tgt_lang (str, 선택 사항) — 번역의 대상 언어로 사용할 언어입니다.
  • generation_config (~generation.GenerationConfig, 선택) — 생성 호출의 기본 파라미터화로 사용할 생성 구성입니다. **kwargs로 전달된 값 중 generation_config의 속성과 일치하는 값은 해당 속성을 덮어씁니다. generation_config가 제공되지 않으면 기본값이 사용되며, 이 기본값은 다음 우선순위로 로드됩니다. 1) generation_config.json 모델 파일이 존재하는 경우 해당 파일에서; 2) 모델 구성에서. 명시되지 않은 파라미터는 GenerationConfig의 기본값을 상속받으므로, 생성을 파라미터화하려면 해당 문서에서 기본값을 확인하시기 바랍니다.
  • logits_processor (LogitsProcessorList, 선택) — 인자와 generation config에서 기본으로 생성되는 logits processor를 보완하는 사용자 정의 logits processor입니다. 인자나 generation config로 이미 생성된 logit processor를 전달하면 오류가 발생합니다. 이 기능은 고급 사용자를 위해 제공됩니다.
  • stopping_criteria (StoppingCriteriaList, 선택 사항) — 인자와 generation config에서 기본으로 생성되는 stopping criteria를 보완하는 사용자 정의 stopping criteria입니다. 인자 또는 generation config로 이미 생성된 stopping criteria가 전달되면 오류가 발생합니다. 이 기능은 고급 사용자를 대상으로 합니다.
  • prefix_allowed_tokens_fn (Callable[[int, torch.Tensor], list[int]], 선택) — 지정된 경우, 이 함수는 각 단계에서 beam search를 허용된 토큰으로만 제한합니다. 지정되지 않으면 제약이 적용되지 않습니다. 이 함수는 두 개의 인수를 받습니다: 배치 ID batch_id와 input_ids. 배치 ID batch_id와 이전에 생성된 토큰 inputs_ids에 조건부인 다음 생성 단계에 허용되는 토큰의 목록을 반환해야 합니다. 이 인수는 Autoregressive Entity Retrieval에 설명된 바와 같이 접두사에 조건부인 제약 생성에 유용합니다.
  • synced_gpus (bool, 선택 사항, 기본값 False) — FullyShardedDataParallel 및 DeepSpeed ZeRO Stage 3에서 데드락을 방지하기 위해 max_length까지 while 루프를 계속 실행할지 여부.
  • kwargs (dict[str, Any], 선택) — generate_config의 즉석 파라미터화 및/또는 모델의 forward 함수로 전달되는 모델 특정 추가 kwargs입니다.

반환값

ModelOutput 또는 torch.LongTensor

return_dict_in_generate=True인 경우 또는 config.return_dict_in_generate=True인 경우 ModelOutput, 아니면 torch.Tensor입니다. 가능한 ModelOutput 유형은 다음과 같습니다:

토큰 ID의 시퀀스를 생성합니다.

대부분의 생성 제어 매개변수는 generation_config에 설정되며, 전달되지 않으면 모델의 기본 생성 구성으로 설정됩니다. generation_config의 항목은 generate()에 해당 매개변수를 전달하여 오버라이드할 수 있습니다. 예를 들어 .generate(inputs, num_beams=4, do_sample=True)와 같이 사용할 수 있습니다.

생성 전략 개요와 코드 예제는 다음 가이드를 참고하세요.

SeamlessM4TConfig

클래스 transformers.SeamlessM4TConfig

< >

( 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Truevocab_size: int = 256102t2u_vocab_size: int = 10082hidden_size: int = 1024initializer_range: float = 0.02layer_norm_eps: float = 1e-05use_cache: bool = Truemax_position_embeddings: int = 1024encoder_layerdrop: float | int = 0.05decoder_layerdrop: float | int = 0.05activation_function: str = 'relu'dropout: float | int = 0.1attention_dropout: float | int = 0.1activation_dropout: float | int = 0.0scale_embedding: bool = Trueencoder_layers: int = 24encoder_ffn_dim: int = 8192encoder_attention_heads: int = 16decoder_layers: int = 24decoder_ffn_dim: int = 8192decoder_attention_heads: int = 16decoder_start_token_id: int = 3max_new_tokens: int | None = 256pad_token_id: int | None = 0bos_token_id: int | None = 2eos_token_id: int | list[int] | None = 3speech_encoder_layers: int = 24speech_encoder_attention_heads: int = 16speech_encoder_intermediate_size: int = 4096speech_encoder_hidden_act: str = 'swish'speech_encoder_dropout: float | int = 0.0add_adapter: bool = Truespeech_encoder_layerdrop: float | int = 0.1feature_projection_input_dim: int = 160num_conv_pos_embeddings: int = 128num_conv_pos_embedding_groups: int = 16adaptor_kernel_size: int = 8adaptor_stride: int = 8adaptor_dropout: float | int = 0.1num_adapter_layers: int = 1position_embeddings_type: str = 'relative'rotary_embedding_base: int = 10000max_source_positions: int = 4096conv_depthwise_kernel_size: int = 31t2u_bos_token_id: int | None = 0t2u_pad_token_id: int | None = 1t2u_eos_token_id: int | list[int] | None = 2t2u_decoder_start_token_id: int = 2t2u_max_new_tokens: int = 1024t2u_encoder_layers: int = 6t2u_encoder_ffn_dim: int = 8192t2u_encoder_attention_heads: int = 16t2u_decoder_layers: int = 6t2u_decoder_ffn_dim: int = 8192t2u_decoder_attention_heads: int = 16t2u_max_position_embeddings: int = 2048sampling_rate: int = 16000upsample_initial_channel: int = 512upsample_rates: list[int] | tuple[int, ...] = (5, 4, 4, 2, 2)upsample_kernel_sizes: list[int] | tuple[int, ...] = (11, 8, 8, 4, 4)resblock_kernel_sizes: list[int] | tuple[int, ...] = (3, 7, 11)resblock_dilation_sizes: list | tuple = ((1, 3, 5), (1, 3, 5), (1, 3, 5))leaky_relu_slope: float = 0.1unit_hifi_gan_vocab_size: int = 10000unit_embed_dim: int = 1280lang_embed_dim: int = 256spkr_embed_dim: int = 256vocoder_num_langs: int = 36vocoder_num_spkrs: int = 200variance_predictor_kernel_size: int = 3var_pred_dropout: float | int = 0.5vocoder_offset: int = 4tie_word_embeddings: bool = True )

매개변수

  • is_encoder_decoder (bool, 선택 사항, 기본값 True) — 모델이 인코더/디코더로 사용되는지 여부를 나타냅니다.
  • vocab_size (int, 선택 사항, 기본값 256102) — 모델의 어휘 크기입니다. input_ids로 표현할 수 있는 서로 다른 토큰의 수를 정의합니다.
  • t2u_vocab_size (int, 선택 사항, 기본값 10082) — SeamlessM4T 모델의 단위 어휘 크기입니다. ~SeamlessM4TModel, ~SeamlessM4TForSpeechToSpeech 또는 ~SeamlessM4TForTextToSpeech의 Text-To-Units 서브모델을 호출할 때 전달하는 inputs_ids로 표현할 수 있는 서로 다른 단위 토큰의 수를 정의합니다.
  • hidden_size (int, 선택 사항, 기본값 1024) — 숨겨진 표현의 차원입니다.
  • initializer_range (float, 선택 사항, 기본값 0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다.
  • layer_norm_eps (float, 선택 사항, 기본값 1e-05) — 레이어 정규화 레이어에서 사용되는 epsilon 값입니다.
  • use_cache (bool, 선택 사항, 기본값 True) — 모델이 마지막 key/values attention을 반환할지 여부입니다(모든 모델에서 사용되지 않음). config.is_decoder=True인 경우 또는 모델이 decoder-only 생성 모델인 경우에만 관련이 있습니다.
  • max_position_embeddings (int, 선택 사항, 기본값 1024) — 이 모델이 사용될 수 있는 최대 시퀀스 길이입니다.
  • encoder_layerdrop (Union[float, int], 선택 사항, 기본값 0.05) — 인코더의 LayerDrop 확률입니다. 자세한 내용은 [LayerDrop 논문](https://huggingface.co/papers/1909.11556 참조)을 참고하세요.
  • decoder_layerdrop (Union[float, int], 선택 사항, 기본값 0.05) — 디코더의 LayerDrop 확률입니다. 자세한 내용은 [LayerDrop 논문](https://huggingface.co/papers/1909.11556 참조)을 참고하세요.
  • activation_function (str, 선택 사항, 기본값 relu) — 디코더에서 사용되는 비선형 활성화 함수(함수 또는 문자열)입니다. 예를 들어, "gelu", "relu", "silu" 등이 있습니다.
  • dropout (Union[float, int], 선택 사항, 기본값 0.1) — 모든 dropout 레이어에 적용할 비율입니다.
  • attention_dropout (Union[float, int], 선택 사항, 기본값 0.1) — Attention 확률에 적용할 dropout 비율입니다.
  • activation_dropout (Union[float, int], 선택 사항, 기본값 0.0) — 완전 연결 레이어 내부 활성화에 적용할 dropout 비율입니다.
  • scale_embedding (bool, 선택 사항, 기본값 True) — 임베딩을 sqrt(d_model)로 나누어 스케일링할지 여부입니다.
  • encoder_layers (int, 선택 사항, 기본값 24) — Transformer 인코더의 숨겨진 레이어 수입니다. 설정하지 않으면 num_layers와 동일한 값을 사용합니다.
  • encoder_ffn_dim (int, 선택 사항, 기본값 8192) — 인코더의 “중간” 레이어(일반적으로 feed-forward 레이어라고도 함)의 차원입니다.
  • encoder_attention_heads (int, 선택 사항, 기본값 16) — Transformer 인코더의 각 어텐션 레이어에 사용할 어텐션 헤드 수입니다.
  • decoder_layers (int, 선택 사항, 기본값 24) — Transformer decoder의 숨겨진 레이어 수입니다. 설정하지 않으면 num_layers와 동일한 값을 사용합니다.
  • decoder_ffn_dim (int, 선택 사항, 기본값 8192) — decoder의 “intermediate”(일반적으로 feed-forward라고도 함) 레이어의 차원입니다.
  • decoder_attention_heads (int, 선택 사항, 기본값 16) — Transformer decoder의 각 attention layer에 사용할 attention head 수입니다.
  • decoder_start_token_id (int, 선택 사항, 기본값 3) — 인코더-디코더 모델이 bos와 다른 토큰으로 디코딩을 시작하는 경우, 해당 토큰의 id입니다.
  • max_new_tokens (int, 선택 사항, 기본값 256) — 프롬프트의 토큰 수를 무시하고 생성할 텍스트 토큰의 최대 개수입니다.
  • pad_token_id (int, 선택 사항, 기본값 0) — 어휘에서 패딩에 사용되는 토큰 ID입니다.
  • bos_token_id (int, 선택 사항, 기본값 2) — 어휘에서 스트림 시작에 사용되는 토큰 ID입니다.
  • eos_token_id (Union[int, list[int]], 선택 사항, 기본값 3) — 어휘에서 스트림 종료에 사용되는 토큰 ID입니다.
  • speech_encoder_layers (int, 선택 사항, 기본값 24) — Transformer 음성 인코더의 숨겨진 레이어 수입니다.
  • speech_encoder_attention_heads (int, 선택 사항, 기본값 16) — Transformer 음성 인코더의 각 어텐션 레이어에 사용할 어텐션 헤드 수입니다.
  • speech_encoder_intermediate_size (int, 선택 사항, 기본값 4096) — Transformer 음성 인코더의 “intermediate”(즉, feed-forward) 레이어의 차원.
  • speech_encoder_hidden_act (str 또는 function, 선택 사항, 기본값 "swish") — 음성 인코더의 비선형 활성화 함수(함수 또는 문자열)입니다. 문자열인 경우 "gelu", "relu", "selu", "swish", "gelu_new"를 지원합니다.
  • speech_encoder_dropout (float, 선택 사항, 기본값 0.0) — 음성 인코더의 모든 레이어에 적용할 dropout 확률입니다.
  • add_adapter (bool, 선택 사항, 기본값 True) — 음성 인코더 위에 어댑터 레이어를 추가합니다.
  • speech_encoder_layerdrop (float, 선택 사항, 기본값 0.1) — 음성 인코더의 LayerDrop 확률입니다. 자세한 내용은 [LayerDrop 논문](see https://huggingface.co/papers/1909.11556)을 참고하세요.
  • feature_projection_input_dim (int, 선택 사항, 기본값 160) — 음성 인코더의 입력 특징 투사(input feature projection)의 입력 차원, 즉 SeamlessM4TFeatureExtractor로 입력 오디오를 처리한 후의 차원을 의미합니다.
  • num_conv_pos_embeddings (int, 선택 사항, 기본값 128) — 컨볼루션 위치 임베딩의 개수입니다. 음성 인코더의 1차원 컨볼루션 위치 임베딩 레이어의 커널 크기를 정의합니다.
  • num_conv_pos_embedding_groups (int, 선택 사항, 기본값 16) — 음성 인코더의 1D 합성곱 위치 임베딩 레이어의 그룹 수.
  • adaptor_kernel_size (int, 선택 사항, 기본값 8) — 어댑터 네트워크의 합성곱 레이어 커널 크기입니다. add_adapter is True인 경우에만 관련이 있습니다.
  • adaptor_stride (int, 선택 사항, 기본값 8) — 어댑터 네트워크의 합성곱 계층 스트라이드입니다. add_adapter is True인 경우에만 관련이 있습니다.
  • adaptor_dropout (float, 선택 사항, 기본값 0.1) — 음성 어댑터의 모든 레이어에 적용되는 dropout 확률입니다.
  • num_adapter_layers (int, optional, 기본값 1) — 어댑터 네트워크에서 사용할 컨볼루션 레이어의 수입니다. add_adapter is True인 경우에만 관련이 있습니다.
  • position_embeddings_type (str, 선택 사항, 기본값 "relative") — 상대 위치 임베딩과 로터리 위치 임베딩을 각각 지정하려면 relative 또는 rotary로 설정할 수 있습니다. None으로 두면 상대 위치 임베딩이 적용되지 않습니다. 음성 인코더에만 적용됩니다.
  • rotary_embedding_base (int, 선택 사항, 기본값 10000) — "rotary" 위치 임베딩을 사용하는 경우, 임베딩 기반의 크기를 정의합니다. 음성 인코더에만 적용됩니다.
  • max_source_positions (int, 선택 사항, 기본값 4096) — "relative" 위치 임베딩을 사용하는 경우, 최대 소스 입력 위치를 정의합니다. 음성 인코더에만 적용됩니다.
  • conv_depthwise_kernel_size (int, 선택 사항, 기본값 31) — Conformer 블록의 convolutional depthwise 1D 레이어의 kernel size입니다. 음성 인코더에만 적용됩니다.
  • t2u_bos_token_id (int, 선택 사항, 기본값 0) — 스트림 시작 유닛 토큰의 id입니다. 텍스트-투-유닛 seq2seq 모델에만 적용됩니다.
  • t2u_pad_token_id (int, 선택 사항, 기본값 1) — padding 유닛 토큰의 id입니다. 텍스트-투-유닛 seq2seq 모델에만 적용됩니다.
  • t2u_eos_token_id (int, 선택 사항, 기본값 2) — 스트림 종료 유닛 토큰의 id입니다. 텍스트-투-유닛 seq2seq 모델에만 적용됩니다.
  • t2u_decoder_start_token_id (int, 선택 사항, 기본값 2) — 인코더-디코더 모델이 bos와 다른 토큰으로 디코딩을 시작하는 경우, 해당 토큰의 id입니다. 텍스트-투-유닛 seq2seq 모델에만 적용됩니다.
  • t2u_max_new_tokens (int, 선택 사항, 기본값 1024) — 프롬프트의 토큰 수를 무시하고 생성할 최대 단위 토큰 수입니다. text-to-unit seq2seq 모델에만 적용됩니다.
  • t2u_encoder_layers (int, 선택 사항, 기본값 6) — Transformer 텍스트-단위 인코더의 숨겨진 레이어 수입니다.
  • t2u_encoder_ffn_dim (int, 선택 사항, 기본값 8192) — Transformer text-to-unit 인코더의 “intermediate”(즉, feed-forward) 레이어의 차원.
  • t2u_encoder_attention_heads (int, 선택 사항, 기본값 16) — Transformer text-to-unit 인코더의 각 attention layer에 사용할 attention head 수입니다.
  • t2u_decoder_layers (int, 선택 사항, 기본값 6) — Transformer 텍스트-단위 디코더의 숨겨진 레이어 수입니다.
  • t2u_decoder_ffn_dim (int, 선택 사항, 기본값 8192) — Transformer text-to-unit decoder의 “intermediate”(즉, feed-forward) 레이어의 차원.
  • t2u_decoder_attention_heads (int, 선택 사항, 기본값 16) — Transformer text-to-unit decoder의 각 attention layer에 사용할 attention head 수입니다.
  • t2u_max_position_embeddings (int, 선택 사항, 기본값 2048) — 이 모델의 text-to-unit 구성 요소가 사용될 수 있는 최대 시퀀스 길이입니다. 혹시 모를 상황에 대비하여 일반적으로 큰 값(예: 512, 1024, 2048)으로 설정합니다.
  • sampling_rate (int, 선택 사항, 기본값 16000) — 오디오 파일을 디지털화할 때 사용할 샘플링 주파수입니다. 헤르츠(Hz) 단위로 표시됩니다.
  • upsample_initial_channel (int, 선택 사항, 기본값 512) — hifi-gan 업샘플링 네트워크로 입력되는 채널 수입니다. 보코더에만 적용됩니다.
  • upsample_rates (tuple[int] 또는 list[int], 선택 사항, 기본값 [5, 4, 4, 2, 2]) — vocoder 업샘플링 네트워크의 각 1D 합성곱 계층의 스트라이드를 정의하는 정수 튜플입니다. upsample_rates의 길이는 합성곱 계층의 수를 정의하며 upsample_kernel_sizes의 길이와 일치해야 합니다. vocoder에만 적용됩니다.
  • upsample_kernel_sizes (tuple[int] 또는 list[int], 선택 사항, 기본값 [11, 8, 8, 4, 4]) — vocoder 업샘플링 네트워크의 각 1D 합성곱 계층의 커널 크기를 정의하는 정수 튜플입니다. upsample_kernel_sizes의 길이는 합성곱 계층의 수를 정의하며, upsample_rates의 길이와 일치해야 합니다. vocoder에만 적용됩니다.
  • resblock_kernel_sizes (tuple[int] 또는 list[int], 선택 사항, 기본값 [3, 7, 11]) — 멀티 리셉티브 필드 퓨전(MRF) 모듈에서 보코더의 1D 합성곱 계층 커널 크기를 정의하는 정수 튜플입니다. 보코더에만 적용됩니다.
  • resblock_dilation_sizes (tuple[tuple[int]] 또는 list[list[int]], 선택 사항, 기본값 [[1, 3, 5], [1, 3, 5], [1, 3, 5]]) — 멀티 리셉티브 필드 퓨전(MRF) 모듈의 보코더 dilated 1D convolutional layer의 dilation rate를 정의하는 정수의 중첩 tuple입니다. 보코더에만 적용됩니다.
  • leaky_relu_slope (float, 선택 사항, 기본값 0.1) — vocoder에서 leaky ReLU 활성화 함수에 사용되는 음의 기울기의 각도입니다. vocoder에만 적용됩니다.
  • unit_hifi_gan_vocab_size (int, 선택 사항, 기본값 10000) — SeamlessM4T 보코더의 어휘 크기입니다. ~SeamlessM4TModel, ~SeamlessM4TForSpeechToSpeech 또는 ~SeamlessM4TForTextToSpeech의 보코더를 호출할 때 전달하는 inputs_ids로 표현할 수 있는 서로 다른 유닛 토큰의 수를 정의합니다.
  • unit_embed_dim (int, 선택 사항, 기본값 1280) — hifi-gan 보코더에 전달되는 입력 id의 투영 차원입니다. 보코더에만 적용됩니다.
  • lang_embed_dim (int, 선택 사항, 기본값 256) — hifi-gan 보코더에 전달되는 대상 언어의 투영 차원입니다. 보코더에만 적용됩니다.
  • spkr_embed_dim (int, 선택 사항, 기본값 256) — hifi-gan 보코더에 전달되는 스피커 ID의 투영 차원입니다. 보코더에만 적용됩니다.
  • vocoder_num_langs (int, 선택 사항, 기본값 36) — vocoder가 지원하는 언어의 수입니다. t2u_num_langs와 다를 수 있습니다.
  • vocoder_num_spkrs (int, 선택 사항, 기본값 200) — vocoder가 지원하는 화자 수입니다.
  • variance_predictor_kernel_size (int, 선택 사항, 기본값 3) — Duration predictor의 kernel size입니다. vocoder에만 적용됩니다.
  • var_pred_dropout (float, 선택 사항, 기본값 0.5) — 길이 예측기의 dropout 확률입니다. vocoder에만 적용됩니다.
  • vocoder_offset (int, 선택 사항, 기본값 4) — 심볼 토큰을 고려하여 유닛 토큰 ID를 이 값만큼 오프셋합니다. vocoder에만 적용됩니다.
  • tie_word_embeddings (bool, 선택, 기본값 True) — 모델의 tied_weights_keys 매핑에 따라 가중치 임베딩을 묶을지 여부.

이것은 SeamlessM4TModel의 구성을 저장하기 위한 구성 클래스입니다. 지정된 인자에 따라 Seamless M4T 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 구성을 인스턴스화하면 facebook/hf-seamless-m4t-medium의 구성과 유사한 구성이 생성됩니다.

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

>>> from transformers import SeamlessM4TModel, SeamlessM4TConfig

>>> # Initializing a SeamlessM4T "facebook/hf-seamless-m4t-medium" style configuration
>>> configuration = SeamlessM4TConfig()

>>> # Initializing a model from the "facebook/hf-seamless-m4t-medium" style configuration
>>> model = SeamlessM4TModel(configuration)

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

SeamlessM4TTokenizer

클래스 transformers.SeamlessM4TTokenizer

< >

( vocab: str | dict[str, int] | None = Nonemerges: str | list[str] | None = Nonebos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'src_lang = 'eng'tgt_lang = 'fra'additional_special_tokens = Nonekeep_accents = Nonevocab_file = None**kwargs )

매개변수

  • vocab (list 또는 dict, 선택) — (token, score) 튜플의 목록 또는 토큰을 인덱스로 매핑하는 dict입니다. 제공되지 않으면 기본 vocab을 사용합니다.
  • merges (str 또는 list, 선택 사항) — BPE 모델용 병합 규칙 목록입니다. 제공되지 않으면 빈 목록을 사용합니다.
  • bos_token (str, 선택 사항, 기본값은 "<s>") — 사전 학습 시 사용된 시퀀스 시작 토큰입니다. 시퀀스 분류기 토큰으로 사용할 수 있습니다.

    특수 토큰을 사용하여 시퀀스를 구성할 때, 시퀀스의 시작에 사용되는 토큰은 이 토큰이 아닙니다. 사용되는 토큰은 cls_token입니다.

  • eos_token (str, 선택 사항, 기본값은 "</s>") — 시퀀스 종료 토큰입니다. 특수 토큰을 사용하여 시퀀스를 구성할 때, 시퀀스 종료에 사용되는 토큰은 이 토큰이 아닙니다. 시퀀스 종료에 사용되는 토큰은 sep_token입니다.

    특수 토큰을 사용하여 시퀀스를 구성할 때, 시퀀스 끝에는 이 토큰이 사용되지 않습니다. 사용되는 토큰은 sep_token입니다.

  • sep_token (str, 선택, 기본값 "</s>") — 여러 시퀀스로 시퀀스를 구성할 때 사용되는 구분 토큰입니다. 예를 들어 시퀀스 분류의 두 시퀀스나 질의응답의 텍스트와 질문 등에 사용됩니다. 특수 토큰으로 구성된 시퀀스의 마지막 토큰으로도 사용됩니다.
  • cls_token (str, 선택 사항, 기본값 "<s>") — 시퀀스 분류(토큰별 분류가 아닌 전체 시퀀스 분류)를 수행할 때 사용되는 분류기 토큰입니다. 특수 토큰을 사용하여 시퀀스를 구성할 경우 시퀀스의 첫 번째 토큰입니다.
  • unk_token (str, 선택 사항, 기본값 "<unk>") — 미지의 토큰입니다. 어휘에 없는 토큰은 ID로 변환할 수 없으므로, 대신 이 토큰으로 설정됩니다.
  • pad_token (str, 선택 사항, 기본값 "<pad>") — 패딩에 사용되는 토큰입니다. 예를 들어, 길이가 다른 시퀀스를 배치(batching)할 때 사용됩니다.
  • src_lang (str, 선택 사항, 기본값 "eng") — 번역에 사용할 원본 언어입니다.
  • tgt_lang (str, 선택 사항, 기본값 "fra") — 번역의 대상 언어로 사용할 언어입니다.
  • additional_special_tokens (str 또는 tokenizers.AddedToken의 tuple 또는 list, 선택 사항) — 추가 특수 토큰의 tuple 또는 list입니다.

HuggingFace의 tokenizers 라이브러리를 기반으로 하는 SeamlessM4T 토크나이저를 생성합니다. BPE를 기반으로 합니다.

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

토큰화 방법은 소스 언어 문서의 경우 <language code> <tokens> <eos>, 대상 언어 문서의 경우 <eos> <language code> <tokens> <eos>입니다.

예:

>>> from transformers import SeamlessM4TTokenizer

>>> tokenizer = SeamlessM4TTokenizer.from_pretrained(
...     "facebook/hf-seamless-m4t-medium", src_lang="eng", tgt_lang="fra"
... )
>>> example_english_phrase = " UN Chief Says There Is No Military Solution in Syria"
>>> expected_translation_french = "Le chef de l'ONU affirme qu'il n'y a pas de solution militaire en Syrie."
>>> inputs = tokenizer(example_english_phrase, text_target=expected_translation_french, return_tensors="pt")

__call__

< >

( text: str | list[str] | list[list[str]] | None = Nonetext_pair: str | list[str] | list[list[str]] | None = Nonetext_target: str | list[str] | list[list[str]] | None = Nonetext_pair_target: str | list[str] | list[list[str]] | None = Nonepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsepad_to_multiple_of: int | None = Nonesrc_lang: str | None = Nonetgt_lang: str | None = None**kwargs )

매개변수

  • 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를 설정해야 합니다(시퀀스 배치와의 모호성을 제거하기 위해).
  • padding (bool, str 또는 PaddingStrategy, 선택 사항, 기본값은 False) — 모델의 패딩 방향과 패딩 인덱스에 따라 반환된 시퀀스에 적용할 패딩 전략을 다음 중 선택합니다:
    • True 또는 'longest': 배치 내 가장 긴 시퀀스 길이에 맞게 패딩을 수행합니다(단일 시퀀스만 제공된 경우 패딩을 하지 않음).
    • 'max_length': max_length 인수로 지정된 최대 길이로 패딩하거나, 해당 인수가 제공되지 않으면 모델이 허용하는 최대 입력 길이로 패딩합니다.
    • False 또는 'do_not_pad' (기본값): 패딩을 하지 않습니다(즉, 서로 다른 길이의 시퀀스로 구성된 배치로 출력할 수 있습니다).
  • pad_to_multiple_of (int, 선택 사항, 기본값은 None) — 값이 설정되면 시퀀스를 해당 값의 배수로 패딩합니다.

    이 기능은 컴퓨트 캐피빌리티가 >= 7.5(Volta)인 NVIDIA 하드웨어에서 Tensor Cores 사용을 활성화하는 데 특히 유용합니다.

  • src_lang (str, 선택) — 원본 언어를 나타내는 문자열입니다. 지정하지 않으면 마지막에 지정된 src_lang(초기화 시 또는 이 tokenizer를 호출할 때)이 사용됩니다.
  • tgt_lang (str, 선택 사항) — 대상 언어를 나타내는 문자열입니다. 지정하지 않으면 마지막에 지정된 tgt_lang(초기화 시 또는 이 tokenizer를 호출할 때)이 사용됩니다.
  • kwargs (선택) — TokenizersBackend.call()에 전달될 나머지 키워드 인자 딕셔너리.

get_special_tokens_mask

< >

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

매개변수

  • token_ids_0 — (이미 포맷된) 시퀀스의 ID 목록.
  • token_ids_1 — already_has_special_tokens=True인 경우 사용되지 않습니다. 이 경우 None이어야 합니다.
  • already_has_special_tokens — 시퀀스가 이미 특수 토큰으로 포맷되어 있는지 여부.

반환값

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

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

…

빠른 토크나이저의 경우, 데이터 콜레이터는 이미 포맷된 시퀀스에 대한 마스크를 생성하기 위해 already_has_special_tokens=True를 전달하여 이 함수를 호출합니다. 이 경우 all_special_ids에 대한 멤버십을 확인하여 마스크를 계산합니다.

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None )

SeamlessM4TFeatureExtractor

class transformers.SeamlessM4TFeatureExtractor

< >

( feature_size = 80sampling_rate = 16000num_mel_bins = 80padding_value = 0.0stride = 2**kwargs )

매개변수

  • feature_size (int, 선택 사항, 기본값 80) — 추출된 특징의 차원입니다.
  • sampling_rate (int, 선택 사항, 기본값 16000) — 오디오 파일을 디지털화할 때 사용할 샘플링 주파수(Hz).
  • num_mel_bins (int, 선택 사항, 기본값 80) — Mel 주파수 빈의 수입니다.
  • padding_value (float, 선택 사항, 기본값 0.0) — 패딩 벡터를 채우는 데 사용되는 값입니다.
  • stride (int, 선택 사항, 기본값 2) — (batch_size,num_frames,num_mel_bins) 형태의 오디오를 (batch_size,num_frames//stride,num_mel_bins*stride) 형태로 재구성할 때 사용되는 스트라이드입니다.

SeamlessM4T feature extractor를 생성합니다.

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

이 클래스는 원시 음성에서 멜 필터 뱅크(mel-filter bank) 특징을 추출합니다.

__call__

< >

( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]padding: bool | str | transformers.utils.generic.PaddingStrategy = Truepad_to_multiple_of: int | None = 2max_length: int | None = Nonetruncation: bool = Falsereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonesampling_rate: int | None = Nonereturn_attention_mask: bool | None = Nonedo_normalize_per_mel_bins: bool | None = True**kwargs )

매개변수

  • raw_speech (np.ndarray, torch.Tensor, list[float], list[np.ndarray], list[torch.Tensor], —
  • list[list[float]], list[list[list[float]]]) — 패딩할 시퀀스 또는 시퀀스 배치입니다. 각 시퀀스는 numpy 배열, torch 텐서, float 값의 리스트, numpy 배열의 리스트, torch 텐서의 리스트, float 값의 리스트의 리스트, 또는 float 값의 리스트의 리스트의 리스트일 수 있습니다. raw_speech가 1차원 np.ndarray, torch.Tensor 또는 list[float]인 경우, raw_speech는 단일 채널, 단일 샘플 사운드로 간주됩니다. 그 외 모든 경우, raw_speech의 첫 번째 차원은 np.ndarray, torch.Tensor 또는 list[...]에서든 배치 내 샘플 수를 나타내며, 채널 수 (즉, 모노 또는 스테레오 특성)은 나머지 차원에서 유도됩니다 (1D -> 단일 채널 웨이브폼 배치; 2D-> 스테레오 채널 웨이브폼 배치).
  • padding (bool, str 또는 PaddingStrategy, 선택 사항, 기본값은 True) — 모델의 패딩 방향과 패딩 인덱스에 따라 반환된 시퀀스에 적용할 패딩 전략을 다음 중 선택합니다:
    • True 또는 'longest': 배치 내 가장 긴 시퀀스 길이에 맞게 패딩을 수행합니다(단일 시퀀스만 제공된 경우 패딩을 하지 않음).
    • 'max_length': max_length 인수로 지정된 최대 길이로 패딩하거나, 해당 인수가 제공되지 않으면 모델이 허용하는 최대 입력 길이로 패딩합니다.
    • False 또는 'do_not_pad' (기본값): 패딩을 하지 않습니다(즉, 서로 다른 길이의 시퀀스로 구성된 배치로 출력할 수 있습니다).
  • pad_to_multiple_of (int, 선택 사항, 기본값은 2) — 설정된 경우, 시퀀스를 제공된 값의 배수로 패딩합니다.

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

  • max_length (int, 선택 사항) — 반환되는 목록의 최대 길이 및 선택적으로 패딩 길이(위 참조).
  • truncation (bool) — 입력 시퀀스가 max_length보다 길 경우 max_length로 잘라내는 truncation을 활성화합니다.
  • return_attention_mask (bool, 선택 사항) — attention mask를 반환할지 여부. 기본값을 그대로 두면 해당 feature_extractor의 기본 설정에 따라 attention mask를 반환합니다.

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

    SeamlessM4T 모델의 경우, 미묘한 버그를 방지하기 위해 배치 추론 시 attention_mask를 항상 전달해야 합니다.

  • return_tensors (str 또는 TensorType, 선택 사항) — 설정된 경우, Python 정수 목록 대신 텐서를 반환합니다. 허용되는 값은 다음과 같습니다:
    • 'pt': PyTorch torch.Tensor 객체를 반환합니다.
    • 'np': Numpy np.ndarray 객체를 반환합니다.
  • sampling_rate (int, 선택 사항) — raw_speech 입력이 샘플링된 샘플링 레이트입니다. 조용한 오류를 방지하려면 forward 호출 시 sampling_rate를 전달하는 것이 강력히 권장됩니다.
  • do_normalize_per_mel_bins (bool, 선택 사항, 기본값 True) — mel 채널별로 입력을 평균 0, 분산 1로 정규화할지 여부.
  • kwargs (선택) — 토크나이저 또는 feature extractor에 전달될 나머지 keyword argument 사전입니다.

하나 이상의 시퀀스를 특징화(featurize)하고 모델에 맞게 준비하는 주요 메서드입니다.

SeamlessM4TProcessor

class transformers.SeamlessM4TProcessor

< >

( feature_extractortokenizer )

매개변수

  • feature_extractor (SeamlessM4TFeatureExtractor) — feature extractor는 필수 입력입니다.
  • tokenizer (SeamlessM4TTokenizer) — 토크나이저는 필수 입력값입니다.

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

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

__call__

< >

( text: str | list[str] | list[list[str]] | None = Noneaudio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = None**kwargs: *<class 'transformers.processing_utils.ProcessingKwargs'> ) → BatchEncoding

매개변수

  • text (Union[str, list[str], list[list[str]]], 선택 사항) — 인코딩할 시퀀스 또는 시퀀스 배치입니다. 각 시퀀스는 문자열 또는 문자열 목록(사전 토큰화된 문자열)일 수 있습니다. 사전 토큰화된 입력을 전달하는 경우, 배치 입력과의 혼동을 피하기 위해 is_split_into_words=True를 설정하세요.
  • audio (Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]], 선택 사항) — 준비할 오디오 또는 오디오 배치입니다. 각 오디오는 NumPy 배열 또는 PyTorch 텐서일 수 있습니다. NumPy 배열/PyTorch 텐서의 경우, 각 오디오의 shape은 (C, T)여야 하며, 여기서 C는 채널 수, T는 오디오의 샘플 길이입니다.
  • return_mm_token_type_ids (bool, kwargs) — 멀티모달 플레이스홀더 토큰의 위치를 나타내는 멀티모달 토큰 타입 ID를 반환할지 여부입니다.
  • return_text_replacement_offsets (bool, kwargs) — 각 멀티모달 플레이스홀더와 그 대체 문자열의 문자 오프셋을 반환할지 여부입니다.
  • return_tensors (str 또는 TensorType, 선택 사항) — 설정된 경우, 특정 프레임워크의 텐서를 반환합니다. 허용되는 값은 다음과 같습니다:
    • 'pt': PyTorch torch.Tensor 객체를 반환합니다.
    • 'np': NumPy np.ndarray 객체를 반환합니다.
  • **kwargs (ProcessingKwargs, 선택) — 각 모달리티(텍스트, 이미지, 비디오, 오디오)에 대한 추가 처리 옵션입니다. 모델별 매개변수는 위에 나열되어 있으며, 지원되는 인수의 전체 목록은 TypedDict 클래스를 참조하세요.

반환값

BatchEncoding

다음 필드를 가진 BatchEncoding:

  • input_ids — 모델에 입력할 토큰 ID 목록. text가 None이 아닌 경우 반환됩니다.
  • attention_mask — 모델이 어떤 토큰에 주의를 기울여야 하는지 지정하는 인덱스 목록 (return_attention_mask=True인 경우 또는 self.model_input_names에 “attention_mask”가 포함되어 있고 text가 None이 아닌 경우).
  • input_features — 모델에 입력할 오디오 입력 특징. audios가 None이 아닐 때 반환됩니다.

SeamlessM4TCodeHifiGan

class transformers.SeamlessM4TCodeHifiGan

< >

( config: SeamlessM4TConfig )

매개변수

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

이 저장소에 설명된 HiFi-GAN 보코더를 코드로 구현합니다.

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

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

forward

< >

( input_ids: LongTensorspkr_id: Tensorlang_id: Tensor**kwargs )

매개변수

  • input_ids (torch.LongTensor 형상 (batch_size, sequence_length)) — 어휘 사전에서 입력 시퀀스 토큰의 인덱스.

    SeamlessM4TTextToUnitForConditionalGeneration를 사용하여 인덱스를 얻을 수 있습니다. 입력 ID란 무엇인가요?

  • spkr_id (int, 선택) — 음성 합성에 사용되는 화자의 ID입니다. config.vocoder_num_spkrs보다 작아야 합니다.
  • tgt_lang (str, 선택 사항) — 번역의 대상 언어로 사용할 언어 ID입니다.

SeamlessM4THifiGan

클래스 transformers.SeamlessM4THifiGan

< >

( config: SeamlessM4TConfig )

forward

< >

( inputs_embeds: Tensor ) → torch.Tensor

매개변수

  • spectrogram (torch.Tensor) — 로그 멜 스펙트로그램을 포함하는 텐서. 배치 형태일 경우 (batch_size, sequence_length, model_in_dim) 형태를, 배치되지 않은 형태일 경우 (sequence_length, model_in_dim) 형태를 가질 수 있습니다. model_in_dim은 config.unit_embed_dim, config.lang_embed_dim, config.spkr_embed_dim의 합입니다.

반환값

torch.Tensor

음성 웨이브포름을 포함하는 Tensor입니다. 입력 스펙트로그램이 배치된 경우, 형태는 (batch_size, num_frames,)입니다. 배치되지 않은 경우, 형태는 (num_frames,)입니다.

log-mel spectrogram을 음성 waveform으로 변환합니다. log-mel spectrogram의 batch를 전달하면 음성 waveform의 batch가 반환됩니다. 단일, 비-batch log-mel spectrogram을 전달하면 단일, 비-batch 음성 waveform이 반환됩니다.

SeamlessM4TTextToUnitModel

class transformers.SeamlessM4TTextToUnitModel

< >

( config: SeamlessM4TConfigembed_tokens_decoder: typing.Optional[torch.nn.Embedding] = None )

매개변수

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

Transformer 기반의 텍스트-단위 인코더-디코더입니다. 인코더는 임베딩이 없는 SeamlessM4TEncoder이고, 디코더는 SeamlessM4TDecoder입니다.

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqModelOutput 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

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

  • decoder_input_ids (torch.LongTensor 형상 (batch_size, target_sequence_length), 선택 사항) — 어휘에서 디코더 입력 시퀀스 토큰의 인덱스입니다. AutoTokenizer를 사용하여 인덱스를 가져올 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()을 참조하세요. 디코더 입력 ID란 무엇인가요?

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

    디코더 입력 ID란 무엇인가요?

  • decoder_attention_mask (torch.LongTensor, shape (batch_size, target_sequence_length), 선택 사항) — 특정 토큰 인덱스에 대한 attention을 수행하지 않도록 하는 mask입니다. 기본적으로 causal mask를 사용하여 모델이 미래를 예측할 때 이전 입력만 참조할 수 있도록 합니다.
  • encoder_outputs (tuple[tuple[torch.Tensor]], 선택 사항) — (last_hidden_state, 선택 사항: hidden_states, 선택 사항: attentions)으로 구성된 Tuple입니다. last_hidden_state의 shape은 (batch_size, sequence_length, hidden_size), 선택 사항)이며, 인코더의 마지막 레이어 출력에서 생성된 hidden-states의 시퀀스입니다. 디코더의 cross-attention에 사용됩니다.
  • 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 인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다.
  • decoder_inputs_embeds (torch.Tensor 형상 (batch_size, target_sequence_length, hidden_size), 선택 사항) — 선택적으로, decoder_input_ids 대신에 임베딩된 표현을 직접 전달할 수 있습니다. past_key_values 이 사용되면, 선택적으로 마지막 decoder_inputs_embeds 만 입력하면 됩니다(참고: past_key_values). 이는 decoder_input_ids 인덱스를 관련 벡터로 변환하는 방식을 모델의 내부 임베딩 조회 행렬보다 더 세밀하게 제어하려는 경우에 유용합니다.

    decoder_input_ids와 decoder_inputs_embeds가 모두 설정되지 않은 경우, decoder_inputs_embeds는 inputs_embeds의 값을 가져옵니다.

  • use_cache (bool, 선택 사항) — True로 설정하면 past_key_values 키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다( past_key_values 참조).

반환값

Seq2SeqModelOutput 또는 tuple(torch.Tensor)

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

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

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

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

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

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

    순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록과 크로스 어텐션 블록의 key 및 value)를 포함합니다(입력 past_key_values 참조).

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

    각 레이어 출력의 decoder hidden-states와 선택적인 초기 embedding 출력

  • decoder_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 이후의 decoder의 attention 가중치입니다.

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

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

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

  • encoder_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와 선택적인 초기 임베딩 출력.

  • encoder_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 가중치입니다.

SeamlessM4TTextToUnitForConditionalGeneration

class transformers.SeamlessM4TTextToUnitForConditionalGeneration

< >

( config: SeamlessM4TConfigembed_tokens_decoder: typing.Optional[torch.nn.Embedding] = None )

매개변수

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

언어 모델 헤드를 갖춘 Transformer 텍스트-단위 인코더-디코더입니다. 기본 인코더-디코더 모델은 SeamlessM4TTextToUnit입니다.

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput 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

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

  • decoder_input_ids (torch.LongTensor shape (batch_size, target_sequence_length), 선택 사항) — 어휘(decoder input sequence) 토큰의 인덱스입니다. 인덱스는 AutoTokenizer를 사용하여 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()을 참조하세요. decoder input ID란 무엇인가요? Bart는 decoder_input_ids 생성의 시작 토큰으로 eos_token_id를 사용합니다. past_key_values를 사용하는 경우, 선택적으로 마지막 decoder_input_ids만 입력하면 됩니다(past_key_values 참조). 번역 및 요약 학습의 경우 decoder_input_ids를 제공해야 합니다. decoder_input_ids가 제공되지 않으면, 해당 논문에 따라 노이즈 제거 사전 학습을 위해 input_ids를 오른쪽으로 이동시켜 이 텐서를 생성합니다.

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

    디코더 입력 ID란 무엇인가요?

    Bart는 decoder_input_ids 생성의 시작 토큰으로 eos_token_id를 사용합니다. past_key_values를 사용하는 경우, 선택적으로 마지막 decoder_input_ids만 입력하면 됩니다(past_key_values 참조).

    번역 및 요약 학습을 위해 decoder_input_ids를 제공해야 합니다. decoder_input_ids가 제공되지 않으면, 해당 논문에 따라 노이즈 제거 사전 학습을 위해 input_ids를 오른쪽으로 이동시켜 이 텐서를 생성합니다.

  • decoder_attention_mask (torch.LongTensor 다음 형태의 (batch_size, target_sequence_length), 선택 사항) — 기본 동작: decoder_input_ids. 의 pad 토큰을 무시하는 텐서를 생성합니다. 기본값으로 Causal mask도 사용됩니다. 패딩 동작을 변경하려면 modeling_bart._prepare_decoder_attention_mask를 읽고 필요에 맞게 수정해야 합니다. 기본 전략에 대한 자세한 내용은 논문에서 다이어그램 1을 참고하세요.

    패딩 동작을 변경하려면 modeling_bart._prepare_decoder_attention_mask를 읽고 필요에 맞게 수정해야 합니다. 기본 전략에 대한 자세한 정보는 논문의 다이어그램 1을 참고하세요.

  • encoder_outputs (tuple[tuple[torch.Tensor]], 선택 사항) — (last_hidden_state, 선택 사항: hidden_states, 선택 사항: attentions)으로 구성된 Tuple입니다. last_hidden_state의 shape은 (batch_size, sequence_length, hidden_size), 선택 사항)이며, 인코더의 마지막 레이어 출력에서 생성된 hidden-states의 시퀀스입니다. 디코더의 cross-attention에 사용됩니다.
  • 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 형상이(batch_size, sequence_length, hidden_size), 선택 사항) — 선택적으로, input_ids 대신 임베딩된 표현을 직접 전달할 수 있습니다. 이는 input_ids 인덱스를 관련 벡터로 변환하는 방식에 대해 모델 내부 임베딩 조회 행렬보다 더 많은 제어가 필요할 때 유용합니다.

    labels (torch.LongTensor, shape (batch_size, sequence_length), 선택 사항): 마스크 언어 모델링 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는 [-100, 0, ..., config.vocab_size] 범위여야 합니다(input_ids docstring 참조). 인덱스가 -100으로 설정된 토큰은 무시(마스크)되며, 손실은 라벨이 [0, ..., config.vocab_size] 범위에 있는 토큰에 대해서만 계산됩니다.

  • decoder_inputs_embeds (torch.Tensor 형상 (batch_size, target_sequence_length, hidden_size), 선택 사항) — 선택적으로, decoder_input_ids 대신에 임베딩된 표현을 직접 전달할 수 있습니다. past_key_values 이 사용되면, 선택적으로 마지막 decoder_inputs_embeds 만 입력하면 됩니다(참고: past_key_values). 이는 decoder_input_ids 인덱스를 관련 벡터로 변환하는 방식을 모델의 내부 임베딩 조회 행렬보다 더 세밀하게 제어하려는 경우에 유용합니다.

    decoder_input_ids와 decoder_inputs_embeds가 모두 설정되지 않은 경우, decoder_inputs_embeds는 inputs_embeds의 값을 가져옵니다.

  • labels (torch.LongTensor, shape (batch_size, sequence_length), 선택 사항) — 마스크 언어 모델링 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는 [0, ..., config.vocab_size] 범위 내의 값이거나 -100이어야 합니다(input_ids docstring 참조). 인덱스가 -100으로 설정된 토큰은 무시(마스크)되며, 손실은 [0, ..., config.vocab_size] 범위의 라벨을 가진 토큰에 대해서만 계산됩니다.
  • use_cache (bool, 선택 사항) — True로 설정하면 past_key_values 키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다( past_key_values 참조).

반환값

Seq2SeqLMOutput 또는 tuple(torch.Tensor)

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

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

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

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

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

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

    순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록과 크로스 어텐션 블록의 key 및 value)를 포함합니다(입력 past_key_values 참조).

  • decoder_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와 초기 임베딩 출력을 더한 값.

  • decoder_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 이후의 decoder의 attention 가중치입니다.

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

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

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

  • encoder_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와 초기 임베딩 출력을 더한 값.

  • encoder_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 가중치입니다.

Update on GitHub