Transformers documentation

Granite Speech Plus

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 2026-04-29 tarihinde Hugging Face Transformers'a katkıda bulunulmuştur.

Granite Speech Plus

Genel Bakış

Granite Speech Plus, Granite Speech'ün bir varyantıdır ve projeksiyoncusu, kodlayıcının son gizli durumları ile ara gizli durumlarının keyfi bir alt kümesinin (özellik boyutu boyunca) birleştirilmesini alır. Seçilen ara katmanlar, GraniteSpeechPlusEncoderConfig üzerindeki cat_hidden_layers yapılandırma alanıyla kontrol edilir; bu alan None olduğunda model, Granite Speech ile birebir aynı şekilde davranır. Ayarlandığında, projeksiyoncunun encoder_hidden_size değeri encoder_config.hidden_dim * (len(cat_hidden_layers) + 1) değerine eşit olmalıdır.

Mimarinin geri kalanı — ses kodlayıcı, sorgu dönüştürücü projeksiyoncu, dil modeli ve isteğe bağlı LoRA adaptörü — Granite Speech'ten değiştirilmeden devralınır. Kullanım örnekleri için Granite Speech belgelerini inceleyin; burada aynı GraniteSpeechProcessor ve GraniteSpeechFeatureExtractor kullanılır.

Kullanım

Granite Speech Plus, metin isteklerine yanıt vererek sesli dosyaları transkribe edebilen, konuşmacı etiketleme ve kelime düzeyinde zaman damgaları sağlayabilen çok modlu ses-metne dönüştürme modelidir. Farklı işlevlerin nasıl kullanılacağı aşağıda açıklanmıştır:

Kurulum — modeli ve bir test ses kliplerini yükleyin:

import re
import torch
from datasets import Audio, load_dataset
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor

SAMPLE_RATE = 16000
MODEL_NAME = "ibm-granite/granite-speech-4.1-2b-plus"

Farklı görevler için kullanılan istemleri tanımlayın:

SYSTEM_PROMPT = "Knowledge Cutoff Date: April 2024.\nToday's Date: December 19, 2024.\nYou are Granite, developed by IBM. You are a helpful AI assistant"
ASR_PROMPT = "<|audio|> can you transcribe the speech into a written format?"
SAA_PROMPT = "<|audio|> Speaker attribution: Transcribe and denote who is speaking by adding [Speaker 1]: and [Speaker 2]: tags before speaker turns."
TS_PROMPT = "<|audio|> Timestamps: Transcribe the speech. After each word, add a timestamp tag showing the end time in centiseconds, e.g. hello [T:45] world [T:82]"

Modeli yükleyin ve sesi çözmek için genel bir işlev tanımlayın:

processor = AutoProcessor.from_pretrained(MODEL_NAME)
model = AutoModelForSpeechSeq2Seq.from_pretrained(MODEL_NAME, device_map="auto")

@torch.inference_mode()
def transcribe(audio, prompt, max_new_tokens=2000, prefix_text=None):
    chat = [{"role": "system", "content": SYSTEM_PROMPT}, {"role": "user", "content": prompt}]
    extra = {"prefix_text": prefix_text} if prefix_text is not None else {}
    prompt_text = processor.apply_chat_template(chat, tokenize=False, add_generation_prompt=True, **extra)
    inputs = processor(prompt_text, audio, device=device, return_tensors="pt").to(device)
    outputs = model.generate(**inputs, max_new_tokens=max_new_tokens, do_sample=False, num_beams=1)
    new_tokens = outputs[0, inputs["input_ids"].shape[-1]:]
    output_text = processor.decode(new_tokens, add_special_tokens=False, skip_special_tokens=True)
    return output_text

AMI veri setinden bazı örnek ses verileri yükleyin

ds = load_dataset("diarizers-community/ami", "ihm", split="test")
ds = ds.cast_column("audio", Audio(sampling_rate=SAMPLE_RATE, num_channels=1))

TEST_SAMPLE = 0
START_TIME, END_TIME = 5 * 60, 6 * 60
audio = ds["audio"][TEST_SAMPLE].get_samples_played_in_range(START_TIME, END_TIME)

Görev 1: ASR — düz konuşmadan metne transkripsiyon:

asr_text = transcribe(audio.data, ASR_PROMPT)
print(asr_text)

Görev 2: Konuşmacı Atfedilmiş ASR — konuşmacı etiketleriyle transkripsiyon:

saa_text = transcribe(audio.data, SAA_PROMPT)
for segment in re.split(r"(\[Speaker \d+\]:)", saa_text):
    print(segment.strip())

Görev 3: Kelime düzeyi zaman damgaları — kelime başına zamanlama ile transkripsiyon:

Zaman damgaları santisaniye cinsinden verilir ve 1000'e (=10 saniye) göre modülerdir, bu nedenle onları 10 saniyenin katlarını ekleyerek açmamız gerekir.

ts_text = transcribe(audio.data, TS_PROMPT, max_new_tokens=10000)
ts_words = re.split(r"\[T:(\d+)\]", ts_text)
last_word_end_time = 0
offset_time = 0
for word, ts in zip(ts_words[::2], ts_words[1::2]):
    word_end_time = float(ts) / 100
    while word_end_time + offset_time < last_word_end_time:
        offset_time += 10
    last_word_end_time = word_end_time + offset_time
    print(f"{word}\t{last_word_end_time:.2f}s")

Görev 4: Artımlı çözümleme — ses bağlamını biriktirirken segmentleri transkribe edin:

NUM_SEGMENTS = 3
previous_transcript = ""
all_audio = None

for k in range(NUM_SEGMENTS):
    t1 = START_TIME + (END_TIME - START_TIME) * k / NUM_SEGMENTS
    t2 = START_TIME + (END_TIME - START_TIME) * (k + 1) / NUM_SEGMENTS
    new_audio = ds["audio"][TEST_SAMPLE].get_samples_played_in_range(t1, t2)
    all_audio = new_audio.data if all_audio is None else torch.cat([all_audio, new_audio.data], dim=-1)
    saa_text = transcribe(all_audio, SAA_PROMPT, prefix_text=previous_transcript)
    print(f"{t1:06.2f}-{t2:06.2f}:\t{saa_text}")
    previous_transcript = (previous_transcript + " " + saa_text).strip()

GraniteSpeechPlusConfig

sınıf transformers.GraniteSpeechPlusConfig

< >

( 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 GraniteSpeechPlusModel 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 Plus modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, ibm-granite/granite-speech-4.1-2b-plus 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 GraniteSpeechPlusConfig, GraniteSpeechPlusForConditionalGeneration

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

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

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

GraniteSpeechPlusEncoderConfig

sınıf transformers.GraniteSpeechPlusEncoderConfig

< >

( 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 = 2cat_hidden_layers: list[int] | None = None )

Parametreler

  • input_dim (int, opsiyonel, 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 decoder'ındaki gizli katman sayısı.
  • hidden_dim (int, opsiyonel, varsayılan 1024) — Gizli temsillerin boyutu.
  • feedforward_mult (int, opsiyonel, 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, opsiyonel, varsayılan 8) — Transformer decoder'ındaki her dikkat katmanı için dikkat başlığı sayısı.
  • dim_head (int, opsiyonel) — Dikkat başı boyutu. None ise, varsayılan olarak hidden_size // num_attention_heads değerini alır.
  • output_dim (int, opsiyonel, varsayılan 42) — Conformer'daki her diğer encoder bloğunun çıktısına eklenecek feedforward projeksiyonlarının ara boyutu.
  • context_size (int, opsiyonel, varsayılan 200) — Conformer dikkat mekanizmasında kullanılacak bağlam boyutu.
  • max_pos_emb (int, opsiyonel, 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, opsiyonel, varsayılan 15) — Kovaryans çekirdeğinin boyutu.
  • conv_expansion_factor (int, opsiyonel, varsayılan 2) — Conformer konvolüsyonlarında kullanılacak ara boyut.
  • cat_hidden_layers (list[int], opsiyonel) — Projeleyiciye (projector) aktarılmasından önce, nihai kodlayıcı çıktısıyla (özellik boyutu boyunca) birleştirilen kodlayıcı conformer katmanlarının çıktı indeksleri. Ayarlandığında, projeleyicinin encoder_hidden_size değeri encoder_config.hidden_dim * (len(cat_hidden_layers) + 1) değerine eşit olmalıdır.

Bu, bir GraniteSpeechPlusModel 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 Plus modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, ibm-granite/granite-speech-4.1-2b-plus modelinin yapılandırmasına benzer bir yapılandırma elde edilir.

Configuration 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 GraniteSpeechPlusEncoderConfig, GraniteSpeechPlusCTCEncoder

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

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

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

GraniteSpeechPlusModel

sınıf transformers.GraniteSpeechPlusModel

< >

( config: GraniteSpeechPlusConfig )

Parametreler

  • config (GraniteSpeechPlusConfig) — 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'> ) → GraniteSpeechPlusModelOutputWithPast 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

GraniteSpeechPlusModelOutputWithPast veya tuple(torch.Tensor)

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

GraniteSpeechPlusModel 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ı.

GraniteSpeechPlusForConditionalGeneration

sınıf transformers.GraniteSpeechPlusForConditionalGeneration

< >

( config: GraniteSpeechPlusConfig )

Parametreler

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

Granite Speech Plus modeli, kodlayıcının son gizli durumlarının, ara gizli durumlarının keyfi bir alt kümesiyle birleştirilmesini tüketen bir projeksiyona sahip olan Granite Speech varyantıdır.

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 ) → GraniteSpeechPlusCausalLMOutputWithPast 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

GraniteSpeechPlusCausalLMOutputWithPast veya tuple(torch.Tensor)

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

GraniteSpeechPlusForConditionalGeneration 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, GraniteSpeechPlusForConditionalGeneration
>>> 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-4.1-2b-plus")
>>> model = GraniteSpeechPlusForConditionalGeneration.from_pretrained("ibm-granite/granite-speech-4.1-2b-plus")

>>> # 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