Transformers documentation
Qwen4-Exp
Bu model, 2026-08-26 tarihinde Hugging Face Transformers'a katkıda bulunulmuştur.
Qwen4-Exp
Qwen4-Exp, Qwen3.5'in hibrit metin ve çok modlu mimarisinin üzerine inşa edilmiştir ve üç ana bileşen içerir: GatedResidual (GR), Qwen Sparse Attention (QSA) ve Per-Layer Embedding (PLE).
GR, Qwen tarafından geliştirilen, Hyper-Connection ile GatedNorm'u birleştiren bir artımsal mimaridir. Her dikkat ve Mixture-of-Experts (MoE) bloğundan önce birden fazla artımsal akışı ince taneli eleman bazlı kapılamayla karıştırır, ardından blok çıktısının her akışa ne kadar geri enjekte edileceğini kontrol eder.
QSA, sıkıştırılmış anahtar bloklarını puanlamak için birden çok sorgu başlığı kullanır, en alakalı ardışık token bloklarını seçer ve eksik kalan son bloğu sıkıştırılmamış olarak tutar. Bu blok düzeyinde seçim, dizinleme yükünü azaltır ve uzun diziler için bellek yerelliğini iyileştirir. Gated DeltaNet ile birleştirildiğinde QSA, Qwen4-Exp'yi doğrusal ve seyrek dikkati birleştiren ilk hibrit mimari haline getirir ve uzun bağlam iş yükleri için çıkarım verimliliğini önemli ölçüde artırır.
PLE, hashlenmiş token n-gramlarından ve seyreltilmiş derinlik içi konvolüsyondan türetilen katman bazlı sözlüksel özelliklerle seçili decoder katmanlarını zenginleştirir.
Kullanım ipuçları
ple_layer_ids, bir tabanlı (one-based) decoder katman indeksleri kullanır. PLE etkinleştirildiğinde ve modeleinputs_embedsiletildiğinde, orijinal token kimlikleriniple_input_idsüzerinden iletin.input_idssağlanırsa, model bunları PLE için otomatik olarak kullanır.Önbelleğe alınmış üretim sırasında PLE, hem n-gram bağlamını hem de seyreltilmiş konvolüsyon durumunu korur. DynamicCache önerilen varsayılandır ve StaticCache de desteklenir. PLE veya QSA etkinleştirildiğinde önbellek kırpma desteklenmez. Önbellek aktarımı (offloading) kullanıldığında GatedDeltaNet, PLE ve QSA indeksleyici durumları cihazda kalırken dikkat anahtar/değer (key/value) durumları aktarılır.
split_ngram_parts, her büyük PLE n-gram gömme tablosu için mantıksal kontrol noktası parçalarını kontrol eder. Transformers, bu parçaları çalışma zamanı ağırlığını oluşturmak için sözlük boyutu boyunca birleştirir. Varsayılansave_pretrained(save_original_format=True), yapılandırılmış orijinal parçalı yerleşimi yazar.hc_count, artımsal akışların sayısını belirler;hc_lowrankise öğrenilen GR giriş karıştırıcısının derecesini belirler.QSA indeksleyici alanlarının tam setinin sağlanması, tam dikkat katmanlarında seyrek token seçimini mümkün kılar. Eager ve SDPA dikkati desteklenir; istenen diğer arka uçlar eager'a geri düşer. Token seçimi veriye bağımlı olduğu için otomatik derleme (compilation) devre dışı bırakılır.
tp_plan="auto", PLE tablolarında dikkat, MoE, GatedDeltaNet, QSA, GR ve sözlük satırı parçalamasını destekler. Özel yapılandırmalarda, parçalanmış dikkat başları, QSA ve GatedDeltaNet projeksiyon boyutları, GR akış genişliği, uzman boyutları ve dolgulu PLE sözlüğü, TP boyutuna tam bölünebilir olmalıdır. Kopyalanmış düşük-rank GR çıktısı, bölünebilirlik kısıtlaması eklemez.FSDP2, token gömme ve decoder katmanlarını parçalara ayırırken son GR karıştırıcısını toplanmış (gathered) olarak tutar. TP ve FSDP şu anda bir arada kullanılamamaktadır ve bir pipeline-parallel planı sunulmamaktadır.
Sadece metin üretimi için Qwen4ExpForCausalLM sınıfını Qwen4ExpTextConfig ile kullanın. Çok modlu girdiler için Qwen4ExpForConditionalGeneration sınıfını Qwen4ExpConfig ile kullanın.
Toplu üretim için sol dolguyu kullanın. Dolgu tarafı bölümüne bakın.
Qwen4ExpConfig
sınıf transformers.Qwen4ExpConfig
< 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 = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonevision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneimage_token_id: int = 248056video_token_id: int = 248057vision_start_token_id: int = 248053vision_end_token_id: int = 248054tie_word_embeddings: bool = False )
Parametreler
- text_config (
Union[dict, ~configuration_utils.PreTrainedConfig], isteğe bağlı) — Metin omurgasının yapılandırma nesnesi veya sözlüğü. - vision_config (
Union[dict, ~configuration_utils.PreTrainedConfig], isteğe bağlı) — Görüntü omurgasının yapılandırma nesnesi veya sözlüğü. - image_token_id (
int, isteğe bağlı, varsayılan248056) — Girdi görselleri için yer tutucu olarak kullanılan görsel jeton indeksi. - video_token_id (
int, isteğe bağlı, varsayılan248057) — Girdi videoları için yer tutucu olarak kullanılan video belirteç dizini. - vision_start_token_id (
int, isteğe bağlı, varsayılan248053) — Çok modlu giriş dizisindeki görsel segmentin başlangıcını işaret eden token kimliği. - vision_end_token_id (
int, isteğe bağlı, varsayılan248054) — Çok modlu giriş dizisindeki bir görsel segmentin sonunu işaretleyen token kimliği. - tie_word_embeddings (
bool, isteğe bağlı, varsayılanFalse) — Modelintied_weights_keyseşlemesine göre ağırlık gömme bağlamalarının yapılıp yapılmayacağı.
Bu, bir Qwen4ExpModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Qwen4 Exp modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, Qwen/Qwen4-Exp ile 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.
Qwen4ExpTextConfig
sınıf transformers.Qwen4ExpTextConfig
< 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 = Nonevocab_size: int = 248320hidden_size: int = 2048num_hidden_layers: int = 40num_attention_heads: int = 16num_key_value_heads: int = 2hidden_act: str = 'silu'max_position_embeddings: int = 32768initializer_range: float = 0.02rms_norm_eps: float = 1e-06use_cache: bool = Truetie_word_embeddings: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneattention_bias: bool = Falseattention_dropout: float | int = 0.0head_dim: int = 256linear_conv_kernel_dim: int = 4linear_key_head_dim: int = 128linear_value_head_dim: int = 128linear_num_key_heads: int = 16linear_num_value_heads: int = 32moe_intermediate_size: int = 512shared_expert_intermediate_size: int = 512num_experts_per_tok: int = 10num_experts: int = 512output_router_logits: bool = Falserouter_aux_loss_coef: float = 0.001layer_types: list[str] | None = Nonepad_token_id: int | None = Nonebos_token_id: int | None = Noneeos_token_id: int | list[int] | None = Nonehc_count: int = 4hc_lowrank: int = 320ple_layer_ids: list[int] | None = Noneple_embed_dim: int | None = Noneple_conv_kernel_size: int = 4ngram_size: int = 3heads_per_ngram: int = 8ngram_vocab_size_base: int = 20000000make_ngram_vocab_size_divisible_by: int = 128seed: int = 1234split_ngram_parts: int = 512indexer_n_heads: int | None = Noneindexer_kv_heads: int | None = Noneindexer_head_dim: int | None = Noneindexer_budget: int | None = Noneindexer_compress_ratio: int | None = Nonenorm_topk_prob: bool = Trueoutput_gate_type: str | None = None )
Parametreler
- vocab_size (
int, isteğe bağlı, varsayılan248320) — Modelin sözlük boyutu.input_idsile temsil edilebilecek farklı token sayısını belirler. - hidden_size (
int, isteğe bağlı, varsayılan2048) — Gizli temsillerin boyutu. - num_hidden_layers (
int, isteğe bağlı, varsayılan40) — 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ı. - num_key_value_heads (
int, isteğe bağlı, varsayılan2) — Bu, Grouped Query Attention uygulamasında kullanılacak key_value başlarının sayısıdır.num_key_value_heads=num_attention_headsise model Multi Head Attention (MHA) kullanır,num_key_value_heads=1ise model Multi Query Attention (MQA) kullanır, aksi halde GQA kullanılır. Çok başlı bir checkpoint'i GQA checkpoint'ine dönüştürürken, her grup key ve value başı, o gruptaki tüm orijinal başların ortalama havuzlanması (meanpooling) ile oluşturulmalıdır. Daha fazla ayrıntı için bu makaleye göz atın. Belirtilmezse, varsayılan olaraknum_attention_headskullanılır. - hidden_act (
str, isteğe bağlı, varsayılansilu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin,"gelu","relu","silu"vb. - max_position_embeddings (
int, isteğe bağlı, varsayılan32768) — Bu modelin kullanılabileceği en uzun dizi uzunluğu. - 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ı. - rms_norm_eps (
float, isteğe bağlı, varsayılan1e-06) — rms normalizasyon katmanları tarafından kullanılan epsilon. - use_cache (
bool, isteğe bağlı, varsayılanTrue) — Modelin son anahtar/değer dikkatlerini (tüm modellerde kullanılmaz) döndürüp döndürmeyeceği. Yalnızcaconfig.is_decoder=Trueolduğunda veya model yalnızca çözücü tabanlı üretken bir model olduğunda geçerlidir. - tie_word_embeddings (
bool, isteğe bağlı, varsayılanFalse) — Modelintied_weights_keyseşlemesine göre ağırlık gömme bağlamalarının yapılıp yapılmayacağı. - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], isteğe bağlı) — RoPE gömme yapılandırma parametrelerini içeren sözlük. Sözlük,rope_thetaiçin bir değer ve daha uzunmax_position_embeddingsile RoPE kullanmak istiyorsanız ölçekleme için kullanılan isteğe bağlı parametreleri içermelidir. - attention_bias (
bool, isteğe bağlı, varsayılanFalse) — Öz-dikkat sırasında sorgu, anahtar, değer ve çıktı projeksiyon katmanlarında önyargı (bias) kullanılıp kullanılmayacağı. - attention_dropout (
Union[float, int], isteğe bağlı, varsayılan0.0) — Dikkat olasılıkları için dropout oranı. - head_dim (
int, isteğe bağlı, varsayılan256) — Dikkat başlığı boyutu. None ise, varsayılan olarak hidden_size // num_attention_heads değerini alır. - linear_conv_kernel_dim (
int, isteğe bağlı, varsayılan 4) — Doğrusal dikkat katmanlarında kullanılan konvolüsyonun çekirdek boyutu. - linear_key_head_dim (
int, isteğe bağlı, varsayılan 128) — Doğrusal dikkat (linear attention) içindeki her anahtar başının (key head) boyutu. - linear_value_head_dim (
int, isteğe bağlı, varsayılan 128) — Doğrusal dikkat (linear attention) içindeki her değer başlığının (value head) boyutu. - linear_num_key_heads (
int, isteğe bağlı, varsayılan 16) — Doğrusal dikkat katmanlarında kullanılan anahtar başlarının sayısı. - linear_num_value_heads (
int, isteğe bağlı, varsayılan 32) — Doğrusal dikkat katmanlarında kullanılan değer başlarının sayısı. - moe_intermediate_size (
int, isteğe bağlı, varsayılan512) — Yönlendirilen uzman MLP'lerinin ara boyutu. - shared_expert_intermediate_size (
int, isteğe bağlı, varsayılan512) — Paylaşılan uzman MLP'lerinin ara boyutu. - num_experts_per_tok (
int, isteğe bağlı, varsayılan10) — Her token'ın yönlendirileceği uzman sayısı. Bu, token seçimli yönlendirmede top-k değeridir. - num_experts (
int, isteğe bağlı, varsayılan512) — MoE katmanlarındaki yönlendirilen uzman sayısı. - output_router_logits (
bool, isteğe bağlı, varsayılanFalse) — Modelin router logits'lerini döndürüp döndürmeyeceği. Bu özelliğin etkinleştirilmesi, modelin yük dengeleme kaybı ve router z-kaybı dahil olmak üzere yardımcı kaybı da çıkarmasına olanak tanır. - router_aux_loss_coef (
float, isteğe bağlı, varsayılan0.001) — Yardımcı yük dengeleme kaybı katsayısı. MoE modellerinde dengesiz uzman yönlendirmesini cezalandırmak için kullanılır. - layer_types (
list[str], isteğe bağlı) — Her katman indeksini ilgili katman türüyle açıkça eşleyen bir liste. Sağlanmazsa, config değerlerine göre otomatik olarak oluşturulur. - pad_token_id (
int, isteğe bağlı) — Sözlükte dolgu için kullanılan token kimliği. - bos_token_id (
int, isteğe bağlı) — Sözlükte akış başlangıcı için kullanılan token kimliği. - eos_token_id (
Union[int, list[int]], isteğe bağlı) — Sözlükte akış sonu için kullanılan token kimliği. - hc_count (
int, isteğe bağlı, varsayılan 4) — Hyper-connections tarafından kullanılan artımsal akışların sayısı. - hc_lowrank (
int, isteğe bağlı, varsayılan 320) — Öğrenilen hiper-bağlantı giriş karıştırıcısının rütbesi. - ple_layer_ids (
list[int], isteğe bağlı) — Per-Layer Embedding (PLE) kullanan, bir tabanlı (one-indexed) decoder katman kimlikleri. - ple_embed_dim (
int, isteğe bağlı) — Her PLE modülünde tüm n-gram başlarından birleştirilen gömme (embedding) katmanlarının toplam boyutu. Varsayılan değerihidden_size'dir. - ple_conv_kernel_size (
int, isteğe bağlı, varsayılan 4) — Her PLE modülündeki seyreltilmiş derinlik boyutlu konvolüsyonun çekirdek boyutu. - ngram_size (
int, isteğe bağlı, varsayılan 3) — PLE tarafından temsil edilen en büyük token n-gram'ı. - heads_per_ngram (
int, isteğe bağlı, varsayılan 8) — Her n-gram derecesi için bağımsız olarak hash'lenmiş gömme başlarının sayısı. - ngram_vocab_size_base (
int, isteğe bağlı, varsayılan 20000000) — Her hash'li n-gram başı için ayrı bir asal sözlük boyutu türetmek için kullanılan alt sınır. - make_ngram_vocab_size_divisible_by (
int, isteğe bağlı, varsayılan 128) — Birleştirilmiş n-gram gömme sözlüğünü doldurmak için kullanılan bölen. - seed (
int, isteğe bağlı, varsayılan 1234) — Katman başına n-gram çarpanlarını deterministik olarak türetmek için kullanılan tohum. - split_ngram_parts (
int, isteğe bağlı, varsayılan 512) — Her PLE n-gram gömme tablosu için kullanılan checkpoint parçası sayısı. Yükleme işlemi parçaları tek bir çalışma zamanı gömmesine birleştirirken,save_pretrainedyapılandırılmış parçalı düzeni geri yükler. - indexer_n_heads (
int, isteğe bağlı) — QSA token indeksleyicisi tarafından kullanılan sorgu başlarının sayısı. Bu değeri ayarlamak, tam dikkat katmanlarında QSA'yı etkinleştirir. - indexer_kv_heads (
int, isteğe bağlı) — Indexer anahtar başlarının sayısı. Qwen4-Exp QSA tek bir anahtar başı gerektirir. - indexer_head_dim (
int, isteğe bağlı) — Her QSA indexer sorgu ve anahtar başlığının boyutu. - indexer_budget (
int, isteğe bağlı) — Her sorgu için tam sıkıştırılmış bloklardan seçilen maksimum token sayısı. - indexer_compress_ratio (
int, isteğe bağlı) — Bir QSA indeks bloğuna ortalanan ardışık token anahtarlarının sayısı. - norm_topk_prob (
bool, isteğe bağlı, varsayılanTrue) — Yönlendirilen uzmanların ağırlıklarının normalize edilip edilmeyeceği. - output_gate_type (
str, isteğe bağlı) — Doğrusal dikkat (linear attention) çıktı kapısında kullanılan aktivasyon. Ayarlanmamışsahidden_actkullanılır.
Bu, bir Qwen4ExpModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Qwen4 Exp modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, Qwen/Qwen4-Exp ile 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.
@strict destekli doğrulamanın bir parçasıdır. Qwen4-Exp mimari sabitlerini doğrular.
Qwen4ExpVisionConfig
sınıf transformers.Qwen4ExpVisionConfig
< 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 = Nonedepth: int = 27hidden_size: int = 1152hidden_act: str = 'gelu_pytorch_tanh'intermediate_size: int = 4304num_heads: int = 16in_channels: int = 3patch_size: int | list[int] | tuple[int, int] = 16spatial_merge_size: int = 2temporal_patch_size: int | list[int] | tuple[int, int] = 2out_hidden_size: int = 3584num_position_embeddings: int = 2304initializer_range: float = 0.02rope_parameters: dict | None = None )
Parametreler
- depth (
int, isteğe bağlı, varsayılan27) — Görüntü kodlayıcıdaki Transformer katmanlarının sayısı. - hidden_size (
int, isteğe bağlı, varsayılan1152) — Gizli temsillerin boyutu. - hidden_act (
str, isteğe bağlı, varsayılangelu_pytorch_tanh) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin,"gelu","relu","silu"vb. - intermediate_size (
int, isteğe bağlı, varsayılan4304) — MLP temsillerinin boyutu. - num_heads (
int, isteğe bağlı, varsayılan16) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı. - in_channels (
int, isteğe bağlı, varsayılan3) — Giriş kanal sayısı. - patch_size (
Union[int, list[int], tuple[int, int]], isteğe bağlı, varsayılan16) — Her yamanın boyutu (çözünürlüğü). - spatial_merge_size (
int, isteğe bağlı, varsayılan2) — Komşu yamaları birleştirerek görsel jeton sayısını azaltmak için kullanılan uzamsal birleştirme penceresinin boyutu. - temporal_patch_size (
Union[int, list[int], tuple[int, int]], isteğe bağlı, varsayılan2) — Video girdileri için 3D yama gömümünde kullanılan zamansal yama boyutu. - out_hidden_size (
int, isteğe bağlı, varsayılan 3584) — Görüntü modelinin çıktı gizli boyutu. - num_position_embeddings (
int, isteğe bağlı, varsayılan 2304) — Bu modelin kullanılabileceği en büyük dizi uzunluğu - 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ı. - rope_parameters (
dict, isteğe bağlı) — RoPE gömme yapılandırma parametrelerini içeren sözlük. Sözlük,rope_thetaiçin bir değer ve daha uzunmax_position_embeddingsile RoPE kullanmak istiyorsanız ölçekleme için kullanılan isteğe bağlı parametreleri içermelidir.
Bu, bir Qwen4ExpModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Qwen4 Exp modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, Qwen/Qwen4-Exp ile 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.
Qwen4ExpVisionModel
sınıf transformers.Qwen4ExpVisionModel
< source >( config: Qwen4ExpVisionConfig*inputs**kwargs )
Parametreler
- config (Qwen4ExpVisionConfig) — 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.
Üzerinde herhangi bir özel head olmadan ham hidden-states üreten çıplak Qwen4 Exp Model.
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 >( hidden_states: Tensorgrid_thw: Tensor**kwargs ) → torch.Tensor
Qwen4ExpTextModel
sınıf transformers.Qwen4ExpTextModel
< source >( config: Qwen4ExpTextConfig )
Parametreler
- config (Qwen4ExpTextConfig) — 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.
Üzerinde herhangi bir özel head bulunmayan, ham hidden-states üreten çıplak Qwen4 Exp Text Model.
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] = 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 = Noneple_input_ids: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast 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.
- 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.
- 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]. - 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ı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini 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ı) —Trueolarak ayarlanırsa,past_key_valuesanahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz.past_key_values). - ple_input_ids (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — Per-Layer Embedding (PLE) tarafından kullanılan orijinal token kimlikleri. Bu, yalnızca PLE etkinleştirildiğinde veinput_idsyerineinputs_embedsgeçirildiğinde gereklidir.
Dönüş değeri
BaseModelOutputWithPast veya tuple(torch.Tensor)
Bir BaseModelOutputWithPast veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (Qwen4ExpConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Qwen4ExpTextModel 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.
Qwen4ExpModel
sınıf transformers.Qwen4ExpModel
< source >( config: Qwen4ExpConfig )
Parametreler
- config (Qwen4ExpConfig) — 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.
Üzerinde herhangi bir özel head olmadan ham hidden-states üreten çıplak Qwen4 Exp Model.
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: LongTensor = 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] = Nonepixel_values: typing.Optional[torch.Tensor] = Nonepixel_values_videos: typing.Optional[torch.Tensor] = Noneimage_grid_thw: typing.Optional[torch.LongTensor] = Nonevideo_grid_thw: typing.Optional[torch.LongTensor] = Nonemm_token_type_ids: typing.Optional[torch.IntTensor] = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MoeModelOutputWithPast 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.
- 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.
- 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]. - 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ı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini 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. - pixel_values (
torch.Tensor, şekli(batch_size, num_channels, image_size, image_size), isteğe bağlı) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri Qwen2VLImageProcessor kullanılarak elde edilebilir. Ayrıntılar için Qwen2VLImageProcessor.call() bölümüne bakın (Qwen3VLProcessor, görüntü işleme için Qwen2VLImageProcessor kullanır). - pixel_values_videos (
torch.Tensor, şekli(batch_size, num_frames, num_channels, frame_size, frame_size), isteğe bağlı) — Girdi videosuna karşılık gelen tensörler. Videolar için piksel değerleri, Qwen3VLVideoProcessor kullanılarak elde edilebilir. Ayrıntılar için Qwen3VLVideoProcessor.call() bölümüne bakın (Qwen3VLProcessor, videoları işlemek için Qwen3VLVideoProcessor kullanır). - image_grid_thw (
torch.LongTensor, şekli(num_images, 3), isteğe bağlı) — LLM'deki her bir görüntünün özellik şeklinin zaman, yükseklik ve genişlik değerleri. - video_grid_thw (
torch.LongTensor, şekli(num_videos, 3), isteğe bağlı) — LLM'deki her bir video için özellik şeklinin zaman, yükseklik ve genişlik değerleri. - mm_token_type_ids (
torch.IntTensor, şekli(batch_size, sequence_length), isteğe bağlı) — Her modalliteyle eşleşen girdi dizisi belirteçlerinin (token) indeksleri. Örneğin metin (0), görüntü (1), video (2). Çok modallı belirteç türü kimlikleri AutoProcessor kullanılarak elde edilebilir. Ayrıntılar için ProcessorMixin.call() bölümüne bakın. - mm_encoder_outputs (
dict[str, ~modeling_outputs.BaseModelOutputWithPooling], isteğe bağlı) — Anahtarları desteklenen modaliteler, değerleri ise o modalite için kodlanmış çıktılar olan bir sözlük. Her kodlanmış çıktı, (pooler_output, isteğe bağlı:last_hidden_states, isteğe bağlı:hidden_states, isteğe bağlı:attentions)pooler_output(şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) biçiminde bir demettir ve kodlayıcının çok modlu özelliklerinin metin gömme (embedding) değerleriyle birleştirilmiş bir dizisidir.
Dönüş değeri
MoeModelOutputWithPast veya tuple(torch.Tensor)
MoeModelOutputWithPast veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (Qwen4ExpConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Qwen4ExpModel 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 (
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.
router_logits (
tuple(torch.Tensor), isteğe bağlı,output_router_probs=Trueveconfig.add_router_probs=Truegeçirildiğinde veyaconfig.output_router_probs=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, sequence_length, num_experts).MoE yönlendiricileri tarafından hesaplanan ham yönlendirici logitleri (softmax sonrası), bu terimler Mixture of Experts modelleri için yardımcı kaybı hesaplamakta kullanılır.
Qwen4ExpForCausalLM
sınıf transformers.Qwen4ExpForCausalLM
< source >( config: Qwen4ExpTextConfig )
Parametreler
- config (Qwen4ExpTextConfig) — 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.
Nedensel dil modellemesi için Qwen4 Exp Model.
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] = 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 = Noneoutput_router_logits: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MoeCausalLMOutputWithPast 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.
- 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.
- 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]. - 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ı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini 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_idsdocstring'ine bakın). Endeksleri-100olarak 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ı) —Trueolarak ayarlanırsa,past_key_valuesanahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz.past_key_values). - output_router_logits (
bool, isteğe bağlı) — Tüm yönlendiricilerin (router) logit değerlerinin döndürülüp döndürülmeyeceğini belirtir. Yönlendirici kaybının (router loss) hesaplanmasında faydalıdırlar ve çıkarım sırasında döndürülmemelidir. - 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.
Dönüş değeri
MoeCausalLMOutputWithPast veya tuple(torch.Tensor)
MoeCausalLMOutputWithPast veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (Qwen4ExpConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Qwen4ExpForCausalLM 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ı (SoftMax öncesi her sözlük jetonu için puanlar).aux_loss (
torch.Tensor, isteğe bağlı,output_router_logits=Truegeçirildiğinde veyaconfig.output_router_logits=Trueolduğunda ve model, yük dengeleme kaybı ile router'ını eğittiğinde döndürülür) — Seyrek modüller için yük dengeleme yardımcı kaybı. Uzmanlarını router sapması ile dengeleyen modeller (DeepSeek-V3 ve ondan türetilen mimariler) buradaNonedöndürürken yine derouter_logitsdöndürür.router_logits (
tuple(torch.Tensor), isteğe bağlı,output_router_logits=Truegeçirildiğinde veyaconfig.output_router_logits=Trueolduğunda döndürülür) —torch.Tensor(her seyrek katman için bir tane) içeren bir tuple, şekli(batch_size * sequence_length, num_experts).MoE yönlendiricileri tarafından hesaplanan ham yönlendirici logitleri. Bunlar, bir yük dengeleme kaybı hesaplamak veya tokenlerin uzmanlara nasıl dağıtıldığını incelemek için kullanılabilir.
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) 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.
Örnek:
>>> from transformers import AutoTokenizer, Qwen4ExpForCausalLM
>>> model = Qwen4ExpForCausalLM.from_pretrained("Qwen/Qwen3-Next-80B-A3B-Instruct")
>>> tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-Next-80B-A3B-Instruct")
>>> prompt = "Hey, are you conscious? Can you talk to me?"
>>> inputs = tokenizer(prompt, return_tensors="pt")
>>> # Generate
>>> generate_ids = model.generate(inputs.input_ids, max_length=30)
>>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
"Hey, are you conscious? Can you talk to me?\nI'm not conscious, but I can talk to you."Qwen4ExpForConditionalGeneration
sınıf transformers.Qwen4ExpForConditionalGeneration
< source >( config: Qwen4ExpConfig )
Parametreler
- config (Qwen4ExpConfig) — 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.
Diğer modalitelerle (ör. görsel-metinden metne üretim) koşullu token üretimi için Qwen4 Exp Model.
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: LongTensor = 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] = Nonepixel_values: typing.Optional[torch.Tensor] = Nonepixel_values_videos: typing.Optional[torch.Tensor] = Noneimage_grid_thw: typing.Optional[torch.LongTensor] = Nonevideo_grid_thw: typing.Optional[torch.LongTensor] = Nonemm_token_type_ids: typing.Optional[torch.IntTensor] = Noneoutput_router_logits: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0mm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MoeCausalLMOutputWithPast 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.
- 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.
- 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]. - 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ı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini 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_idsdocstring'ine bakın). Endeksleri-100olarak ayarlanan tokenlar yok sayılır (maskelenir), kayıp yalnızca etiketleri[0, ..., config.vocab_size]aralığında olan tokenlar için hesaplanır. - pixel_values (
torch.Tensor, şekli(batch_size, num_channels, image_size, image_size), isteğe bağlı) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri Qwen2VLImageProcessor kullanılarak elde edilebilir. Ayrıntılar için Qwen2VLImageProcessor.call() bölümüne bakın (Qwen3VLProcessor, görüntü işleme için Qwen2VLImageProcessor kullanır). - pixel_values_videos (
torch.Tensor, şekli(batch_size, num_frames, num_channels, frame_size, frame_size), isteğe bağlı) — Girdi videosuna karşılık gelen tensörler. Videolar için piksel değerleri, Qwen3VLVideoProcessor kullanılarak elde edilebilir. Ayrıntılar için Qwen3VLVideoProcessor.call() bölümüne bakın (Qwen3VLProcessor, videoları işlemek için Qwen3VLVideoProcessor kullanır). - image_grid_thw (
torch.LongTensor, şekli(num_images, 3), isteğe bağlı) — LLM'deki her bir görüntünün özellik şeklinin zaman, yükseklik ve genişlik değerleri. - video_grid_thw (
torch.LongTensor, şekli(num_videos, 3), isteğe bağlı) — LLM'deki her bir video için özellik şeklinin zaman, yükseklik ve genişlik değerleri. - mm_token_type_ids (
torch.IntTensor, şekli(batch_size, sequence_length), isteğe bağlı) — Her modalliteyle eşleşen girdi dizisi belirteçlerinin (token) indeksleri. Örneğin metin (0), görüntü (1), video (2). Çok modallı belirteç türü kimlikleri AutoProcessor kullanılarak elde edilebilir. Ayrıntılar için ProcessorMixin.call() bölümüne bakın. - output_router_logits (
bool, isteğe bağlı) — Tüm yönlendiricilerin (router) logit değerlerinin döndürülüp döndürülmeyeceğini belirtir. Yönlendirici kaybının (router loss) hesaplanmasında faydalıdırlar ve çıkarım sırasında döndürülmemelidir. - 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. - mm_encoder_outputs (
dict[str, ~modeling_outputs.BaseModelOutputWithPooling], isteğe bağlı) — Anahtarları desteklenen modaliteler, değerleri ise o modalite için kodlanmış çıktılar olan bir sözlük. Her kodlanmış çıktı, (pooler_output, isteğe bağlı:last_hidden_states, isteğe bağlı:hidden_states, isteğe bağlı:attentions)pooler_output(şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) biçiminde bir demettir ve kodlayıcının çok modlu özelliklerinin metin gömme (embedding) değerleriyle birleştirilmiş bir dizisidir.
Dönüş değeri
MoeCausalLMOutputWithPast veya tuple(torch.Tensor)
MoeCausalLMOutputWithPast veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (Qwen4ExpConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Qwen4ExpForConditionalGeneration 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ı (SoftMax öncesi her sözlük jetonu için puanlar).aux_loss (
torch.Tensor, isteğe bağlı,output_router_logits=Truegeçirildiğinde veyaconfig.output_router_logits=Trueolduğunda ve model, yük dengeleme kaybı ile router'ını eğittiğinde döndürülür) — Seyrek modüller için yük dengeleme yardımcı kaybı. Uzmanlarını router sapması ile dengeleyen modeller (DeepSeek-V3 ve ondan türetilen mimariler) buradaNonedöndürürken yine derouter_logitsdöndürür.router_logits (
tuple(torch.Tensor), isteğe bağlı,output_router_logits=Truegeçirildiğinde veyaconfig.output_router_logits=Trueolduğunda döndürülür) —torch.Tensor(her seyrek katman için bir tane) içeren bir tuple, şekli(batch_size * sequence_length, num_experts).MoE yönlendiricileri tarafından hesaplanan ham yönlendirici logitleri. Bunlar, bir yük dengeleme kaybı hesaplamak veya tokenlerin uzmanlara nasıl dağıtıldığını incelemek için kullanılabilir.
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) 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.
Örnek:
>>> from transformers import AutoProcessor, Qwen4ExpForConditionalGeneration
>>> model = Qwen4ExpForConditionalGeneration.from_pretrained("Qwen/Qwen3.5-35B-A3B-Instruct", dtype="auto", device_map="auto")
>>> processor = AutoProcessor.from_pretrained("Qwen/Qwen3.5-35B-A3B-Instruct")
>>> messages = [
{
"role": "user",
"content": [
{
"type": "image",
"image": "https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/images/qwen_vl_demo.jpeg",
},
{"type": "text", "text": "Describe this image in short."},
],
}
]
>>> # Preparation for inference
>>> inputs = processor.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
return_tensors="pt"
)
>>> inputs = inputs.to(model.device)
>>> # Generate
>>> generated_ids = model.generate(**inputs, max_new_tokens=128)
>>> generated_ids_trimmed = [
out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
>>> processor.batch_decode(generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
"A woman in a plaid shirt sits on a sandy beach at sunset, smiling as she gives a high-five to a yellow Labrador Retriever wearing a harness. The ocean waves roll in the background."