Transformers documentation

SeamlessM4T

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
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_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