shanjiaz commited on
Commit
b23eefb
·
verified ·
1 Parent(s): d5ece72

Upload folder using huggingface_hub

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ model.safetensors.backup filter=lfs diff=lfs merge=lfs -text
config.json ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "DFlashDraftModel"
4
+ ],
5
+ "auto_map": {
6
+ "": "config.DFlashSpeculatorConfig"
7
+ },
8
+ "aux_hidden_state_layer_ids": [
9
+ 9,
10
+ 18,
11
+ 27
12
+ ],
13
+ "base_model_ep_plan": null,
14
+ "block_size": 8,
15
+ "mask_token_id": 151669,
16
+ "draft_vocab_size": 151936,
17
+ "dtype": "float32",
18
+ "has_no_defaults_at_init": false,
19
+ "max_anchors": 2048,
20
+ "speculators_config": {
21
+ "algorithm": "dflash",
22
+ "default_proposal_method": "greedy",
23
+ "proposal_methods": [
24
+ {
25
+ "accept_tolerance": 0.0,
26
+ "proposal_type": "greedy",
27
+ "speculative_tokens": 8,
28
+ "verifier_accept_k": 1
29
+ }
30
+ ],
31
+ "verifier": {
32
+ "architectures": [],
33
+ "name_or_path": "Qwen/Qwen3-8B"
34
+ }
35
+ },
36
+ "speculators_model_type": "dflash",
37
+ "speculators_version": "0.5.0.dev42",
38
+ "target_hidden_size": null,
39
+ "transformer_layer_config": {
40
+ "attention_bias": false,
41
+ "attention_dropout": 0.0,
42
+ "head_dim": 128,
43
+ "hidden_act": "silu",
44
+ "hidden_size": 4096,
45
+ "initializer_range": 0.02,
46
+ "intermediate_size": 12288,
47
+ "max_position_embeddings": 40960,
48
+ "mlp_bias": false,
49
+ "model_type": "llama",
50
+ "num_attention_heads": 32,
51
+ "num_hidden_layers": 3,
52
+ "num_key_value_heads": 8,
53
+ "pretraining_tp": 1,
54
+ "rms_norm_eps": 1e-06,
55
+ "rope_scaling": null,
56
+ "rope_theta": 10000.0,
57
+ "use_cache": true,
58
+ "vocab_size": 151936
59
+ },
60
+ "transformers_version": "4.57.6"
61
+ }
config.py ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import Any, Literal
2
+
3
+ from pydantic import Field, field_serializer, field_validator
4
+ from transformers import AutoConfig, PretrainedConfig
5
+ from transformers.models.qwen3.modeling_qwen3 import (
6
+ Qwen3Config,
7
+ )
8
+
9
+ from speculators import SpeculatorModelConfig
10
+
11
+ __all__ = [
12
+ "DFlashSpeculatorConfig",
13
+ ]
14
+
15
+
16
+ @SpeculatorModelConfig.register("dflash")
17
+ class DFlashSpeculatorConfig(SpeculatorModelConfig):
18
+ """
19
+ Configuration for DFlash speculator with vocabulary mapping.
20
+
21
+ DFlash features vocabulary mapping between draft (64K) and target (128K)
22
+ vocabularies, enabling cross-tokenizer speculation.
23
+
24
+ :param transformer_layer_config: Configuration for the transformer decoder layer
25
+ :param draft_vocab_size: Size of draft model vocabulary for speculation
26
+ """
27
+
28
+ speculators_model_type: Literal["dflash"] = "dflash"
29
+ architectures: list[str] = Field(
30
+ default_factory=lambda: ["DFlashSpeculator"],
31
+ description="Model architectures that can load these weights",
32
+ )
33
+
34
+ transformer_layer_config: PretrainedConfig = Field(
35
+ default_factory=Qwen3Config,
36
+ description="Configuration for the transformer decoder layer",
37
+ )
38
+
39
+ draft_vocab_size: int = Field(
40
+ default=32000,
41
+ description="Size of draft model vocabulary for speculation",
42
+ )
43
+
44
+ block_size: int = Field(
45
+ default=8,
46
+ description=(
47
+ "Default size of the draft block predicted with a forward pass of the model"
48
+ ),
49
+ )
50
+
51
+ max_anchors: int = Field(
52
+ default=256,
53
+ description=(
54
+ "Maximum number of anchor positions to sample during training "
55
+ "(controls memory usage and training efficiency)"
56
+ ),
57
+ )
58
+
59
+ target_hidden_size: int | None = Field(
60
+ default=None,
61
+ description="Hidden size of the target model (if different from draft model)",
62
+ )
63
+
64
+ aux_hidden_state_layer_ids: list[int] | None = Field(
65
+ default=None,
66
+ description="Layer IDs of the DFlash auxiliary hidden state layers",
67
+ )
68
+
69
+ @property
70
+ def target_vocab_size(self) -> int:
71
+ """Get target vocabulary size from transformer config."""
72
+ return self.transformer_layer_config.vocab_size
73
+
74
+ @field_serializer("transformer_layer_config")
75
+ def serialize_transformer_config(self, value: PretrainedConfig) -> dict:
76
+ """Serialize transformer config to dict."""
77
+ return value.to_diff_dict()
78
+
79
+ @field_validator("transformer_layer_config", mode="before")
80
+ @classmethod
81
+ def validate_transformer_config(cls, value: Any) -> PretrainedConfig:
82
+ """Validate and convert transformer config."""
83
+ if isinstance(value, dict):
84
+ config_class: type[PretrainedConfig] = Qwen3Config
85
+ if "model_type" in value:
86
+ config_class = AutoConfig.for_model(
87
+ model_type=value["model_type"]
88
+ ).__class__
89
+ return config_class(**value)
90
+ return value
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d867a15d5ae8bf4ac21f816e953f37d85da77814c9a2d0f1cef24b3a2ca267b1
3
+ size 3747681752
model.safetensors.backup ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4d5e16cba3339cc9f65d34c30a6383a361b6b70756df09faacac53a31304474d
3
+ size 4993709176
optimizer_state_dict.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a8df92ad003b68dd5c9fc700a99ac5ec98bb354a2255a28495ca7d000b4b1abc
3
+ size 2516750769
scheduler_state_dict.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6964a0fcd9cb94f3e2a4737e1436fc13ee590a9562a0f8d07c9687299d36561d
3
+ size 1531