初始化项目,由ModelHub XC社区提供模型
Model: kalomaze/Mistral-7b-MoEified-8x Source: Original Platform
This commit is contained in:
47
.gitattributes
vendored
Normal file
47
.gitattributes
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.arrow filter=lfs diff=lfs merge=lfs -text
|
||||
*.bin filter=lfs diff=lfs merge=lfs -text
|
||||
*.bin.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.ftz filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.h5 filter=lfs diff=lfs merge=lfs -text
|
||||
*.joblib filter=lfs diff=lfs merge=lfs -text
|
||||
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.model filter=lfs diff=lfs merge=lfs -text
|
||||
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
||||
*.onnx filter=lfs diff=lfs merge=lfs -text
|
||||
*.ot filter=lfs diff=lfs merge=lfs -text
|
||||
*.parquet filter=lfs diff=lfs merge=lfs -text
|
||||
*.pb filter=lfs diff=lfs merge=lfs -text
|
||||
*.pt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pth filter=lfs diff=lfs merge=lfs -text
|
||||
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.tflite filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zstandard filter=lfs diff=lfs merge=lfs -text
|
||||
*.tfevents* filter=lfs diff=lfs merge=lfs -text
|
||||
*.db* filter=lfs diff=lfs merge=lfs -text
|
||||
*.ark* filter=lfs diff=lfs merge=lfs -text
|
||||
**/*ckpt*data* filter=lfs diff=lfs merge=lfs -text
|
||||
**/*ckpt*.meta filter=lfs diff=lfs merge=lfs -text
|
||||
**/*ckpt*.index filter=lfs diff=lfs merge=lfs -text
|
||||
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
||||
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
||||
*.gguf* filter=lfs diff=lfs merge=lfs -text
|
||||
*.ggml filter=lfs diff=lfs merge=lfs -text
|
||||
*.llamafile* filter=lfs diff=lfs merge=lfs -text
|
||||
*.pt2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
||||
*.npy filter=lfs diff=lfs merge=lfs -text
|
||||
*.npz filter=lfs diff=lfs merge=lfs -text
|
||||
*.pickle filter=lfs diff=lfs merge=lfs -text
|
||||
*.pkl filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar filter=lfs diff=lfs merge=lfs -text
|
||||
*.wasm filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
||||
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
||||
25
README.md
Normal file
25
README.md
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
license: apache-2.0
|
||||
---
|
||||
# Wtf is a MoEification?!
|
||||
Turns out, you can slice up the individual MLP layers of a dense language model into even splits of experts.
|
||||
|
||||
What I did here:
|
||||
- Split the MLP projections (gate, down, proj) into the amount of total experts you want (in this case, I just went with 8 experts).
|
||||
- Multiply the values of the parameters for the down-projection by the total amount of experts (so the magnitude of the activation outputs, when averaged linearly together, ends up being equivalent)
|
||||
- Initialize the router layers with zeroes, so the expert usage is completely equal by default and has no unintentional biases as a consequence of random initialization being done the normal way.
|
||||
|
||||
As a result, the model behaves completely coherently when all 8 experts are activated (i.e, experts_per_tok is equal to 8.)
|
||||
|
||||

|
||||
|
||||
With 4 experts activated, it's... far less coherent.
|
||||
|
||||

|
||||
|
||||
# Ok but why?
|
||||
|
||||
I am interested in the prospect of continuing to train this in such a way where it can naturally handle variable expert counts, and learn to balance the features.
|
||||
If this works, we can potentially teach the behavior of using less computation for tokens that are trivial to predict, while using more when necessary.
|
||||
|
||||
# Also thanks StefanGliga for giving me the idea while we were discussing [this paper](https://arxiv.org/abs/2303.01610) :3
|
||||
30
config.json
Normal file
30
config.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"_name_or_path": "kalomaze/Mistral-7b-MoEified-8x",
|
||||
"architectures": [
|
||||
"MixtralForCausalLM"
|
||||
],
|
||||
"attention_dropout": 0.0,
|
||||
"bos_token_id": 1,
|
||||
"eos_token_id": 2,
|
||||
"hidden_act": "silu",
|
||||
"hidden_size": 4096,
|
||||
"initializer_range": 0.02,
|
||||
"intermediate_size": 1792,
|
||||
"max_position_embeddings": 32768,
|
||||
"model_type": "mixtral",
|
||||
"num_attention_heads": 32,
|
||||
"num_experts_per_tok": 8,
|
||||
"num_hidden_layers": 32,
|
||||
"num_key_value_heads": 8,
|
||||
"num_local_experts": 8,
|
||||
"output_router_logits": false,
|
||||
"rms_norm_eps": 1e-05,
|
||||
"rope_theta": 10000.0,
|
||||
"router_aux_loss_coef": 0.02,
|
||||
"sliding_window": null,
|
||||
"tie_word_embeddings": false,
|
||||
"torch_dtype": "bfloat16",
|
||||
"transformers_version": "4.41.1",
|
||||
"use_cache": true,
|
||||
"vocab_size": 32000
|
||||
}
|
||||
1
configuration.json
Normal file
1
configuration.json
Normal file
@@ -0,0 +1 @@
|
||||
{"framework": "pytorch", "task": "text-generation", "allow_remote": true}
|
||||
6
generation_config.json
Normal file
6
generation_config.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"_from_model_config": true,
|
||||
"bos_token_id": 1,
|
||||
"eos_token_id": 2,
|
||||
"transformers_version": "4.41.1"
|
||||
}
|
||||
3
ggml-model-f16.gguf
Normal file
3
ggml-model-f16.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:deb7666fd36d05f9ae28ffe881b810f606b1dfd19d00db3c319fab2320c432da
|
||||
size 14488929280
|
||||
3
model-00001-of-00015.safetensors
Normal file
3
model-00001-of-00015.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4b40435b1ba0b3e9c6bb9b84c8f950f0f5c402ecad8ca884da012f557f195a18
|
||||
size 987863392
|
||||
3
model-00002-of-00015.safetensors
Normal file
3
model-00002-of-00015.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:29dad47789f6c5e55f88916303ea83ecdda73ac64fe04035167094521536e503
|
||||
size 990028384
|
||||
3
model-00003-of-00015.safetensors
Normal file
3
model-00003-of-00015.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cddaa1b58fdea14f290883c9b84829702b74af42e17c04aa4f0f3cc9c2661a34
|
||||
size 985916032
|
||||
3
model-00004-of-00015.safetensors
Normal file
3
model-00004-of-00015.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9bdea33883e06550e55f6507010dd99adcb3dd2c4a30855a3d717c13b15c3161
|
||||
size 990028384
|
||||
3
model-00005-of-00015.safetensors
Normal file
3
model-00005-of-00015.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5fd7a24383c8249b33eb198fd950aacc5ac85170cdbab3ac886e90a349b585e2
|
||||
size 990028408
|
||||
3
model-00006-of-00015.safetensors
Normal file
3
model-00006-of-00015.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:28e1a490cfaff7dbccd6f1b7fa7ab14242a24ab24dcc7421bccbeaa09bad2e37
|
||||
size 990094104
|
||||
3
model-00007-of-00015.safetensors
Normal file
3
model-00007-of-00015.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:58d10e6e0ae18b492c808b1c940abdbfdae2437f96b6ede9c1e0bcf173f27ac0
|
||||
size 985850456
|
||||
3
model-00008-of-00015.safetensors
Normal file
3
model-00008-of-00015.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:762d1120bac3130b1878c6e3b90923ce07b5b20f279b3aa7fc0ae8f785acc6f6
|
||||
size 990028456
|
||||
3
model-00009-of-00015.safetensors
Normal file
3
model-00009-of-00015.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e593866b18fd2fd127fd8befad350a8cc7d7464c96124207d04acc919d63adf9
|
||||
size 990028456
|
||||
3
model-00010-of-00015.safetensors
Normal file
3
model-00010-of-00015.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ac1d6d2a2060248124afd1b19bdada99bc59019a9faae5a3fca86c53a956d975
|
||||
size 994288264
|
||||
3
model-00011-of-00015.safetensors
Normal file
3
model-00011-of-00015.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e2901ef7273dbc8607bf9a63bf6516d555485c0c2c3b1d28bf45f58a9adfdebc
|
||||
size 996336480
|
||||
3
model-00012-of-00015.safetensors
Normal file
3
model-00012-of-00015.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ad5fe4adf0400d8ed868a6e28200ba4e9b1997d6d795713788f7744be784b683
|
||||
size 990028456
|
||||
3
model-00013-of-00015.safetensors
Normal file
3
model-00013-of-00015.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7164a69aae487bef86c0a5d506945f7d76cef55544228dbf32d9362d4a7bf85b
|
||||
size 990028456
|
||||
3
model-00014-of-00015.safetensors
Normal file
3
model-00014-of-00015.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a516e701dc6757f4f9531a405802975422104adbda1bb63f8a4fc8ad9f3a8834
|
||||
size 967025136
|
||||
3
model-00015-of-00015.safetensors
Normal file
3
model-00015-of-00015.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:59edd2e669c3a79aab5dfc048e8a1ac388e9e5983175e5fde43aeee74acf1aea
|
||||
size 648113856
|
||||
1002
model.safetensors.index.json
Normal file
1002
model.safetensors.index.json
Normal file
File diff suppressed because it is too large
Load Diff
1
special_tokens_map.json
Normal file
1
special_tokens_map.json
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
91122
tokenizer.json
Normal file
91122
tokenizer.json
Normal file
File diff suppressed because it is too large
Load Diff
31
tokenizer_config.json
Normal file
31
tokenizer_config.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"added_tokens_decoder": {
|
||||
"0": {
|
||||
"content": "<unk>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false,
|
||||
"special": true
|
||||
},
|
||||
"1": {
|
||||
"content": "<s>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false,
|
||||
"special": true
|
||||
},
|
||||
"2": {
|
||||
"content": "</s>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false,
|
||||
"special": true
|
||||
}
|
||||
},
|
||||
"clean_up_tokenization_spaces": true,
|
||||
"model_max_length": 1000000000000000019884624838656,
|
||||
"tokenizer_class": "PreTrainedTokenizerFast"
|
||||
}
|
||||
Reference in New Issue
Block a user