Transformers documentation

Bark

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

이 모델은 2023-07-17에 Hugging Face Transformers에 기여되었습니다.

Bark

FlashAttention

개요

Bark는 Suno AI가 suno-ai/bark에서 제안한 transformer 기반 텍스트-음성 변환 모델입니다.

Bark는 4개의 주요 모델로 구성됩니다:

  • BarkSemanticModel(‘text’ 모델이라고도 함): 토큰화된 텍스트를 입력으로 받아 텍스트의 의미를 포착하는 의미론적 텍스트 토큰을 예측하는 인과적 자기회귀 transformer 모델입니다.
  • BarkCoarseModel(‘coarse acoustics’ 모델이라고도 함): BarkSemanticModel 모델의 결과를 입력으로 받는 인과적 자기회귀 transformer입니다. EnCodec에 필요한 첫 번째와 두 번째 오디오 코드북을 예측하는 것을 목표로 합니다.
  • BarkFineModel(‘fine acoustics’ 모델)은 이번에는 비인과적(non-causal) 오토인코더 트랜스포머로, 이전 코드북 임베딩의 합을 기반으로 마지막 코드북을 반복적으로 예측합니다.
  • EncodecModel을 통해 모든 codebook 채널을 예측한 후, Bark는 이를 사용하여 출력 오디오 배열을 디코딩합니다.

첫 세 모듈 각각이 조건부 화자 임베딩을 지원할 수 있으며, 이를 통해 미리 정의된 특정 목소리에 따라 출력 소리를 조건화할 수 있습니다.

이 모델은 Yoach Lacombe (ylacombe)와 Sanchit Gandhi (sanchit-gandhi)가 기여했습니다. 원본 코드는 여기에서 찾을 수 있습니다.

Bark 최적화

Bark는 몇 줄의 추가 코드만으로 최적화할 수 있으며, 이를 통해 메모리 사용량을 크게 줄이고 추론 속도를 높일 수 있습니다.

반정밀도 사용

모델을 반정밀로 로드하기만 하면 추론 속도를 높이고 메모리 사용량을 50%까지 줄일 수 있습니다.

from transformers import BarkModel


model = BarkModel.from_pretrained("suno/bark-small", device_map="auto")

CPU 오프로드 사용

위에서 언급했듯이 Bark는 4개의 서브 모델로 구성되어 있으며, 오디오 생성 과정에서 순차적으로 호출됩니다. 즉, 한 서브 모델이 사용 중일 때 나머지 서브 모델은 대기 상태에 있습니다.

CUDA GPU 또는 Intel XPU를 사용하는 경우, 유휴 상태의 서브모델을 디바이스에서 CPU로 오프로딩하면 메모리 사용량을 80%까지 줄이는 간단한 해결책이 있습니다. 이 작업은 CPU offloading이라고 합니다. 다음처럼 한 줄의 코드로 사용할 수 있습니다:

model.enable_cpu_offload()

이 기능을 사용하기 전에 🤗 Accelerate를 설치해야 합니다. 설치 방법은 다음과 같습니다.

Flash Attention 2 사용

Flash Attention 2는 이전 최적화 버전보다 훨씬 빠르고 최적화된 버전입니다.

설치

먼저 하드웨어가 Flash Attention 2와 호환되는지 확인하세요. 호환 하드웨어의 최신 목록은 공식 문서에서 확인할 수 있습니다. 다음으로, Flash Attention 2의 최신 버전을 설치하세요:

pip install -U flash-attn --no-build-isolation
사용

Flash Attention 2를 사용하여 모델을 로드하려면 from_pretrained()에 attn_implementation="flash_attention_2" 플래그를 전달할 수 있습니다. 오디오 품질에 거의 손실이 없으면서도 메모리 사용량이 크게 줄고 추론 속도가 빨라지므로, 모델을 반정밀도(예: torch.float16)로 로드합니다:

model = BarkModel.from_pretrained("suno/bark-small", attn_implementation="flash_attention_2", device_map="auto")
성능 비교

다음 다이어그램은 네이티브 어텐션 구현(최적화 없음)과 Flash Attention 2의 지연 시간을 보여줍니다. 모든 경우에서 PyTorch 2.1을 사용하여 40GB A100 GPU에서 400개의 의미론적 토큰을 생성합니다:

이를 이해하기 쉽게 설명하자면, NVIDIA A100에서 배치 크기가 16이고 400개의 의미론적 토큰을 생성할 때, 네이티브 모델 구현으로 문장을 하나씩 생성하는 것보다 처리량이 17배 높으면서도 2초 더 빠릅니다. 즉, 모든 샘플이 17배 더 빠르게 생성됩니다.

최적화 기법 결합

최적화 기법을 조합하여 CPU offload, half-precision, Flash Attention 2를 동시에 사용할 수 있습니다.

from transformers import BarkModel


# load in fp16 and use Flash Attention 2
model = BarkModel.from_pretrained("suno/bark-small", attn_implementation="flash_attention_2", device_map="auto")

# enable CPU offload
model.enable_cpu_offload()

추론 최적화 기법에 대해 자세히 알아보려면 여기를 참조하세요.

사용 팁

Suno는 여기에서 여러 언어의 음성 프리셋 라이브러리를 제공합니다. 이 프리셋들은 또한 허브의 여기 또는 여기에 업로드되어 있습니다.

from transformers import AutoProcessor, BarkModel


processor = AutoProcessor.from_pretrained("suno/bark")
model = BarkModel.from_pretrained("suno/bark", device_map="auto")

voice_preset = "v2/en_speaker_6"

inputs = processor("Hello, my dog is cute", voice_preset=voice_preset)

audio_array = model.generate(**inputs)
audio_array = audio_array.cpu().numpy().squeeze()

Bark는 음악, 배경 소음, 간단한 효과음 등 다양한 오디오를 포함하여 매우 사실적인 다국어 음성도 생성할 수 있습니다.

# Multilingual speech - simplified Chinese
inputs = processor("惊人的!我会说中文")

# Multilingual speech - French - let's use a voice_preset as well
inputs = processor("Incroyable! Je peux générer du son.", voice_preset="fr_speaker_5")

# Bark can also generate music. You can help it out by adding music notes around your lyrics.
inputs = processor("♪ Hello, my dog is cute ♪")

audio_array = model.generate(**inputs)
audio_array = audio_array.cpu().numpy().squeeze()

모델은 웃음, 한숨, 울음과 같은 비언어적 소통도 생성할 수 있습니다.

# Adding non-speech cues to the input text
inputs = processor("Hello uh [clears throat], my dog is cute [laughter]")

audio_array = model.generate(**inputs)
audio_array = audio_array.cpu().numpy().squeeze()

모델 설정에서 샘플 레이트를 가져오고 scipy 유틸리티를 사용하면 오디오를 저장할 수 있습니다.

from scipy.io.wavfile import write as write_wav


# save audio to disk, but first take the sample rate from the model config
sample_rate = model.generation_config.sample_rate
write_wav("bark_generation.wav", sample_rate, audio_array)

BarkConfig

클래스 transformers.BarkConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonesemantic_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonecoarse_acoustics_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonefine_acoustics_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonecodec_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneinitializer_range: float = 0.02 )

매개변수

  • semantic_config (BarkSemanticConfig, 선택) — 기저 의미론 서브모델의 구성입니다.
  • coarse_acoustics_config (BarkCoarseConfig, 선택) — 기저 coarse acoustics 서브모델의 설정입니다.
  • fine_acoustics_config (BarkFineConfig, 선택) — 기본 fine acoustics 서브모델의 설정입니다.
  • codec_config (AutoConfig, 선택 사항) — 기저 코덱 서브모델의 설정입니다.
  • initializer_range (float, 선택 사항, 기본값 0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다.

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

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

예:

>>> from transformers import (
...     BarkSemanticConfig,
...     BarkCoarseConfig,
...     BarkFineConfig,
...     BarkModel,
...     BarkConfig,
...     AutoConfig,
... )

>>> # Initializing Bark sub-modules configurations.
>>> semantic_config = BarkSemanticConfig()
>>> coarse_acoustics_config = BarkCoarseConfig()
>>> fine_acoustics_config = BarkFineConfig()
>>> codec_config = AutoConfig.from_pretrained("facebook/encodec_24khz")


>>> # Initializing a Bark module style configuration
>>> configuration = BarkConfig(
...     semantic_config, coarse_acoustics_config, fine_acoustics_config, codec_config
... )

>>> # Initializing a model (with random weights)
>>> model = BarkModel(configuration)

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

BarkProcessor

클래스 transformers.BarkProcessor

< >

( tokenizerspeaker_embeddings = None )

매개변수

  • tokenizer (BertTokenizer) — 토크나이저는 필수 입력값입니다.
  • speaker_embeddings (dict[dict[str]], 선택) — 선택 가능한 중첩된 스피커 임베딩 딕셔너리입니다. 첫 번째 레벨에는 음성 프리셋 이름(예: "en_speaker_4")이 포함됩니다. 두 번째 레벨에는 "semantic_prompt", "coarse_prompt" 및 "fine_prompt" 임베딩이 포함됩니다. 값은 해당 np.ndarray의 경로에 대응합니다. voice_preset_names 목록은 여기를 참조하세요.

BarkProcessor를 생성하여 토크나이저를 단일 프로세서로 래핑합니다.

BarkProcessor은 BertTokenizer의 모든 기능을 제공합니다. 자세한 내용은 ~BertTokenizer를 참고하세요.

__call__

< >

( text = Nonevoice_preset = Nonereturn_tensors = 'pt'max_length = 256add_special_tokens = Falsereturn_attention_mask = Truereturn_token_type_ids = False**kwargs ) → BatchEncoding

매개변수

  • text (`) -- The sequence or batch of sequences to be encoded. Each sequence can be a string or a list of strings (pretokenized string). If you pass a pretokenized input, set is_split_into_words=True` to avoid ambiguity with batched inputs.
  • voice_preset (str, dict[np.ndarray]) — 음성 프리셋, 즉 스피커 임베딩입니다. "en_speaker_1"과 같이 유효한 voice_preset 이름이거나, Bark의 각 서브모델에 대한 np.ndarray 임베딩의 사전일 수 있습니다. 또는 "semantic_prompt", "coarse_prompt", "fine_prompt" 키를 포함하는 로컬 .npz 단일 음성 프리셋의 유효한 파일 이름일 수도 있습니다.
  • return_tensors (`, defaults to pt`) — 설정된 경우, 특정 프레임워크의 텐서를 반환합니다. 허용되는 값은 다음과 같습니다:
    • 'pt': PyTorch torch.Tensor 객체를 반환합니다.
    • 'np': NumPy np.ndarray 객체를 반환합니다.
  • max_length (int, 기본값은 256) — truncation/padding 파라미터 중 하나가 사용할 최대 길이를 제어합니다.

    설정하지 않거나 None으로 설정하면, truncation/padding 파라미터 중 하나가 최대 길이를 요구할 경우 미리 정의된 모델 최대 길이를 사용합니다. 모델에 특정 최대 입력 길이가 없는 경우(XLNet 등) 최대 길이로 truncation/padding하는 기능이 비활성화됩니다.

  • add_special_tokens (bool, 기본값 False) — 시퀀스를 인코딩할 때 특수 토큰을 추가할지 여부입니다. 이는 입력 id에 자동으로 추가되는 토큰을 정의하는 PretrainedTokenizerBase.build_inputs_with_special_tokens 함수를 사용합니다. bos 또는 eos 토큰을 자동으로 추가하고 싶을 때 유용합니다.
  • return_attention_mask (bool, 기본값은 True) — attention mask를 반환할지 여부입니다. 기본값을 그대로 두면, return_outputs 속성에 의해 정의된 해당 tokenizer의 기본값에 따라 attention mask를 반환합니다.

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

  • return_token_type_ids (bool, 기본값은 False) — 토큰 타입 ID를 반환할지 여부입니다. 기본값을 그대로 두면, 해당 토크나이저의 기본값에 따라 토큰 타입 ID를 반환하며, 이는 return_outputs 속성으로 정의됩니다.

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

반환값

BatchEncoding

tokenizer의 출력을 포함하는 BatchEncoding 객체입니다. 음성 프리셋이 제공된 경우, 반환되는 객체에는 올바른 텐서 타입을 가진 음성 프리셋, 즉 BatchFeature를 포함하는 "history_prompt" 키가 포함됩니다.

from_pretrained

< >

( pretrained_processor_name_or_pathspeaker_embeddings_dict_path = 'speaker_embeddings_path.json'**kwargs )

매개변수

  • pretrained_model_name_or_path (str 또는 os.PathLike) — 다음 중 하나일 수 있습니다:
    • 문자열이며, huggingface.co의 모델 저장소에 호스팅된 사전 학습된 BarkProcessor의 model id입니다.
    • save_pretrained() 메서드를 사용하여 프로세서가 저장된 디렉터리의 경로, 예: ./my_model_directory/.
  • speaker_embeddings_dict_path (str, 선택 사항, 기본값 "speaker_embeddings_path.json") — pretrained_model_name_or_path에 있는 speaker_embeddings 사전이 포함된 .json 파일의 이름입니다. None인 경우 speaker_embeddings가 로드되지 않습니다.
  • **kwargs — ~tokenization_utils_base.PreTrainedTokenizer.from_pretrained에 함께 전달되는 추가 키워드 인자

pretrained 모델과 연관된 Bark 프로세서의 인스턴스를 생성합니다.

save_pretrained

< >

( save_directoryspeaker_embeddings_dict_path = 'speaker_embeddings_path.json'speaker_embeddings_directory = 'speaker_embeddings'push_to_hub: bool = False**kwargs )

매개변수

  • save_directory (str 또는 os.PathLike) — 토크나이저 파일과 스피커 임베딩이 저장될 디렉터리입니다(존재하지 않는 경우 생성됩니다).
  • speaker_embeddings_dict_path (str, 선택, 기본값 "speaker_embeddings_path.json") — 존재하는 경우 speaker_embeddings 중첩 경로 사전이 포함된 .json 파일의 이름이며, pretrained_model_name_or_path/speaker_embeddings_directory에 위치합니다.
  • speaker_embeddings_directory (str, 선택 사항, 기본값 "speaker_embeddings/") — speaker_embeddings 배열이 저장될 폴더의 이름입니다.
  • push_to_hub (bool, 선택 사항, 기본값 False) — 모델을 저장한 후 Hugging Face 모델 허브에 푸시할지 여부입니다. repo_id를 사용하여 푸시할 저장소를 지정할 수 있으며, 지정하지 않으면 네임스페이스 내 save_directory의 이름이 기본값으로 사용됩니다.
  • kwargs — push_to_hub() 메서드에 함께 전달되는 추가 키워드 인자.

이 프로세서(tokenizer…)의 속성을 지정된 디렉터리에 저장하여 from_pretrained() 메서드를 사용해 다시 로드할 수 있도록 합니다.

BarkModel

class transformers.BarkModel

< >

( config: BarkConfig )

매개변수

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

4개의 서브 모델로 구성된 텍스트-음성 변환 모델인 전체 Bark 모델:

  • BarkSemanticModel(‘text’ 모델이라고도 함): 토큰화된 텍스트를 입력으로 받아 텍스트의 의미를 포착하는 의미론적 텍스트 토큰을 예측하는 인과적 자기회귀 transformer 모델입니다.
  • BarkCoarseModel(‘coarse acoustics’ 모델이라고도 함) 역시 인과적 자기회귀 transformer로, 이전 모델의 결과를 입력으로 받아 encodec에 필요한 첫 번째와 두 번째 오디오 코드북을 회귀하는 것을 목표로 합니다.
  • BarkFineModel(‘fine acoustics’ 모델)은 이번에는 비인과적 오토인코더 트랜스포머로, 이전 코드북 임베딩의 합을 기반으로 마지막 코드북을 반복적으로 예측합니다.
  • EncodecModel을 통해 모든 codebook 채널을 예측한 후, Bark는 이를 사용하여 출력 오디오 배열을 디코딩합니다.

첫 세 모듈 각각은 미리 정의된 특정 음성으로 출력 소리를 조건부화하기 위해 조건부 화자 임베딩을 지원할 수 있습니다.

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

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

generate

< >

( input_ids: typing.Optional[torch.Tensor] = Nonehistory_prompt: dict[str, torch.Tensor] | None = Nonereturn_output_lengths: bool | None = None**kwargs ) → By default

매개변수

  • input_ids (Optional[torch.Tensor], shape (batch_size, seq_len), 선택 사항) — 입력 id입니다. 256개 토큰까지 잘립니다. 출력 오디오의 길이는 배치 내 가장 긴 생성 결과와 동일합니다.
  • history_prompt (Optional[dict[str,torch.Tensor]], 선택) — 선택 사항인 Bark 스피커 프롬프트입니다. 참고로 현재 이 모델은 배치당 스피커 프롬프트를 하나만 받습니다.
  • kwargs (선택 사항) — 나머지 키워드 인자 사전. 키워드 인자는 두 가지 유형이 있습니다:
    • 접두사가 없으면 각 서브 모델의 generate 메서드에 **kwargs로 입력됩니다.
    • semantic_, coarse_, fine_ 접두사가 붙은 경우, 각각 semantic, coarse, fine의 generate 메서드에 입력으로 사용됩니다. 접두사가 없는 키워드보다 우선순위가 높습니다.

    즉, 예를 들어 하나의 서브모델을 제외한 모든 서브모델에 대해 생성 전략을 지정할 수 있습니다.

  • return_output_lengths (bool, 선택 사항) — 파형 길이를 반환할지 여부입니다. 배치 처리 시 유용합니다.

반환값

기본적으로

  • audio_waveform (shape (batch_size, seq_len)인 torch.Tensor): 생성된 오디오 웨이브폼. return_output_lengths=True인 경우: 다음으로 구성된 튜플을 반환합니다:
  • audio_waveform (shape (batch_size, seq_len)의 torch.Tensor): 생성된 오디오 웨이브폼.
  • output_lengths (shape (batch_size)의 torch.Tensor): 배치 내 각 웨이브폼의 길이

입력 프롬프트와 추가 선택 사항인 Bark 스피커 프롬프트를 사용하여 오디오를 생성합니다.

예:

>>> from transformers import AutoProcessor, BarkModel

>>> processor = AutoProcessor.from_pretrained("suno/bark-small")
>>> model = BarkModel.from_pretrained("suno/bark-small")

>>> # To add a voice preset, you can pass `voice_preset` to `BarkProcessor.__call__(...)`
>>> voice_preset = "v2/en_speaker_6"

>>> inputs = processor("Hello, my dog is cute, I need him in my life", voice_preset=voice_preset)

>>> audio_array = model.generate(**inputs, semantic_max_new_tokens=100)
>>> audio_array = audio_array.cpu().numpy().squeeze()

enable_cpu_offload

< >

( accelerator_id: int | None = 0**kwargs )

매개변수

  • accelerator_id (int, 선택 사항, 기본값 0) — 서브 모델이 로드되고 오프로드될 accelerator id.

accelerate를 사용하여 모든 서브모델을 CPU로 오프로드하여 성능에 미치는 영향은 적으면서 메모리 사용량을 줄입니다. 이 메서드는 서브모델이 사용될 때 한 번에 하나의 서브모델 전체를 가속기로 이동하며, 해당 서브모델은 다음 서브모델이 실행될 때까지 가속기에 유지됩니다.

BarkSemanticModel

class transformers.BarkSemanticModel

< >

( config: BarkSubModelConfig )

매개변수

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

Bark semantic(또는 text) 모델입니다. coarse 모델과 동일한 아키텍처를 공유합니다. 언어 모델링 헤드가 위에 있는 GPT-2와 유사한 자기회귀(autoregressive) 모델입니다.

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

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

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → CausalLMOutputWithPast or tuple(torch.Tensor)

매개변수

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

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

    입력 ID란 무엇인가요?

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

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

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

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

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

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

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

    포지션 ID란 무엇인가요?

  • labels (torch.LongTensor, shape (batch_size, sequence_length), 선택 사항) — 마스크 언어 모델링 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는 [0, ..., config.vocab_size] 범위 내의 값이거나 -100이어야 합니다(input_ids docstring 참조). 인덱스가 -100으로 설정된 토큰은 무시(마스크)되며, 손실은 [0, ..., config.vocab_size] 범위의 라벨을 가진 토큰에 대해서만 계산됩니다.
  • inputs_embeds (torch.Tensor, shape (batch_size, sequence_length, hidden_size), 선택) — input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다 input_ids 인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다.
  • use_cache (bool, 선택 사항) — True로 설정하면 past_key_values 키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다( past_key_values 참조).
  • output_attentions (bool, 선택 사항) — 모든 attention 레이어의 attentions 텐서를 반환할지 여부. 자세한 내용은 반환 텐서 섹션의 attentions 항목을 참조하세요.
  • output_hidden_states (bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중 hidden_states 항목을 참고하세요.
  • return_dict (bool, 선택) — 일반 튜플 대신 ModelOutput를 반환할지 여부.

반환값

CausalLMOutputWithPast 또는 tuple(torch.Tensor)

torch.Tensor의 튜플 또는 CausalLMOutputWithPast (인수가 return_dict=False인 경우 또는 config.return_dict=False인 경우)로, 구성(BarkConfig)과 입력에 따라 다양한 요소를 포함합니다.

BarkCausalModel의 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 (Cache, 선택 사항, use_cache=True가 전달되었거나 config.use_cache=True인 경우 반환됨) — Cache 인스턴스입니다. 자세한 내용은 kv cache 가이드를 참고하세요.

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

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

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

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

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

BarkCoarseModel

class transformers.BarkCoarseModel

< >

( config: BarkSubModelConfig )

매개변수

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

Bark coarse acoustics 모델입니다. semantic(또는 text) 모델과 동일한 아키텍처를 공유합니다. 상단에 language modeling head가 있는 GPT-2와 유사한 autoregressive 모델입니다.

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

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

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → CausalLMOutputWithPast or tuple(torch.Tensor)

매개변수

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

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

    입력 ID란 무엇인가요?

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

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

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

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

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

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

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

    포지션 ID란 무엇인가요?

  • labels (torch.LongTensor, shape (batch_size, sequence_length), 선택 사항) — 마스크 언어 모델링 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는 [0, ..., config.vocab_size] 범위 내의 값이거나 -100이어야 합니다(input_ids docstring 참조). 인덱스가 -100으로 설정된 토큰은 무시(마스크)되며, 손실은 [0, ..., config.vocab_size] 범위의 라벨을 가진 토큰에 대해서만 계산됩니다.
  • inputs_embeds (torch.Tensor, shape (batch_size, sequence_length, hidden_size), 선택) — input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다 input_ids 인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다.
  • use_cache (bool, 선택 사항) — True로 설정하면 past_key_values 키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다( past_key_values 참조).
  • output_attentions (bool, 선택 사항) — 모든 attention 레이어의 attentions 텐서를 반환할지 여부. 자세한 내용은 반환 텐서 섹션의 attentions 항목을 참조하세요.
  • output_hidden_states (bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중 hidden_states 항목을 참고하세요.
  • return_dict (bool, 선택) — 일반 튜플 대신 ModelOutput를 반환할지 여부.

반환값

CausalLMOutputWithPast 또는 tuple(torch.Tensor)

torch.Tensor의 튜플 또는 CausalLMOutputWithPast (인수가 return_dict=False인 경우 또는 config.return_dict=False인 경우)로, 구성(BarkConfig)과 입력에 따라 다양한 요소를 포함합니다.

BarkCausalModel의 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 (Cache, 선택 사항, use_cache=True가 전달되었거나 config.use_cache=True인 경우 반환됨) — Cache 인스턴스입니다. 자세한 내용은 kv cache 가이드를 참고하세요.

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

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

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

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

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

BarkFineModel

클래스 transformers.BarkFineModel

< >

( config: BarkFineConfig )

매개변수

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

Bark fine acoustics 모델입니다. config.n_codes_total개의 임베딩 레이어와 언어 모델링 헤드를 가진 비인과적 GPT 유사 모델로, 각 코드북마다 하나의 헤드를 사용합니다.

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

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

forward

< >

( codebook_idx: intinput_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → MaskedLMOutput or tuple(torch.Tensor)

매개변수

  • codebook_idx (int) — 예측할 codebook의 인덱스입니다.
  • input_ids (torch.Tensor 의 shape (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

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

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

    포지션 ID란 무엇인가요?

  • labels (torch.LongTensor, shape (batch_size, sequence_length), 선택 사항) — 아직 구현되지 않았습니다.
  • inputs_embeds (torch.Tensor, shape (batch_size, sequence_length, hidden_size), 선택) — input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다 input_ids 인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다.
  • output_attentions (bool, 선택 사항) — 모든 attention 레이어의 attentions 텐서를 반환할지 여부. 자세한 내용은 반환 텐서 섹션의 attentions 항목을 참조하세요.
  • output_hidden_states (bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중 hidden_states 항목을 참고하세요.
  • return_dict (bool, 선택) — 일반 튜플 대신 ModelOutput를 반환할지 여부.

반환값

MaskedLMOutput 또는 tuple(torch.Tensor)

torch.Tensor의 튜플 또는 MaskedLMOutput (인수가 return_dict=False인 경우 또는 config.return_dict=False인 경우)로, 구성(BarkConfig)과 입력에 따라 다양한 요소를 포함합니다.

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

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

  • loss (torch.Tensor, shape (1,), 선택 사항, labels이 제공될 때 반환됨) — Masked language modeling (MLM) loss.

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

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

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

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

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

BarkCausalModel

클래스 transformers.BarkCausalModel

< >

( config: BarkSubModelConfig )

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → CausalLMOutputWithPast or tuple(torch.Tensor)

매개변수

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

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

    입력 ID란 무엇인가요?

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

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

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

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

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

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

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

    포지션 ID란 무엇인가요?

  • labels (torch.LongTensor, shape (batch_size, sequence_length), 선택 사항) — 마스크 언어 모델링 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는 [0, ..., config.vocab_size] 범위 내의 값이거나 -100이어야 합니다(input_ids docstring 참조). 인덱스가 -100으로 설정된 토큰은 무시(마스크)되며, 손실은 [0, ..., config.vocab_size] 범위의 라벨을 가진 토큰에 대해서만 계산됩니다.
  • inputs_embeds (torch.Tensor, shape (batch_size, sequence_length, hidden_size), 선택) — input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다 input_ids 인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다.
  • use_cache (bool, 선택 사항) — True로 설정하면 past_key_values 키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다( past_key_values 참조).
  • output_attentions (bool, 선택 사항) — 모든 attention 레이어의 attentions 텐서를 반환할지 여부. 자세한 내용은 반환 텐서 섹션의 attentions 항목을 참조하세요.
  • output_hidden_states (bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중 hidden_states 항목을 참고하세요.
  • return_dict (bool, 선택) — 일반 튜플 대신 ModelOutput를 반환할지 여부.

반환값

CausalLMOutputWithPast 또는 tuple(torch.Tensor)

torch.Tensor의 튜플 또는 CausalLMOutputWithPast (인수가 return_dict=False인 경우 또는 config.return_dict=False인 경우)로, 구성(BarkConfig)과 입력에 따라 다양한 요소를 포함합니다.

BarkCausalModel의 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 (Cache, 선택 사항, use_cache=True가 전달되었거나 config.use_cache=True인 경우 반환됨) — Cache 인스턴스입니다. 자세한 내용은 kv cache 가이드를 참고하세요.

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

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

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

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

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

BarkCoarseConfig

class transformers.BarkCoarseConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneblock_size: int = 1024input_vocab_size: int = 10048output_vocab_size: int = 10048num_layers: int = 12num_heads: int = 12hidden_size: int = 768dropout: float | int = 0.0bias: bool = Trueinitializer_range: float = 0.02use_cache: bool = True )

매개변수

  • block_size (int, 선택 사항, 기본값 1024) — 이 모델이 사용될 수 있는 최대 시퀀스 길이입니다. 혹시 모를 상황에 대비하여 일반적으로 큰 값(예: 512, 1024, 2048)으로 설정합니다.
  • input_vocab_size (int, 선택 사항, 기본값 10_048) — Bark 서브모델의 어휘 크기입니다. {model}을 호출할 때 전달하는 inputs_ids로 표현할 수 있는 서로 다른 토큰의 수를 정의합니다. 기본값은 10_048이지만, 선택한 서브모델에 따라 신중하게 결정해야 합니다.
  • output_vocab_size (int, 선택 사항, 기본값 10_048) — Bark 서브모델의 출력 어휘 크기입니다. {model}을(를) 전달하여 forward를 수행할 때 output_ids로 표현할 수 있는 서로 다른 토큰의 수를 정의합니다. 기본값은 10_048이지만, 선택한 서브모델에 따라 신중하게 결정해야 합니다.
  • num_layers (int, 선택 사항, 기본값 12) — Transformer decoder의 hidden layer 수입니다.
  • num_heads (int, 선택 사항, 기본값 12) — Transformer decoder의 각 attention layer에 사용할 attention head의 수입니다.
  • hidden_size (int, 선택 사항, 기본값 768) — 숨겨진 표현의 차원입니다.
  • dropout (Union[float, int], 선택 사항, 기본값 0.0) — 모든 dropout 레이어에 적용할 비율입니다.
  • bias (bool, 선택 사항, 기본값 True) — 선형 레이어와 레이어 노름 레이어에서 bias를 사용할지 여부
  • initializer_range (float, 선택 사항, 기본값 0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다.
  • use_cache (bool, 선택 사항, 기본값 True) — 모델이 마지막 key/values attention을 반환할지 여부입니다(모든 모델에서 사용되지 않음). config.is_decoder=True인 경우 또는 모델이 decoder-only 생성 모델인 경우에만 관련이 있습니다.

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

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

예:

>>> from transformers import BarkCoarseConfig, BarkCoarseModel

>>> # Initializing a Bark sub-module style configuration
>>> configuration = BarkCoarseConfig()

>>> # Initializing a model (with random weights) from the suno/bark style configuration
>>> model = BarkCoarseModel(configuration)

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

BarkFineConfig

클래스 transformers.BarkFineConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneblock_size: int = 1024input_vocab_size: int = 10048output_vocab_size: int = 10048num_layers: int = 12num_heads: int = 12hidden_size: int = 768dropout: float | int = 0.0bias: bool = Trueinitializer_range: float = 0.02use_cache: bool = Truetie_word_embeddings: bool = Truen_codes_total: int = 8n_codes_given: int = 1 )

매개변수

  • block_size (int, 선택 사항, 기본값 1024) — 이 모델이 사용될 수 있는 최대 시퀀스 길이입니다. 혹시 모를 상황에 대비하여 일반적으로 큰 값(예: 512, 1024, 2048)으로 설정합니다.
  • input_vocab_size (int, 선택 사항, 기본값 10_048) — Bark 서브모델의 어휘 크기입니다. {model}을 호출할 때 전달하는 inputs_ids로 표현할 수 있는 서로 다른 토큰의 수를 정의합니다. 기본값은 10_048이지만, 선택한 서브모델에 따라 신중하게 결정해야 합니다.
  • output_vocab_size (int, 선택 사항, 기본값 10_048) — Bark 서브모델의 출력 어휘 크기입니다. {model}을(를) 전달하여 forward를 수행할 때 output_ids로 표현할 수 있는 서로 다른 토큰의 수를 정의합니다. 기본값은 10_048이지만, 선택한 서브모델에 따라 신중하게 결정해야 합니다.
  • num_layers (int, 선택 사항, 기본값 12) — Transformer decoder의 hidden layer 수입니다.
  • num_heads (int, 선택 사항, 기본값 12) — Transformer decoder의 각 attention layer에 사용할 attention head의 수입니다.
  • hidden_size (int, 선택 사항, 기본값 768) — 숨겨진 표현의 차원입니다.
  • dropout (Union[float, int], 선택 사항, 기본값 0.0) — 모든 dropout 레이어에 적용할 비율입니다.
  • bias (bool, 선택 사항, 기본값 True) — 선형 레이어와 레이어 노름 레이어에서 bias를 사용할지 여부
  • initializer_range (float, 선택 사항, 기본값 0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다.
  • use_cache (bool, 선택 사항, 기본값 True) — 모델이 마지막 key/values attention을 반환할지 여부입니다(모든 모델에서 사용되지 않음). config.is_decoder=True인 경우 또는 모델이 decoder-only 생성 모델인 경우에만 관련이 있습니다.
  • tie_word_embeddings (bool, 선택, 기본값 True) — 모델의 tied_weights_keys 매핑에 따라 가중치 임베딩을 묶을지 여부.
  • n_codes_total (int, 선택 사항, 기본값 8) — 예측되는 오디오 코드북의 총 개수입니다. 정밀 음향 서브모델에 사용됩니다.
  • n_codes_given (int, 선택 사항, 기본값 1) — 거친 음향 서브모델에서 예측되는 오디오 코드북의 수입니다. 음향 서브모델에서 사용됩니다.

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

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

예:

>>> from transformers import BarkFineConfig, BarkFineModel

>>> # Initializing a Bark sub-module style configuration
>>> configuration = BarkFineConfig()

>>> # Initializing a model (with random weights) from the suno/bark style configuration
>>> model = BarkFineModel(configuration)

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

BarkSemanticConfig

클래스 transformers.BarkSemanticConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneblock_size: int = 1024input_vocab_size: int = 10048output_vocab_size: int = 10048num_layers: int = 12num_heads: int = 12hidden_size: int = 768dropout: float | int = 0.0bias: bool = Trueinitializer_range: float = 0.02use_cache: bool = True )

매개변수

  • block_size (int, 선택 사항, 기본값 1024) — 이 모델이 사용될 수 있는 최대 시퀀스 길이입니다. 혹시 모를 상황에 대비하여 일반적으로 큰 값(예: 512, 1024, 2048)으로 설정합니다.
  • input_vocab_size (int, 선택 사항, 기본값 10_048) — Bark 서브모델의 어휘 크기입니다. {model}을 호출할 때 전달하는 inputs_ids로 표현할 수 있는 서로 다른 토큰의 수를 정의합니다. 기본값은 10_048이지만, 선택한 서브모델에 따라 신중하게 결정해야 합니다.
  • output_vocab_size (int, 선택 사항, 기본값 10_048) — Bark 서브모델의 출력 어휘 크기입니다. {model}을(를) 전달하여 forward를 수행할 때 output_ids로 표현할 수 있는 서로 다른 토큰의 수를 정의합니다. 기본값은 10_048이지만, 선택한 서브모델에 따라 신중하게 결정해야 합니다.
  • num_layers (int, 선택 사항, 기본값 12) — Transformer decoder의 hidden layer 수입니다.
  • num_heads (int, 선택 사항, 기본값 12) — Transformer decoder의 각 attention layer에 사용할 attention head의 수입니다.
  • hidden_size (int, 선택 사항, 기본값 768) — 숨겨진 표현의 차원입니다.
  • dropout (Union[float, int], 선택 사항, 기본값 0.0) — 모든 dropout 레이어에 적용할 비율입니다.
  • bias (bool, 선택 사항, 기본값 True) — 선형 레이어와 레이어 노름 레이어에서 bias를 사용할지 여부
  • initializer_range (float, 선택 사항, 기본값 0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다.
  • use_cache (bool, 선택 사항, 기본값 True) — 모델이 마지막 key/values attention을 반환할지 여부입니다(모든 모델에서 사용되지 않음). config.is_decoder=True인 경우 또는 모델이 decoder-only 생성 모델인 경우에만 관련이 있습니다.

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

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

예:

>>> from transformers import BarkSemanticConfig, BarkSemanticModel

>>> # Initializing a Bark sub-module style configuration
>>> configuration = BarkSemanticConfig()

>>> # Initializing a model (with random weights) from the suno/bark style configuration
>>> model = BarkSemanticModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
Update on GitHub