tarekziade HF Staff commited on
Commit
d03ef8c
·
verified ·
1 Parent(s): 1d19d44

Publish MIC usage, slim fixture and reviewed Transformers expectations

Browse files
.mic-repo.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "format": "mic-umbrella-v1",
3
+ "contract_files": [
4
+ "integration.json",
5
+ "integrations/transformers/usage.md"
6
+ ]
7
+ }
README.md ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ tags:
3
+ - mic
4
+ - test-artifact
5
+ base_model: ai21labs/Jamba-tiny-dev
6
+ ---
7
+
8
+ # Jamba-tiny-dev-mic
9
+
10
+ Slim model weights, executable usage and framework expectations in one repository.
11
+
12
+ - [Contract manifest](integration.json)
13
+ - [Transformers usage](integrations/transformers/usage.md)
14
+ - [Transformers expectations](integrations/transformers/expectations)
15
+ - [Fixture provenance](build.json)
16
+
17
+ ## Contract
18
+
19
+ ### Jamba causal LM
20
+
21
+ Runnable usage and the framework expectations directory are linked above.
22
+
23
+ ## Slim model
24
+
25
+ ### Slim fixture: Jamba-tiny-dev-mic
26
+
27
+ A 8.8M-parameter fixture for the [Jamba MIC](https://huggingface.co/huggingface-mic/Jamba-tiny-dev-mic), covering [`ai21labs/Jamba-tiny-dev`](https://huggingface.co/ai21labs/Jamba-tiny-dev). It is a test artifact, not a usable model, tagged `test-artifact` to keep it out of candidate-model search.
28
+
29
+ - **Fixture key `ce507b862c67`.** It covers every checkpoint whose processor files are byte-identical and whose config matches after shrinking.
30
+ - **Same architecture, smaller config:** `JambaForCausalLM`, shrunk by the generic rule in [`sweep.py`](https://github.com/huggingface/transformers-mic/blob/main/experiments/sweep.py) (num_hidden_layers 5).
31
+ - **Processor files copied byte for byte** from `ai21labs/Jamba-tiny-dev`: `generation_config.json`, `special_tokens_map.json`, `tokenizer.json`, `tokenizer.model`, `tokenizer_config.json`.
32
+ - **Random weights (seed 17).** They passed the input-sensitivity gate: every perturbation of the contract's inputs moved the logits by at least 0.001 (weakest: `input_ids:roll_batch`, 0.764), so no training was needed.
33
+ - **Same tensor names as the real checkpoint.** The real checkpoint has every parameter, and so does the fixture.
34
+ - **Saved in bfloat16**, the dtype `ai21labs/Jamba-tiny-dev` loads in by default.
35
+ - **Finite in float32, bfloat16, and float16** (forward, loss, gradients).
36
+
37
+ Built by [`build_fixtures.py`](https://github.com/huggingface/transformers-mic/blob/main/example/build_fixtures.py); [`build.json`](build.json) records the pinned sources, gate results, and file hashes. This repository includes the slim weights, usage and framework expectations; rebuild the other files with `python example/build_fixtures.py --fixture Jamba-tiny-dev-mic`.
build.json ADDED
@@ -0,0 +1,148 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "fixture": "huggingface-mic/Jamba-tiny-dev-mic",
3
+ "key": "ce507b862c67085517bdb80699420885f7ba5b0af9beece93aa10ae531c15c80",
4
+ "key_fields": {
5
+ "architectures": [
6
+ "JambaForCausalLM"
7
+ ],
8
+ "output_hidden_states": false,
9
+ "return_dict": true,
10
+ "chunk_size_feed_forward": 0,
11
+ "is_encoder_decoder": false,
12
+ "id2label": {
13
+ "0": "LABEL_0",
14
+ "1": "LABEL_1"
15
+ },
16
+ "label2id": {
17
+ "LABEL_0": 0,
18
+ "LABEL_1": 1
19
+ },
20
+ "problem_type": null,
21
+ "vocab_size": 65536,
22
+ "tie_word_embeddings": false,
23
+ "hidden_size": 64,
24
+ "intermediate_size": 128,
25
+ "num_hidden_layers": 5,
26
+ "num_attention_heads": 4,
27
+ "num_key_value_heads": 2,
28
+ "hidden_act": "silu",
29
+ "initializer_range": 0.02,
30
+ "rms_norm_eps": 1e-06,
31
+ "use_cache": true,
32
+ "output_router_logits": false,
33
+ "router_aux_loss_coef": 0.001,
34
+ "pad_token_id": 0,
35
+ "bos_token_id": 1,
36
+ "eos_token_id": 2,
37
+ "max_position_embeddings": 262144,
38
+ "attention_dropout": 0.0,
39
+ "num_experts_per_tok": 2,
40
+ "num_experts": 4,
41
+ "expert_layer_period": 2,
42
+ "expert_layer_offset": 1,
43
+ "attn_layer_period": 8,
44
+ "attn_layer_offset": 4,
45
+ "use_mamba_kernels": true,
46
+ "mamba_d_state": 16,
47
+ "mamba_d_conv": 4,
48
+ "mamba_expand": 2,
49
+ "mamba_dt_rank": 32,
50
+ "mamba_conv_bias": true,
51
+ "mamba_proj_bias": false,
52
+ "use_mambapy": false,
53
+ "use_associative_scan": true,
54
+ "model_type": "jamba",
55
+ "num_logits_to_keep": 1,
56
+ "sliding_window": null,
57
+ "output_attentions": false,
58
+ "dtype": "bfloat16"
59
+ },
60
+ "covers": {
61
+ "ai21labs/Jamba-tiny-dev": "ed303361004ac875426a61675edecf8e9d976882"
62
+ },
63
+ "built_from": {
64
+ "repo": "ai21labs/Jamba-tiny-dev",
65
+ "revision": "ed303361004ac875426a61675edecf8e9d976882"
66
+ },
67
+ "seed": 17,
68
+ "dtype": "bfloat16",
69
+ "builder": "example/build_fixtures.py",
70
+ "builder_revision": "76cba244631520dc5e504be76e22bb73fcf16b8b",
71
+ "recipe": {
72
+ "seed": 17
73
+ },
74
+ "shrink": "rule",
75
+ "model_class": "JambaForCausalLM",
76
+ "parameters": 8831936,
77
+ "missing_parameters": [],
78
+ "checkpoint_inspection": "parameter headers/indexes; bounded binary fallback",
79
+ "numeric_health_scope": "CPU float32/bfloat16/float16; autocast for low-precision losses",
80
+ "captured": {
81
+ "call": "training step",
82
+ "inputs": [
83
+ "attention_mask",
84
+ "input_ids",
85
+ "labels"
86
+ ],
87
+ "class": "JambaForCausalLM"
88
+ },
89
+ "weights": "random",
90
+ "gate": {
91
+ "random": {
92
+ "pass": true,
93
+ "accepted_insensitive": {},
94
+ "threshold": 0.001,
95
+ "deltas": {
96
+ "input_ids:roll_batch": 0.763671875,
97
+ "input_ids:reverse": 1.17578125,
98
+ "attention_mask:all_ones": null
99
+ },
100
+ "weakest": "input_ids:roll_batch",
101
+ "no_perturbation_defined": [],
102
+ "not_a_forward_parameter": []
103
+ }
104
+ },
105
+ "numeric_health": {
106
+ "float32": {
107
+ "outputs_finite": true,
108
+ "loss_finite": true,
109
+ "gradients_finite": true,
110
+ "finite": true
111
+ },
112
+ "bfloat16": {
113
+ "outputs_finite": true,
114
+ "loss_finite": true,
115
+ "gradients_finite": true,
116
+ "finite": true
117
+ },
118
+ "float16": {
119
+ "outputs_finite": true,
120
+ "loss_finite": true,
121
+ "unscaled_gradients_finite": true,
122
+ "finite": true
123
+ }
124
+ },
125
+ "copied_unchanged": [
126
+ "generation_config.json",
127
+ "special_tokens_map.json",
128
+ "tokenizer.json",
129
+ "tokenizer.model",
130
+ "tokenizer_config.json"
131
+ ],
132
+ "environment": {
133
+ "python": "3.12.12",
134
+ "machine": "arm64",
135
+ "torch": "2.14.1",
136
+ "transformers": "5.22.0.dev0",
137
+ "tokenizers": "0.23.3"
138
+ },
139
+ "sha256": {
140
+ "config.json": "ce9577f4c98802184f1e5d0b326cea67af4e19840f1d426004811771a54a72a7",
141
+ "generation_config.json": "0dd850e9c007f3046febe16658a39b6caa96768682f7fc4c356861be6b456216",
142
+ "model.safetensors": "26d26ea890188b3ce4cf8b1aaa843d141559cedd782f180f0085289b84130f5d",
143
+ "special_tokens_map.json": "ff56aa3285bed3b10bd29029296c4b290536dc174e54ab9c15e7c4edfa180492",
144
+ "tokenizer.json": "ce194086b50346971dabd71bba69b9d4c40b3a40c055977dc9a75da9d39080c8",
145
+ "tokenizer.model": "8b0df4fb43262c452ef37061951a06df4c63ca191d02a60ea08f14428af24376",
146
+ "tokenizer_config.json": "88bc9a4a7a7dd363d9f559e6e85bdeda3bb49d3e6725252c3b23c3383a0527a0"
147
+ }
148
+ }
config.json ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "JambaForCausalLM"
4
+ ],
5
+ "attention_dropout": 0.0,
6
+ "attn_layer_offset": 4,
7
+ "attn_layer_period": 8,
8
+ "bos_token_id": 1,
9
+ "dtype": "bfloat16",
10
+ "eos_token_id": 2,
11
+ "expert_layer_offset": 1,
12
+ "expert_layer_period": 2,
13
+ "hidden_act": "silu",
14
+ "hidden_size": 64,
15
+ "initializer_range": 0.02,
16
+ "intermediate_size": 128,
17
+ "mamba_conv_bias": true,
18
+ "mamba_d_conv": 4,
19
+ "mamba_d_state": 16,
20
+ "mamba_dt_rank": 32,
21
+ "mamba_expand": 2,
22
+ "mamba_proj_bias": false,
23
+ "max_position_embeddings": 262144,
24
+ "model_type": "jamba",
25
+ "num_attention_heads": 4,
26
+ "num_experts": 4,
27
+ "num_experts_per_tok": 2,
28
+ "num_hidden_layers": 5,
29
+ "num_key_value_heads": 2,
30
+ "num_logits_to_keep": 1,
31
+ "output_router_logits": false,
32
+ "pad_token_id": 0,
33
+ "rms_norm_eps": 1e-06,
34
+ "router_aux_loss_coef": 0.001,
35
+ "sliding_window": null,
36
+ "tie_word_embeddings": false,
37
+ "transformers_version": "5.22.0.dev0",
38
+ "use_associative_scan": true,
39
+ "use_cache": true,
40
+ "use_mamba_kernels": true,
41
+ "use_mambapy": false,
42
+ "vocab_size": 65536
43
+ }
generation_config.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "_from_model_config": true,
3
+ "bos_token_id": 1,
4
+ "eos_token_id": 2,
5
+ "pad_token_id": 0,
6
+ "transformers_version": "4.40.2"
7
+ }
integration.json ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "mic": "0.3",
3
+ "name": "Jamba causal LM",
4
+ "usage": "AutoTokenizer + AutoModelForCausalLM, batched, left padding, labels for one training step",
5
+ "architecture": "JambaForCausalLM",
6
+ "checkpoints": {
7
+ "ai21labs/Jamba-tiny-dev": {
8
+ "fixture": "huggingface-mic/Jamba-tiny-dev-mic"
9
+ }
10
+ },
11
+ "fixtures": {
12
+ "huggingface-mic/Jamba-tiny-dev-mic": {
13
+ "built_from": "ai21labs/Jamba-tiny-dev",
14
+ "covers": [
15
+ "ai21labs/Jamba-tiny-dev"
16
+ ],
17
+ "build": {
18
+ "seed": 17
19
+ }
20
+ }
21
+ },
22
+ "integrations": {
23
+ "transformers": {
24
+ "entry_point": "integrations/transformers/usage.md",
25
+ "format": "runnable-markdown",
26
+ "requires": [
27
+ "transformers>=5",
28
+ "torch"
29
+ ],
30
+ "targets": [
31
+ "fixtures",
32
+ "checkpoints"
33
+ ],
34
+ "variants": {
35
+ "default": {},
36
+ "eager": {
37
+ "attn_implementation": "eager"
38
+ },
39
+ "bfloat16": {
40
+ "dtype": "bfloat16"
41
+ }
42
+ },
43
+ "training": true,
44
+ "resources": {
45
+ "fixture": {
46
+ "memory_gb": 2,
47
+ "download_mb": 40
48
+ },
49
+ "ai21labs/Jamba-tiny-dev": {
50
+ "memory_gb": 8,
51
+ "download_mb": 1600
52
+ }
53
+ }
54
+ }
55
+ },
56
+ "outputs": {
57
+ "runtime": {
58
+ "compare": "exact"
59
+ },
60
+ "last_logits": {
61
+ "compare": "allclose",
62
+ "atol": 0.0001,
63
+ "rtol": 0.0001
64
+ },
65
+ "next_token_ids": {
66
+ "compare": "exact"
67
+ },
68
+ "training.loss": {
69
+ "compare": "allclose",
70
+ "atol": 0.0001,
71
+ "rtol": 0.0001
72
+ },
73
+ "training.gradients": {
74
+ "compare": "all_true"
75
+ },
76
+ "training.updated": {
77
+ "compare": "true"
78
+ }
79
+ }
80
+ }
integrations/transformers/expectations/cpu-x86_64-bf16/Jamba-tiny-dev-mic.bfloat16.json ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "recorded_with": {
3
+ "contract": "huggingface-mic/Jamba-tiny-dev-mic",
4
+ "contract_name": "Jamba",
5
+ "contract_revision": "7e840f9d924defee8bbe8fa47d0c69b50b714e0e",
6
+ "framework": "transformers",
7
+ "variant": "bfloat16",
8
+ "target": "Jamba-tiny-dev-mic",
9
+ "kind": "fixture",
10
+ "revision": "7e840f9d924defee8bbe8fa47d0c69b50b714e0e",
11
+ "environment": {
12
+ "python": "3.11.18",
13
+ "transformers": "5.22.0.dev0",
14
+ "torch": "2.14.0+cpu",
15
+ "torchvision": "0.29.2+cpu",
16
+ "torchaudio": "2.11.1+cpu",
17
+ "tokenizers": "0.23.3",
18
+ "numpy": "2.3.5",
19
+ "pillow": "13.0.0",
20
+ "accelerate": "1.15.0",
21
+ "safetensors": "0.8.0",
22
+ "huggingface-hub": "2.3.0",
23
+ "sentencepiece": "0.2.2",
24
+ "protobuf": "7.36.2",
25
+ "librosa": "0.11.0",
26
+ "soundfile": "0.14.0",
27
+ "scipy": "1.17.1"
28
+ },
29
+ "seconds": 7.34,
30
+ "environment_differs": {
31
+ "torchvision": "0.29.2+cpu (pinned 0.29.1)",
32
+ "torchaudio": "2.11.1+cpu (pinned 2.11.0)",
33
+ "pillow": "13.0.0 (pinned 12.3.0)"
34
+ },
35
+ "platform": "cpu-x86_64-bf16"
36
+ },
37
+ "outputs": {
38
+ "runtime": {
39
+ "device": "cpu",
40
+ "dtype": "bfloat16",
41
+ "attn_implementation": "sdpa"
42
+ },
43
+ "last_logits": [
44
+ [
45
+ -0.166015625,
46
+ 0.09814453125,
47
+ -0.0267333984375,
48
+ 0.09765625,
49
+ 0.10498046875
50
+ ],
51
+ [
52
+ -0.11962890625,
53
+ 0.09521484375,
54
+ -0.00897216796875,
55
+ 0.09521484375,
56
+ 0.06396484375
57
+ ]
58
+ ],
59
+ "next_token_ids": [
60
+ 63289,
61
+ 63289
62
+ ],
63
+ "training": {
64
+ "loss": 11.139739990234375,
65
+ "gradients": {
66
+ "model.layers.0.mamba.in_proj.weight": true,
67
+ "model.layers.0.feed_forward.gate_proj.weight": true
68
+ },
69
+ "updated": true
70
+ }
71
+ }
72
+ }
integrations/transformers/expectations/cpu-x86_64-bf16/Jamba-tiny-dev.bfloat16.json ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "recorded_with": {
3
+ "contract": "huggingface-mic/Jamba-tiny-dev-mic",
4
+ "contract_name": "Jamba",
5
+ "contract_revision": "7e840f9d924defee8bbe8fa47d0c69b50b714e0e",
6
+ "framework": "transformers",
7
+ "variant": "bfloat16",
8
+ "target": "Jamba-tiny-dev",
9
+ "kind": "checkpoint",
10
+ "revision": "ed303361004ac875426a61675edecf8e9d976882",
11
+ "environment": {
12
+ "python": "3.11.18",
13
+ "transformers": "5.22.0.dev0",
14
+ "torch": "2.14.0+cpu",
15
+ "torchvision": "0.29.2+cpu",
16
+ "torchaudio": "2.11.1+cpu",
17
+ "tokenizers": "0.23.3",
18
+ "numpy": "2.3.5",
19
+ "pillow": "13.0.0",
20
+ "accelerate": "1.15.0",
21
+ "safetensors": "0.8.0",
22
+ "huggingface-hub": "2.3.0",
23
+ "sentencepiece": "0.2.2",
24
+ "protobuf": "7.36.2",
25
+ "librosa": "0.11.0",
26
+ "soundfile": "0.14.0",
27
+ "scipy": "1.17.1"
28
+ },
29
+ "seconds": 8.66,
30
+ "environment_differs": {
31
+ "torchvision": "0.29.2+cpu (pinned 0.29.1)",
32
+ "torchaudio": "2.11.1+cpu (pinned 2.11.0)",
33
+ "pillow": "13.0.0 (pinned 12.3.0)"
34
+ },
35
+ "platform": "cpu-x86_64-bf16"
36
+ },
37
+ "outputs": {
38
+ "runtime": {
39
+ "device": "cpu",
40
+ "dtype": "bfloat16",
41
+ "attn_implementation": "sdpa"
42
+ },
43
+ "last_logits": [
44
+ [
45
+ -7.34375,
46
+ -7.34375,
47
+ 5.5625,
48
+ -6.9375,
49
+ -7.28125
50
+ ],
51
+ [
52
+ -7.78125,
53
+ -7.9375,
54
+ 4.84375,
55
+ -7.40625,
56
+ -7.75
57
+ ]
58
+ ],
59
+ "next_token_ids": [
60
+ 7754,
61
+ 1808
62
+ ],
63
+ "training": {
64
+ "loss": 4.08669900894165,
65
+ "gradients": {
66
+ "model.layers.0.mamba.in_proj.weight": true,
67
+ "model.layers.0.feed_forward.gate_proj.weight": true
68
+ },
69
+ "updated": true
70
+ }
71
+ }
72
+ }
integrations/transformers/expectations/cpu-x86_64/Jamba-tiny-dev-mic.eager.json ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "recorded_with": {
3
+ "contract": "huggingface-mic/Jamba-tiny-dev-mic",
4
+ "contract_name": "Jamba",
5
+ "contract_revision": "7e840f9d924defee8bbe8fa47d0c69b50b714e0e",
6
+ "framework": "transformers",
7
+ "variant": "eager",
8
+ "target": "Jamba-tiny-dev-mic",
9
+ "kind": "fixture",
10
+ "revision": "7e840f9d924defee8bbe8fa47d0c69b50b714e0e",
11
+ "environment": {
12
+ "python": "3.11.18",
13
+ "transformers": "5.22.0.dev0",
14
+ "torch": "2.14.0+cpu",
15
+ "torchvision": "0.29.2+cpu",
16
+ "torchaudio": "2.11.1+cpu",
17
+ "tokenizers": "0.23.3",
18
+ "numpy": "2.3.5",
19
+ "pillow": "13.0.0",
20
+ "accelerate": "1.15.0",
21
+ "safetensors": "0.8.0",
22
+ "huggingface-hub": "2.3.0",
23
+ "sentencepiece": "0.2.2",
24
+ "protobuf": "7.36.2",
25
+ "librosa": "0.11.0",
26
+ "soundfile": "0.14.0",
27
+ "scipy": "1.17.1"
28
+ },
29
+ "seconds": 7.31,
30
+ "environment_differs": {
31
+ "torchvision": "0.29.2+cpu (pinned 0.29.1)",
32
+ "torchaudio": "2.11.1+cpu (pinned 2.11.0)",
33
+ "pillow": "13.0.0 (pinned 12.3.0)"
34
+ },
35
+ "platform": "cpu-x86_64"
36
+ },
37
+ "outputs": {
38
+ "runtime": {
39
+ "device": "cpu",
40
+ "dtype": "float32",
41
+ "attn_implementation": "eager"
42
+ },
43
+ "last_logits": [
44
+ [
45
+ -0.16592717170715332,
46
+ 0.09719660133123398,
47
+ -0.027352558448910713,
48
+ 0.0969439446926117,
49
+ 0.1053500846028328
50
+ ],
51
+ [
52
+ -0.11996722221374512,
53
+ 0.09445894509553909,
54
+ -0.009807074442505836,
55
+ 0.09533163905143738,
56
+ 0.06285151839256287
57
+ ]
58
+ ],
59
+ "next_token_ids": [
60
+ 63289,
61
+ 63289
62
+ ],
63
+ "training": {
64
+ "loss": 11.139444351196289,
65
+ "gradients": {
66
+ "model.layers.0.mamba.in_proj.weight": true,
67
+ "model.layers.0.feed_forward.gate_proj.weight": true
68
+ },
69
+ "updated": true
70
+ }
71
+ }
72
+ }
integrations/transformers/expectations/cpu-x86_64/Jamba-tiny-dev-mic.json ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "recorded_with": {
3
+ "contract": "huggingface-mic/Jamba-tiny-dev-mic",
4
+ "contract_name": "Jamba",
5
+ "contract_revision": "7e840f9d924defee8bbe8fa47d0c69b50b714e0e",
6
+ "framework": "transformers",
7
+ "variant": "default",
8
+ "target": "Jamba-tiny-dev-mic",
9
+ "kind": "fixture",
10
+ "revision": "7e840f9d924defee8bbe8fa47d0c69b50b714e0e",
11
+ "environment": {
12
+ "python": "3.11.18",
13
+ "transformers": "5.22.0.dev0",
14
+ "torch": "2.14.0+cpu",
15
+ "torchvision": "0.29.2+cpu",
16
+ "torchaudio": "2.11.1+cpu",
17
+ "tokenizers": "0.23.3",
18
+ "numpy": "2.3.5",
19
+ "pillow": "13.0.0",
20
+ "accelerate": "1.15.0",
21
+ "safetensors": "0.8.0",
22
+ "huggingface-hub": "2.3.0",
23
+ "sentencepiece": "0.2.2",
24
+ "protobuf": "7.36.2",
25
+ "librosa": "0.11.0",
26
+ "soundfile": "0.14.0",
27
+ "scipy": "1.17.1"
28
+ },
29
+ "seconds": 7.37,
30
+ "environment_differs": {
31
+ "torchvision": "0.29.2+cpu (pinned 0.29.1)",
32
+ "torchaudio": "2.11.1+cpu (pinned 2.11.0)",
33
+ "pillow": "13.0.0 (pinned 12.3.0)"
34
+ },
35
+ "platform": "cpu-x86_64"
36
+ },
37
+ "outputs": {
38
+ "runtime": {
39
+ "device": "cpu",
40
+ "dtype": "float32",
41
+ "attn_implementation": "sdpa"
42
+ },
43
+ "last_logits": [
44
+ [
45
+ -0.1659272164106369,
46
+ 0.09719657897949219,
47
+ -0.02735256403684616,
48
+ 0.09694396704435349,
49
+ 0.10535009205341339
50
+ ],
51
+ [
52
+ -0.11996722221374512,
53
+ 0.09445895254611969,
54
+ -0.009807072579860687,
55
+ 0.09533164650201797,
56
+ 0.06285154074430466
57
+ ]
58
+ ],
59
+ "next_token_ids": [
60
+ 63289,
61
+ 63289
62
+ ],
63
+ "training": {
64
+ "loss": 11.139444351196289,
65
+ "gradients": {
66
+ "model.layers.0.mamba.in_proj.weight": true,
67
+ "model.layers.0.feed_forward.gate_proj.weight": true
68
+ },
69
+ "updated": true
70
+ }
71
+ }
72
+ }
integrations/transformers/expectations/cpu-x86_64/Jamba-tiny-dev.eager.json ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "recorded_with": {
3
+ "contract": "huggingface-mic/Jamba-tiny-dev-mic",
4
+ "contract_name": "Jamba",
5
+ "contract_revision": "7e840f9d924defee8bbe8fa47d0c69b50b714e0e",
6
+ "framework": "transformers",
7
+ "variant": "eager",
8
+ "target": "Jamba-tiny-dev",
9
+ "kind": "checkpoint",
10
+ "revision": "ed303361004ac875426a61675edecf8e9d976882",
11
+ "environment": {
12
+ "python": "3.11.18",
13
+ "transformers": "5.22.0.dev0",
14
+ "torch": "2.14.0+cpu",
15
+ "torchvision": "0.29.2+cpu",
16
+ "torchaudio": "2.11.1+cpu",
17
+ "tokenizers": "0.23.3",
18
+ "numpy": "2.3.5",
19
+ "pillow": "13.0.0",
20
+ "accelerate": "1.15.0",
21
+ "safetensors": "0.8.0",
22
+ "huggingface-hub": "2.3.0",
23
+ "sentencepiece": "0.2.2",
24
+ "protobuf": "7.36.2",
25
+ "librosa": "0.11.0",
26
+ "soundfile": "0.14.0",
27
+ "scipy": "1.17.1"
28
+ },
29
+ "seconds": 8.93,
30
+ "environment_differs": {
31
+ "torchvision": "0.29.2+cpu (pinned 0.29.1)",
32
+ "torchaudio": "2.11.1+cpu (pinned 2.11.0)",
33
+ "pillow": "13.0.0 (pinned 12.3.0)"
34
+ },
35
+ "platform": "cpu-x86_64"
36
+ },
37
+ "outputs": {
38
+ "runtime": {
39
+ "device": "cpu",
40
+ "dtype": "float32",
41
+ "attn_implementation": "eager"
42
+ },
43
+ "last_logits": [
44
+ [
45
+ -7.346984386444092,
46
+ -7.360681533813477,
47
+ 5.556155204772949,
48
+ -6.959625244140625,
49
+ -7.305123805999756
50
+ ],
51
+ [
52
+ -7.784221649169922,
53
+ -7.924924373626709,
54
+ 4.815289497375488,
55
+ -7.392331600189209,
56
+ -7.744963645935059
57
+ ]
58
+ ],
59
+ "next_token_ids": [
60
+ 7754,
61
+ 1808
62
+ ],
63
+ "training": {
64
+ "loss": 4.073472499847412,
65
+ "gradients": {
66
+ "model.layers.0.mamba.in_proj.weight": true,
67
+ "model.layers.0.feed_forward.gate_proj.weight": true
68
+ },
69
+ "updated": true
70
+ }
71
+ }
72
+ }
integrations/transformers/expectations/cpu-x86_64/Jamba-tiny-dev.json ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "recorded_with": {
3
+ "contract": "huggingface-mic/Jamba-tiny-dev-mic",
4
+ "contract_name": "Jamba",
5
+ "contract_revision": "7e840f9d924defee8bbe8fa47d0c69b50b714e0e",
6
+ "framework": "transformers",
7
+ "variant": "default",
8
+ "target": "Jamba-tiny-dev",
9
+ "kind": "checkpoint",
10
+ "revision": "ed303361004ac875426a61675edecf8e9d976882",
11
+ "environment": {
12
+ "python": "3.11.18",
13
+ "transformers": "5.22.0.dev0",
14
+ "torch": "2.14.0+cpu",
15
+ "torchvision": "0.29.2+cpu",
16
+ "torchaudio": "2.11.1+cpu",
17
+ "tokenizers": "0.23.3",
18
+ "numpy": "2.3.5",
19
+ "pillow": "13.0.0",
20
+ "accelerate": "1.15.0",
21
+ "safetensors": "0.8.0",
22
+ "huggingface-hub": "2.3.0",
23
+ "sentencepiece": "0.2.2",
24
+ "protobuf": "7.36.2",
25
+ "librosa": "0.11.0",
26
+ "soundfile": "0.14.0",
27
+ "scipy": "1.17.1"
28
+ },
29
+ "seconds": 8.54,
30
+ "environment_differs": {
31
+ "torchvision": "0.29.2+cpu (pinned 0.29.1)",
32
+ "torchaudio": "2.11.1+cpu (pinned 2.11.0)",
33
+ "pillow": "13.0.0 (pinned 12.3.0)"
34
+ },
35
+ "platform": "cpu-x86_64"
36
+ },
37
+ "outputs": {
38
+ "runtime": {
39
+ "device": "cpu",
40
+ "dtype": "float32",
41
+ "attn_implementation": "sdpa"
42
+ },
43
+ "last_logits": [
44
+ [
45
+ -7.346982955932617,
46
+ -7.36068058013916,
47
+ 5.556156158447266,
48
+ -6.959624290466309,
49
+ -7.305122375488281
50
+ ],
51
+ [
52
+ -7.784221172332764,
53
+ -7.924923419952393,
54
+ 4.8152899742126465,
55
+ -7.392330169677734,
56
+ -7.744962692260742
57
+ ]
58
+ ],
59
+ "next_token_ids": [
60
+ 7754,
61
+ 1808
62
+ ],
63
+ "training": {
64
+ "loss": 4.073472499847412,
65
+ "gradients": {
66
+ "model.layers.0.mamba.in_proj.weight": true,
67
+ "model.layers.0.feed_forward.gate_proj.weight": true
68
+ },
69
+ "updated": true
70
+ }
71
+ }
72
+ }
integrations/transformers/expectations/cuda/Jamba-tiny-dev-mic.bfloat16.json ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "recorded_with": {
3
+ "contract": "huggingface-mic/Jamba-tiny-dev-mic",
4
+ "contract_name": "Jamba",
5
+ "contract_revision": "7e840f9d924defee8bbe8fa47d0c69b50b714e0e",
6
+ "framework": "transformers",
7
+ "variant": "bfloat16",
8
+ "target": "Jamba-tiny-dev-mic",
9
+ "kind": "fixture",
10
+ "revision": "7e840f9d924defee8bbe8fa47d0c69b50b714e0e",
11
+ "environment": {
12
+ "python": "3.11.18",
13
+ "transformers": "5.22.0.dev0",
14
+ "torch": "2.14.0+cu130",
15
+ "torchvision": "0.29.2",
16
+ "torchaudio": "2.11.0+cu130",
17
+ "tokenizers": "0.23.3",
18
+ "numpy": "2.4.6",
19
+ "pillow": "13.0.0",
20
+ "accelerate": "1.16.0.dev0",
21
+ "safetensors": "0.8.0",
22
+ "huggingface-hub": "2.3.0",
23
+ "sentencepiece": "0.2.2",
24
+ "protobuf": "7.36.2",
25
+ "librosa": "0.11.0",
26
+ "soundfile": "0.14.0",
27
+ "scipy": "1.17.1"
28
+ },
29
+ "seconds": 8.5,
30
+ "environment_differs": {
31
+ "torchvision": "0.29.2 (pinned 0.29.1)",
32
+ "numpy": "2.4.6 (pinned 2.3.5)",
33
+ "pillow": "13.0.0 (pinned 12.3.0)",
34
+ "accelerate": "1.16.0.dev0 (pinned 1.15.0)"
35
+ },
36
+ "platform": "cuda"
37
+ },
38
+ "outputs": {
39
+ "runtime": {
40
+ "device": "cuda",
41
+ "dtype": "bfloat16",
42
+ "attn_implementation": "sdpa"
43
+ },
44
+ "last_logits": [
45
+ [
46
+ -0.166015625,
47
+ 0.09814453125,
48
+ -0.0267333984375,
49
+ 0.09765625,
50
+ 0.10498046875
51
+ ],
52
+ [
53
+ -0.11962890625,
54
+ 0.09521484375,
55
+ -0.00897216796875,
56
+ 0.09521484375,
57
+ 0.06396484375
58
+ ]
59
+ ],
60
+ "next_token_ids": [
61
+ 63289,
62
+ 63289
63
+ ],
64
+ "training": {
65
+ "loss": 11.139740943908691,
66
+ "gradients": {
67
+ "model.layers.0.mamba.in_proj.weight": true,
68
+ "model.layers.0.feed_forward.gate_proj.weight": true
69
+ },
70
+ "updated": true
71
+ }
72
+ }
73
+ }
integrations/transformers/expectations/cuda/Jamba-tiny-dev-mic.eager.json ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "recorded_with": {
3
+ "contract": "huggingface-mic/Jamba-tiny-dev-mic",
4
+ "contract_name": "Jamba",
5
+ "contract_revision": "7e840f9d924defee8bbe8fa47d0c69b50b714e0e",
6
+ "framework": "transformers",
7
+ "variant": "eager",
8
+ "target": "Jamba-tiny-dev-mic",
9
+ "kind": "fixture",
10
+ "revision": "7e840f9d924defee8bbe8fa47d0c69b50b714e0e",
11
+ "environment": {
12
+ "python": "3.11.18",
13
+ "transformers": "5.22.0.dev0",
14
+ "torch": "2.14.0+cu130",
15
+ "torchvision": "0.29.2",
16
+ "torchaudio": "2.11.0+cu130",
17
+ "tokenizers": "0.23.3",
18
+ "numpy": "2.4.6",
19
+ "pillow": "13.0.0",
20
+ "accelerate": "1.16.0.dev0",
21
+ "safetensors": "0.8.0",
22
+ "huggingface-hub": "2.3.0",
23
+ "sentencepiece": "0.2.2",
24
+ "protobuf": "7.36.2",
25
+ "librosa": "0.11.0",
26
+ "soundfile": "0.14.0",
27
+ "scipy": "1.17.1"
28
+ },
29
+ "seconds": 8.22,
30
+ "environment_differs": {
31
+ "torchvision": "0.29.2 (pinned 0.29.1)",
32
+ "numpy": "2.4.6 (pinned 2.3.5)",
33
+ "pillow": "13.0.0 (pinned 12.3.0)",
34
+ "accelerate": "1.16.0.dev0 (pinned 1.15.0)"
35
+ },
36
+ "platform": "cuda"
37
+ },
38
+ "outputs": {
39
+ "runtime": {
40
+ "device": "cuda",
41
+ "dtype": "float32",
42
+ "attn_implementation": "eager"
43
+ },
44
+ "last_logits": [
45
+ [
46
+ -0.1659272164106369,
47
+ 0.09719658643007278,
48
+ -0.02735253795981407,
49
+ 0.09694396704435349,
50
+ 0.10535009205341339
51
+ ],
52
+ [
53
+ -0.11996721476316452,
54
+ 0.09445895999670029,
55
+ -0.00980711355805397,
56
+ 0.09533165395259857,
57
+ 0.06285150349140167
58
+ ]
59
+ ],
60
+ "next_token_ids": [
61
+ 63289,
62
+ 63289
63
+ ],
64
+ "training": {
65
+ "loss": 11.139444351196289,
66
+ "gradients": {
67
+ "model.layers.0.mamba.in_proj.weight": true,
68
+ "model.layers.0.feed_forward.gate_proj.weight": true
69
+ },
70
+ "updated": true
71
+ }
72
+ }
73
+ }
integrations/transformers/expectations/cuda/Jamba-tiny-dev-mic.json ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "recorded_with": {
3
+ "contract": "huggingface-mic/Jamba-tiny-dev-mic",
4
+ "contract_name": "Jamba",
5
+ "contract_revision": "7e840f9d924defee8bbe8fa47d0c69b50b714e0e",
6
+ "framework": "transformers",
7
+ "variant": "default",
8
+ "target": "Jamba-tiny-dev-mic",
9
+ "kind": "fixture",
10
+ "revision": "7e840f9d924defee8bbe8fa47d0c69b50b714e0e",
11
+ "environment": {
12
+ "python": "3.11.18",
13
+ "transformers": "5.22.0.dev0",
14
+ "torch": "2.14.0+cu130",
15
+ "torchvision": "0.29.2",
16
+ "torchaudio": "2.11.0+cu130",
17
+ "tokenizers": "0.23.3",
18
+ "numpy": "2.4.6",
19
+ "pillow": "13.0.0",
20
+ "accelerate": "1.16.0.dev0",
21
+ "safetensors": "0.8.0",
22
+ "huggingface-hub": "2.3.0",
23
+ "sentencepiece": "0.2.2",
24
+ "protobuf": "7.36.2",
25
+ "librosa": "0.11.0",
26
+ "soundfile": "0.14.0",
27
+ "scipy": "1.17.1"
28
+ },
29
+ "seconds": 9.21,
30
+ "environment_differs": {
31
+ "torchvision": "0.29.2 (pinned 0.29.1)",
32
+ "numpy": "2.4.6 (pinned 2.3.5)",
33
+ "pillow": "13.0.0 (pinned 12.3.0)",
34
+ "accelerate": "1.16.0.dev0 (pinned 1.15.0)"
35
+ },
36
+ "platform": "cuda"
37
+ },
38
+ "outputs": {
39
+ "runtime": {
40
+ "device": "cuda",
41
+ "dtype": "float32",
42
+ "attn_implementation": "sdpa"
43
+ },
44
+ "last_logits": [
45
+ [
46
+ -0.1659272164106369,
47
+ 0.09719659388065338,
48
+ -0.02735251560807228,
49
+ 0.09694400429725647,
50
+ 0.10535012185573578
51
+ ],
52
+ [
53
+ -0.11996722221374512,
54
+ 0.0944589301943779,
55
+ -0.009807102382183075,
56
+ 0.09533168375492096,
57
+ 0.06285151839256287
58
+ ]
59
+ ],
60
+ "next_token_ids": [
61
+ 63289,
62
+ 63289
63
+ ],
64
+ "training": {
65
+ "loss": 11.139444351196289,
66
+ "gradients": {
67
+ "model.layers.0.mamba.in_proj.weight": true,
68
+ "model.layers.0.feed_forward.gate_proj.weight": true
69
+ },
70
+ "updated": true
71
+ }
72
+ }
73
+ }
integrations/transformers/expectations/cuda/Jamba-tiny-dev.bfloat16.json ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "recorded_with": {
3
+ "contract": "huggingface-mic/Jamba-tiny-dev-mic",
4
+ "contract_name": "Jamba",
5
+ "contract_revision": "7e840f9d924defee8bbe8fa47d0c69b50b714e0e",
6
+ "framework": "transformers",
7
+ "variant": "bfloat16",
8
+ "target": "Jamba-tiny-dev",
9
+ "kind": "checkpoint",
10
+ "revision": "ed303361004ac875426a61675edecf8e9d976882",
11
+ "environment": {
12
+ "python": "3.11.18",
13
+ "transformers": "5.22.0.dev0",
14
+ "torch": "2.14.0+cu130",
15
+ "torchvision": "0.29.2",
16
+ "torchaudio": "2.11.0+cu130",
17
+ "tokenizers": "0.23.3",
18
+ "numpy": "2.4.6",
19
+ "pillow": "13.0.0",
20
+ "accelerate": "1.16.0.dev0",
21
+ "safetensors": "0.8.0",
22
+ "huggingface-hub": "2.3.0",
23
+ "sentencepiece": "0.2.2",
24
+ "protobuf": "7.36.2",
25
+ "librosa": "0.11.0",
26
+ "soundfile": "0.14.0",
27
+ "scipy": "1.17.1"
28
+ },
29
+ "seconds": 9.86,
30
+ "environment_differs": {
31
+ "torchvision": "0.29.2 (pinned 0.29.1)",
32
+ "numpy": "2.4.6 (pinned 2.3.5)",
33
+ "pillow": "13.0.0 (pinned 12.3.0)",
34
+ "accelerate": "1.16.0.dev0 (pinned 1.15.0)"
35
+ },
36
+ "platform": "cuda"
37
+ },
38
+ "outputs": {
39
+ "runtime": {
40
+ "device": "cuda",
41
+ "dtype": "bfloat16",
42
+ "attn_implementation": "sdpa"
43
+ },
44
+ "last_logits": [
45
+ [
46
+ -7.375,
47
+ -7.375,
48
+ 5.5625,
49
+ -7.0,
50
+ -7.3125
51
+ ],
52
+ [
53
+ -7.78125,
54
+ -7.9375,
55
+ 4.84375,
56
+ -7.40625,
57
+ -7.75
58
+ ]
59
+ ],
60
+ "next_token_ids": [
61
+ 7754,
62
+ 1808
63
+ ],
64
+ "training": {
65
+ "loss": 4.0856804847717285,
66
+ "gradients": {
67
+ "model.layers.0.mamba.in_proj.weight": true,
68
+ "model.layers.0.feed_forward.gate_proj.weight": true
69
+ },
70
+ "updated": true
71
+ }
72
+ }
73
+ }
integrations/transformers/expectations/cuda/Jamba-tiny-dev.eager.json ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "recorded_with": {
3
+ "contract": "huggingface-mic/Jamba-tiny-dev-mic",
4
+ "contract_name": "Jamba",
5
+ "contract_revision": "7e840f9d924defee8bbe8fa47d0c69b50b714e0e",
6
+ "framework": "transformers",
7
+ "variant": "eager",
8
+ "target": "Jamba-tiny-dev",
9
+ "kind": "checkpoint",
10
+ "revision": "ed303361004ac875426a61675edecf8e9d976882",
11
+ "environment": {
12
+ "python": "3.11.18",
13
+ "transformers": "5.22.0.dev0",
14
+ "torch": "2.14.0+cu130",
15
+ "torchvision": "0.29.2",
16
+ "torchaudio": "2.11.0+cu130",
17
+ "tokenizers": "0.23.3",
18
+ "numpy": "2.4.6",
19
+ "pillow": "13.0.0",
20
+ "accelerate": "1.16.0.dev0",
21
+ "safetensors": "0.8.0",
22
+ "huggingface-hub": "2.3.0",
23
+ "sentencepiece": "0.2.2",
24
+ "protobuf": "7.36.2",
25
+ "librosa": "0.11.0",
26
+ "soundfile": "0.14.0",
27
+ "scipy": "1.17.1"
28
+ },
29
+ "seconds": 10.81,
30
+ "environment_differs": {
31
+ "torchvision": "0.29.2 (pinned 0.29.1)",
32
+ "numpy": "2.4.6 (pinned 2.3.5)",
33
+ "pillow": "13.0.0 (pinned 12.3.0)",
34
+ "accelerate": "1.16.0.dev0 (pinned 1.15.0)"
35
+ },
36
+ "platform": "cuda"
37
+ },
38
+ "outputs": {
39
+ "runtime": {
40
+ "device": "cuda",
41
+ "dtype": "float32",
42
+ "attn_implementation": "eager"
43
+ },
44
+ "last_logits": [
45
+ [
46
+ -7.346982955932617,
47
+ -7.360681056976318,
48
+ 5.556158065795898,
49
+ -6.959626197814941,
50
+ -7.305124282836914
51
+ ],
52
+ [
53
+ -7.7842206954956055,
54
+ -7.924923419952393,
55
+ 4.815289497375488,
56
+ -7.392331600189209,
57
+ -7.744964599609375
58
+ ]
59
+ ],
60
+ "next_token_ids": [
61
+ 7754,
62
+ 1808
63
+ ],
64
+ "training": {
65
+ "loss": 4.073477745056152,
66
+ "gradients": {
67
+ "model.layers.0.mamba.in_proj.weight": true,
68
+ "model.layers.0.feed_forward.gate_proj.weight": true
69
+ },
70
+ "updated": true
71
+ }
72
+ }
73
+ }
integrations/transformers/expectations/cuda/Jamba-tiny-dev.json ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "recorded_with": {
3
+ "contract": "huggingface-mic/Jamba-tiny-dev-mic",
4
+ "contract_name": "Jamba",
5
+ "contract_revision": "7e840f9d924defee8bbe8fa47d0c69b50b714e0e",
6
+ "framework": "transformers",
7
+ "variant": "default",
8
+ "target": "Jamba-tiny-dev",
9
+ "kind": "checkpoint",
10
+ "revision": "ed303361004ac875426a61675edecf8e9d976882",
11
+ "environment": {
12
+ "python": "3.11.18",
13
+ "transformers": "5.22.0.dev0",
14
+ "torch": "2.14.0+cu130",
15
+ "torchvision": "0.29.2",
16
+ "torchaudio": "2.11.0+cu130",
17
+ "tokenizers": "0.23.3",
18
+ "numpy": "2.4.6",
19
+ "pillow": "13.0.0",
20
+ "accelerate": "1.16.0.dev0",
21
+ "safetensors": "0.8.0",
22
+ "huggingface-hub": "2.3.0",
23
+ "sentencepiece": "0.2.2",
24
+ "protobuf": "7.36.2",
25
+ "librosa": "0.11.0",
26
+ "soundfile": "0.14.0",
27
+ "scipy": "1.17.1"
28
+ },
29
+ "seconds": 10.36,
30
+ "environment_differs": {
31
+ "torchvision": "0.29.2 (pinned 0.29.1)",
32
+ "numpy": "2.4.6 (pinned 2.3.5)",
33
+ "pillow": "13.0.0 (pinned 12.3.0)",
34
+ "accelerate": "1.16.0.dev0 (pinned 1.15.0)"
35
+ },
36
+ "platform": "cuda"
37
+ },
38
+ "outputs": {
39
+ "runtime": {
40
+ "device": "cuda",
41
+ "dtype": "float32",
42
+ "attn_implementation": "sdpa"
43
+ },
44
+ "last_logits": [
45
+ [
46
+ -7.346983432769775,
47
+ -7.36068058013916,
48
+ 5.556157112121582,
49
+ -6.959625244140625,
50
+ -7.305123329162598
51
+ ],
52
+ [
53
+ -7.784223556518555,
54
+ -7.924923896789551,
55
+ 4.815288543701172,
56
+ -7.392330169677734,
57
+ -7.744963645935059
58
+ ]
59
+ ],
60
+ "next_token_ids": [
61
+ 7754,
62
+ 1808
63
+ ],
64
+ "training": {
65
+ "loss": 4.073477745056152,
66
+ "gradients": {
67
+ "model.layers.0.mamba.in_proj.weight": true,
68
+ "model.layers.0.feed_forward.gate_proj.weight": true
69
+ },
70
+ "updated": true
71
+ }
72
+ }
73
+ }
integrations/transformers/usage.md ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Jamba: causal language modeling with Transformers
2
+
3
+ This page is the Transformers contract of the Jamba MIC and also a usage example. [doc-builder](https://github.com/huggingface/doc-builder/blob/main/docs/runnable-code-blocks.md) renders the `runnable` blocks below as documentation, and its pytest plugin runs them as written against `ai21labs/Jamba-tiny-dev`. The MIC runner runs the same blocks against each slim fixture and each checkpoint in [`integration.json`](../../integration.json). Lines marked `# doc-builder: hide` only matter there: they swap in the pinned checkpoint or variant and print the result record.
4
+
5
+ ## Predict the next token
6
+
7
+ ```py runnable:causal_lm
8
+ import torch
9
+ from transformers import AutoModelForCausalLM, AutoTokenizer, set_seed
10
+ import json # doc-builder: hide
11
+ import os # doc-builder: hide
12
+
13
+ model_id = "ai21labs/Jamba-tiny-dev"
14
+ model_id = os.environ.get("MIC_MODEL", model_id) # doc-builder: hide
15
+ variant = json.loads(os.environ.get("MIC_MODEL_KWARGS", "{}")) # doc-builder: hide
16
+ device = "cuda" if torch.cuda.is_available() else "cpu"
17
+ set_seed(0) # seeds torch, NumPy, and Python: loading, dropout, and data augmentation draw random numbers
18
+
19
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
20
+ # Jamba-tiny-dev is stored in bfloat16; load in float32 so a training step does not need loss scaling.
21
+ model = AutoModelForCausalLM.from_pretrained(model_id, dtype=torch.float32).to(device)
22
+ if variant: # doc-builder: hide
23
+ del model # doc-builder: hide
24
+ model = AutoModelForCausalLM.from_pretrained(model_id, **{"dtype": torch.float32, **variant}).to(device) # doc-builder: hide
25
+
26
+ prompts = [
27
+ "The capital of France is",
28
+ "The capital of Germany is",
29
+ ]
30
+ inputs = tokenizer(prompts, return_tensors="pt", padding=True).to(device)
31
+
32
+ with torch.no_grad():
33
+ logits = model(**inputs).logits
34
+ # Left padding: the last position of each row is the real final token.
35
+ last_logits = logits[:, -1, :]
36
+ next_token_ids = last_logits.argmax(dim=-1)
37
+ print(tokenizer.batch_decode(next_token_ids))
38
+ ```
39
+
40
+ ## One training step
41
+
42
+ ```py runnable:causal_lm:2
43
+ labels = inputs["input_ids"].clone()
44
+ labels[inputs["attention_mask"] == 0] = -100
45
+
46
+ model.train()
47
+ optimizer = torch.optim.SGD([p for p in model.parameters() if p.requires_grad], lr=0.01)
48
+ loss = model(**inputs, labels=labels).loss
49
+ loss.backward()
50
+ before = {n: p.detach().cpu().clone() for n, p in model.named_parameters() if p.requires_grad} # doc-builder: hide
51
+ optimizer.step()
52
+ print(f"loss: {loss.item():.4f}")
53
+
54
+ if os.environ.get("MIC_RUNNER"): # doc-builder: hide
55
+ named = dict(model.named_parameters())
56
+ checked = ("model.layers.0.mamba.in_proj.weight", "model.layers.0.feed_forward.gate_proj.weight")
57
+ result = {
58
+ "runtime": {
59
+ "device": model.device.type,
60
+ "dtype": str(model.dtype).removeprefix("torch."),
61
+ "attn_implementation": model.config._attn_implementation,
62
+ },
63
+ "last_logits": last_logits[:, :5].float().tolist(),
64
+ "next_token_ids": next_token_ids.tolist(),
65
+ "training": {
66
+ "loss": loss.item(),
67
+ "gradients": {n: bool(named[n].grad is not None and torch.count_nonzero(named[n].grad) > 0 and torch.isfinite(named[n].grad).all()) for n in checked},
68
+ "updated": any(not torch.equal(p.detach().cpu(), before[n]) for n, p in model.named_parameters() if n in before),
69
+ },
70
+ }
71
+ print(json.dumps(result))
72
+ ```
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:26d26ea890188b3ce4cf8b1aaa843d141559cedd782f180f0085289b84130f5d
3
+ size 17674944
special_tokens_map.json ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ "<|eom|>",
4
+ "<|bom|>",
5
+ "<|system|>",
6
+ "<|user|>",
7
+ "<|assistant|>",
8
+ "<|tool|>",
9
+ "<documents>",
10
+ "</documents>",
11
+ "<tool_definitions>",
12
+ "</tool_definitions>",
13
+ "<active_output_modes>",
14
+ "</active_output_modes>",
15
+ "<citations>",
16
+ "</citations>",
17
+ "<tool_calls>",
18
+ "</tool_calls>"
19
+ ],
20
+ "bos_token": {
21
+ "content": "<|startoftext|>",
22
+ "lstrip": false,
23
+ "normalized": false,
24
+ "rstrip": false,
25
+ "single_word": false
26
+ },
27
+ "eos_token": {
28
+ "content": "<|endoftext|>",
29
+ "lstrip": false,
30
+ "normalized": false,
31
+ "rstrip": false,
32
+ "single_word": false
33
+ },
34
+ "pad_token": {
35
+ "content": "<|pad|>",
36
+ "lstrip": false,
37
+ "normalized": false,
38
+ "rstrip": false,
39
+ "single_word": false
40
+ },
41
+ "unk_token": {
42
+ "content": "<|unk|>",
43
+ "lstrip": false,
44
+ "normalized": false,
45
+ "rstrip": false,
46
+ "single_word": false
47
+ }
48
+ }
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8b0df4fb43262c452ef37061951a06df4c63ca191d02a60ea08f14428af24376
3
+ size 1124714
tokenizer_config.json ADDED
@@ -0,0 +1,196 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": true,
3
+ "add_eos_token": false,
4
+ "add_prefix_space": null,
5
+ "added_tokens_decoder": {
6
+ "0": {
7
+ "content": "<|pad|>",
8
+ "lstrip": false,
9
+ "normalized": false,
10
+ "rstrip": false,
11
+ "single_word": false,
12
+ "special": true
13
+ },
14
+ "1": {
15
+ "content": "<|startoftext|>",
16
+ "lstrip": false,
17
+ "normalized": false,
18
+ "rstrip": false,
19
+ "single_word": false,
20
+ "special": true
21
+ },
22
+ "2": {
23
+ "content": "<|endoftext|>",
24
+ "lstrip": false,
25
+ "normalized": false,
26
+ "rstrip": false,
27
+ "single_word": false,
28
+ "special": true
29
+ },
30
+ "3": {
31
+ "content": "<|unk|>",
32
+ "lstrip": false,
33
+ "normalized": false,
34
+ "rstrip": false,
35
+ "single_word": false,
36
+ "special": true
37
+ },
38
+ "518": {
39
+ "content": "<|eom|>",
40
+ "lstrip": false,
41
+ "normalized": false,
42
+ "rstrip": false,
43
+ "single_word": false,
44
+ "special": true
45
+ },
46
+ "519": {
47
+ "content": "<|bom|>",
48
+ "lstrip": false,
49
+ "normalized": false,
50
+ "rstrip": false,
51
+ "single_word": false,
52
+ "special": true
53
+ },
54
+ "520": {
55
+ "content": "<|system|>",
56
+ "lstrip": false,
57
+ "normalized": false,
58
+ "rstrip": false,
59
+ "single_word": false,
60
+ "special": true
61
+ },
62
+ "521": {
63
+ "content": "<|user|>",
64
+ "lstrip": false,
65
+ "normalized": false,
66
+ "rstrip": false,
67
+ "single_word": false,
68
+ "special": true
69
+ },
70
+ "522": {
71
+ "content": "<|assistant|>",
72
+ "lstrip": false,
73
+ "normalized": false,
74
+ "rstrip": false,
75
+ "single_word": false,
76
+ "special": true
77
+ },
78
+ "523": {
79
+ "content": "<|tool|>",
80
+ "lstrip": false,
81
+ "normalized": false,
82
+ "rstrip": false,
83
+ "single_word": false,
84
+ "special": true
85
+ },
86
+ "524": {
87
+ "content": "<documents>",
88
+ "lstrip": false,
89
+ "normalized": false,
90
+ "rstrip": false,
91
+ "single_word": false,
92
+ "special": true
93
+ },
94
+ "525": {
95
+ "content": "</documents>",
96
+ "lstrip": false,
97
+ "normalized": false,
98
+ "rstrip": false,
99
+ "single_word": false,
100
+ "special": true
101
+ },
102
+ "526": {
103
+ "content": "<tool_definitions>",
104
+ "lstrip": false,
105
+ "normalized": false,
106
+ "rstrip": false,
107
+ "single_word": false,
108
+ "special": true
109
+ },
110
+ "527": {
111
+ "content": "</tool_definitions>",
112
+ "lstrip": false,
113
+ "normalized": false,
114
+ "rstrip": false,
115
+ "single_word": false,
116
+ "special": true
117
+ },
118
+ "528": {
119
+ "content": "<active_output_modes>",
120
+ "lstrip": false,
121
+ "normalized": false,
122
+ "rstrip": false,
123
+ "single_word": false,
124
+ "special": true
125
+ },
126
+ "529": {
127
+ "content": "</active_output_modes>",
128
+ "lstrip": false,
129
+ "normalized": false,
130
+ "rstrip": false,
131
+ "single_word": false,
132
+ "special": true
133
+ },
134
+ "530": {
135
+ "content": "<citations>",
136
+ "lstrip": false,
137
+ "normalized": false,
138
+ "rstrip": false,
139
+ "single_word": false,
140
+ "special": true
141
+ },
142
+ "531": {
143
+ "content": "</citations>",
144
+ "lstrip": false,
145
+ "normalized": false,
146
+ "rstrip": false,
147
+ "single_word": false,
148
+ "special": true
149
+ },
150
+ "532": {
151
+ "content": "<tool_calls>",
152
+ "lstrip": false,
153
+ "normalized": false,
154
+ "rstrip": false,
155
+ "single_word": false,
156
+ "special": true
157
+ },
158
+ "533": {
159
+ "content": "</tool_calls>",
160
+ "lstrip": false,
161
+ "normalized": false,
162
+ "rstrip": false,
163
+ "single_word": false,
164
+ "special": true
165
+ }
166
+ },
167
+ "additional_special_tokens": [
168
+ "<|eom|>",
169
+ "<|bom|>",
170
+ "<|system|>",
171
+ "<|user|>",
172
+ "<|assistant|>",
173
+ "<|tool|>",
174
+ "<documents>",
175
+ "</documents>",
176
+ "<tool_definitions>",
177
+ "</tool_definitions>",
178
+ "<active_output_modes>",
179
+ "</active_output_modes>",
180
+ "<citations>",
181
+ "</citations>",
182
+ "<tool_calls>",
183
+ "</tool_calls>"
184
+ ],
185
+ "bos_token": "<|startoftext|>",
186
+ "chat_template": "{# Variables #}\n{% set ns = namespace(message_count=0, is_last_checked_defined=False) %}\n{##}\n{% set bom_str = bom_str or \"<|bom|>\" %}\n{% set eom_str = eom_str or \"<|eom|>\" %}\n{% set default_system_message = \"\" %}\n{##}\n{% set documents_prefix = \"<documents>\" %}\n{% set documents_suffix = \"</documents>\" %}\n{% set tool_definitions_prefix = \"<tool_definitions>\" %}\n{% set tool_definitions_suffix = \"</tool_definitions>\" %}\n{% set active_modes_prefix = \"<active_output_modes>\" %}\n{% set active_modes_suffix = \"</active_output_modes>\" %}\n{##}\n{% set tool_calls_prefix = \"<tool_calls>\" %}\n{% set tool_calls_suffix = \"</tool_calls>\" %}\n{% set citations_prefix = \"<citations>\" %}\n{% set citations_suffix = \"</citations>\" %}\n{##}\n{% if add_generation_prompt is not defined %}\n {% set add_generation_prompt = True %}\n{% endif %}\n{% set role_to_predict = role_to_predict or \"assistant\" %}\n{% if messages|length > 0 and messages[0].role == \"system\" %}\n {% set system_message = messages[0].content %}\n {% set loop_messages = messages[1:] %}\n{% else %}\n {% set system_message = default_system_message %}\n {% set loop_messages = messages %}\n{% endif %}\n{##}\n{##}\n{# Macros #}\n{% macro handle_tool_definitions(tools) %}\n {{- tool_definitions_prefix -}}\n {{- \"\\n# Tools\" -}}\n {{- \"\\n\\n## Functions\" -}}\n {% for tool in tools %}\n {% set _ = is_param_set(tool, field=\"type\") %}\n {% set is_tool_type_set = ns.is_last_checked_defined %}\n {% if is_tool_type_set %}\n {% if tool.type == \"function\" %}\n {% set tool = tool.function %}\n {% else %}\n {{ raise_exception(\"Currently, the only supported tool type is `function`\") }}\n {% endif %}\n {% endif %}\n {{- \"\\n\\n\" + (tool|tojson(indent=2)) -}}\n {% endfor %}\n {{- \"\\n\" + tool_definitions_suffix -}}\n{% endmacro %}\n{##}\n{% macro handle_first_system_message(system_message, tools) %}\n {{- bom_str + handle_role(\"system\") -}}\n {% set _ = is_param_set(system_message) %}\n {% set is_system_message_set = ns.is_last_checked_defined %}\n {% if is_system_message_set %}\n {{- system_message -}}\n {% endif %}\n {% set _ = is_param_set(tools, is_list=True) %}\n {% set is_tools_set = ns.is_last_checked_defined %}\n {% if is_tools_set %}\n {% if system_message %}\n {{- \"\\n\\n\" -}}\n {% endif %}\n {{- handle_tool_definitions(tools) -}}\n {% endif %}\n {% set ns.message_count = ns.message_count + 1 %}\n{% endmacro %}\n{##}\n{% macro handle_tool_calls(tool_calls) %}\n {{- tool_calls_prefix + \"[\\n\" -}}\n {% for tool_call in tool_calls %}\n {% set _ = is_param_set(tool_call, field=\"function\") %}\n {% set is_tool_call_function_set = ns.is_last_checked_defined %}\n {% if is_tool_call_function_set %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {% set arguments = tool_call.arguments %}\n {% if arguments is not string %}\n {%- set arguments = arguments|tojson -%}\n {%- endif %}\n {{ \"{\\\"name\\\": \\\"\" + tool_call.name + \"\\\", \\\"arguments\\\": \" + arguments + \"}\" -}}\n {% if not loop.last %}\n {{- \",\" }}\n {% endif %}\n {% endfor %}\n {{- \"\\n]\" + tool_calls_suffix -}}\n{% endmacro %}\n{##}\n{% macro handle_documents(documents) %}\n {{- documents_prefix -}}\n {{- \"\\n# Documents\" -}}\n {{- \"\\n\\nYou can use the following documents for reference:\" -}}\n {% for doc in documents %}\n {{- \"\\n\\n## Document ID: \" + loop.index0|string -}}\n {% set _ = is_param_set(doc, field=\"title\") %}\n {% set is_doc_title_set = ns.is_last_checked_defined %}\n {% if is_doc_title_set %}\n {{- \"\\nTitle: \" + doc.title -}}\n {% endif %}\n {% for key, value in doc.items() %}\n {% if key not in [\"title\", \"text\"] %}\n {{- \"\\n\" + key|title + \": \" + value|string -}}\n {% endif %}\n {% endfor %}\n {{- \"\\nText: \" + doc.text -}}\n {% endfor %}\n {{- \"\\n\" + documents_suffix -}}\n{% endmacro %}\n{##}\n{% macro handle_knobs(knobs) %}\n {{- active_modes_prefix -}}\n {{- \"\\n# Active Modes\" -}}\n {{ \"\\n\\nThe following modes configure the format or style of your responses. You should adhere to all currently\" -}}\n {{ \" active modes simultaneously.\" -}}\n {% if knobs.citation_mode == \"fast\" %}\n {{- \"\\n\\n## Citation Mode\" -}}\n {{- \"\\n\\nProvide a list of references only for the documents you base your response on. Format your response\" -}}\n {{ \" with the original answer followed by a citation section. Use this template:\" -}}\n {{ \" `{answer}\" + citations_prefix + \"DOCUMENT_IDS\" + citations_suffix + \"`, where DOCUMENT_IDS are the relevant document numbers\" -}}\n {{ \" (e.g. [2, 5, 9]), or [] if the answer cannot be supported by the provided documents.\" -}}\n {% endif %}\n {% if knobs.response_format == \"json_object\" %}\n {{- \"\\n\\n## JSON Mode\" -}}\n {{ \"\\n\\nProvide your response in JSON format. Adhere strictly to any schema given by the user.\" -}}\n {{ \" If an appropriate JSON format exists, use it without modification.\" -}}\n {% endif %}\n {{- \"\\n\" + active_modes_suffix -}}\n{% endmacro %}\n{##}\n{% macro get_last_user_index(messages) %}\n {% set ns.last_user_index = 0 %}\n {% for message in messages %}\n {% if message.role == 'user' %}\n {% set ns.last_user_index = loop.index0 %}\n {% endif %}\n {% endfor %}\n {{- ns.last_user_index -}}\n{% endmacro %}\n{##}\n{% macro handle_last_system_message(documents, knobs, use_documents, use_knobs) %}\n {{- bom_str + handle_role(\"system\") -}}\n {% set macros_to_call = [] %}\n {% set params_for_macros = [] %}\n {% if use_documents %}\n {% set macros_to_call = macros_to_call + [handle_documents] %}\n {% set params_for_macros = params_for_macros + [[documents]] %}\n {% endif %}\n {% if use_knobs %}\n {% set macros_to_call = macros_to_call + [handle_knobs] %}\n {% set params_for_macros = params_for_macros + [[knobs]] %}\n {% endif %}\n {% for i in range(macros_to_call|length) %}\n {% if i > 0 %}\n {{- \"\\n\\n\" -}}\n {% endif %}\n {{- macros_to_call[i](*params_for_macros[i]) -}}\n {% endfor %}\n {% set ns.message_count = ns.message_count + 1 %}\n{% endmacro %}\n{##}\n{% macro handle_role(role, add_space=True) %}\n {{- \"<|\" + role + \"|>\" -}}\n {% if add_space %}\n {{- \" \" -}}\n {% endif %}\n{% endmacro %}\n{##}\n{% macro is_param_set(param, field=none, is_list=False) %}\n {% if field is not none %}\n {% if field in param %}\n {% set param = param[field] %}\n {% else %}\n {% set param = none %}\n {% endif %}\n {% endif %}\n {% set is_defined = param is defined and param is not none %}\n {% if is_list %}\n {% set ns.is_last_checked_defined = is_defined and param|length > 0 %}\n {% else %}\n {% set ns.is_last_checked_defined = is_defined %}\n {% endif %}\n{% endmacro %}\n{##}\n{##}\n{# Template #}\n{{- \"<|startoftext|>\" -}}\n{% set _ = is_param_set(system_message) %}\n{% set is_system_message_set = ns.is_last_checked_defined %}\n{% set _ = is_param_set(tools, is_list=True) %}\n{% set is_tools_set = ns.is_last_checked_defined %}\n{% set has_system_message = (is_system_message_set or is_tools_set) %}\n{% if has_system_message %}\n {{- handle_first_system_message(system_message, tools) -}}\n{% endif %}\n{% set last_user_index = get_last_user_index(loop_messages)|int %}\n{% for message in loop_messages %}\n {% if loop.index0 == last_user_index %}\n {% set _ = is_param_set(documents, is_list=True) %}\n {% set use_documents = ns.is_last_checked_defined %}\n {% set _ = is_param_set(knobs) %}\n {% set use_knobs = ns.is_last_checked_defined and knobs.is_set %}\n {% set add_last_system_message = use_documents or use_knobs %}\n {% if add_last_system_message %}\n {% if ns.message_count > 0 %}\n {{- eom_str -}}\n {% endif %}\n {{- handle_last_system_message(documents, knobs, use_documents, use_knobs) -}}\n {% endif %}\n {% endif %}\n {% set role = message.role %}\n {% set _ = is_param_set(message, field=\"name\") %}\n {% set is_message_name_set = ns.is_last_checked_defined %}\n {% if is_message_name_set %}\n {% set message_prefix = handle_role(role) + \"(\" + message.name + \")\" %}\n {% else %}\n {% set message_prefix = handle_role(role) %}\n {% endif %}\n {% set content = (message.content or \"\") %}\n {% if content is not string %}\n {% set content = content|tojson %}\n {% endif %}\n {% if ns.message_count > 0 %}\n {{- eom_str -}}\n {% endif %}\n {{- bom_str + message_prefix + content -}}\n {% set _ = is_param_set(message, field=\"tool_calls\", is_list=True) %}\n {% set is_tool_calls_set = ns.is_last_checked_defined %}\n {% if role == \"assistant\" and is_tool_calls_set %}\n {{- handle_tool_calls(message.tool_calls) -}}\n {% endif %}\n {% set _ = is_param_set(message, field=\"citations\", is_list=True) %}\n {% set is_citations_set = ns.is_last_checked_defined %}\n {% if role == \"assistant\" and is_citations_set %}\n {{- citations_prefix + message.citations|map(attribute=\"document_id\")|list|string + citations_suffix -}}\n {% endif %}\n {% set ns.message_count = ns.message_count + 1 %}\n{% endfor %}\n{% if add_generation_prompt %}\n {% if ns.message_count > 0 %}\n {{- eom_str -}}\n {% endif %}\n {{- bom_str + handle_role(role_to_predict, add_space=False) -}}\n {% set _ = is_param_set(generation_preamble) %}\n {% set is_generation_preamble_set = ns.is_last_checked_defined %}\n {% if is_generation_preamble_set and generation_preamble.strip() != \"\" %}\n {{- \" \" + generation_preamble -}}\n {% endif %}\n {% set ns.message_count = ns.message_count + 1 %}\n{% else %}\n {% if ns.message_count > 0 %}\n {{- eom_str -}}\n {% endif %}\n{% endif %}\n",
187
+ "clean_up_tokenization_spaces": false,
188
+ "eos_token": "<|endoftext|>",
189
+ "legacy": true,
190
+ "model_max_length": 1000000000000000019884624838656,
191
+ "pad_token": "<|pad|>",
192
+ "spaces_between_special_tokens": false,
193
+ "tokenizer_class": "LlamaTokenizer",
194
+ "unk_token": "<|unk|>",
195
+ "use_default_system_prompt": false
196
+ }