Transformers documentation
MOSS-Transcribe-Diarize
Bu model, 2026-10-14 tarihinde Hugging Face Transformers'a katkıda bulunulmuştur.
MOSS-Transcribe-Diarize
Genel Bakış
MOSS-Transcribe-Diarize 0.9B, uzun süreli çok konuşmacılı transkripsiyon, konuşmacı ayrıştırma ve zaman damgaları için uçtan uca ses anlama modelidir. Whisper tarzı bir kodlayıcı, 4× çerçeve birleştirme adımı, çok modlu bir projektör ve bir Qwen3 dil modelini bir araya getirir.
Model kontrol noktası şu adreste kullanılabilir: itazap/MOSS-Transcribe-Diarize-HF
Öne çıkan yetenekler şunlardır:
- Tek geçişte ortak transkripsiyon ve konuşmacı ayrımı, segmentler
[start][S01]text[end]biçiminde formatlanır. - Uzun formatlı ses işlemcide, hatta daha önceki aşamada Whisper-pencere parçalama ile; model parçaları örnek başına yeniden birleştirir.
apply_transcription_requestveya sohbet şablonu aracılığıyla İstemlenebilir transkripsiyon.- 50'den fazla dilde çok dilli destek.
Bu model, Hugging Face ekibinden Ita Zaporozhets tarafından katkıda bulunmuştur. Daha fazla ayrıntı için model kartına ve OpenMOSS deposuna bakın.
Kullanım
Aşağıdaki örneklerin çoğu, sohbet şablonunu sizin için oluşturan
apply_transcription_requestyardımcı işlevini kullanır. Eşdeğerapply_chat_templateçağrısı için sohbet şablonuyla gelişmiş kullanım bölümüne bakın.
Temel transkripsiyon ve konuşmacı ayrıştırma
Her konuşmacı turu, [start][S0N]text[end] segmenti olarak çözümlenir. processor.decode, ham çözümlenmiş dizeyi, segmentleri sözlük listesi olarak (return_format="parsed") veya yalnızca birleştirilmiş transkripsiyonu (return_format="transcription_only") döndürebilir.
from transformers import AutoProcessor, AutoModelForCausalLM
model_id = "itazap/MOSS-Transcribe-Diarize-HF"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")
audio_url = "https://huggingface.co/datasets/itazap/audio_samples/resolve/main/podcast_sample.wav"
inputs = processor.apply_transcription_request(audio_url)
inputs = inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, do_sample=False, max_new_tokens=512)
generated_ids = outputs[:, inputs.input_ids.shape[1] :]
decoded = processor.decode(generated_ids, skip_special_tokens=True)
print("RAW OUTPUT:", decoded)
parsed = processor.decode(generated_ids, return_format="parsed")[0]
print("\nPARSED (list of dicts):")
for segment in parsed:
print(segment)
transcription = processor.decode(generated_ids, return_format="transcription_only")
print("\nTRANSCRIPTION ONLY:", transcription[0])
"""
RAW OUTPUT: ["[0.48][S01] Hey everyone, welcome back to the show.[2.43][2.46][S01] Today, we're talking about the best way to learn a new skill.[5.22][5.43][S01] I'm here with Jordan to dig into it.[7.14][8.40][S02] Thanks for having me.[9.42][9.63][S02] My take is that consistency beats intensity every single time.[12.87][13.14][S01] That makes sense.[13.92][13.92][S01] Even 20 minutes a day adds up over a few months.[16.17][16.32][S02] Exactly, and writing down small wins keeps you motivated along the way.[19.62]"]
PARSED (list of dicts):
{'Start': 0.48, 'End': 2.43, 'Speaker': 1, 'Content': 'Hey everyone, welcome back to the show.'}
{'Start': 2.46, 'End': 5.22, 'Speaker': 1, 'Content': "Today, we're talking about the best way to learn a new skill."}
{'Start': 5.43, 'End': 7.14, 'Speaker': 1, 'Content': "I'm here with Jordan to dig into it."}
{'Start': 8.4, 'End': 9.42, 'Speaker': 2, 'Content': 'Thanks for having me.'}
{'Start': 9.63, 'End': 12.87, 'Speaker': 2, 'Content': 'My take is that consistency beats intensity every single time.'}
{'Start': 13.14, 'End': 13.92, 'Speaker': 1, 'Content': 'That makes sense.'}
{'Start': 13.92, 'End': 16.17, 'Speaker': 1, 'Content': 'Even 20 minutes a day adds up over a few months.'}
{'Start': 16.32, 'End': 19.62, 'Speaker': 2, 'Content': 'Exactly, and writing down small wins keeps you motivated along the way.'}
TRANSCRIPTION ONLY: Hey everyone, welcome back to the show. Today, we're talking about the best way to learn a new skill. I'm here with Jordan to dig into it. Thanks for having me. My take is that consistency beats intensity every single time. That makes sense. Even 20 minutes a day adds up over a few months. Exactly, and writing down small wins keeps you motivated along the way.
"""Özel istem ve sıcak kelimeler
apply_transcription_request, transkripsiyonu belirli terimlere (ör. özel isimler veya alanına özgü sözcükler) yönlendirmek için keywords parametresini kabul eder; bu parametre, sohbet şablonunda 热词列表: (“hotword list”) olarak görüntülenir. Ek bağlam sağlamak için bununla birlikte özel bir prompt da geçirilebilir.
Aşağıda, “Yorùbá” kelimesini içeren bir ses kaydını, bu kelimeyi anahtar kelime olarak geçirmekle geçirmemek arasında karşılaştırarak transkribe ediyoruz.
from transformers import AutoProcessor, AutoModelForCausalLM
model_id = "itazap/MOSS-Transcribe-Diarize-HF"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")
audio_url = "https://huggingface.co/datasets/itazap/audio_samples/resolve/main/languages_sample.wav"
# Without keywords
inputs = processor.apply_transcription_request(audio_url)
inputs = inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, do_sample=False, max_new_tokens=128)
transcription = processor.decode(outputs[:, inputs.input_ids.shape[1] :], return_format="transcription_only")
print(f"WITHOUT keywords: {transcription[0]}")
# With keywords
inputs = processor.apply_transcription_request(audio_url, keywords=["Mandarin", "Yorùbá"])
inputs = inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, do_sample=False, max_new_tokens=128)
transcription = processor.decode(outputs[:, inputs.input_ids.shape[1] :], return_format="transcription_only")
print(f"WITH keywords : {transcription[0]}")
"""
WITHOUT keywords: Let's talk about the most spoken languages in the world. Mandarin Chinese has the most native speakers, followed by Spanish, English, and Hindi. In West Africa, one of the most widely spoken languages is Yoruba, with over 50 million speakers.
WITH keywords : Let's talk about the most spoken languages in the world. Mandarin Chinese has the most native speakers, followed by Spanish, English, and Hindi. In West Africa, one of the most widely spoken languages is Yorùbá, with over 50 million speakers.
"""Sohbet şablonuyla gelişmiş kullanım
apply_transcription_request, yalnızca ses içeren bir kullanıcı turuna sahip bir sohbet şablonuna eşdeğerdir:
from transformers import AutoProcessor, AutoModelForCausalLM
model_id = "itazap/MOSS-Transcribe-Diarize-HF"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")
audio_url = "https://huggingface.co/datasets/itazap/audio_samples/resolve/main/intro_sample.wav"
conversation = [
{
"role": "user",
"content": [
{"type": "audio", "url": audio_url},
],
},
]
inputs = processor.apply_chat_template(
conversation,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
).to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, do_sample=False, max_new_tokens=128)
decoded = processor.decode(
outputs[:, inputs.input_ids.shape[1] :],
skip_special_tokens=True,
)
print(decoded)Toplu çıkarım
Bir ses listesi ve isteğe bağlı olarak eşleşen bir istem ve/veya anahtar kelime listesi geçirerek, tek bir çağrıda bir partiyi transkribe edin.
Bir örnekte bunu atlamak için bir girdiyi None olarak ayarlayın.
from transformers import AutoProcessor, AutoModelForCausalLM
model_id = "itazap/MOSS-Transcribe-Diarize-HF"
processor = AutoProcessor.from_pretrained(model_id)
# `from_pretrained` is used here for convenience, the model can also be built from a config directly.
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")
audio = [
"https://huggingface.co/datasets/itazap/audio_samples/resolve/main/intro_sample.wav",
"https://huggingface.co/datasets/itazap/audio_samples/resolve/main/languages_sample.wav",
]
keywords = [None, ["Mandarin", "Yorùbá"]]
inputs = processor.apply_transcription_request(audio, keywords=keywords)
inputs = inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, do_sample=False, max_new_tokens=128)
transcription = processor.decode(outputs[:, inputs.input_ids.shape[1] :], return_format="transcription_only")
print(transcription)Eğitim
Hedef transkripsiyonları, modelin zaman damgalı ve konuşmacı etiketli çıktı biçiminde, transcription ile apply_transcription_request fonksiyonuna iletin. Dönen labels, kaybı hesaplamak için kullanılır.
from transformers import AutoModelForCausalLM, AutoProcessor
model_id = "itazap/MOSS-Transcribe-Diarize-HF"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")
model.train()
audio_url = "https://huggingface.co/datasets/itazap/audio_samples/resolve/main/intro_sample.wav"
transcription = (
"[0.00][S01] Welcome to this demonstration of automatic speech recognition and speaker diarization using an "
"end-to-end transformer model.[7.47]"
)
inputs = processor.apply_transcription_request(audio_url, transcription=transcription)
inputs.to(model.device, dtype=model.dtype)
loss = model(**inputs).loss
print("Loss:", loss.item())
loss.backward()Torch derleme
Model, daha hızlı çıkarım/eğitim için derlenebilir. device_map="auto", ileri geçişi accelerate kancalarıyla sarmalar ve bu da tekrarlı yeniden derlemeye neden olur; bu nedenle modeli doğrudan tek bir cihaza yükleyin.
B200 üzerinde, 4'lük bir batch boyutu için ~2,1x hızlanma gözlemledik.
import time
import torch
from transformers import AutoProcessor, AutoModelForCausalLM
model_id = "itazap/MOSS-Transcribe-Diarize-HF"
num_warmup = 5
num_runs = 20
# Load processor + model
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id).to("cuda")
# Prepare static inputs
audio_url = "https://huggingface.co/datasets/itazap/audio_samples/resolve/main/intro_sample.wav"
inputs = processor.apply_transcription_request([audio_url] * 4).to(model.device, torch.bfloat16)
# Benchmark without compile
print("Warming up without compile...")
with torch.no_grad():
for _ in range(num_warmup):
_ = model(**inputs)
torch.accelerator.synchronize()
print("\nBenchmarking without torch.compile...")
torch.accelerator.synchronize()
start = time.time()
with torch.no_grad():
for _ in range(num_runs):
_ = model(**inputs)
torch.accelerator.synchronize()
no_compile_time = (time.time() - start) / num_runs
print(f"Average time without compile: {no_compile_time:.4f}s")
# Benchmark with compile
print("\nCompiling model...")
model = torch.compile(model)
print("Warming up with compile (includes graph capture)...")
with torch.no_grad():
for _ in range(num_warmup):
_ = model(**inputs)
torch.accelerator.synchronize()
print("\nBenchmarking with torch.compile...")
torch.accelerator.synchronize()
start = time.time()
with torch.no_grad():
for _ in range(num_runs):
_ = model(**inputs)
torch.accelerator.synchronize()
compile_time = (time.time() - start) / num_runs
print(f"Average time with compile: {compile_time:.4f}s")
speedup = no_compile_time / compile_time
print(f"\nSpeedup: {speedup:.2f}x")Otomatik regresif transkripsiyonda, torch.compile, model.forward fonksiyonunu doğrudan derlemek yerine bir CompileConfig nesnesi sağlayarak generate içindeki token başına ileri geçişleri hızlandırır.
import torch
from transformers import AutoProcessor, AutoModelForCausalLM, CompileConfig
model_id = "itazap/MOSS-Transcribe-Diarize-HF"
num_warmup = 3
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id).to("cuda")
audio_url = "https://huggingface.co/datasets/itazap/audio_samples/resolve/main/intro_sample.wav"
inputs = processor.apply_transcription_request([audio_url] * 4).to(model.device, torch.bfloat16)
compile_config = CompileConfig()
# Warmup
for _ in range(num_warmup):
_ = model.generate(**inputs, max_new_tokens=128, cache_implementation="static", compile_config=compile_config)
# Apply model
generated_ids = model.generate(
**inputs, max_new_tokens=128, cache_implementation="static", compile_config=compile_config
)
transcription = processor.decode(generated_ids[:, inputs.input_ids.shape[1] :], return_format="transcription_only")
print(transcription)MossTranscribeDiarizeConfig
sınıf transformers.MossTranscribeDiarizeConfig
< source >( 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 = 151671projector_hidden_act: str = 'silu'projector_bias: bool = Trueaudio_merge_size: int = 4audio_chunk_size: int = 480000tie_word_embeddings: bool = True )
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ılan151671) — Girdi sesinin yer tutucusu olarak kullanılan ses belirteç dizini. - projector_hidden_act (
str, isteğe bağlı, varsayılansilu) — Çok modlu projektör tarafından kullanılan aktivasyon fonksiyonu. - projector_bias (
bool, isteğe bağlı, varsayılanTrue) — Çok modlu projeksiyonda sapma (bias) kullanılıp kullanılmayacağı. - audio_merge_size (
int, isteğe bağlı, varsayılan 4) — Çok modlu projeksiyoncuya bağlanmadan önce ardışık olarak birleştirilen Whisper kodlayıcı çerçevelerinin sayısı. - audio_chunk_size (
int, isteğe bağlı, varsayılan 480000) —padding_maskileaudio_chunk_mapping’i geri getirmek için kullanılan Whisper kodlayıcı pencere boyutu, ham ses örneklerinde. - tie_word_embeddings (
bool, isteğe bağlı, varsayılanTrue) — Modelintied_weights_keyseşlemesine göre ağırlık gömme bağlamalarının yapılıp yapılmayacağı.
Bu, bir MossTranscribeDiarizeModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Moss Transcribe Diarize modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, hf-audio/MOSS-Transcribe-Diarize-HF 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 MossTranscribeDiarizeForConditionalGeneration, MossTranscribeDiarizeConfig
>>> # Initializing a MossTranscribeDiarize configuration
>>> configuration = MossTranscribeDiarizeConfig()
>>> # Initializing a model from the configuration
>>> model = MossTranscribeDiarizeForConditionalGeneration(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configMossTranscribeDiarizeAudioConfig
sınıf transformers.MossTranscribeDiarizeAudioConfig
< source >( 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 = Nonenum_mel_bins: int = 80num_hidden_layers: int = 24num_attention_heads: int = 16intermediate_size: int = 4096activation_function: str = 'gelu'hidden_size: int = 1024dropout: float | int = 0.0attention_dropout: float | int = 0.0activation_dropout: float | int = 0.0initializer_range: float = 0.02max_source_positions: int = 1500 )
Parametreler
- num_mel_bins (
int, isteğe bağlı, varsayılan80) — Giriş başına kullanılan mel özellik sayısı.AutoFeatureExtractorsınıfında kullanılan değerle eşleşmelidir. - num_hidden_layers (
int, isteğe bağlı, varsayılan24) — Transformer çözücüdeki gizli katman sayısı. - num_attention_heads (
int, isteğe bağlı, varsayılan16) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı. - intermediate_size (
int, isteğe bağlı, varsayılan4096) — MLP temsillerinin boyutu. - activation_function (
str, isteğe bağlı, varsayılangelu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin,"gelu","relu","silu"vb. - hidden_size (
int, isteğe bağlı, varsayılan1024) — Gizli temsillerin boyutu. - dropout (
Union[float, int], isteğe bağlı, varsayılan0.0) — Tüm dropout katmanları için oran. - attention_dropout (
Union[float, int], isteğe bağlı, varsayılan0.0) — Dikkat olasılıkları için dropout oranı. - activation_dropout (
Union[float, int], isteğe bağlı, varsayılan0.0) — Tamamen bağlı katmandaki aktivasyonlar için dropout oranı. - initializer_range (
float, isteğe bağlı, varsayılan0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması. - max_source_positions (
int, isteğe bağlı, varsayılan 1500) — Bu modelin kullanılabileceği log-mel filtre bankası özelliklerinin maksimum dizi uzunluğu.
Bu, bir MossTranscribeDiarizeModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Moss Transcribe Diarize modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, hf-audio/MOSS-Transcribe-Diarize-HF 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 MossTranscribeDiarizeAudioConfig, MossTranscribeDiarizeAudioModel
>>> # Initializing a MossTranscribeDiarizeAudioConfig
>>> configuration = MossTranscribeDiarizeAudioConfig()
>>> # Initializing a MossTranscribeDiarizeAudioModel (with random weights)
>>> model = MossTranscribeDiarizeAudioModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configMossTranscribeDiarizeAudioModel
sınıf transformers.MossTranscribeDiarizeAudioModel
< source >( config: MossTranscribeDiarizeAudioConfig )
Parametreler
- config (MossTranscribeDiarizeAudioConfig) — 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.
Whisper kodlayıcısı olan MOSS-Transcribe-Diarize ses 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
< source >( input_featuresattention_mask = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
Parametreler
- input_features (
torch.Tensor, şekli(batch_size, feature_size, sequence_length)) — Ham ses dalgasından çıkarılan log-mel özellikleri, her 30 saniyelik Whisper penceresi için bir satır. Bkz. call(). - attention_mask (
torch.Tensor, isteğe bağlı) — MossTranscribeDiarize,input_featuresiçin maskelemeyi desteklemez; bu argüman uyumluluk için korunmuştur ancak kullanılmaz.
Dönüş değeri
BaseModelOutputWithPooling veya tuple(torch.Tensor)
A BaseModelOutputWithPooling veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (MossTranscribeDiarizeConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
MossTranscribeDiarizeAudioModel 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.pooler_output (
torch.Tensor, şekli(batch_size, hidden_size)) — Sıranın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, yardımcı ön eğitim görevi için kullanılan katmanlar üzerinden ek işlemden geçirildikten sonraki hali. Örneğin BERT ailesi modelleri için, bu, sınıflandırma token'ının doğrusal bir katman ve tanh aktivasyon fonksiyonu üzerinden işlenmesinden sonra döndürülen değerdir. Doğrusal katman ağırlıkları, ön eğitim sırasında bir sonraki cümle tahmini (sınıflandırma) hedefinden eğitilir.hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğ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=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğ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.
MossTranscribeDiarizeFeatureExtractor
sınıf transformers.MossTranscribeDiarizeFeatureExtractor
< source >( feature_size = 80sampling_rate = 16000hop_length = 160chunk_length = 30n_fft = 400padding_value = 0.0dither = 0.0return_attention_mask = False**kwargs )
Bir MOSS-Transcribe-Diarize özellik çıkarıcısı oluşturur.
Bu, chunk_length saniyeden uzun sesleri log-mel özellikleri çıkarılmadan önce ardışık Whisper penceresi parçalarına bölen ve her örneğin orijinal ham ses uzunluğunu padding_mask üzerinden raporlayan bir WhisperFeatureExtractor'dur (input_features_mask, parça başına geçerli çerçeveleri işaretler).
__call__
< source >( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]truncation: bool = Truepad_to_multiple_of: int | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonesampling_rate: int | None = Nonedevice: str | None = 'cpu'**kwargs ) → BatchFeature
Parametreler
- raw_speech (
np.ndarray,list[float],list[np.ndarray],list[list[float]]) — İşlenecek dizi veya dizi partisi. Yalnızca mono kanal ses. - truncation (
bool, isteğe bağlı, varsayılanTrue) — Hern_samplesuzunluğundaki parçayın_samplesuzunluğuna kısaltmak için kırpma işlemini etkinleştirir. - pad_to_multiple_of (
int, isteğe bağlı) — Belirlenirse, her parçanın ham sesini bu değerin katına yastıklar. - device (
str, isteğe bağlı, varsayılan"cpu") — Log-mel spektrogramu hesaplamak için kullanılan cihaz.
Dönüş değeri
input_features (log-mel özellikleri, parça başına bir satır), input_features_mask (parça başına geçerli çerçeve maskesi) ve padding_mask (geçerli ham örnek maskesi, girdi örneği başına bir satır) ile
Her ses örneğini ardışık n_samples uzunluğunda parçalara böler, parça başına log-mel özelliklerini çıkarır ve her örneğin orijinal ham ses uzunluğunu padding_mask üzerinden raporlar.
MossTranscribeDiarizeProcessor
sınıf transformers.MossTranscribeDiarizeProcessor
< source >( feature_extractor = Nonetokenizer = Nonechat_template: str | None = Noneaudio_token: str = '<|audio_pad|>'audio_bos_token: str = '<|audio_start|>'audio_eos_token: str = '<|audio_end|>'audio_tokens_per_second: float = 12.5audio_merge_size: int = 4time_marker_every_seconds: int = 2 )
Parametreler
- feature_extractor (
MossTranscribeDiarizeFeatureExtractor) — Özellik çıkarıcı zorunlu bir girdidir. - tokenizer (
Qwen2Tokenizer) — Tokenizer zorunlu bir girdidir. - chat_template (
str, isteğe bağlı) — Bir sohbet içindeki mesaj listelerini tokenize edilebilir bir dizeye dönüştürmek için kullanılan bir Jinja şablonu. - audio_token (
str, isteğe bağlı, varsayılan"<|audio_pad|>") — Sohbet şablonunda ses girdilerini temsil etmek için kullanılan özel token. - audio_bos_token (
str, isteğe bağlı, varsayılan"<|audio_start|>") — Sohbet şablonunda ses aralığının başlangıcını işaret eden özel token. - audio_eos_token (
str, isteğe bağlı, varsayılan"<|audio_end|>") — Sohbet şablonunda ses aralığının sonunu işaret eden özel token. - audio_tokens_per_second (
float, isteğe bağlı, varsayılan 12.5) — Giriş sesinin saniyesi başına beklenen ses yer tutucu token sayısı. - audio_merge_size (
int, isteğe bağlı, varsayılan 4) — Ses token sayısını hesaplamada kullanılan Whisper çerçeve birleştirme çarpanı. - time_marker_every_seconds (
int, isteğe bağlı, varsayılan 2) — Ses aralığına her N saniyede bir sayısal zaman işaretçisi jetonları ekler. Zaman işaretçilerini devre dışı bırakmak ve bunun yerine düz bir ses yer tutucu aralığı üretmek için0olarak ayarlayın.
Bir özellik çıkarıcıyı ve bir belirteçleyiciyi tek bir işlemciye saran bir MossTranscribeDiarizeProcessor oluşturur.
MossTranscribeDiarizeProcessor, MossTranscribeDiarizeFeatureExtractor ve Qwen2Tokenizer sınıflarının tüm işlevlerini sunar. Daha fazla bilgi için ~MossTranscribeDiarizeFeatureExtractor ve ~Qwen2Tokenizer belgelerine bakın.
__call__
< source >( text: str | list[str]audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = Noneoutput_labels: bool | None = False**kwargs: *<class 'transformers.models.moss_transcribe_diarize.processing_moss_transcribe_diarize.MossTranscribeDiarizeProcessorKwargs'> ) → BatchFeature
Parametreler
- text (
Union[str, 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çinis_split_into_words=Truedeğ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. - output_labels (
bool, isteğe bağlı, varsayılan=False) — Eğitim için etiketlerin döndürülüp döndürülmeyeceğini belirtir. - return_tensors (
strveya 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': PyTorchtorch.Tensornesnelerini döndürür.'np': NumPynp.ndarraynesnelerini 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
Tokenize edilmiş metin (input_ids, attention_mask) ve ses özelliklerini (input_values, padding_mask) içeren bir sözlük.
apply_chat_template
< source >( conversation: list[dict[str, str]] | list[list[dict[str, str]]]chat_template: str | None = Nonetools: list[dict] | None = Nonedocuments: list[dict[str, str]] | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool | str = Falsereturn_assistant_tokens_mask: bool = Falsetokenize: bool = Falsereturn_tensors: str | transformers.utils.generic.TensorType | None = 'auto'return_dict: bool = Falseload_audio_from_video: bool = Falseprocessor_kwargs: dict | None = None**kwargs )
apply_chat_template yönteminde olduğu gibi, bu yöntem girdi konuşmalarına bir Jinja şablonu uygulayarak onları tek bir tokenize edilebilir dizeye dönüştürür.
Girdinin aşağıdaki formatta olması beklenir; burada her mesaj içeriği, metin ve isteğe bağlı olarak görüntü veya video girdilerinden oluşan bir listedir. Ayrıca, return_dict=True olduğunda pixel_values oluşturmak için kullanılacak bir görüntü, video, URL veya yerel yol da sağlanabilir. Sağlanmazsa, yalnızca biçimlendirilmiş metin, isteğe bağlı olarak tokenize edilmiş metin alınır.
conversation = [ { “role”: “user”, “content”: [ {“type”: “image”, “url”: “https://www.ilankelman.org/stopsigns/australia.jpg”}, {“type”: “text”, “text”: “Please describe this image in detail.”}, ], }, ]
apply_transcription_request
< source >( audio: typing.Union[str, list[str], numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]prompt: str | list[str] | None = Nonekeywords: str | list[str] | list[list[str]] | None = Nonetranscription: str | list[str] | None = Nonetokenize: bool = True**kwargs: *<class 'transformers.models.moss_transcribe_diarize.processing_moss_transcribe_diarize.MossTranscribeDiarizeProcessorKwargs'> )
Parametreler
- audio (
str,list[str],np.ndarray,torch.Tensor,list[np.ndarray],list[torch.Tensor]) — Transkribe edilecek ses. Dizgiler yerel yollar veya URL'ler olarak yorumlanır ve sohbet şablonu yükleyicisi tarafından otomatik olarak yüklenir; NumPy dizileri ve PyTorch tensörleri doğrudan iletilir. - prompt (
strveyalist[str], isteğe bağlı) — Kullanıcı turuna dahil edilecek özel istem(ler). Bir liste, partinin uzunluğuyla aynı uzunlukta olmalıdır.Noneolduğunda, sohbet şablonu varsayılan zaman damgalı konuşmacı ayırt etme istemini sağlar. - keywords (
str,list[str]veyalist[list[str]], isteğe bağlı) — Transkripsiyonu doğru yazıma yönlendirmek için kullanılan hotword/domain terimleri (ör. özel isimler). Bir string veya düz string listesi, batch içinde paylaşılan anahtar kelimeleri belirtir; iç içe listeler ise her ses örneği için ayrı anahtar kelimeler sağlar. - transcription (
strveyalist[str], isteğe bağlı) — Eğitim için hedef transkript(ler), her ses için bir adet, modelin çıktı biçiminde (ör."[0.00][S01] Hello world.[1.20]"). Verildiğinde, her transkript asistan turu olarak yazılır velabelsdöndürülür (bkz. call() içindekioutput_labels). - tokenize (
bool, isteğe bağlı, varsayılanTrue) — İfadelerin (prompts) tokenize edilip edilmeyeceğini ve sesin işlenip işlenmeyeceğini belirler.Falseise ses yüklenmez ve ifadeler, genişletilmemiş ses yer tutucuları (placeholders) içeren dizgeler olarak döndürülür. Bunları sesle birlikte işlemciye (processor) iletirseniz,processor(text=prompts, audio=audio),tokenize=Trueile aynı çıktıları verir. - **kwargs —
apply_chat_template() işlevine iletilecek ek anahtar kelime argümanları.
İşleyici anahtar kelime argümanları (örneğin
text_kwargs,audio_kwargs, …)processor_kwargs={...}olarak geçirilmelidir.
transcription verildiğinde eğitim için ya da çıkarım için, sohbet şablonunu elle yazmadan transkripsiyon/diyarizasyon için girdileri hazırlar.
MossTranscribeDiarizeModel
sınıf transformers.MossTranscribeDiarizeModel
< source >( config: MossTranscribeDiarizeConfig )
Parametreler
- config (MossTranscribeDiarizeConfig) — 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.
MOSS-Transcribe-Diarize modeli: Whisper encoder, 4x zaman birleştirme, çok modlu projector ve Qwen3 dil 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
< source >( 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] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonepadding_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MossTranscribeDiarizeModelOutputWithPast 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.
- 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 MossTranscribeDiarizeFeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için MossTranscribeDiarizeFeatureExtractor.call() bölümüne bakın (MossTranscribeDiarizeProcessor, sesleri işlemek için MossTranscribeDiarizeFeatureExtractor kullanır). - input_features_mask (
torch.Tensor, şekli(num_chunks, feature_sequence_length), isteğe bağlı) —input_featuresiçindeki her parçalanmış log-mel özellik satırı için bir satır içeren, geçerli (dolgu olmayan) özellik indekslerini işaretleyen maske. Her parçanın geçerli kodlayıcı çıktı uzunluğunu hesaplamak için kullanılır. - attention_mask (
torch.Tensor, şekli(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapılmaması için kullanılan maske. Dil modeline olduğu gibi iletilir. - inputs_embeds (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) —input_idsyerine geçirilen, önceden hesaplanmış gömme değerleri.input_featuresde verildiğinde, ses yer tutucu konumlarınıninputs_embedsiçinde bulunabilmesi ve ses gömme değerleriyle doldurulabilmesi içininput_idshâlâ gereklidir. - padding_mask (
torch.Tensor, şekli(batch_size, max_audio_length), isteğe bağlı) — Her ses örneğinin geçerli ham ses uzunluğunu işaretleyen maske.audio_chunk_mappingdeğerini geri getirmek içinconfig.audio_chunk_sizeile birlikte kullanılır.
Dönüş değeri
MossTranscribeDiarizeModelOutputWithPast veya tuple(torch.Tensor)
MossTranscribeDiarizeModelOutputWithPast veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (MossTranscribeDiarizeConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
MossTranscribeDiarizeModel 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_valueskullanı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=Truegeçirildiğinde veyaconfig.use_cache=Trueolduğ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_valuesgirdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler ve isteğe bağlı olarakconfig.is_encoder_decoder=Trueise cross-attention bloklarındaki anahtar ve değerler) içerir.hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğ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=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğ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ı.
get_audio_features
< source >( input_features: Tensorinput_features_mask: Tensorpadding_mask: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
Parametreler
- input_features (
torch.Tensor, şekli(batch_size, sequence_length, feature_dim)) — Giriş ses özelliklerine karşılık gelen tensörler. Ses özellikleri MossTranscribeDiarizeFeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için MossTranscribeDiarizeFeatureExtractor.call() bölümüne bakınız (MossTranscribeDiarizeProcessor, sesleri işlemek için MossTranscribeDiarizeFeatureExtractor kullanır). - input_features_mask (
torch.Tensor, şekli(num_chunks, feature_sequence_length)) —input_featuresiçindeki her parçalanmış log-mel özellik satırı için bir satır içeren, geçerli (dolgulu olmayan) özellik indekslerini işaretleyen maske. Her parçanın geçerli kodlayıcı çıktı uzunluğunu hesaplamak için kullanılır. - padding_mask (
torch.Tensor, şekli(batch_size, max_audio_length)) — Her ses örneğinin geçerli ham ses uzunluğunu işaretleyen maske, örneğe satır başına.config.audio_chunk_sizeile birlikteaudio_chunk_mappingdeğerini geri getirmek için kullanılır.
Dönüş değeri
BaseModelOutputWithPooling veya tuple(torch.Tensor)
A BaseModelOutputWithPooling veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (MossTranscribeDiarizeConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
MOSS ses gömme değerlerini log-mel özelliklerinden çıkarın ve örnek başına çok parçalı sesleri yeniden birleştirin.
last_hidden_state (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.pooler_output (
torch.Tensor, şekli(batch_size, hidden_size)) — Sıranın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, yardımcı ön eğitim görevi için kullanılan katmanlar üzerinden ek işlemden geçirildikten sonraki hali. Örneğin BERT ailesi modelleri için, bu, sınıflandırma token'ının doğrusal bir katman ve tanh aktivasyon fonksiyonu üzerinden işlenmesinden sonra döndürülen değerdir. Doğrusal katman ağırlıkları, ön eğitim sırasında bir sonraki cümle tahmini (sınıflandırma) hedefinden eğitilir.hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğ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=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğ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.
MossTranscribeDiarizeForConditionalGeneration
sınıf transformers.MossTranscribeDiarizeForConditionalGeneration
< source >( config: MossTranscribeDiarizeConfig )
Parametreler
- config (MossTranscribeDiarizeConfig) — 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.
Transkripsiyon ve konuşmacı ayrımı ile koşullu üretim için MOSS-Transcribe-Diarize 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
< source >( 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] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0padding_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MossTranscribeDiarizeCausalLMOutputWithPast 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.
- 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 MossTranscribeDiarizeFeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için MossTranscribeDiarizeFeatureExtractor.call() bölümüne bakın (MossTranscribeDiarizeProcessor, sesleri işlemek için MossTranscribeDiarizeFeatureExtractor kullanır). - input_features_mask (
torch.Tensor, şekli(num_chunks, feature_sequence_length), isteğe bağlı) —input_featuresiçindeki her parçalanmış log-mel özellik satırı için bir satır içeren, geçerli (dolgu olmayan) özellik indekslerini işaretleyen maske. Her parçanın geçerli kodlayıcı çıktı uzunluğunu hesaplamak için kullanılır. - attention_mask (
torch.Tensor, şekli(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapılmaması için kullanılan maske. Dil modeline olduğu gibi iletilir. - 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 genelliklepast_key_valuesdeğerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülenuse_cache=Trueveyaconfig.use_cache=True.Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın.
past_key_valuesgeçirilmezse, varsayılan olarak DynamicCache başlatılır.Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.
past_key_valueskullanılıyorsa, kullanıcının tüminput_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ı) —input_idsyerine geçirilen, önceden hesaplanmış gömme değerleri.input_featuresde verildiğinde, ses yer tutucu konumlarınıninputs_embedsiçinde bulunabilmesi ve ses gömme değerleriyle doldurulabilmesi içininput_idshâlâ gereklidir. - labels (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — Maskeli dil modelleme kaybını hesaplamak için etiketler. - logits_to_keep (
Union[int, torch.Tensor], isteğe bağlı, varsayılan0) —intise, sonlogits_to_keeptoken için logits hesaplanır.0ise, tüminput_idsiç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.Tensorise, 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. - padding_mask (
torch.Tensor, şekli(batch_size, max_audio_length), isteğe bağlı) — Her ses örneğinin geçerli ham ses uzunluğunu işaretleyen maske.audio_chunk_mappingdeğerini geri getirmek içinconfig.audio_chunk_sizeile birlikte kullanılır.
Dönüş değeri
MossTranscribeDiarizeCausalLMOutputWithPast veya tuple(torch.Tensor)
MossTranscribeDiarizeCausalLMOutputWithPast veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (MossTranscribeDiarizeConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
MossTranscribeDiarizeForConditionalGeneration 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ı,labelssağ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=Truegeçirildiğinde veyaconfig.use_cache=Trueolduğunda döndürülür) — Bir Cache örneğidir.hidden_states (
tuple[torch.Tensor], isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğ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=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğ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 MossTranscribeDiarizeForConditionalGeneration, AutoProcessor
>>> model_id = "hf-audio/MOSS-Transcribe-Diarize-HF"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = MossTranscribeDiarizeForConditionalGeneration.from_pretrained(model_id, device_map="auto")
>>> inputs = processor.apply_transcription_request("https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/bcn_weather.mp3")
>>> inputs = inputs.to(model.device, dtype=model.dtype)
>>> outputs = model.generate(**inputs, do_sample=False, max_new_tokens=500)
>>> processor.batch_decode(outputs[:, inputs.input_ids.shape[1] :], skip_special_tokens=True)