KitsuVp commited on
Commit
7ed8ed0
·
verified ·
1 Parent(s): 02c3769

Update configuration_neollm.py

Browse files
Files changed (1) hide show
  1. configuration_neollm.py +39 -1
configuration_neollm.py CHANGED
@@ -475,12 +475,23 @@ class NeoLLMConfig(PretrainedConfig):
475
  jtokm_norm_eps=1e-6,
476
  # ── Hadamard output projection (Aggarwal & Kumar, 2026) ───────────
477
  use_hadamard_o_proj=True,
 
 
478
  # ── Spelling Bee Embeddings (Rabe et al., 2026) ───────────────────
479
  use_spelling_bee_embeddings=False,
480
  # ── Context Re-Positioning (Li et al., 2026) ──────────────────────
481
- use_repo=True,
482
  repo_start_layer=None,
483
  repo_d_p=None,
 
 
 
 
 
 
 
 
 
484
  **kwargs,
485
  ):
486
  # ── Generator / tying consistency ─────────────────────────────────
@@ -529,6 +540,20 @@ class NeoLLMConfig(PretrainedConfig):
529
  f"num_hidden_layers={num_hidden_layers}."
530
  )
531
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
532
  super().__init__(tie_word_embeddings=tie_word_embeddings, **kwargs)
533
 
534
  # ── Core Transformer ──────────────────────────────────────────────
@@ -612,6 +637,9 @@ class NeoLLMConfig(PretrainedConfig):
612
  # ── Hadamard output projection (Aggarwal & Kumar, 2026) ───────────
613
  self.use_hadamard_o_proj = use_hadamard_o_proj
614
 
 
 
 
615
  # ── Spelling Bee Embeddings (Rabe et al., 2026) ───────────────────
616
  self.use_spelling_bee_embeddings = use_spelling_bee_embeddings
617
 
@@ -620,6 +648,16 @@ class NeoLLMConfig(PretrainedConfig):
620
  self.repo_start_layer = repo_start_layer
621
  self.repo_d_p = repo_d_p
622
 
 
 
 
 
 
 
 
 
 
 
623
  self.auto_map = {
624
  "AutoConfig": "configuration_neollm.NeoLLMConfig",
625
  "AutoModel": "modeling_neollm.NeoLLMModel",
 
475
  jtokm_norm_eps=1e-6,
476
  # ── Hadamard output projection (Aggarwal & Kumar, 2026) ───────────
477
  use_hadamard_o_proj=True,
478
+ # ── PolyNorm exclusivity ──────────────────────────────────────────
479
+ polynorm_exclusive=False,
480
  # ── Spelling Bee Embeddings (Rabe et al., 2026) ───────────────────
481
  use_spelling_bee_embeddings=False,
482
  # ── Context Re-Positioning (Li et al., 2026) ──────────────────────
483
+ use_repo=False,
484
  repo_start_layer=None,
485
  repo_d_p=None,
486
+ # ── VersatileFFN (Nie et al., 2026) ───────────────────────────────
487
+ use_versatile_ffn=False,
488
+ versatile_total_experts=8,
489
+ versatile_active_experts=2,
490
+ versatile_max_depth=2,
491
+ versatile_gumbel_temp_start=5.0,
492
+ versatile_gumbel_temp_end=0.1,
493
+ versatile_gumbel_temp_decay=0.99984,
494
+ versatile_aux_loss_weight=1e-5,
495
  **kwargs,
496
  ):
497
  # ── Generator / tying consistency ─────────────────────────────────
 
540
  f"num_hidden_layers={num_hidden_layers}."
541
  )
542
 
543
+ # ── VersatileFFN: validate expert configuration ────────────────────
544
+ if use_versatile_ffn:
545
+ if not (1 <= versatile_active_experts < versatile_total_experts):
546
+ raise ValueError(
547
+ f"`versatile_active_experts` must satisfy "
548
+ f"1 <= versatile_active_experts < versatile_total_experts, "
549
+ f"got {versatile_active_experts} vs {versatile_total_experts}."
550
+ )
551
+ if intermediate_size % versatile_total_experts != 0:
552
+ raise ValueError(
553
+ f"`intermediate_size` ({intermediate_size}) must be divisible by "
554
+ f"`versatile_total_experts` ({versatile_total_experts})."
555
+ )
556
+
557
  super().__init__(tie_word_embeddings=tie_word_embeddings, **kwargs)
558
 
559
  # ── Core Transformer ──────────────────────────────────────────────
 
637
  # ── Hadamard output projection (Aggarwal & Kumar, 2026) ───────────
638
  self.use_hadamard_o_proj = use_hadamard_o_proj
639
 
640
+ # ── PolyNorm exclusivity ──────────────────────────────────────────
641
+ self.polynorm_exclusive = polynorm_exclusive
642
+
643
  # ── Spelling Bee Embeddings (Rabe et al., 2026) ───────────────────
644
  self.use_spelling_bee_embeddings = use_spelling_bee_embeddings
645
 
 
648
  self.repo_start_layer = repo_start_layer
649
  self.repo_d_p = repo_d_p
650
 
651
+ # ── VersatileFFN (Nie et al., 2026) ───────────────────────────────
652
+ self.use_versatile_ffn = use_versatile_ffn
653
+ self.versatile_total_experts = versatile_total_experts
654
+ self.versatile_active_experts = versatile_active_experts
655
+ self.versatile_max_depth = versatile_max_depth
656
+ self.versatile_gumbel_temp_start = versatile_gumbel_temp_start
657
+ self.versatile_gumbel_temp_end = versatile_gumbel_temp_end
658
+ self.versatile_gumbel_temp_decay = versatile_gumbel_temp_decay
659
+ self.versatile_aux_loss_weight = versatile_aux_loss_weight
660
+
661
  self.auto_map = {
662
  "AutoConfig": "configuration_neollm.NeoLLMConfig",
663
  "AutoModel": "modeling_neollm.NeoLLMModel",