Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
26ff2a3
feat: add optional rope_parameters to ModelArgs for dynamic rope_thet…
Goekdeniz-Guelmez Mar 6, 2026
edd1499
feat: add rope_parameters to ModelArgs for dynamic rope_theta configu…
Goekdeniz-Guelmez Mar 6, 2026
47489ee
feat: initialize rope_theta from rope_parameters in ModelArgs
Goekdeniz-Guelmez Mar 6, 2026
47be5ed
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
069a859
feat: update ModelArgs to initialize rope_theta from rope_parameters …
Goekdeniz-Guelmez Mar 6, 2026
61cce1d
feat: update ModelArgs to set rope_theta from rope_parameters in post…
Goekdeniz-Guelmez Mar 6, 2026
fe4c5c2
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
38fcf6d
feat: initialize rope_theta from rope_parameters in ModelArgs post_init
Goekdeniz-Guelmez Mar 6, 2026
ac2ec74
feat: update ModelArgs to set rope_theta from rope_parameters in post…
Goekdeniz-Guelmez Mar 6, 2026
9aa4637
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
8736c9e
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
144d58c
feat: add post_init method to ModelArgs to initialize rope_theta from…
Goekdeniz-Guelmez Mar 6, 2026
e8e2dd4
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
3538625
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
6f33002
feat: add rope_parameters to ModelArgs and implement post_init to ini…
Goekdeniz-Guelmez Mar 6, 2026
438b06d
feat: add rope_parameters to ModelArgs and update rope_theta in post_…
Goekdeniz-Guelmez Mar 6, 2026
24a82bf
feat: initialize rope_theta in post_init if rope_parameters are provided
Goekdeniz-Guelmez Mar 6, 2026
50c0a19
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
28ab818
feat: update ModelArgs to initialize rope_theta from rope_parameters …
Goekdeniz-Guelmez Mar 6, 2026
bbeeb1f
refactor: update ModelArgs to inherit from BaseModelArgs and clean up…
Goekdeniz-Guelmez Mar 6, 2026
6b2c2f7
feat: update ModelArgs to set rope_theta from rope_parameters in post…
Goekdeniz-Guelmez Mar 6, 2026
33a8a41
feat: initialize rope_theta from rope_parameters in post_init if prov…
Goekdeniz-Guelmez Mar 6, 2026
dcd28a7
feat: update ModelArgs to allow dynamic initialization of rope_theta …
Goekdeniz-Guelmez Mar 6, 2026
59b803f
feat: add rope_parameters to ModelArgs for dynamic rope_theta initial…
Goekdeniz-Guelmez Mar 6, 2026
f9531e8
feat: add rope_parameters to ModelArgs for dynamic rope_theta assignm…
Goekdeniz-Guelmez Mar 6, 2026
595278a
feat: initialize rope_theta from rope_parameters in post_init if prov…
Goekdeniz-Guelmez Mar 6, 2026
3f5f6be
feat: update ModelArgs to initialize rope_theta from rope_parameters …
Goekdeniz-Guelmez Mar 6, 2026
73b4f73
feat: add rope_parameters to ModelArgs for dynamic rope_theta assignm…
Goekdeniz-Guelmez Mar 6, 2026
91a2dd2
feat: add rope_parameters to ModelArgs for dynamic rope_theta assignm…
Goekdeniz-Guelmez Mar 6, 2026
ac1cd06
refactor: remove unused import of partial in nemotron_h.py
Goekdeniz-Guelmez Mar 6, 2026
05bc8dc
feat: update ModelArgs to include rope_parameters and initialize rope…
Goekdeniz-Guelmez Mar 6, 2026
ae75aa9
feat: initialize rope_theta from rope_parameters in ModelArgs post_init
Goekdeniz-Guelmez Mar 6, 2026
141e66b
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
427b7b1
feat: add post_init method to ModelArgs for dynamic rope_theta initia…
Goekdeniz-Guelmez Mar 6, 2026
f6a619f
feat: update ModelArgs to initialize rope_theta from rope_parameters …
Goekdeniz-Guelmez Mar 6, 2026
287fa61
feat: update ModelArgs to initialize rope_theta from rope_parameters …
Goekdeniz-Guelmez Mar 6, 2026
bb66628
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
8d68b31
feat: add rope_parameters to ModelArgs and implement post_init for ro…
Goekdeniz-Guelmez Mar 6, 2026
160b9d1
feat: add rope_parameters to ModelArgs and implement post_init for ro…
Goekdeniz-Guelmez Mar 6, 2026
20ed8eb
feat: add rope_parameters to TextArgs and implement post_init for rop…
Goekdeniz-Guelmez Mar 6, 2026
3701dd7
feat: initialize rope_theta from rope_parameters in ModelArgs post_init
Goekdeniz-Guelmez Mar 6, 2026
faa303a
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
de95279
feat: initialize rope_theta from rope_parameters in ModelArgs post_init
Goekdeniz-Guelmez Mar 6, 2026
99132f1
feat: update ModelArgs to include rope_parameters as a Dict and initi…
Goekdeniz-Guelmez Mar 6, 2026
d1bb0a4
feat: update rope_theta initialization to use default value if not pr…
Goekdeniz-Guelmez Mar 6, 2026
58a8dd3
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
4857d11
feat: initialize rope_theta from rope_parameters in TextArgs post_init
Goekdeniz-Guelmez Mar 6, 2026
38ff817
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
0f65ca4
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
fca0729
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
e8e509c
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
b0c22bb
feat: add rope_parameters to ModelArgs and update rope_theta in post_…
Goekdeniz-Guelmez Mar 6, 2026
bc7234e
feat: update ModelArgs to include rope_parameters and adjust rope_the…
Goekdeniz-Guelmez Mar 6, 2026
0be2cc0
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
b552e90
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
962546d
feat: initialize rope_theta in ModelArgs post_init based on rope_para…
Goekdeniz-Guelmez Mar 6, 2026
194d852
feat: update ModelArgs to require model_type and add rope_parameters …
Goekdeniz-Guelmez Mar 6, 2026
951ca90
feat: update ModelArgs to initialize rope_theta from rope_parameters …
Goekdeniz-Guelmez Mar 6, 2026
d5b421e
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
ee2b05d
feat: update ModelArgs to make model_type required and adjust rope_th…
Goekdeniz-Guelmez Mar 6, 2026
4ec1c73
feat: update ModelArgs to set rope_theta from rope_parameters in post…
Goekdeniz-Guelmez Mar 6, 2026
66a91f6
feat: update ModelArgs to make rope_parameters optional and adjust ro…
Goekdeniz-Guelmez Mar 6, 2026
9921082
feat: add rope_parameters to TextConfig and initialize rope_theta in …
Goekdeniz-Guelmez Mar 6, 2026
378bd01
feat: add rope_parameters to ModelArgs and update rope_theta initiali…
Goekdeniz-Guelmez Mar 6, 2026
fcecc45
feat: initialize rope_theta from rope_parameters in ModelArgs post_init
Goekdeniz-Guelmez Mar 6, 2026
05bedde
feat: initialize rope_theta from rope_parameters in ModelArgs post_init
Goekdeniz-Guelmez Mar 6, 2026
466bbcf
feat: add model_type attribute to ModelArgs class
Goekdeniz-Guelmez Mar 6, 2026
b9da26e
feat: initialize rope_theta from rope_parameters in ModelArgs post_init
Goekdeniz-Guelmez Mar 6, 2026
1205638
feat: initialize rope_theta from rope_parameters in ModelArgs post_init
Goekdeniz-Guelmez Mar 6, 2026
47ebffb
feat: update rope_theta initialization in ModelArgs to use default value
Goekdeniz-Guelmez Mar 6, 2026
ba47261
feat: initialize rope_theta from rope_parameters in ModelArgs post_init
Goekdeniz-Guelmez Mar 6, 2026
1355bc4
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
ea9fe1f
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
ffdcca9
feat: update ModelArgs to require model_type and add rope_parameters …
Goekdeniz-Guelmez Mar 6, 2026
1316e2b
feat: update ModelArgs to require model_type and add rope_parameters …
Goekdeniz-Guelmez Mar 6, 2026
3a52616
feat: update ModelArgs to require model_type and add rope_parameters …
Goekdeniz-Guelmez Mar 6, 2026
6c5d78b
feat: update ModelArgs to require model_type and add rope_parameters …
Goekdeniz-Guelmez Mar 6, 2026
7b4af21
feat: update ModelArgs to initialize rope_theta from rope_parameters …
Goekdeniz-Guelmez Mar 6, 2026
ffa4b06
feat: update ModelArgs to initialize rope_theta from rope_parameters …
Goekdeniz-Guelmez Mar 6, 2026
1520a93
feat: update ModelArgs to set rope_theta from rope_parameters in post…
Goekdeniz-Guelmez Mar 6, 2026
4fe3a47
fix: remove unused import of Any from typing in base.py
Goekdeniz-Guelmez Mar 6, 2026
323d65b
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
f00b4f3
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
55d29e2
feat: add rope_parameters to ModelArgs and initialize rope_theta in p…
Goekdeniz-Guelmez Mar 6, 2026
1f7401b
feat: add rope_parameters to ModelArgs and update rope_theta in post_…
Goekdeniz-Guelmez Mar 6, 2026
1245c2e
format
Goekdeniz-Guelmez Mar 7, 2026
345c26f
feat: update ModelArgs initialization in test_phi2 with new parameter…
Goekdeniz-Guelmez Mar 11, 2026
d6338ab
Merge branch 'ml-explore:main' into reformat-models-foir-the-rope-par…
Goekdeniz-Guelmez Mar 17, 2026
8dc6449
Update rope parameters across multiple models
Goekdeniz-Guelmez Mar 17, 2026
31ba659
Update acknowledgments to include Qwen3.5 and Qwen3.5MoE support
Goekdeniz-Guelmez Mar 17, 2026
c0ef19d
Fix installation message formatting in olmo.py
Goekdeniz-Guelmez Mar 17, 2026
e57b467
format
Goekdeniz-Guelmez Mar 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ACKNOWLEDGMENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Klear team - Kuaishou Technology's `Klear`, AI21 Lab's `Jamba` IBM's `Granite Mo
Meituan's `LongCat`, Nvidia's `Nemotron H`, Swiss-AI's `Apertus`, Nikity's `Lille130m`,
Alibaba Qwen's `Qwen3Next`, Tele-AI's `TeleChat3`, and Allenai's `OLMoE` and `Olmo 3`;
Helped add support for the following model architectures:
Alibaba Qwen's `Qwen3 & Qwen3MoE)`; Added support for the following training algorithms:
Alibaba Qwen's `Qwen3 & Qwen3MoE), Qwen3.5 & Qwen3.5MoE`; Added support for the following training algorithms:
`Full Weight Fine-Tuning`, and the `Muon` optimizer;
Added support for the following other features:
`Multiple Optimizers to choose for training`, and `reporting training metrics to WandB (Weights & Biases)`.
Expand Down
7 changes: 6 additions & 1 deletion mlx_lm/models/Klear.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Copyright © 2025 Apple Inc.

from dataclasses import dataclass
from typing import Any, List, Optional
from typing import Any, Dict, List, Optional

import mlx.core as mx
import mlx.nn as nn
Expand Down Expand Up @@ -31,6 +31,11 @@ class ModelArgs(BaseModelArgs):
rope_theta: float
max_position_embeddings: int
norm_topk_prob: bool
rope_parameters: Optional[Dict] = None

def __post_init__(self):
if self.rope_parameters is not None:
self.rope_theta = self.rope_parameters.get("rope_theta", 100000.0)


class KlearAttention(nn.Module):
Expand Down
7 changes: 6 additions & 1 deletion mlx_lm/models/afm7.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from dataclasses import dataclass
from functools import partial
from itertools import accumulate
from typing import Any, Dict, Optional, Union
from typing import Any, Dict, Optional

import mlx.core as mx
import mlx.nn as nn
Expand All @@ -25,9 +25,14 @@ class ModelArgs(BaseModelArgs):
num_heads: int
num_kv_heads: int
hidden_dim_scale_factor: float = 3.25
rope_parameters: Optional[Dict] = None
rope_theta: float = 50000
rms_norm_eps: float = 1e-5

def __post_init__(self):
if self.rope_parameters is not None:
self.rope_theta = self.rope_parameters.get("rope_theta", 50000.0)


class FusedLoRALinear(nn.Module):
def __init__(
Expand Down
7 changes: 6 additions & 1 deletion mlx_lm/models/afmoe.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ class ModelArgs(BaseModelArgs):
rope_theta: float = 10000
rope_scaling: Optional[Dict[str, Union[float, str]]] = None
tie_word_embeddings: bool = False
# MoE config
num_experts: int = 128
num_experts_per_tok: int = 8
num_shared_experts: int = 1
Expand All @@ -43,6 +42,12 @@ class ModelArgs(BaseModelArgs):
topk_group: int = 1
sliding_window: int = 2048
mup_enabled: bool = True
rope_parameters: Optional[Dict] = None

def __post_init__(self):
if self.rope_parameters is not None:
self.rope_theta = self.rope_parameters.get("rope_theta", 100000.0)
self.rope_scaling = self.rope_parameters


class Attention(nn.Module):
Expand Down
8 changes: 7 additions & 1 deletion mlx_lm/models/apertus.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Copyright © 2023-2025 Apple Inc.

from dataclasses import dataclass
from functools import partial
from typing import Any, Dict, Optional, Union

import mlx.core as mx
Expand Down Expand Up @@ -31,6 +30,13 @@ class ModelArgs(BaseModelArgs):
tie_word_embeddings: bool
rope_traditional: bool = False
rope_scaling: Optional[Dict[str, Union[float, str]]] = None
rope_parameters: Optional[Dict] = None

def __post_init__(self):
if self.rope_parameters is not None:
self.rope_theta = self.rope_parameters.get("rope_theta", 100000.0)
self.rope_scaling = self.rope_parameters
self.rope_traditional = self.rope_parameters.get("rope_traditional", False)


class ApertusMLP(nn.Module):
Expand Down
9 changes: 7 additions & 2 deletions mlx_lm/models/baichuan_m1.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Copyright © 2025 Apple Inc.

from dataclasses import dataclass
from typing import Any, List, Optional
from typing import Any, Dict, List, Optional

import mlx.core as mx
import mlx.nn as nn
Expand All @@ -13,6 +13,7 @@

@dataclass
class ModelArgs(BaseModelArgs):
model_type: str
vocab_size: int
hidden_size: int
intermediate_size: int
Expand All @@ -24,10 +25,14 @@ class ModelArgs(BaseModelArgs):
sliding_window_layers: List[int]
conv_window: int
rms_norm_eps: float
model_type: str = "baichuan_m1"
num_swa_attention_heads: Optional[int] = None
num_swa_key_value_heads: Optional[int] = None
tie_word_embeddings: bool = False
rope_parameters: Optional[Dict] = None

def __post_init__(self):
if self.rope_parameters is not None:
self.rope_theta = self.rope_parameters.get("rope_theta", 10000.0)


class Attention(nn.Module):
Expand Down
6 changes: 6 additions & 0 deletions mlx_lm/models/bailing_moe.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,12 @@ class ModelArgs(BaseModelArgs):
topk_group: int = 4
moe_shared_expert_intermediate_size: Optional[int] = None
moe_router_enable_shared_expert: bool = True
rope_parameters: Optional[Dict] = None

def __post_init__(self):
if self.rope_parameters is not None:
self.rope_theta = self.rope_parameters.get("rope_theta", 100000.0)
self.rope_scaling = self.rope_parameters


@partial(mx.compile, shapeless=True)
Expand Down
7 changes: 7 additions & 0 deletions mlx_lm/models/bailing_moe_linear.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,13 @@ class ModelArgs(BaseModelArgs):
moe_shared_expert_intermediate_size: Optional[int] = None
moe_router_enable_shared_expert: bool = True
head_dim: Optional[int] = None
rope_parameters: Optional[Dict] = None

def __post_init__(self):
if self.rope_parameters is not None:
self.rope_theta = self.rope_parameters.get("rope_theta", 100000.0)
self.rope_scaling = self.rope_parameters
self.rope_traditional = self.rope_parameters.get("rope_traditional", False)


def recurrent_gla(
Expand Down
2 changes: 1 addition & 1 deletion mlx_lm/models/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import inspect
from dataclasses import dataclass
from typing import Any, Optional
from typing import Optional

import mlx.core as mx
from mlx.utils import tree_map
Expand Down
8 changes: 7 additions & 1 deletion mlx_lm/models/bitnet.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Copyright © 2023-2024 Apple Inc.

from dataclasses import dataclass
from functools import partial
from typing import Any, Dict, Optional, Union

import mlx.core as mx
Expand Down Expand Up @@ -30,6 +29,13 @@ class ModelArgs(BaseModelArgs):
rope_traditional: bool = False
rope_scaling: Optional[Dict[str, Union[float, str]]] = None
tie_word_embeddings: bool = True
rope_parameters: Optional[Dict] = None

def __post_init__(self):
if self.rope_parameters is not None:
self.rope_theta = self.rope_parameters.get("rope_theta", 100000.0)
self.rope_scaling = self.rope_parameters
self.rope_traditional = self.rope_parameters.get("rope_traditional", False)


class Attention(nn.Module):
Expand Down
7 changes: 6 additions & 1 deletion mlx_lm/models/cohere.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Copyright © 2023-2024 Apple Inc.

from dataclasses import dataclass
from typing import Any, Optional
from typing import Any, Dict, Optional

import mlx.core as mx
import mlx.nn as nn
Expand All @@ -25,6 +25,11 @@ class ModelArgs(BaseModelArgs):
attention_bias: bool = False
layer_norm_bias: bool = False
use_qk_norm: bool = False
rope_parameters: Optional[Dict] = None

def __post_init__(self):
if self.rope_parameters is not None:
self.rope_theta = self.rope_parameters.get("rope_theta", 8000000.0)


class LayerNorm2D(nn.Module):
Expand Down
7 changes: 6 additions & 1 deletion mlx_lm/models/cohere2.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Copyright © 2023-2024 Apple Inc.

from dataclasses import dataclass
from typing import Optional, Tuple
from typing import Dict, Optional, Tuple

import mlx.core as mx
import mlx.nn as nn
Expand All @@ -28,6 +28,11 @@ class ModelArgs(BaseModelArgs):
layer_norm_bias: bool = False
sliding_window: int = 4096
sliding_window_pattern: int = 4
rope_parameters: Optional[Dict] = None

def __post_init__(self):
if self.rope_parameters is not None:
self.rope_theta = self.rope_parameters.get("rope_theta", 50000.0)


class Attention(nn.Module):
Expand Down
8 changes: 7 additions & 1 deletion mlx_lm/models/deepseek.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

@dataclass
class ModelArgs(BaseModelArgs):
model_type: str = "deepseek"
model_type: str
vocab_size: int = 102400
hidden_size: int = 4096
intermediate_size: int = 11008
Expand All @@ -29,6 +29,12 @@ class ModelArgs(BaseModelArgs):
rope_theta: float = 10000.0
rope_scaling: Optional[Dict] = None
attention_bias: bool = False
rope_parameters: Optional[Dict] = None

def __post_init__(self):
if self.rope_parameters is not None:
self.rope_theta = self.rope_parameters.get("rope_theta", 100000.0)
self.rope_scaling = self.rope_parameters


class DeepseekAttention(nn.Module):
Expand Down
8 changes: 7 additions & 1 deletion mlx_lm/models/deepseek_v2.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

@dataclass
class ModelArgs(BaseModelArgs):
model_type: str = "deepseek_v2"
model_type: str
vocab_size: int = 102400
hidden_size: int = 4096
intermediate_size: int = 11008
Expand All @@ -43,6 +43,12 @@ class ModelArgs(BaseModelArgs):
rope_theta: float = 10000.0
rope_scaling: Dict = None
attention_bias: bool = False
rope_parameters: Optional[Dict] = None

def __post_init__(self):
if self.rope_parameters is not None:
self.rope_theta = self.rope_parameters.get("rope_theta", 100000.0)
self.rope_scaling = self.rope_parameters


def yarn_find_correction_dim(
Expand Down
9 changes: 7 additions & 2 deletions mlx_lm/models/deepseek_v3.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import math
from dataclasses import dataclass
from functools import partial
from typing import Any, Dict, Optional

import mlx.core as mx
Expand All @@ -19,7 +18,7 @@

@dataclass
class ModelArgs(BaseModelArgs):
model_type: str = "deepseek_v3"
model_type: str
vocab_size: int = 102400
hidden_size: int = 4096
intermediate_size: int = 11008
Expand Down Expand Up @@ -48,6 +47,12 @@ class ModelArgs(BaseModelArgs):
rope_theta: float = 10000.0
rope_scaling: Dict = None
attention_bias: bool = False
rope_parameters: Optional[Dict] = None

def __post_init__(self):
if self.rope_parameters is not None:
self.rope_theta = self.rope_parameters.get("rope_theta", 100000.0)
self.rope_scaling = self.rope_parameters


class DeepseekV3Attention(nn.Module):
Expand Down
8 changes: 7 additions & 1 deletion mlx_lm/models/deepseek_v32.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

@dataclass
class ModelArgs(BaseModelArgs):
model_type: str = "deepseek_v32"
model_type: str
vocab_size: int = 102400
hidden_size: int = 4096
index_head_dim: int = 128
Expand Down Expand Up @@ -50,6 +50,12 @@ class ModelArgs(BaseModelArgs):
rope_theta: float = 10000.0
rope_scaling: Dict = None
attention_bias: bool = False
rope_parameters: Optional[Dict] = None

def __post_init__(self):
if self.rope_parameters is not None:
self.rope_theta = self.rope_parameters.get("rope_theta", 100000.0)
self.rope_scaling = self.rope_parameters


class Indexer(nn.Module):
Expand Down
7 changes: 6 additions & 1 deletion mlx_lm/models/dots1.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Copyright © 2023-2024 Apple Inc.

from dataclasses import dataclass
from functools import partial
from typing import Any, Dict, Optional, Union

import mlx.core as mx
Expand Down Expand Up @@ -40,6 +39,12 @@ class ModelArgs(BaseModelArgs):
mlp_bias: bool = False
rope_scaling: Optional[Dict[str, Union[float, str]]] = None
tie_word_embeddings: bool = False
rope_parameters: Optional[Dict] = None

def __post_init__(self):
if self.rope_parameters is not None:
self.rope_theta = self.rope_parameters.get("rope_theta", 100000.0)
self.rope_scaling = self.rope_parameters


class Dots1Attention(nn.Module):
Expand Down
7 changes: 6 additions & 1 deletion mlx_lm/models/ernie4_5.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Copyright © 2023-2024 Apple Inc.

from dataclasses import dataclass
from typing import Any, Optional
from typing import Any, Dict, Optional

import mlx.core as mx
import mlx.nn as nn
Expand All @@ -26,6 +26,11 @@ class ModelArgs(BaseModelArgs):
rope_theta: float
use_bias: bool
tie_word_embeddings: bool
rope_parameters: Optional[Dict] = None

def __post_init__(self):
if self.rope_parameters is not None:
self.rope_theta = self.rope_parameters.get("rope_theta", 10000.0)


class Attention(nn.Module):
Expand Down
7 changes: 6 additions & 1 deletion mlx_lm/models/ernie4_5_moe.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Copyright © 2023-2024 Apple Inc.

from dataclasses import dataclass, field
from typing import Any, Optional
from typing import Any, Dict, Optional

import mlx.core as mx
import mlx.nn as nn
Expand Down Expand Up @@ -37,6 +37,11 @@ class ModelArgs(BaseModelArgs):
moe_layer_end_index: Optional[int] = None
head_dim: Optional[int] = None
moe_gate_act: str = "softmax"
rope_parameters: Optional[Dict] = None

def __post_init__(self):
if self.rope_parameters is not None:
self.rope_theta = self.rope_parameters.get("rope_theta", 10000.0)


class Attention(nn.Module):
Expand Down
Loading