Transformers documentation

Granite Speech

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

and get access to the augmented documentation experience

to get started

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

Granite Speech

Genel Bakış

Granite Speech modeli (blog yazısı), bir ses kodlayıcı, ses projeksiyoncu, büyük dil modeli ve LoRA adaptörlerinden oluşan çok modlu bir dil modelidir. Güncel (Granite 3.2 Speech) model mimarisi için her bir bileşenle ilgili daha fazla ayrıntı aşağıda bulunabilir.

  1. Ses Kodlayıcı: ASR korpüslerinde karakter düzeyinde hedefler üzerinde Bağlantıcı Geçici Sınıflandırma (CTC) ile eğitilmiş bir Conformer kodlayıcı. Kodlayıcı, blok-dikkat (block-attention) ve orta katmandan kendiliğinden koşullu CTC kullanır.

  2. Speech Projector: Son encoder bloğunun çıktılarında çalışan bir sorgu transformer'ı (q-former). Encoder ve projector, llm tarafından işlenecek çok modlu gömmele birleştirilecek ses özelliklerini zaman boyutunda indirger.

  3. Büyük Dil Modeli: Granite Speech modeli, bu makalede ilk olarak önerilen Granite LLM'lerini kullanır.

  4. LoRA adaptörü(leri): Granite Speech modeli, ses özellikleri sağlandığında etkinleştirilen, aksi halde devre dışı bırakılan, moda özel bir LoRA içerir.

Dikkat edin, yukarıda bahsedilen bileşenlerin çoğu, transformers içindeki diğer model mimarileriyle uyumluluğu ve olası entegrasyonu sağlamak için genel olarak uygulanmıştır.

Bu model Alexander Brooks, Avihu Dekel ve George Saon tarafından katkıda bulunmuştur.

Kullanım ipuçları

  • Bu model, kendi LoRA adaptörünü içerir ve bu adaptör, çıkarım çağrıları sırasında gerektiğinde otomatik olarak yüklenip etkinleştirilir/devre dışı bırakılır. LoRA'nın doğru şekilde uygulanmasını sağlamak için PEFT paketinin yüklü olduğundan emin olun!
  • Model, 16kHz örnekleme hızına sahip ses bekler. İşleyici, gerekirse otomatik olarak yeniden örnekler.
  • Ses özellikleri mevcut olduğunda LoRA adaptörü otomatik olarak etkinleştirilir ve yalnızca metin içeren girdiler için devre dışı bırakılır; bu nedenle manuel olarak yönetmenize gerek yoktur.

Kullanım örneği

Granite Speech, ses metne dönüştürme işlemini gerçekleştirebilen ve metin isteklerine yanıt verebilen çok modlu bir modeldir. Kullanımı aşağıdaki gibidir:

Temel Konuşma Transkripsiyonu

from datasets import Audio, load_dataset

from transformers import GraniteSpeechForConditionalGeneration, GraniteSpeechProcessor


# Load model and processor
model = GraniteSpeechForConditionalGeneration.from_pretrained(
    "ibm-granite/granite-3.2-8b-speech",
    device_map="auto"
)
processor = GraniteSpeechProcessor.from_pretrained("ibm-granite/granite-3.2-8b-speech")

# Load audio from dataset (16kHz sampling rate required)
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
audio = ds['audio'][0]['array']

# Process audio
inputs = processor(audio=audio, return_tensors="pt").to(model.device)

# Generate transcription
generated_ids = model.generate(**inputs, max_new_tokens=256)
transcription = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(transcription)

Chat Şablonu ile Konuşmadan Metne Dönüştürme

Sesle talimat takibi için, sesli sohbet şablonunu doğrudan sohbet biçiminde kullanın:

from datasets import Audio, load_dataset

from transformers import GraniteSpeechForConditionalGeneration, GraniteSpeechProcessor


model = GraniteSpeechForConditionalGeneration.from_pretrained(
    "ibm-granite/granite-3.2-8b-speech",
    device_map="auto"
)
processor = GraniteSpeechProcessor.from_pretrained("ibm-granite/granite-3.2-8b-speech")

# Load audio from dataset
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
audio = ds['audio'][0]

# Prepare conversation with audio and text
conversation = [
    {
        "role": "user",
        "content": [
            {"type": "audio", "audio": audio},
            {"type": "text", "text": "Transcribe the following audio:"},
        ],
    }
]

# Apply chat template with audio - processor handles both tokenization and audio processing
inputs = processor.apply_chat_template(conversation, tokenize=True, return_tensors="pt").to(model.device)

# Generate transcription
generated_ids = model.generate(**inputs, max_new_tokens=512)
output_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(output_text)

Toplu İşleme

Birden çok ses dosyasını verimli bir şekilde işleyin:

from datasets import Audio, load_dataset

from transformers import GraniteSpeechForConditionalGeneration, GraniteSpeechProcessor


model = GraniteSpeechForConditionalGeneration.from_pretrained(
    "ibm-granite/granite-3.2-8b-speech",
    device_map="auto"
)
processor = GraniteSpeechProcessor.from_pretrained("ibm-granite/granite-3.2-8b-speech")

# Load multiple audio samples from dataset
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
audio_samples = [ds['audio'][i]['array'] for i in range(3)]

# Process batch
inputs = processor(audio=audio_samples, return_tensors="pt", padding=True).to(model.device)

# Generate for all inputs
generated_ids = model.generate(**inputs, max_new_tokens=256)
transcriptions = processor.batch_decode(generated_ids, skip_special_tokens=True)

for i, transcription in enumerate(transcriptions):
    print(f"Audio {i+1}: {transcription}")

GraniteSpeechConfig

sınıf transformers.GraniteSpeechConfig

< >

( 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 = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneencoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneprojector_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneaudio_token_index: int = 49155initializer_range: float = 0.02has_lora_adapter: bool = Truedownsample_rate: int = 5window_size: int = 15tie_word_embeddings: bool = True )

Parametreler

  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig], isteğe bağlı) — Metin omurgasının yapılandırma nesnesi veya sözlüğü.
  • encoder_config (Union[dict, ~configuration_utils.PreTrainedConfig], isteğe bağlı) — Encoder iskeletinin yapılandırma nesnesi veya sözlüğü.
  • projector_config (Union[AutoConfig, dict], isteğe bağlı, varsayılan Blip2QFormerConfig) — Ses projeksiyoncunun yapılandırma nesnesi veya sözlüğü.
  • audio_token_index (int, isteğe bağlı, varsayılan 49155) — Giriş sesinin yer tutucusu olarak kullanılan ses jetonu indeksi.
  • initializer_range (float, isteğe bağlı, varsayılan 0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.
  • has_lora_adapter (bool, isteğe bağlı, varsayılan True) — Modelin, yalnızca ses girdileri işlenirken etkinleştirilmesi gereken bir lora adaptörüne sahip olup olmadığını belirtir.
  • downsample_rate (int, isteğe bağlı, varsayılan 5) — Ses özellik çıkarıcısı için örnekleme azaltma oranı.
  • window_size (int, isteğe bağlı, varsayılan 15) — Ses özellik projeksiyoncusu için pencere boyutu.
  • tie_word_embeddings (bool, isteğe bağlı, varsayılan True) — Modelin tied_weights_keys eşlemesine göre ağırlık gömme bağlamalarının yapılıp yapılmayacağı.

Bu, bir GraniteSpeechModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Granite Speech modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, ibm-granite/granite-speech-3.3-2b modelinin yapılandırmasına benzer bir yapılandırma elde edilir.

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 GraniteSpeechConfig, GraniteSpeechForConditionalGeneration

>>> # Initializing a GraniteSpeechConfig
>>> configuration = GraniteSpeechConfig()

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

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

GraniteSpeechEncoderConfig

sınıf transformers.GraniteSpeechEncoderConfig

< >

( 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 = Noneinput_dim: int = 160num_layers: int = 10hidden_dim: int = 1024feedforward_mult: int = 4num_heads: int = 8dim_head: int | None = Noneoutput_dim: int = 42context_size: int = 200max_pos_emb: int = 512dropout: float | int = 0.1conv_kernel_size: int = 15conv_expansion_factor: int = 2 )

Parametreler

  • input_dim (int, isteğe bağlı, varsayılan 160) — Giriş ses özelliklerinin boyutu (ör. mel-filtre bankası kanalları sayısı).
  • num_layers (int, isteğe bağlı, varsayılan 10) — Transformer çözücüdeki gizli katman sayısı.
  • hidden_dim (int, isteğe bağlı, varsayılan 1024) — Gizli temsillerin boyutu.
  • feedforward_mult (int, isteğe bağlı, varsayılan 4) — Encoder'ın feedforward katmanlarındaki up/down projeksiyonları için çarpan; Projeksiyonların ara boyutu hidden_dim * feedforward_mult boyutunda olacaktır.
  • num_heads (int, isteğe bağlı, varsayılan 8) — Transformer decoder'ındaki her dikkat katmanı için dikkat başlığı sayısı.
  • dim_head (int, isteğe bağlı) — Dikkat başı boyutu. None ise, varsayılan olarak hidden_size // num_attention_heads değerini alır.
  • output_dim (int, isteğe bağlı, varsayılan 42) — Conformer'daki her diğer encoder bloğunun çıktısına eklenecek feedforward projeksiyonlarının ara boyutu.
  • context_size (int, isteğe bağlı, varsayılan 200) — Conformer dikkat mekanizmasında kullanılacak bağlam boyutu.
  • max_pos_emb (int, isteğe bağlı, varsayılan 512) — Dikkat mekanizmasında kullanılacak maksimum konumsal gömme (shaw'ın göreli konumsal kodlaması).
  • dropout (Union[float, int], isteğe bağlı, varsayılan 0.1) — Tüm dropout katmanları için oran.
  • conv_kernel_size (int, isteğe bağlı, varsayılan 15) — Konvolüsyon çekirdeğinin boyutu.
  • conv_expansion_factor (int, isteğe bağlı, varsayılan 2) — Conformer konvolüsyonlarında kullanılacak ara boyut.

Bu, bir GraniteSpeechModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Granite Speech modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, ibm-granite/granite-speech-3.3-2b modelinin yapılandırmasına benzer bir yapılandırma elde edilir.

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 GraniteSpeechEncoderConfig, GraniteSpeechCTCEncoder

>>> # Initializing a GraniteSpeechEncoderConfig
>>> configuration = GraniteSpeechEncoderConfig()

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

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

GraniteSpeechProcessor

sınıf transformers.GraniteSpeechProcessor

< >

( audio_processortokenizeraudio_token = '<|audio|>'chat_template = None )

Parametreler

  • audio_processor ({audio_processor_class}) — Ses işleyici zorunlu bir girdidir.
  • tokenizer (tokenizer_class) — Tokenizer zorunlu bir girdidir.
  • audio_token (str, isteğe bağlı, varsayılan "<|audio|>") — Metin dizisinde ses temsil etmek için kullanılan özel jeton. Bu jeton, gerçek ses uzunluğuna bağlı olarak birden fazla ses jetonuyla değiştirilecek bir yer tutucu görevi görür. Eklenecek ses jetonlarının sayısı, ses işleyicisi tarafından çıkarılan ses özellik boyutlarına bağlıdır.
  • chat_template (str) — Bir sohbet içindeki mesaj listelerini tokenize edilebilir bir dizeye dönüştürmek için kullanılan bir Jinja şablonu.

Bir ses işleyiciyi ve bir belirteçleyiciyi tek bir işleyicide birleştiren bir GraniteSpeechProcessor oluşturur.

GraniteSpeechProcessor, {audio_processor_class} ve tokenizer_class sınıflarının tüm işlevlerini sunar. Daha fazla bilgi için ~{audio_processor_class} ve ~tokenizer_class belgelerine bakın.

__call__

< >

( text: str | list[str] | list[list[str]]audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = Nonedevice: str = 'cpu'**kwargs: *<class 'transformers.models.granite_speech.processing_granite_speech.GraniteSpeechProcessorKwargs'> ) → ~feature_extraction_utils.BatchFeature

Parametreler

  • text (Union[str, list[str], list[list[str]]]) — Kodlanacak dizi veya dizi grubu. Her dizi bir metin veya metin listesi (önceden tokenize edilmiş metin) olabilir. Önceden tokenize edilmiş bir girdi geçirirseniz, gruplu girdilerle karışıklığı önlemek için is_split_into_words=True değerini ayarlayın.
  • audio (Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]], isteğe bağlı) — Hazırlanacak ses veya sesler partisi. Her ses, bir NumPy dizisi veya PyTorch tensörü olabilir. NumPy dizisi/PyTorch tensörü durumunda, her sesin şekli (C, T) olmalıdır; burada C kanal sayısı, T ise sesin örnek uzunluğudur.
  • device (str, isteğe bağlı, varsayılan cpu) — Videoların işleneceği cihaz. Ayarlanmazsa, cihaz girdi videolarından çıkarılır.
  • return_tensors (str veya TensorType, isteğe bağlı) — Belirlenirse, belirli bir çerçeveye ait tensörler döndürülür. Kabul edilen değerler şunlardır:
    • 'pt': PyTorch torch.Tensor nesnelerini döndürür.
    • 'np': NumPy np.ndarray nesnelerini döndürür.
  • **kwargs (ProcessingKwargs, isteğe bağlı) — Her modalite (metin, görüntüler, videolar, ses) için ek işleme seçenekleri. Modelle ilgili parametreler yukarıda listelenmiştir; desteklenen argümanların tam listesi için TypedDict sınıfına bakın.

Dönüş değeri

~feature_extraction_utils.BatchFeature

  • data (dict, isteğe bağlı) — call/pad yöntemleri tarafından döndürülen listelerin/dizilerin/tensörlerin sözlüğü ('input_values', 'attention_mask' vb.).
  • tensor_type (Union[None, str, TensorType], isteğe bağlı) — Başlatma sırasında PyTorch/Numpy Tensörlerindeki tamsayı listelerini dönüştürmek için burada bir tensor_type verebilirsiniz.
  • skip_tensor_conversion (list[str] veya set[str], isteğe bağlı) — tensor_type belirtilse bile tensöre dönüştürülmemesi gereken anahtarların listesi veya kümesi.

GraniteSpeechFeatureExtractor

sınıf transformers.GraniteSpeechFeatureExtractor

< >

( sampling_rate: int = 16000n_fft: int = 512win_length: int = 400hop_length: int = 160n_mels: int = 80projector_window_size: int = 15projector_downsample_rate: int = 5padding_value: float = 0.0**kwargs )

GraniteSpeechModel

sınıf transformers.GraniteSpeechModel

< >

( config: GraniteSpeechConfig )

Parametreler

  • config (GraniteSpeechConfig) — 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.

Bir ses kodlayıcı, projeksiyoncu ve dil modelinden oluşan, dil modelleme başlığı olmadan Granite Speech 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] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → GraniteSpeechModelOutputWithPast 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 GraniteSpeechFeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için GraniteSpeechFeatureExtractor.__call__() bölümüne bakın (GraniteSpeechProcessor, sesleri işlemek için GraniteSpeechFeatureExtractor kullanır).
  • input_features_mask (torch.Tensor, isteğe bağlı) — Dil gömme alanlarına dağıtılmadan önce ses özelliklerine uygulanacak 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

GraniteSpeechModelOutputWithPast veya tuple(torch.Tensor)

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

GraniteSpeechModel 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.

  • last_hidden_state (torch.Tensor, şekli (batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

    past_key_values kullanılırsa, yalnızca (batch_size, 1, hidden_size) biçimindeki dizilerin son gizli durumu (hidden-state) çıktı olarak verilir.

  • 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. Daha fazla ayrıntı için kv cache kılavuzumuza bakın.

    Sıralı çözümlemeyi hızlandırmak için (bkz. past_key_values girdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler ve isteğe bağlı olarak config.is_encoder_decoder=True ise cross-attention bloklarındaki anahtar ve değerler) içerir.

  • 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 (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer 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ı) — Projeksiyonlanmış ses gizli durumları.

GraniteSpeechForConditionalGeneration

sınıf transformers.GraniteSpeechForConditionalGeneration

< >

( config: GraniteSpeechConfig )

Parametreler

  • config (GraniteSpeechConfig) — 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.

Bir ses kodlayıcı, projeksiyoncu ve dil modelinden oluşan Granite Speech 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 ) → GraniteSpeechCausalLMOutputWithPast 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 GraniteSpeechFeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için GraniteSpeechFeatureExtractor.__call__() bölümüne bakın (GraniteSpeechProcessor, sesleri işlemek için GraniteSpeechFeatureExtractor kullanır).
  • input_features_mask (torch.Tensor, isteğe bağlı) — Dil gömme alanlarına dağıtılmadan önce ses özelliklerine uygulanacak 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. Endeksler [0, ..., config.vocab_size] aralığında olmalı ya da -100 olmalı (input_ids docstring'ine bakın). Endeksleri -100 olarak ayarlanan tokenlar yok sayılır (maskelenir), kayıp yalnızca etiketleri [0, ..., config.vocab_size] aralığında olan tokenlar için hesaplanı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).
  • 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

GraniteSpeechCausalLMOutputWithPast veya tuple(torch.Tensor)

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

GraniteSpeechForConditionalGeneration 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ı (SoftMax öncesi her sözlük jetonu için 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. Daha fazla ayrıntı için kv cache kılavuzumuza bakın.

    Sıralı çözümlemeyi hızlandırmak için (bkz. past_key_values girdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler) içerir.

  • 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ı) — Projeksiyonlanmış ses gizli durumları.

Örnek:

>>> from transformers import AutoProcessor, GraniteSpeechForConditionalGeneration
>>> from datasets import load_dataset
>>> import torch

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

>>> processor = AutoProcessor.from_pretrained("ibm-granite/granite-speech-3.3-2b")
>>> model = GraniteSpeechForConditionalGeneration.from_pretrained("ibm-granite/granite-speech-3.3-2b")

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

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

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

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

get_audio_features

< >

( *args**kwargs )

Update on GitHub