Transformers documentation

Bark

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

이 모델은 2023-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입니다.
    • a path to a directory containing a processor saved using the save_pretrained() method, e.g., ./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