Transformers documentation

Music Flamingo

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

Bu model 2025-11-13 tarihinde HF papers'ta yayımlandı ve 2026-03-30 tarihinde Hugging Face Transformers'a katkıda bulunuldu.

Music Flamingo

FlashAttention SDPA

Genel Bakış

Music Flamingo, müzik üzerine sağlam anlama ve akıl yürütme için tasarlanmış, tamamen açık bir büyük ses-dil modelidir. Rotary Time Embeddings (RoTE) içeren Audio Flamingo 3 mimarisi üzerine inşa edilmiştir; bu bileşen, modelin 20 dakikaya (1200 saniye) kadar ses dizilerini işleyebilmesini sağlamak için zamansal konum bilgisini enjekte eder.

Model kontrol noktası şu adreste kullanılabilir: nvidia/music-flamingo-2601-hf

Öne çıkanlar:

  • Konuşma, ses ve müzik için birleşik ses kodlayıcı.
  • Zaman modellemesini güçlendirmek için Döner Zaman Gömme (RoTE), 20 dakikaya kadar ses desteği sağlar.
  • Pencereleme ve havuzlama sonrası hizalama ile genişletilmiş uzun ses desteği (en fazla 20 dakika). Model, sesi 30 saniyelik pencerelerde işler ve 40 pencere (toplam 20 dakika) ile katı bir sınıra sahiptir. 20 dakikadan uzun sesler kısaltılır.
  • Daha iyi ses dizisi modellemesi için özel ses sınır belirleyici jetonları (<|sound_bos|> ve <|sound_eos|>).
  • Ses yer tutucu tokenlarını ses gömme değerleriyle değiştirerek dizi uzunluğunu koruyan deterministik füzyon.

Bu model Lasha Koroshinadze ve Eric Bezzam tarafından katkıda bulunmuştur.

Makale

Müzik Flamingo: Ses Dil Modellerinde Müzik Anlayışını Ölçeklendirme
S. Ghosh, A. Goel, L. Koroshinadze, S. Lee, Z. Kong, J. F. Santos, R. Duraiswami, D. Manocha, W. Ping, M. Shoeybi, B. Catanzaro
NVIDIA ve Maryland Üniversitesi
Proje: https://research.nvidia.com/labs/adlr/MF/

Kullanım

Sesli Talimat Modu

Model, çok turlu etkileşimler dahil olmak üzere ses-metin talimatlarını destekler ve tümü toplu olarak işlenir.

➡️ ses + metin talimatı

from transformers import AutoProcessor, MusicFlamingoForConditionalGeneration


model_id = "nvidia/music-flamingo-2601-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = MusicFlamingoForConditionalGeneration.from_pretrained(model_id, device_map="auto")

conversation = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "Describe this track in full detail - tell me the genre, tempo, and key, then dive into the instruments, production style, and overall mood it creates."},
            {"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/song_1.mp3"},
        ],
    }
]

inputs = processor.apply_chat_template(
    conversation,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
).to(model.device)
inputs["input_features"] = inputs["input_features"].to(model.dtype)

outputs = model.generate(**inputs, max_new_tokens=500)

decoded_outputs = processor.batch_decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)

➡️ çok turlu:

from transformers import AutoProcessor, MusicFlamingoForConditionalGeneration


model_id = "nvidia/music-flamingo-2601-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = MusicFlamingoForConditionalGeneration.from_pretrained(model_id, device_map="auto")

conversation = [
    {
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": "Write a rich caption that blends the technical details (genre, BPM, key, chords, mix) with how the song feels emotionally and dynamically as it unfolds.",
            },
            {"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/song_1.mp3"},
        ],
    },
    {
        "role": "assistant",
        "content": [{"type": "text", "text": "This energetic Eurodance anthem at 150 BPM in E major combines bright synth arpeggios with a punchy four-on-the-floor beat..."}],
    },
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "What instruments stand out the most?"},
        ],
    },
]

inputs = processor.apply_chat_template(
    conversation,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
).to(model.device)
inputs["input_features"] = inputs["input_features"].to(model.dtype)

outputs = model.generate(**inputs, max_new_tokens=500)

decoded_outputs = processor.batch_decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)

➡️ toplu çıkarım!

from transformers import AutoProcessor, MusicFlamingoForConditionalGeneration


model_id = "nvidia/music-flamingo-2601-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = MusicFlamingoForConditionalGeneration.from_pretrained(model_id, device_map="auto")

conversations = [
    [
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Describe this track in full detail - tell me the genre, tempo, and key, then dive into the instruments, production style, and overall mood it creates."},
                {
                    "type": "audio",
                    "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/song_1.mp3",
                },
            ],
        }
    ],
    [
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "Generate a structured lyric sheet from the input music.",
                },
                {"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/song_2.mp3"},
            ],
        }
    ],
]

inputs = processor.apply_chat_template(
    conversations,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
).to(model.device)
inputs["input_features"] = inputs["input_features"].to(model.dtype)

outputs = model.generate(**inputs, max_new_tokens=500)

decoded_outputs = processor.batch_decode(outputs[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(decoded_outputs)

➡️ Eğitim:

from transformers import AutoProcessor, MusicFlamingoForConditionalGeneration


model_id = "nvidia/music-flamingo-2601-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = MusicFlamingoForConditionalGeneration.from_pretrained(model_id, device_map="auto")
model.train()

conversation = [
    [
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Break the track down like a critic - list its tempo, key, and chordal motion, then explain the textures, dynamics, and emotional impact of the performance."},
                {"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/song_1.mp3"},
            ],
        },
        {
            "role": "assistant",
            "content": [{"type": "text", "text": "This Eurodance track operates at 150 BPM in E major, with harmonic movement centering on the I-vi-IV-V family. The production features layered synth arpeggios, a four-on-the-floor kick pattern, and a mezzo-soprano lead vocal with bright timbre. Dynamically, the track builds through verses into an anthemic chorus with full synth orchestration and backing vocals, creating an uplifting, euphoric atmosphere characteristic of late 2000s dance-pop."}],
        }
    ],
    [
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "Describe this song from both a technical and artistic lens: mention tempo, harmony, and instrumentation, but also mood, lyrical themes, and structure.",
                },
                {"type": "audio", "path": "https://huggingface.co/datasets/nvidia/AudioSkills/resolve/main/assets/song_2.mp3"},
            ],
        },
        {
            "role": "assistant",
            "content": [{"type": "text", "text": "This electronic pop track combines upbeat production with playful lyrical themes centered around late-night pizza cravings. The structure follows a verse-chorus format with recurring melodic motifs and rhythmic patterns that emphasize the celebratory, lighthearted mood of the piece."}],
        }

    ]
]

inputs = processor.apply_chat_template(
    conversation,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
    processor_kwargs={"output_labels": True},
).to(model.device)
inputs["input_features"] = inputs["input_features"].to(model.dtype)

loss = model(**inputs).loss
loss.backward()

Modelin çalışma şekli

Mimari

  • Ses Kodlayıcı Whisper tarzı özellik çıkarıcı + kodlayıcı → zaman üzerinde ortalama havuzlama (adım 2) → LayerNorm. Havuzlama sonrası hızda çerçeve başına gizli durumlar üretir.

  • Rotary Time Embeddings (RoTE), modelin 20 dakikaya (1200 saniye) kadar ses dizilerini işleyebilmesini sağlamak amacıyla zaman konumu bilgisini enjekte etmek için kodlayıcı çıktısına uygulanır. RoTE, batch ve zaman boyutları için zaman tabanlı açı modülasyonu kullanan 2B eksenel döner gömme (rotary embedding) kullanır.

  • MusicFlamingoMultiModalProjector Kodlayıcı özelliklerini dil modelinin gizli boyutuna eşleyen küçük bir MLP.

  • MusicFlamingoForConditionalGeneration Her ses yer tutucu belirteç yuvasının, yerinde, bir ses çerçevesi gömme (embedding) ile değiştirildiği metin gömmelerini kabul eden nedensel bir dil modelidir. Ses dizilerini işaretlemek için özel sınır belirteçleri (<|sound_bos|> ve <|sound_eos|>) kullanır. Füzyon işlemi dizin uzunluğunda herhangi bir değişikliğe yol açmaz.

İşlemci düzeyinde hizalama

  1. Her ham dalga formu, özellik çıkarıcının chunk_length (saniye) ve sampling_rate (Hz) değerlerine göre sabit uzunluklu pencerelere bölünür.
  2. Her pencere için işlemci, kodlayıcının üreteceği havuzlama sonrası kare sayısını post_pool_len (conv/pool zamanlamasıyla eşleşen) hesaplar.
  3. İşleyici, ses yer tutucu belirteci, tüm pencerelerdeki havuzlama sonrası toplam kare sayısına göre genişletir.
  4. Model, daha sonra bu token konumlarını ilgili projeksiyonlu ses gömme değerleriyle değiştirir.

Uzun ses ve pencereleme

Önemli: Maksimum ses süresi 20 dakikadır. Bundan daha uzun sesler kısaltılır.

  • Varsayılan yapılandırma, 16 kHz mono'da 30 saniyelik pencereleri işler.

  • İşleyici, örnek başına 40 pencere şeklinde sert bir sınır uygular; bu da 20 dakikalık bir sesin (40 pencere × 30 saniye) maksimum uzunluğuna karşılık gelir.

  • Rotary Time Embeddings (RoTE), 20 dakikaya (1200 saniyeye) kadar olan diziler için konum bilgisi sağlar.

  • Her pencere için:

    • mel_len, dolgulu mel uzunluğudur.
    • Bir conv yığını, conv_output_len = (mel_len - 1) // 2 + 1 olduğu için süreyi azaltır.
    • Pencere başına havuzlama sonrası kareler: post_pool_len = (conv_output_len - 2) // 2 + 1.
    • Bir ses yer tutucu belirteci, tüm pencerelerdeki post_pool_len değerlerinin toplamına genişletilir.

MusicFlamingoConfig

sınıf transformers.MusicFlamingoConfig

< >

( 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 = Noneaudio_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneaudio_token_id: int = 151669projector_hidden_act: str = 'gelu'projector_bias: bool = Trueaudio_bos_token_id: int = 151670audio_eos_token_id: int = 151671audio_frame_step: float = 0.01rope_parameters: dict | None = None )

Parametreler

  • audio_config (Union[dict, ~configuration_utils.PreTrainedConfig], isteğe bağlı) — Ses omurgasının yapılandırma nesnesi veya sözlüğü.
  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig], isteğe bağlı) — Metin omurgasının yapılandırma nesnesi veya sözlüğü.
  • audio_token_id (int, isteğe bağlı, varsayılan 151669) — Girdi sesinin yer tutucusu olarak kullanılan ses belirteç dizini.
  • projector_hidden_act (str, isteğe bağlı, varsayılan gelu) — Çok modlu projeksiyoncu tarafından kullanılan aktivasyon fonksiyonu.
  • projector_bias (bool, isteğe bağlı, varsayılan True) — Çok modlu projeksiyonda sapma (bias) kullanılıp kullanılmayacağı.
  • audio_bos_token_id (int, isteğe bağlı, varsayılan 151670) — Ses aralıklarının başlangıcını işaretlemek için kullanılan ses başlangıcı (beginning-of-audio) belirteç dizini.
  • audio_eos_token_id (int, isteğe bağlı, varsayılan 151671) — Ses aralıklarının sonunu işaretlemek için kullanılan ses sonu (end-of-audio) token indeksi.
  • audio_frame_step (float, isteğe bağlı, varsayılan 0.01) — Bir giriş mel çerçevesinin saniye cinsinden süresi (hop_length 160 ve sampling_rate 16000 ile eğitildi).
  • rope_parameters (dict, isteğe bağlı) — RoPE gömme yapılandırma parametrelerini içeren sözlük. Sözlük, rope_theta için bir değer ve daha uzun max_position_embeddings ile RoPE kullanmak istiyorsanız ölçekleme için kullanılan isteğe bağlı parametreleri içermelidir.

Bu, bir MusicFlamingoModel'in yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Musicflamingo modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneği oluşturmak, nvidia/music-flamingo-2601-hf ile benzer bir yapılandırmaya yol açar.

Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.

Örnek:

>>> from transformers import MusicFlamingoForConditionalGeneration, MusicFlamingoConfig, AudioFlamingo3EncoderConfig, Qwen2Config

>>> # Initializing an MusicFlamingoEncoder config
>>> audio_config = AudioFlamingo3EncoderConfig()

>>> # Initializing a Qwen2 config
>>> text_config = Qwen2Config()

>>> # Initializing an MusicFlamingo configuration
>>> configuration = MusicFlamingoConfig(audio_config, text_config)

>>> # Initializing a model from the musicflamingo style configuration
>>> model = MusicFlamingoForConditionalGeneration(configuration)

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

MusicFlamingoProcessor

sınıf transformers.MusicFlamingoProcessor

< >

( feature_extractortokenizerchat_template = Noneaudio_token = '<sound>'audio_bos_token = '<|sound_bos|>'audio_eos_token = '<|sound_eos|>'max_audio_len = 1200 )

Parametreler

  • feature_extractor (feature_extractor_class) — Özellik çıkarıcı zorunlu bir girdidir.
  • tokenizer (tokenizer_class) — Tokenizer zorunlu bir girdidir.
  • chat_template (str) — Bir sohbet içindeki mesaj listelerini tokenize edilebilir bir dizeye dönüştürmek için kullanılan bir Jinja şablonu.
  • audio_token (Optional[str], isteğe bağlı, varsayılan "<sound>") — Sohbet şablonunda ses girdilerini temsil etmek için kullanılan özel jeton.
  • audio_bos_token (Optional[str], isteğe bağlı, varsayılan "<|sound_bos|>") — Sesin başlangıcını temsil etmek için kullanılan özel token.
  • audio_eos_token (Optional[str], isteğe bağlı, varsayılan "<|sound_eos|>") — Sesin sonunu temsil etmek için kullanılan özel token.
  • max_audio_len (int, isteğe bağlı, varsayılan 1200) — Ses dizilerinin saniye cinsinden maksimum uzunluğu. Bundan uzun olan sesler kısaltılır.

Bir özellik çıkarıcıyı ve bir belirteçleyiciyi tek bir işlemciye sararak bir MusicFlamingoProcessor oluşturur.

MusicFlamingoProcessor, feature_extractor_class ve tokenizer_class sınıflarının tüm işlevlerini sunar. Daha fazla bilgi için ~feature_extractor_class ve ~tokenizer_class belgelerine bakın.

MusicFlamingoModel

sınıf transformers.MusicFlamingoModel

< >

( config: MusicFlamingoConfig )

Parametreler

  • config (MusicFlamingoConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

MusicFlamingo modeli (ince ayarlı Whisper kodlayıcı, çok modlu projeksiyoncu, Qwen2 dil modeli), dil modelleme kafası olmadan.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

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

Parametreler

  • input_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • input_features (torch.Tensor, şekli (batch_size, sequence_length, feature_dim), isteğe bağlı) — Giriş ses özelliklerine karşılık gelen tensörler. Ses özellikleri feature_extractor_class kullanılarak elde edilebilir. Ayrıntılar için feature_extractor_class.__call__ bölümüne bakın (MusicFlamingoProcessor, sesleri işlemek için feature_extractor_class kullanır).
  • input_features_mask (torch.Tensor, şekli (batch_size, feature_sequence_length)) — Doldurma (padding) özellik indeksleri üzerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske.
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • position_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı [0, config.n_positions - 1].

    Pozisyon kimlikleri nedir?

  • past_key_values (~cache_utils.Cache, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention ve cross-attention bloklarındaki anahtar ve değerler). Bu genellikle past_key_values değerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülen use_cache=True veya config.use_cache=True.

    Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın. past_key_values geçirilmezse, varsayılan olarak DynamicCache başlatılır.

    Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.

    past_key_values kullanılıyorsa, kullanıcının tüm input_ids (şekli (batch_size, sequence_length)) yerine, bu modele geçmiş anahtar değer durumları verilmemiş olan, işlenmemiş input_ids (şekli (batch_size, unprocessed_length)) girmesi beklenir.

  • inputs_embeds (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • use_cache (bool, isteğe bağlı) — True olarak ayarlanırsa, past_key_values anahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz. past_key_values).

Dönüş değeri

MusicFlamingoModelOutputWithPast veya tuple(torch.Tensor)

MusicFlamingoModelOutputWithPast veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırma (MusicFlamingoConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

MusicFlamingoModel forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • audio_hidden_states (torch.Tensor, isteğe bağlı) — Projeksiyonlanmış ses gizli durumları.

MusicFlamingoForConditionalGeneration

sınıf transformers.MusicFlamingoForConditionalGeneration

< >

( config: MusicFlamingoConfig )

Parametreler

  • config (MusicFlamingoConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

İnce ayarlanmış bir Whisper kodlayıcı, döner zaman gömme, çok modlu bir projektör ve bir Qwen2 dil modelinden oluşan MusicFlamingo modeli.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MusicFlamingoCausalLMOutputWithPast or tuple(torch.Tensor)

Parametreler

  • input_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • input_features (torch.Tensor, şekli (batch_size, sequence_length, feature_dim), isteğe bağlı) — Giriş ses özelliklerine karşılık gelen tensörler. Ses özellikleri feature_extractor_class kullanılarak elde edilebilir. Ayrıntılar için feature_extractor_class.__call__ bölümüne bakın (MusicFlamingoProcessor, sesleri işlemek için feature_extractor_class kullanır).
  • input_features_mask (torch.Tensor, şekli (batch_size, feature_sequence_length)) — Doldurma (padding) özellik indeksleri üzerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske.
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • position_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı [0, config.n_positions - 1].

    Pozisyon kimlikleri nedir?

  • past_key_values (~cache_utils.Cache, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention ve cross-attention bloklarındaki anahtar ve değerler). Bu genellikle past_key_values değerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülen use_cache=True veya config.use_cache=True.

    Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın. past_key_values geçirilmezse, varsayılan olarak DynamicCache başlatılır.

    Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.

    past_key_values kullanılıyorsa, kullanıcının tüm input_ids (şekli (batch_size, sequence_length)) yerine, bu modele geçmiş anahtar değer durumları verilmemiş olan, işlenmemiş input_ids (şekli (batch_size, unprocessed_length)) girmesi beklenir.

  • inputs_embeds (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • labels (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — Maskeli dil modelleme kaybını hesaplamak için etiketler.
  • use_cache (bool, isteğe bağlı) — True olarak ayarlanırsa, past_key_values anahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz. past_key_values).
  • logits_to_keep (Union[int, torch.Tensor], isteğe bağlı, varsayılan 0) — int ise, son logits_to_keep token için logits hesaplanır. 0 ise, tüm input_ids için logits hesaplanır (özel durum). Üretim için yalnızca son token logits'leri gereklidir ve bunların yalnızca o token için hesaplanması bellek tasarrufu sağlar; bu, uzun diziler veya büyük sözlük boyutu için oldukça önemli hale gelir. torch.Tensor ise, dizi uzunluğu boyutundaki korunacak indekslere karşılık gelen 1B olmalıdır. Bu, paketlenmiş tensor biçimini (batch ve dizi uzunluğu için tek boyut) kullanırken faydalıdır.

Dönüş değeri

MusicFlamingoCausalLMOutputWithPast veya tuple(torch.Tensor)

MusicFlamingoCausalLMOutputWithPast veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırma (MusicFlamingoConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

MusicFlamingoForConditionalGeneration forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • loss (torch.Tensor, şekli (1,), isteğe bağlı, labels sağlandığında döndürülür) — Dil modelleme kaybı (sonraki token tahmini için).

  • logits (torch.Tensor, şekli (batch_size, sequence_length, config.vocab_size)) — Dil modelleme başlığının tahmin puanları.

  • past_key_values (Cache, isteğe bağlı, use_cache=True geçirildiğinde veya config.use_cache=True olduğunda döndürülür) — Bir Cache örneğidir.

  • hidden_states (tuple[torch.Tensor], isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple[torch.Tensor], isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.Tensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

  • audio_hidden_states (torch.Tensor, isteğe bağlı) — Projeksiyon sonrası ses kodlayıcısının gizli durumları.

Örnek:

>>> from transformers import MusicFlamingoForConditionalGeneration, AutoProcessor

>>> model_id = "nvidia/audio-flamingo-3-hf"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = MusicFlamingoForConditionalGeneration.from_pretrained(model_id, device_map="auto")
Update on GitHub