@@ -581,8 +581,230 @@ def _debugmodel(
581581 )
582582
583583
584+ def _deepseek_v4_flash (
585+ moe_comm_backend : str = "standard" ,
586+ non_blocking_capacity_factor : float | None = None ,
587+ enable_indexer_loss : bool = True ,
588+ ) -> DeepSeekV4Model .Config :
589+ dim = 4096
590+ n_layers = 43
591+ vocab_size = 129280
592+ n_heads = 64
593+ head_dim = 512
594+ rope_head_dim = 64
595+ q_lora_rank = 1024
596+ o_lora_rank = 1024
597+ n_groups = 8
598+ compress_ratios = (1 , 1 ) + (4 , 128 ) * 20 + (4 ,)
599+ window_size = 128
600+ norm_eps = 1e-6
601+ index_n_heads = 64
602+ index_head_dim = 128
603+ index_topk = 512
604+ moe_inter_dim = 2048
605+ num_experts = 256
606+ num_shared_experts = 1
607+ top_k = 6
608+ n_hash_layers = 3
609+ route_norm = True
610+ route_scale = 1.5
611+ load_balance_coeff = 1e-3
612+ hc_mult = 4
613+ sinkhorn_iters = 20
614+ hc_eps = 1e-6
615+ dense_layers = set ()
616+ max_seq_len = 4096
617+ compress_rope_theta = 160000.0
618+ original_seq_len = 65536
619+
620+ rope = ComplexRoPE .Config (
621+ dim = rope_head_dim ,
622+ max_seq_len = max_seq_len ,
623+ theta = 10000.0 ,
624+ scaling = "none" ,
625+ )
626+ rope_compress = ComplexRoPE .Config (
627+ dim = rope_head_dim ,
628+ max_seq_len = max_seq_len ,
629+ theta = compress_rope_theta ,
630+ scaling = "yarn" ,
631+ rope_factor = 16.0 ,
632+ beta_fast = 32.0 ,
633+ beta_slow = 1.0 ,
634+ original_seq_len = original_seq_len ,
635+ )
636+
637+ layers = _build_v4_layers (
638+ n_layers = n_layers ,
639+ dim = dim ,
640+ n_heads = n_heads ,
641+ head_dim = head_dim ,
642+ rope_head_dim = rope_head_dim ,
643+ q_lora_rank = q_lora_rank ,
644+ o_lora_rank = o_lora_rank ,
645+ n_groups = n_groups ,
646+ compress_ratios = compress_ratios ,
647+ window_size = window_size ,
648+ norm_eps = norm_eps ,
649+ index_n_heads = index_n_heads ,
650+ index_head_dim = index_head_dim ,
651+ index_topk = index_topk ,
652+ moe_inter_dim = moe_inter_dim ,
653+ num_experts = num_experts ,
654+ num_shared_experts = num_shared_experts ,
655+ top_k = top_k ,
656+ vocab_size = vocab_size ,
657+ n_hash_layers = n_hash_layers ,
658+ route_norm = route_norm ,
659+ route_scale = route_scale ,
660+ load_balance_coeff = load_balance_coeff ,
661+ moe_comm_backend = moe_comm_backend ,
662+ non_blocking_capacity_factor = non_blocking_capacity_factor ,
663+ rope = rope ,
664+ rope_compress = rope_compress ,
665+ hc_mult = hc_mult ,
666+ sinkhorn_iters = sinkhorn_iters ,
667+ hc_eps = hc_eps ,
668+ dense_layers = dense_layers ,
669+ enable_indexer_loss = enable_indexer_loss ,
670+ )
671+
672+ return DeepSeekV4Model .Config (
673+ dim = dim ,
674+ vocab_size = vocab_size ,
675+ norm_eps = norm_eps ,
676+ tok_embeddings = Embedding .Config (
677+ num_embeddings = vocab_size ,
678+ embedding_dim = dim ,
679+ param_init = _EMBEDDING_INIT ,
680+ ),
681+ norm = RMSNorm .Config (normalized_shape = dim , param_init = _NORM_INIT ),
682+ lm_head = Linear .Config (
683+ in_features = dim ,
684+ out_features = vocab_size ,
685+ param_init = _output_linear_init (dim ),
686+ ),
687+ layers = layers ,
688+ hc_mult = hc_mult ,
689+ compress_ratios = compress_ratios ,
690+ n_layers = n_layers ,
691+ )
692+
693+
694+ def _deepseek_v4_pro (
695+ moe_comm_backend : str = "standard" ,
696+ non_blocking_capacity_factor : float | None = None ,
697+ enable_indexer_loss : bool = True ,
698+ ) -> DeepSeekV4Model .Config :
699+ dim = 7168
700+ n_layers = 61
701+ vocab_size = 129280
702+ n_heads = 128
703+ head_dim = 512
704+ rope_head_dim = 64
705+ q_lora_rank = 1536
706+ o_lora_rank = 1024
707+ n_groups = 16
708+ compress_ratios = (128 ,) + (128 , 4 ) * 30
709+ window_size = 128
710+ norm_eps = 1e-6
711+ index_n_heads = 64
712+ index_head_dim = 128
713+ index_topk = 1024
714+ moe_inter_dim = 3072
715+ num_experts = 384
716+ num_shared_experts = 1
717+ top_k = 6
718+ n_hash_layers = 3
719+ route_norm = True
720+ route_scale = 1.5
721+ load_balance_coeff = 1e-3
722+ hc_mult = 4
723+ sinkhorn_iters = 20
724+ hc_eps = 1e-6
725+ dense_layers = set ()
726+ max_seq_len = 4096
727+ compress_rope_theta = 160000.0
728+ original_seq_len = 65536
729+
730+ rope = ComplexRoPE .Config (
731+ dim = rope_head_dim ,
732+ max_seq_len = max_seq_len ,
733+ theta = 10000.0 ,
734+ scaling = "none" ,
735+ )
736+ rope_compress = ComplexRoPE .Config (
737+ dim = rope_head_dim ,
738+ max_seq_len = max_seq_len ,
739+ theta = compress_rope_theta ,
740+ scaling = "yarn" ,
741+ rope_factor = 16.0 ,
742+ beta_fast = 32.0 ,
743+ beta_slow = 1.0 ,
744+ original_seq_len = original_seq_len ,
745+ )
746+
747+ layers = _build_v4_layers (
748+ n_layers = n_layers ,
749+ dim = dim ,
750+ n_heads = n_heads ,
751+ head_dim = head_dim ,
752+ rope_head_dim = rope_head_dim ,
753+ q_lora_rank = q_lora_rank ,
754+ o_lora_rank = o_lora_rank ,
755+ n_groups = n_groups ,
756+ compress_ratios = compress_ratios ,
757+ window_size = window_size ,
758+ norm_eps = norm_eps ,
759+ index_n_heads = index_n_heads ,
760+ index_head_dim = index_head_dim ,
761+ index_topk = index_topk ,
762+ moe_inter_dim = moe_inter_dim ,
763+ num_experts = num_experts ,
764+ num_shared_experts = num_shared_experts ,
765+ top_k = top_k ,
766+ vocab_size = vocab_size ,
767+ n_hash_layers = n_hash_layers ,
768+ route_norm = route_norm ,
769+ route_scale = route_scale ,
770+ load_balance_coeff = load_balance_coeff ,
771+ moe_comm_backend = moe_comm_backend ,
772+ non_blocking_capacity_factor = non_blocking_capacity_factor ,
773+ rope = rope ,
774+ rope_compress = rope_compress ,
775+ hc_mult = hc_mult ,
776+ sinkhorn_iters = sinkhorn_iters ,
777+ hc_eps = hc_eps ,
778+ dense_layers = dense_layers ,
779+ enable_indexer_loss = enable_indexer_loss ,
780+ )
781+
782+ return DeepSeekV4Model .Config (
783+ dim = dim ,
784+ vocab_size = vocab_size ,
785+ norm_eps = norm_eps ,
786+ tok_embeddings = Embedding .Config (
787+ num_embeddings = vocab_size ,
788+ embedding_dim = dim ,
789+ param_init = _EMBEDDING_INIT ,
790+ ),
791+ norm = RMSNorm .Config (normalized_shape = dim , param_init = _NORM_INIT ),
792+ lm_head = Linear .Config (
793+ in_features = dim ,
794+ out_features = vocab_size ,
795+ param_init = _output_linear_init (dim ),
796+ ),
797+ layers = layers ,
798+ hc_mult = hc_mult ,
799+ compress_ratios = compress_ratios ,
800+ n_layers = n_layers ,
801+ )
802+
803+
584804deepseek_v4_configs = {
585805 "debugmodel" : _debugmodel ,
806+ "deepseek_v4_flash" : _deepseek_v4_flash ,
807+ "deepseek_v4_pro" : _deepseek_v4_pro ,
586808}
587809
588810
0 commit comments