keras-hub-nightly 0.23.0.dev202510160419__py3-none-any.whl → 0.23.0.dev202510180414__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of keras-hub-nightly might be problematic. Click here for more details.
- keras_hub/models/__init__.py +24 -0
- keras_hub/src/models/gemma/gemma_presets.py +22 -0
- keras_hub/src/models/smollm3/smollm3_backbone.py +211 -0
- keras_hub/src/models/smollm3/smollm3_causal_lm.py +310 -0
- keras_hub/src/models/smollm3/smollm3_causal_lm_preprocessor.py +84 -0
- keras_hub/src/models/smollm3/smollm3_layers.py +757 -0
- keras_hub/src/models/smollm3/smollm3_tokenizer.py +60 -0
- keras_hub/src/models/smollm3/smollm3_utils.py +56 -0
- keras_hub/src/utils/transformers/convert_smollm3.py +139 -0
- keras_hub/src/utils/transformers/preset_loader.py +3 -0
- keras_hub/src/version.py +1 -1
- keras_hub/tokenizers/__init__.py +6 -0
- {keras_hub_nightly-0.23.0.dev202510160419.dist-info → keras_hub_nightly-0.23.0.dev202510180414.dist-info}/METADATA +1 -1
- {keras_hub_nightly-0.23.0.dev202510160419.dist-info → keras_hub_nightly-0.23.0.dev202510180414.dist-info}/RECORD +16 -9
- {keras_hub_nightly-0.23.0.dev202510160419.dist-info → keras_hub_nightly-0.23.0.dev202510180414.dist-info}/WHEEL +0 -0
- {keras_hub_nightly-0.23.0.dev202510160419.dist-info → keras_hub_nightly-0.23.0.dev202510180414.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
from keras_hub.src.api_export import keras_hub_export
|
|
2
|
+
from keras_hub.src.models.smollm3.smollm3_backbone import SmolLM3Backbone
|
|
3
|
+
from keras_hub.src.tokenizers.byte_pair_tokenizer import BytePairTokenizer
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@keras_hub_export(
|
|
7
|
+
[
|
|
8
|
+
"keras_hub.tokenizers.SmolLM3Tokenizer",
|
|
9
|
+
"keras_hub.tokenizers.SmolLMTokenizer",
|
|
10
|
+
"keras_hub.models.SmolLM3Tokenizer",
|
|
11
|
+
"keras_hub.models.SmolLMTokenizer",
|
|
12
|
+
]
|
|
13
|
+
)
|
|
14
|
+
class SmolLM3Tokenizer(BytePairTokenizer):
|
|
15
|
+
"""Tokenizer for SmolLM3 models.
|
|
16
|
+
|
|
17
|
+
This tokenizer implements byte-pair encoding (BPE) for SmolLM3 models,
|
|
18
|
+
handling special tokens like BOS (beginning of sequence) and EOS (end of
|
|
19
|
+
sequence).
|
|
20
|
+
|
|
21
|
+
Args:
|
|
22
|
+
vocabulary: Dictionary mapping tokens to token IDs, or path to
|
|
23
|
+
vocabulary file.
|
|
24
|
+
merges: List of BPE merges, or path to merges file.
|
|
25
|
+
bos_token: Beginning of sequence token. Defaults to None.
|
|
26
|
+
eos_token: End of sequence token. Defaults to "<|endoftext|>".
|
|
27
|
+
misc_special_tokens: Set of additional special tokens. Defaults to
|
|
28
|
+
empty set.
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
backbone_cls = SmolLM3Backbone
|
|
32
|
+
|
|
33
|
+
def __init__(
|
|
34
|
+
self,
|
|
35
|
+
vocabulary=None,
|
|
36
|
+
merges=None,
|
|
37
|
+
**kwargs,
|
|
38
|
+
):
|
|
39
|
+
# Add EOS token
|
|
40
|
+
eos_token = "<|end_of_text|>"
|
|
41
|
+
self._add_special_token(eos_token, "end_token")
|
|
42
|
+
|
|
43
|
+
bos_token = "<|begin_of_text|>"
|
|
44
|
+
self._add_special_token(bos_token, "bos_token")
|
|
45
|
+
|
|
46
|
+
start_think_token = "<think>"
|
|
47
|
+
self._add_special_token(start_think_token, "start_think_token")
|
|
48
|
+
|
|
49
|
+
end_think_token = "</think>"
|
|
50
|
+
self._add_special_token(end_think_token, "end_think_token")
|
|
51
|
+
|
|
52
|
+
self.start_token_id = None
|
|
53
|
+
self.start_token = None
|
|
54
|
+
self.pad_token_id = 0
|
|
55
|
+
|
|
56
|
+
super().__init__(
|
|
57
|
+
vocabulary=vocabulary,
|
|
58
|
+
merges=merges,
|
|
59
|
+
**kwargs,
|
|
60
|
+
)
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
from keras import ops
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def rotate_half(x):
|
|
5
|
+
x1 = x[..., : ops.shape(x)[-1] // 2]
|
|
6
|
+
x2 = x[..., ops.shape(x)[-1] // 2 :]
|
|
7
|
+
return ops.concatenate((-x2, x1), axis=-1)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def apply_rotary_pos_emb(q, k, cos, sin, expansion_axis=1):
|
|
11
|
+
cos = ops.expand_dims(cos, expansion_axis)
|
|
12
|
+
sin = ops.expand_dims(sin, expansion_axis)
|
|
13
|
+
q_embed = (q * cos) + (rotate_half(q) * sin)
|
|
14
|
+
k_embed = (k * cos) + (rotate_half(k) * sin)
|
|
15
|
+
return q_embed, k_embed
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def apply_rotary_pos_single(tensor, cos, sin, expansion_axis=1):
|
|
19
|
+
cos = ops.expand_dims(cos, expansion_axis)
|
|
20
|
+
sin = ops.expand_dims(sin, expansion_axis)
|
|
21
|
+
tensor_embed = (tensor * cos) + (rotate_half(tensor) * sin)
|
|
22
|
+
return tensor_embed
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def repeat_kv(hidden_states, n_rep):
|
|
26
|
+
batch, num_key_value_heads, slen, head_dim = ops.shape(hidden_states)
|
|
27
|
+
if n_rep == 1:
|
|
28
|
+
return hidden_states
|
|
29
|
+
hidden_states = ops.expand_dims(hidden_states, axis=2)
|
|
30
|
+
target_shape = (batch, num_key_value_heads, n_rep, slen, head_dim)
|
|
31
|
+
hidden_states = ops.broadcast_to(hidden_states, target_shape)
|
|
32
|
+
return ops.reshape(
|
|
33
|
+
hidden_states, [batch, num_key_value_heads * n_rep, slen, head_dim]
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def rope_init(rope_theta, partial_rotary_factor, head_dim):
|
|
38
|
+
"""Initialize RoPE (Rotary Position Embedding) parameters.
|
|
39
|
+
|
|
40
|
+
Args:
|
|
41
|
+
rope_theta: float. The theta value for RoPE.
|
|
42
|
+
partial_rotary_factor: float. The factor for partial rotary embedding.
|
|
43
|
+
head_dim: int. The dimension of each attention head.
|
|
44
|
+
|
|
45
|
+
Returns:
|
|
46
|
+
A tuple of (inv_freq, attention_scaling) where inv_freq is the inverse
|
|
47
|
+
frequency tensor and attention_scaling is the scaling factor.
|
|
48
|
+
"""
|
|
49
|
+
base = rope_theta
|
|
50
|
+
dim = int(head_dim * partial_rotary_factor)
|
|
51
|
+
|
|
52
|
+
inv_freq = 1.0 / (
|
|
53
|
+
ops.power(base, ops.arange(0, dim, 2, dtype="float32") / dim)
|
|
54
|
+
)
|
|
55
|
+
attention_scaling = 1.0
|
|
56
|
+
return inv_freq, attention_scaling
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
|
|
3
|
+
from keras_hub.src.models.smollm3.smollm3_backbone import SmolLM3Backbone
|
|
4
|
+
from keras_hub.src.utils.preset_utils import load_json
|
|
5
|
+
|
|
6
|
+
backbone_cls = SmolLM3Backbone
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def convert_backbone_config(transformers_config):
|
|
10
|
+
return {
|
|
11
|
+
"vocabulary_size": transformers_config["vocab_size"],
|
|
12
|
+
"hidden_dim": transformers_config["hidden_size"],
|
|
13
|
+
"num_layers": transformers_config["num_hidden_layers"],
|
|
14
|
+
"num_attention_heads": transformers_config["num_attention_heads"],
|
|
15
|
+
"num_key_value_heads": transformers_config["num_key_value_heads"],
|
|
16
|
+
"intermediate_dim": transformers_config["intermediate_size"],
|
|
17
|
+
"layer_norm_epsilon": transformers_config[
|
|
18
|
+
"rms_norm_eps"
|
|
19
|
+
], # Using rms_norm_eps as layer_norm_epsilon
|
|
20
|
+
"max_position_embeddings": transformers_config[
|
|
21
|
+
"max_position_embeddings"
|
|
22
|
+
],
|
|
23
|
+
"rope_theta": transformers_config["rope_theta"],
|
|
24
|
+
# partial_rotary_factor is not explicitly in config.json
|
|
25
|
+
# but is inherited from the default value in the
|
|
26
|
+
# `_compute_default_rope_parameters()` function
|
|
27
|
+
"partial_rotary_factor": 1.0,
|
|
28
|
+
"attention_bias": transformers_config["attention_bias"],
|
|
29
|
+
"attention_dropout": transformers_config["attention_dropout"],
|
|
30
|
+
# Despite the name, no_rope_layers: 1 = HAS RoPE, 0 = NO RoPE
|
|
31
|
+
"rope_layer_enabled_list": [
|
|
32
|
+
bool(x) for x in transformers_config["no_rope_layers"]
|
|
33
|
+
],
|
|
34
|
+
"layer_types": transformers_config["layer_types"],
|
|
35
|
+
"mlp_bias": transformers_config["mlp_bias"],
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def convert_weights(backbone, loader, transformers_config):
|
|
40
|
+
loader.port_weight(
|
|
41
|
+
keras_variable=backbone.get_layer("token_embedding").embeddings,
|
|
42
|
+
hf_weight_key="model.embed_tokens.weight",
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
def transpose_and_reshape(x, shape):
|
|
46
|
+
return np.reshape(np.transpose(x), shape)
|
|
47
|
+
|
|
48
|
+
for i in range(backbone.num_layers):
|
|
49
|
+
decoder_layer = backbone.get_layer(f"transformer_layer_{i}")
|
|
50
|
+
|
|
51
|
+
# Input layernorm
|
|
52
|
+
loader.port_weight(
|
|
53
|
+
keras_variable=decoder_layer.input_layernorm.scale,
|
|
54
|
+
hf_weight_key=f"model.layers.{i}.input_layernorm.weight",
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
# Attention layers
|
|
58
|
+
## Query
|
|
59
|
+
loader.port_weight(
|
|
60
|
+
keras_variable=decoder_layer.self_attn.q_proj.kernel,
|
|
61
|
+
hf_weight_key=f"model.layers.{i}.self_attn.q_proj.weight",
|
|
62
|
+
hook_fn=transpose_and_reshape,
|
|
63
|
+
)
|
|
64
|
+
## Key
|
|
65
|
+
loader.port_weight(
|
|
66
|
+
keras_variable=decoder_layer.self_attn.k_proj.kernel,
|
|
67
|
+
hf_weight_key=f"model.layers.{i}.self_attn.k_proj.weight",
|
|
68
|
+
hook_fn=transpose_and_reshape,
|
|
69
|
+
)
|
|
70
|
+
## Value
|
|
71
|
+
loader.port_weight(
|
|
72
|
+
keras_variable=decoder_layer.self_attn.v_proj.kernel,
|
|
73
|
+
hf_weight_key=f"model.layers.{i}.self_attn.v_proj.weight",
|
|
74
|
+
hook_fn=transpose_and_reshape,
|
|
75
|
+
)
|
|
76
|
+
## Output
|
|
77
|
+
loader.port_weight(
|
|
78
|
+
keras_variable=decoder_layer.self_attn.o_proj.kernel,
|
|
79
|
+
hf_weight_key=f"model.layers.{i}.self_attn.o_proj.weight",
|
|
80
|
+
hook_fn=transpose_and_reshape,
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
# MLP layers
|
|
84
|
+
loader.port_weight(
|
|
85
|
+
keras_variable=decoder_layer.mlp.up_proj.kernel,
|
|
86
|
+
hf_weight_key=f"model.layers.{i}.mlp.up_proj.weight",
|
|
87
|
+
# rearrange_patterns="b a -> a b",
|
|
88
|
+
hook_fn=lambda hf_tensor, _: np.transpose(hf_tensor, axes=(1, 0)),
|
|
89
|
+
)
|
|
90
|
+
loader.port_weight(
|
|
91
|
+
keras_variable=decoder_layer.mlp.down_proj.kernel,
|
|
92
|
+
hf_weight_key=f"model.layers.{i}.mlp.down_proj.weight",
|
|
93
|
+
# rearrange_patterns="b a -> a b",
|
|
94
|
+
hook_fn=lambda hf_tensor, _: np.transpose(hf_tensor, axes=(1, 0)),
|
|
95
|
+
)
|
|
96
|
+
loader.port_weight(
|
|
97
|
+
keras_variable=decoder_layer.mlp.gate_proj.kernel,
|
|
98
|
+
hf_weight_key=f"model.layers.{i}.mlp.gate_proj.weight",
|
|
99
|
+
# rearrange_patterns="b a -> a b",
|
|
100
|
+
hook_fn=lambda hf_tensor, _: np.transpose(hf_tensor, axes=(1, 0)),
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
# Feedforward layernorm
|
|
104
|
+
loader.port_weight(
|
|
105
|
+
keras_variable=decoder_layer.post_attention_layernorm.scale,
|
|
106
|
+
hf_weight_key=f"model.layers.{i}.post_attention_layernorm.weight",
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
# Final normalization layer
|
|
110
|
+
loader.port_weight(
|
|
111
|
+
keras_variable=backbone.get_layer("sequence_output_layernorm").scale,
|
|
112
|
+
hf_weight_key="model.norm.weight",
|
|
113
|
+
)
|
|
114
|
+
|
|
115
|
+
backbone.training = False
|
|
116
|
+
|
|
117
|
+
return backbone
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def convert_tokenizer(cls, preset, **kwargs):
|
|
121
|
+
tokenizer_config = load_json(preset, "tokenizer.json")
|
|
122
|
+
vocab = tokenizer_config["model"]["vocab"]
|
|
123
|
+
merges = tokenizer_config["model"]["merges"]
|
|
124
|
+
merges = [" ".join(item) for item in merges]
|
|
125
|
+
|
|
126
|
+
# Load all special tokens with the exception of "reserved" ones.
|
|
127
|
+
special_tokens = set()
|
|
128
|
+
for token in tokenizer_config["added_tokens"]:
|
|
129
|
+
if not token["content"].startswith("<|reserved_special_token_"):
|
|
130
|
+
vocab[token["content"]] = token["id"]
|
|
131
|
+
special_tokens.add(token["content"])
|
|
132
|
+
|
|
133
|
+
kwargs.update(
|
|
134
|
+
{
|
|
135
|
+
"unsplittable_tokens": list(special_tokens),
|
|
136
|
+
}
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
return cls(vocabulary=vocab, merges=merges, **kwargs)
|
|
@@ -20,6 +20,7 @@ from keras_hub.src.utils.transformers import convert_qwen
|
|
|
20
20
|
from keras_hub.src.utils.transformers import convert_qwen3
|
|
21
21
|
from keras_hub.src.utils.transformers import convert_qwen3_moe
|
|
22
22
|
from keras_hub.src.utils.transformers import convert_qwen_moe
|
|
23
|
+
from keras_hub.src.utils.transformers import convert_smollm3
|
|
23
24
|
from keras_hub.src.utils.transformers import convert_t5gemma
|
|
24
25
|
from keras_hub.src.utils.transformers import convert_vit
|
|
25
26
|
from keras_hub.src.utils.transformers.safetensor_utils import SafetensorLoader
|
|
@@ -66,6 +67,8 @@ class TransformersPresetLoader(PresetLoader):
|
|
|
66
67
|
self.converter = convert_qwen3_moe
|
|
67
68
|
elif model_type == "qwen3":
|
|
68
69
|
self.converter = convert_qwen3
|
|
70
|
+
elif model_type == "smollm3":
|
|
71
|
+
self.converter = convert_smollm3
|
|
69
72
|
elif model_type == "t5gemma":
|
|
70
73
|
self.converter = convert_t5gemma
|
|
71
74
|
else:
|
keras_hub/src/version.py
CHANGED
keras_hub/tokenizers/__init__.py
CHANGED
|
@@ -93,6 +93,12 @@ from keras_hub.src.models.roformer_v2.roformer_v2_tokenizer import (
|
|
|
93
93
|
from keras_hub.src.models.siglip.siglip_tokenizer import (
|
|
94
94
|
SigLIPTokenizer as SigLIPTokenizer,
|
|
95
95
|
)
|
|
96
|
+
from keras_hub.src.models.smollm3.smollm3_tokenizer import (
|
|
97
|
+
SmolLM3Tokenizer as SmolLM3Tokenizer,
|
|
98
|
+
)
|
|
99
|
+
from keras_hub.src.models.smollm3.smollm3_tokenizer import (
|
|
100
|
+
SmolLM3Tokenizer as SmolLMTokenizer,
|
|
101
|
+
)
|
|
96
102
|
from keras_hub.src.models.t5.t5_tokenizer import T5Tokenizer as T5Tokenizer
|
|
97
103
|
from keras_hub.src.models.t5gemma.t5gemma_tokenizer import (
|
|
98
104
|
T5GemmaTokenizer as T5GemmaTokenizer,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
keras_hub/__init__.py,sha256=bJbUZkqwhZvTb1Tqx1fbkq6mzBYiEyq-Hin3oQIkhdE,558
|
|
2
2
|
keras_hub/layers/__init__.py,sha256=ufJKHxMTFhwp--E3ixfGCZqq89pZOUOxCQYgI5pEUA8,5944
|
|
3
3
|
keras_hub/metrics/__init__.py,sha256=KYalsMPBnfwim9BdGHFfJ5WxUKFXOQ1QoKIMT_0lwlM,439
|
|
4
|
-
keras_hub/models/__init__.py,sha256=
|
|
4
|
+
keras_hub/models/__init__.py,sha256=yazrEg57HafE6Fgr-bfDXR3iFrArx6RytOEnV1CJJS8,32068
|
|
5
5
|
keras_hub/samplers/__init__.py,sha256=aFQIkiqbZpi8vjrPp2MVII4QUfE-eQjra5fMeHsoy7k,886
|
|
6
6
|
keras_hub/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
7
|
keras_hub/src/api_export.py,sha256=9pQZK27JObxWZ96QPLBp1OBsjWigh1iuV6RglPGMRk0,1499
|
|
8
|
-
keras_hub/src/version.py,sha256=
|
|
8
|
+
keras_hub/src/version.py,sha256=aioHRwIy0Trzz48ahw0YIHMyW0fnGaYJzyx-7MGrH9U,222
|
|
9
9
|
keras_hub/src/layers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
10
|
keras_hub/src/layers/modeling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
11
|
keras_hub/src/layers/modeling/alibi_bias.py,sha256=1XBTHI52L_iJDhN_w5ydu_iMhCuTgQAxEPwcLA6BPuk,4411
|
|
@@ -236,7 +236,7 @@ keras_hub/src/models/gemma/gemma_backbone.py,sha256=pAAVaVKB6nlA0PncVnFXvNgJV7Se
|
|
|
236
236
|
keras_hub/src/models/gemma/gemma_causal_lm.py,sha256=3OXaIXlrKqMIuUnBk-bUz-0SYFL-XkkQTWm8qRY2YII,16770
|
|
237
237
|
keras_hub/src/models/gemma/gemma_causal_lm_preprocessor.py,sha256=bpKkEurWIfa6Kp9s4pz84-sBDSA6ZFNHP8nXG1fFQrg,2912
|
|
238
238
|
keras_hub/src/models/gemma/gemma_decoder_block.py,sha256=f5UsRO-VNsKJfm_WHVJWK4UahhzYm3sKprJ8jjr-zm4,7628
|
|
239
|
-
keras_hub/src/models/gemma/gemma_presets.py,sha256=
|
|
239
|
+
keras_hub/src/models/gemma/gemma_presets.py,sha256=wAH7mjz9tbQqqdwajU2dilGytnWK1qc-aTIVLtjpTWg,8263
|
|
240
240
|
keras_hub/src/models/gemma/gemma_tokenizer.py,sha256=FhcyNL4lo63MqOhTQPFr07-u3BddL0fVM4TmOm8ku-I,2622
|
|
241
241
|
keras_hub/src/models/gemma/rms_normalization.py,sha256=fku-JEo2sNy-ytX7ySD1sRzdhRAPmYex_z8oFk1NiG8,833
|
|
242
242
|
keras_hub/src/models/gemma3/__init__.py,sha256=oPFadkdK5DRLD6sYx83iTetY5daWuSzmJilLjokHcbU,257
|
|
@@ -469,6 +469,12 @@ keras_hub/src/models/siglip/siglip_presets.py,sha256=gOzSVhLskAthfzq8jWOtQWv14eu
|
|
|
469
469
|
keras_hub/src/models/siglip/siglip_text_encoder.py,sha256=xOVvzyQHLX9ne30y4ussar99gNMXPXHYKlkbCX_On2Y,5380
|
|
470
470
|
keras_hub/src/models/siglip/siglip_tokenizer.py,sha256=j_67JbIHJDRk-CbiemG2dgAO6lp3_0_JdnfroZ90G18,2579
|
|
471
471
|
keras_hub/src/models/siglip/siglip_vision_encoder.py,sha256=CaNaFq5thBC3TUXXOf2qknk5vWsauM20ZoaDPYRnXcs,5927
|
|
472
|
+
keras_hub/src/models/smollm3/smollm3_backbone.py,sha256=9e8ydwy7X0stVEWgIJYt69vt6JYSCiYpM73w6oLxyoQ,7949
|
|
473
|
+
keras_hub/src/models/smollm3/smollm3_causal_lm.py,sha256=PWn2zPu0YS3uRvmjksmXKXpxehl8lvEHAXaO0u7nweM,12641
|
|
474
|
+
keras_hub/src/models/smollm3/smollm3_causal_lm_preprocessor.py,sha256=gbj7IhDbgA30AM80uG6BeI1yZmGd5yQ2VEaPWWyS9M4,3121
|
|
475
|
+
keras_hub/src/models/smollm3/smollm3_layers.py,sha256=lR33IynX-1G42L3hNzOBnnIx-INOzJguSQDAwIPaSIQ,26632
|
|
476
|
+
keras_hub/src/models/smollm3/smollm3_tokenizer.py,sha256=evOVM8pgZUkWLoXAwWiYRSNNFZ7KBv1WtFdLqpHdCQU,1877
|
|
477
|
+
keras_hub/src/models/smollm3/smollm3_utils.py,sha256=zAqtZTv1G--k-Dbjvk886OcmsuIxyYicRiUQXcpyud0,1904
|
|
472
478
|
keras_hub/src/models/stable_diffusion_3/__init__.py,sha256=ZKYQuaRObyhKq8GVAHmoRvlXp6FpU8ChvutVCHyXKuc,343
|
|
473
479
|
keras_hub/src/models/stable_diffusion_3/flow_match_euler_discrete_scheduler.py,sha256=1K_B3d3fNn50eY84OgxVHyIHHZhmlJY03b71pMSmE9s,3246
|
|
474
480
|
keras_hub/src/models/stable_diffusion_3/mmdit.py,sha256=emyDmtpJiFU_9crSDBC5CaXoZnM1Eti8uAQtwv2v8B0,42794
|
|
@@ -602,15 +608,16 @@ keras_hub/src/utils/transformers/convert_qwen.py,sha256=WUxMAEFVqRs7TRw7QU5TH3_e
|
|
|
602
608
|
keras_hub/src/utils/transformers/convert_qwen3.py,sha256=LIormvCMWPq6X9Wo2eNbADjtFZ0nI7tFGZFBxmo4GKw,5700
|
|
603
609
|
keras_hub/src/utils/transformers/convert_qwen3_moe.py,sha256=4Cr2haS20VNHF1iqKRpKeZ47baV0TAXg87zkCfl-JTg,8876
|
|
604
610
|
keras_hub/src/utils/transformers/convert_qwen_moe.py,sha256=a7R28aln-PdAcNuKAXdrtzvslho2Co6GypChxLMKPpc,10618
|
|
611
|
+
keras_hub/src/utils/transformers/convert_smollm3.py,sha256=V2vWES85YSNXNx39I8OwAcOvSpb9KxUscrDr7ra-LPA,5281
|
|
605
612
|
keras_hub/src/utils/transformers/convert_t5gemma.py,sha256=DPOwd61UhjspKuCsk3_EaNvSADGP_f8KLcZARHYVk5Y,9490
|
|
606
613
|
keras_hub/src/utils/transformers/convert_vit.py,sha256=YAmXh519ecSgEO5B4g-aEQg1Bb_6ifFafLMqDTfLn_c,5259
|
|
607
|
-
keras_hub/src/utils/transformers/preset_loader.py,sha256=
|
|
614
|
+
keras_hub/src/utils/transformers/preset_loader.py,sha256=PmB4wcPaMlqMhrhk2bYt74TvRHRsZgpodfKlzixfr-Q,5219
|
|
608
615
|
keras_hub/src/utils/transformers/safetensor_utils.py,sha256=CYUHyA4y-B61r7NDnCsFb4t_UmSwZ1k9L-8gzEd6KRg,3339
|
|
609
616
|
keras_hub/src/utils/transformers/export/gemma.py,sha256=xX_vfQwvFZ_-lQX4kgMNOGKL7fL_1yk7QyGYV2Qyly4,4699
|
|
610
617
|
keras_hub/src/utils/transformers/export/hf_exporter.py,sha256=Qk52c6LIA2eMHUNY9Vy4STJSpnhLMdJ_t-3ljqhSr4k,5081
|
|
611
|
-
keras_hub/tokenizers/__init__.py,sha256=
|
|
618
|
+
keras_hub/tokenizers/__init__.py,sha256=XFOxDmM1Mz9TxiE8ICZK_-yTTyRFywUUiVwRIzz2QZ8,4770
|
|
612
619
|
keras_hub/utils/__init__.py,sha256=jXPqVGBpJr_PpYmqD8aDG-fRMlxH-ulqCR2SZMn288Y,646
|
|
613
|
-
keras_hub_nightly-0.23.0.
|
|
614
|
-
keras_hub_nightly-0.23.0.
|
|
615
|
-
keras_hub_nightly-0.23.0.
|
|
616
|
-
keras_hub_nightly-0.23.0.
|
|
620
|
+
keras_hub_nightly-0.23.0.dev202510180414.dist-info/METADATA,sha256=e7wLwbCMOXAQ3ZlX0KJRacMCLEpvphliVqEfoEzPTnI,7395
|
|
621
|
+
keras_hub_nightly-0.23.0.dev202510180414.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
622
|
+
keras_hub_nightly-0.23.0.dev202510180414.dist-info/top_level.txt,sha256=N4J6piIWBKa38A4uV-CnIopnOEf8mHAbkNXafXm_CuA,10
|
|
623
|
+
keras_hub_nightly-0.23.0.dev202510180414.dist-info/RECORD,,
|
|
File without changes
|