Transformers documentation
Hy4-Preview
Bu model, 2026-09-07 tarihinde Hugging Face Transformers'a katkıda bulunulmuştur.
Hy4-Preview
Genel Bakış
Hy4-Preview, her token için 49B parametreyi etkinleştiren 780B parametreli bir mixture-of-experts dil modelidir. Her MoE katmanı, 256 yönlendirilmiş uzman ve her zaman etkin olan tek bir paylaşılan uzman barındırır ve her token'ı bunlardan 8'ine yönlendirir. Bağlam penceresi 1M tokendir.
Mimari, dört özelliği bir araya getirir:
- Multi-head Latent Attention (MLA), anahtarları ve değerleri düşük sıralı bir gizli katmana (
kv_lora_rank) sıkıştırır;kv_b_projbu gizli katmanı her sorgu başına bir anahtar/değer olacak şekilde geri genişletir. - DeepSeek Sparse Attention (DSA), hafif bir indeksleyici kullanarak her sorgu için
index_topkanahtar seçer. IndexShare yaklaşımını izleyerek,indexer_typesiçinde"full"olarak işaretlenen katmanlar bir indeksleyici çalıştırır;"shared"katmanlar ise bir önceki tam katmanın seçimini yeniden kullanır. - Her başın, GPT-OSS'de olduğu gibi softmax'ta yer alan ancak değer katkısı sağlamayan bir sink logitine sahip olduğu öğrenilebilir attention sink'li Gated MLA.
- Bağımsız Hiper-Bağlantılar (iHC), düz kalan yolu, her alt katman öncesinde birleştirilip sonrasında yeniden dağıtılan
hc_multparalel kalan akışlarıyla değiştirir.
Uygulama, çoklu jeton tahmini (MTP) katmanlarını çalıştırmaz. Yayınlanan denetim noktaları, bu ağırlıkları diğer çalışma zamanlarının spekülatif çözümleme için kullanabilmesi amacıyla saklar; yüklenme sırasında bu ağırlıklar yok sayılır.
Kullanım örneği
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "tencent/Hy4-Preview"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, dtype=torch.bfloat16, device_map="auto")
messages = [{"role": "user", "content": "Explain in one sentence why the sky is usually blue."}]
inputs = tokenizer.apply_chat_template(
messages, add_generation_prompt=True, return_tensors="pt", return_dict=True
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=64, do_sample=False)
print(tokenizer.decode(outputs[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True))Tam checkpoint tek bir hızlandırıcıya sığmıyor. Bunu tensor paralelliği ile parçalara ayırın veya her uzman grubunu uzman paralelliği ile kendi cihazına yerleştirin:
from transformers import AutoModelForCausalLM, DistributedConfig
# Tensor parallel: launch with `torchrun --nproc-per-node <world_size>`.
model = AutoModelForCausalLM.from_pretrained(
model_id, dtype=torch.bfloat16, distributed_config=DistributedConfig(tp_size=16)
)
# Expert parallel: routed experts are split along the expert axis.
model = AutoModelForCausalLM.from_pretrained(
model_id,
dtype=torch.bfloat16,
distributed_config=DistributedConfig(tp_size=16, ep_size=16),
)Uzman paralelliği yalnızca çıkarım içindir, çünkü yönlendirilmiş uzman all-reduce işlemi geriye doğru bir geçişe sahip değildir.
HYV4Config
sınıf transformers.HYV4Config
< 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 = 120832hidden_size: int = 2816intermediate_size: int = 6912moe_intermediate_size: int = 768num_hidden_layers: int = 34num_attention_heads: int = 32num_key_value_heads: int = 32head_dim: int = 256hidden_act: str = 'silu'max_position_embeddings: int = 262144initializer_range: float = 0.006rms_norm_eps: float = 1e-05use_cache: bool = Truepad_token_id: int | None = 120002bos_token_id: int | None = 120000eos_token_id: int | list[int] | None = 120025tie_word_embeddings: bool = Falseattention_bias: bool = Falseattention_dropout: float = 0.0n_routed_experts: int = 256output_router_logits: bool = Falsen_shared_experts: int = 1num_experts_per_tok: int = 8routed_scaling_factor: float = 2.827norm_topk_prob: bool = Truen_group: int = 1topk_group: int = 1q_lora_rank: int = 1536kv_lora_rank: int = 512qk_nope_head_dim: int = 192qk_rope_head_dim: int = 64v_head_dim: int = 256mlp_layer_types: list[str] | None = Nonelayer_types: list[str] | None = Noneindex_topk: int = 2048index_head_dim: int = 128index_n_heads: int = 16indexer_types: list[str] | None = Nonehc_mult: int = 4hc_magnitude: float = 2.0hc_eps: float = 1e-06learnable_sink_init: float = 0.0swiglu_limit: float = 10.0rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = None )
Parametreler
- vocab_size (
int, isteğe bağlı, varsayılan120832) — Modelin sözlük boyutu.input_idsile temsil edilebilecek farklı token sayısını belirler. - hidden_size (
int, isteğe bağlı, varsayılan2816) — Gizli temsillerin boyutu. - intermediate_size (
int, isteğe bağlı, varsayılan6912) — MLP temsil boyutu. - moe_intermediate_size (
int, isteğe bağlı, varsayılan768) — Yönlendirilen uzman MLP'lerinin ara boyutu. - num_hidden_layers (
int, isteğe bağlı, varsayılan34) — Transformer çözücüdeki gizli katman sayısı. - num_attention_heads (
int, isteğe bağlı, varsayılan32) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı. - num_key_value_heads (
int, isteğe bağlı, varsayılan32) — 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. - 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. - 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ılan262144) — Bu modelin kullanılabileceği en uzun dizi uzunluğu. - initializer_range (
float, isteğe bağlı, varsayılan0.006) — 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-05) — 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. - pad_token_id (
int, isteğe bağlı, varsayılan120002) — Sözlükte dolgu için kullanılan token kimliği. - bos_token_id (
int, isteğe bağlı, varsayılan120000) — 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ı, varsayılan120025) — Sözlükte akış sonu için kullanılan 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ğı. - 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 (
float, isteğe bağlı, varsayılan0.0) — Dikkat olasılıkları için dropout oranı. - n_routed_experts (
int, isteğe bağlı, varsayılan256) — 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. - n_shared_experts (
int, isteğe bağlı, varsayılan1) — Paylaşılan uzman sayısı. - num_experts_per_tok (
int, isteğe bağlı, varsayılan8) — Her tokenın yönlendirileceği uzman sayısı. Bu, token seçimli yönlendirmede top-k değeridir. - routed_scaling_factor (
float, isteğe bağlı, varsayılan2.827) — Ölçekleme faktörü veya yönlendirilmiş uzmanlar. - norm_topk_prob (
bool, isteğe bağlı, varsayılanTrue) — Yönlendirilen uzmanların ağırlıklarının normalize edilip edilmeyeceği. - n_group (
int, isteğe bağlı, varsayılan 1) — Yönlendirme için uzman gruplarının sayısı. HYV4 uzmanları küresel olarak seçtiğinden bu değer 1'dir (tüm uzmanları içeren tek bir grup). - topk_group (
int, isteğe bağlı, varsayılan 1) — Yönlendirme sırasında korunan uzman gruplarının sayısı.n_group=1olduğunda bu,Glm4MoeLiteTopkRouter'ü düz bir küresel top-k olarak yeniden kullanır. - q_lora_rank (
int, isteğe bağlı, varsayılan1536) — Sorgu projeksiyonları için LoRA matrislerinin rütbesi. - kv_lora_rank (
int, isteğe bağlı, varsayılan512) — Anahtar ve değer projeksiyonları için LoRA matrislerinin rütbesi. - qk_nope_head_dim (
int, isteğe bağlı, varsayılan192) — Rotary position embeddings kullanmayan sorgu/anahtar başlarının boyutu. - qk_rope_head_dim (
int, isteğe bağlı, varsayılan64) — Döner konum gömme kullanan sorgu/anahtar başlarının boyutu. - v_head_dim (
int, isteğe bağlı, varsayılan256) — Değer başlıklarının boyutu. - mlp_layer_types (
list[str], isteğe bağlı) — Katman başına MLP türü,"dense"veya"sparse". Varsayılan olarak bir dense katmanının ardından sparse MoE katmanları gelir. - 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. - index_topk (
int, isteğe bağlı, varsayılan 2048) — Her DSA sorgusunun seçtiği maksimum anahtar konumu sayısı. - index_head_dim (
int, isteğe bağlı, varsayılan 128) — Her DSA indexer başının gizli boyutu. - index_n_heads (
int, isteğe bağlı, varsayılan 16) — DSA indeksleyici baş sayısı. - indexer_types (
list[str], isteğe bağlı) — Katman başına DSA indexer türü,"full"veya"shared". Paylaşılan bir katman, aynı ileri istekteki en son tam indexer'ı yeniden kullanır. - hc_mult (
int, isteğe bağlı, varsayılan 4) — iHC tarafından sürdürülen gizli durum kanalı sayısı. - hc_magnitude (
float, isteğe bağlı, varsayılan 2.0) — iHC post-gating dalına uygulanan ölçek. - hc_eps (
float, isteğe bağlı, varsayılan 1e-6) — iHC sigmoid kapılarına eklenen sayısal epsilon. - learnable_sink_init (
float, isteğe bağlı, varsayılan 0.0) — Her öğrenilen dikkat çukurunun (attention-sink) logit değerinin başlangıç değeri. - swiglu_limit (
float, isteğe bağlı, varsayılan 10.0) — Yönlendirilmiş uzman SwiGLU kelepçesinin büyüklüğü. Sıfıra eşit veya sıfırdan küçük değerler kelepçeyi devre dışı bırakır. - 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.
Bu, bir HYV4Model'in yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Hy V4 modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, tencent/Hy4-preview 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.
HYV4Model
sınıf transformers.HYV4Model
< source >( config: HYV4Config )
Parametreler
- config (HYV4Config) — 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 Hy V4 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 = 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. - 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).
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 (HYV4Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
HYV4Model 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.
HYV4ForCausalLM
sınıf transformers.HYV4ForCausalLM
< source >( config: HYV4Config )
Parametreler
- config (HYV4Config) — 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 Hy V4 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] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → 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). - 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 (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (HYV4Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
HYV4ForCausalLM 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, HYV4ForCausalLM
>>> model = HYV4ForCausalLM.from_pretrained("meta-hy_v4/HYV4-2-7b-hf")
>>> tokenizer = AutoTokenizer.from_pretrained("meta-hy_v4/HYV4-2-7b-hf")
>>> 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."