Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
ollama
Commits
6ffb5cb0
Commit
6ffb5cb0
authored
Jun 03, 2024
by
Michael Yang
Browse files
add conversion for microsoft phi 3 mini/medium 4k, 128
parent
f7e3b919
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
373 additions
and
12 deletions
+373
-12
convert/convert.go
convert/convert.go
+6
-0
convert/convert_llama.go
convert/convert_llama.go
+0
-4
convert/convert_phi3.go
convert/convert_phi3.go
+125
-0
convert/convert_test.go
convert/convert_test.go
+2
-0
convert/testdata/Phi-3-mini-128k-instruct.json
convert/testdata/Phi-3-mini-128k-instruct.json
+225
-0
llm/ggml.go
llm/ggml.go
+8
-0
llm/gguf.go
llm/gguf.go
+7
-8
No files found.
convert/convert.go
View file @
6ffb5cb0
...
...
@@ -27,6 +27,10 @@ func (Parameters) KV(t *Tokenizer) llm.KV {
"tokenizer.ggml.token_type"
:
t
.
Vocabulary
.
Types
,
}
if
len
(
t
.
Merges
)
>
0
{
kv
[
"tokenizer.ggml.merges"
]
=
t
.
Merges
}
if
t
.
Template
!=
""
{
kv
[
"tokenizer.chat_template"
]
=
t
.
Template
}
...
...
@@ -89,6 +93,8 @@ func Convert(fsys fs.FS, ws io.WriteSeeker) error {
conv
=
&
mixtral
{}
case
"GemmaForCausalLM"
:
conv
=
&
gemma
{}
case
"Phi3ForCausalLM"
:
conv
=
&
phi3
{}
default
:
return
errors
.
New
(
"unsupported architecture"
)
}
...
...
convert/convert_llama.go
View file @
6ffb5cb0
...
...
@@ -90,10 +90,6 @@ func (p *llama) KV(t *Tokenizer) llm.KV {
kv
[
"llama.attention.value_length"
]
=
p
.
HeadDim
}
if
len
(
t
.
Merges
)
>
0
{
kv
[
"tokenizer.ggml.merges"
]
=
t
.
Merges
}
return
kv
}
...
...
convert/convert_phi3.go
0 → 100644
View file @
6ffb5cb0
package
convert
import
(
"cmp"
"encoding/binary"
"io"
"math"
"strings"
"sync"
"github.com/ollama/ollama/llm"
)
type
phi3
struct
{
Parameters
NumHiddenLayers
uint32
`json:"num_hidden_layers"`
NLayers
uint32
`json:"n_layers"`
HiddenSize
uint32
`json:"hidden_size"`
NEmbd
uint32
`json:"n_embd"`
IntermediateSize
uint32
`json:"intermediate_size"`
NumAttentionHeads
uint32
`json:"num_attention_heads"`
NHead
uint32
`json:"n_head"`
NumKeyValueHeads
uint32
`json:"num_key_value_heads"`
NHeadKV
uint32
`json:"n_head_kv"`
RopeTheta
float32
`json:"rope_theta"`
RopeScaling
struct
{
Type
string
`json:"type"`
LongFactor
ropeFactor
`json:"long_factor"`
ShortFactor
ropeFactor
`json:"short_factor"`
}
`json:"rope_scaling"`
RMSNormEPS
float32
`json:"rms_norm_eps"`
NPositions
uint32
`json:"n_positions"`
MaxPositionEmbeddings
uint32
`json:"max_position_embeddings"`
OriginalMaxPositionEmbeddings
uint32
`json:"original_max_position_embeddings"`
SlidingWindow
uint32
`json:"sliding_window"`
}
var
_
Converter
=
(
*
phi3
)(
nil
)
func
(
p
*
phi3
)
KV
(
t
*
Tokenizer
)
llm
.
KV
{
kv
:=
p
.
Parameters
.
KV
(
t
)
kv
[
"general.architecture"
]
=
"phi3"
kv
[
"general.name"
]
=
"phi3"
kv
[
"phi3.context_length"
]
=
p
.
MaxPositionEmbeddings
kv
[
"phi3.embedding_length"
]
=
cmp
.
Or
(
p
.
HiddenSize
,
p
.
NEmbd
)
kv
[
"phi3.feed_forward_length"
]
=
p
.
IntermediateSize
kv
[
"phi3.block_count"
]
=
cmp
.
Or
(
p
.
NumHiddenLayers
,
p
.
NLayers
)
kv
[
"phi3.attention.head_count"
]
=
cmp
.
Or
(
p
.
NumAttentionHeads
,
p
.
NHead
)
kv
[
"phi3.attention.head_count_kv"
]
=
cmp
.
Or
(
p
.
NumKeyValueHeads
,
p
.
NHeadKV
)
kv
[
"phi3.attention.layer_norm_rms_epsilon"
]
=
p
.
RMSNormEPS
kv
[
"phi3.rope.dimension_count"
]
=
p
.
HiddenSize
/
cmp
.
Or
(
p
.
NumAttentionHeads
,
p
.
NHead
)
kv
[
"phi3.rope.freq_base"
]
=
p
.
RopeTheta
kv
[
"phi3.rope.scaling.original_context_length"
]
=
p
.
OriginalMaxPositionEmbeddings
kv
[
"phi3.attention.sliding_window"
]
=
p
.
SlidingWindow
scale
:=
float64
(
p
.
MaxPositionEmbeddings
)
/
float64
(
p
.
OriginalMaxPositionEmbeddings
)
switch
p
.
RopeScaling
.
Type
{
case
""
:
// no scaling
case
"su"
:
kv
[
"phi3.rope.scaling.attn_factor"
]
=
float32
(
max
(
math
.
Sqrt
(
1
+
math
.
Log
(
scale
)
/
math
.
Log
(
float64
(
p
.
OriginalMaxPositionEmbeddings
))),
1.0
))
case
"yarn"
:
kv
[
"phi3.rope.scaling.attn_factor"
]
=
float32
(
max
(
0.1
*
math
.
Log
(
scale
)
+
1.0
,
1.0
))
default
:
panic
(
"unknown rope scaling type"
)
}
return
kv
}
func
(
p
*
phi3
)
Tensors
(
ts
[]
Tensor
)
[]
llm
.
Tensor
{
var
addRopeFactors
sync
.
Once
out
:=
make
([]
llm
.
Tensor
,
0
,
len
(
ts
)
+
2
)
for
_
,
t
:=
range
ts
{
name
:=
p
.
tensorName
(
t
.
Name
())
if
strings
.
HasPrefix
(
name
,
"blk.0."
)
{
addRopeFactors
.
Do
(
func
()
{
out
=
append
(
out
,
llm
.
Tensor
{
Name
:
"rope_factors_long.weight"
,
Kind
:
0
,
Shape
:
[]
uint64
{
uint64
(
len
(
p
.
RopeScaling
.
LongFactor
))},
WriterTo
:
p
.
RopeScaling
.
LongFactor
,
},
llm
.
Tensor
{
Name
:
"rope_factors_short.weight"
,
Kind
:
0
,
Shape
:
[]
uint64
{
uint64
(
len
(
p
.
RopeScaling
.
ShortFactor
))},
WriterTo
:
p
.
RopeScaling
.
ShortFactor
,
})
})
}
out
=
append
(
out
,
llm
.
Tensor
{
Name
:
name
,
Kind
:
t
.
Kind
(),
Shape
:
t
.
Shape
(),
WriterTo
:
t
,
})
}
return
out
}
func
(
p
*
phi3
)
tensorName
(
n
string
)
string
{
return
strings
.
NewReplacer
(
"lm_head"
,
"output"
,
"model.embed_tokens"
,
"token_embd"
,
"model.norm"
,
"output_norm"
,
"model.layers"
,
"blk"
,
"input_layernorm"
,
"attn_norm"
,
"self_attn.qkv_proj"
,
"attn_qkv"
,
"self_attn.o_proj"
,
"attn_output"
,
"mlp.down_proj"
,
"ffn_down"
,
"mlp.gate_up_proj"
,
"ffn_up"
,
"post_attention_layernorm"
,
"ffn_norm"
,
)
.
Replace
(
n
)
}
type
ropeFactor
[]
float32
func
(
r
ropeFactor
)
WriteTo
(
w
io
.
Writer
)
(
int64
,
error
)
{
err
:=
binary
.
Write
(
w
,
binary
.
LittleEndian
,
r
)
return
0
,
err
}
convert/convert_test.go
View file @
6ffb5cb0
...
...
@@ -65,6 +65,8 @@ func TestConvertFull(t *testing.T) {
"Mistral-7B-Instruct-v0.2"
,
"Mixtral-8x7B-Instruct-v0.1"
,
"gemma-2b-it"
,
// microsoft/Phi-3-mini-128-instruct@d548c233192db00165d842bf8edff054bb3212f8
"Phi-3-mini-128k-instruct"
,
}
for
i
:=
range
cases
{
...
...
convert/testdata/Phi-3-mini-128k-instruct.json
0 → 100644
View file @
6ffb5cb0
{
"general.architecture"
:
"phi3"
,
"general.file_type"
:
"1"
,
"general.quantization_version"
:
"2"
,
"phi3.block_count"
:
"32"
,
"phi3.context_length"
:
"131072"
,
"phi3.embedding_length"
:
"3072"
,
"phi3.feed_forward_length"
:
"8192"
,
"phi3.rope.scaling.original_context_length"
:
"4096"
,
"phi3.rope.dimension_count"
:
"96"
,
"phi3.rope.freq_base"
:
"10000"
,
"phi3.rope.scaling.attn_factor"
:
"1.1902381"
,
"phi3.attention.head_count"
:
"32"
,
"phi3.attention.head_count_kv"
:
"32"
,
"phi3.attention.layer_norm_rms_epsilon"
:
"1e-05"
,
"phi3.attention.sliding_window"
:
"262144"
,
"tokenizer.ggml.model"
:
"llama"
,
"tokenizer.ggml.pre"
:
"default"
,
"tokenizer.ggml.add_bos_token"
:
"false"
,
"tokenizer.ggml.add_eos_token"
:
"false"
,
"tokenizer.ggml.bos_token_id"
:
"1"
,
"tokenizer.ggml.eos_token_id"
:
"32000"
,
"tokenizer.ggml.unknown_token_id"
:
"0"
,
"tokenizer.ggml.padding_token_id"
:
"32000"
,
"tokenizer.ggml.scores"
:
"6e37bcde2adc7e350e87c496eddd7a2124329c1dc66c5bf3ad3997253e4f7a62"
,
"tokenizer.ggml.token_type"
:
"b6ecf55ec64ee67d87750bdb8d757a2c58bf78377e9f4219f5689a6c4dea57ce"
,
"tokenizer.ggml.tokens"
:
"d168da3ddd3eee820916945fcb9baf24dd3cde42f606cffa2d19e7c8a8743918"
,
"blk.0.attn_norm.weight"
:
"216aeb2c9e0c271f899e1ef2a63cceeb8f41e97642e84fada54b1d3c1c11cf25"
,
"blk.0.attn_output.weight"
:
"b597d56f7188ffc1fafc273fadc59d41738cffd677ae98c61a62c3285b3a3099"
,
"blk.0.attn_qkv.weight"
:
"d28a6b44e13f59be5483e4be2bedb544e346168d720aca27f47d1a5a722be91e"
,
"blk.0.ffn_down.weight"
:
"4a691370e5a61fcbbf540fbcbf4c0f1d15dec0364528c0e916d0744f6262b63b"
,
"blk.0.ffn_norm.weight"
:
"0c00af2b4a3128bec64a0cbb1084b042fdbe13d9ad0d03bd577f9449dfead338"
,
"blk.0.ffn_up.weight"
:
"b32b52f790c1c083bfb8a3126dc1111cfeeb28dc8c584a930a1e5334cb176bf4"
,
"blk.1.attn_norm.weight"
:
"68748011503c6c029e8e69a84a8e5a89338f378769627b6dbf7f93d715c292e1"
,
"blk.1.attn_output.weight"
:
"2267344add13b048ca59e4377c86dc512be8046a57156901fa32a20fa74e4ee0"
,
"blk.1.attn_qkv.weight"
:
"9109d2e3d7a2eacfda5226587b8be124a3bf44b972da7ebb17aa15795897eacc"
,
"blk.1.ffn_down.weight"
:
"d675df4df4dd039c0c339ad6445d39eddd2004db6bf35bed6314c7497245a633"
,
"blk.1.ffn_norm.weight"
:
"3b5767ae977bc8baaa06b06efdbea193b6b3ba605ce76d77a76ce317e935500c"
,
"blk.1.ffn_up.weight"
:
"80dfd6d9d234b00334c89b8e0a02f81899c2efd377321c34ba5ba51a5f61b5ff"
,
"blk.2.attn_norm.weight"
:
"6a6743b057e5088f145bc179e92c9bfb41163e7295d7b81c62e23dd89d2b59c4"
,
"blk.2.attn_output.weight"
:
"bc5491ea54e0db81462d7d9b7d25cbdda380c2db8de041bd1c4ab7b76a1d19c3"
,
"blk.2.attn_qkv.weight"
:
"a61287a9852e2f5aca9c100b471d98398b2913a3497c743de3c70ec9ddd7087f"
,
"blk.2.ffn_down.weight"
:
"4fddcc382c8dceeab027fe43d8d44e67edb5e8ce4b9a1b7f773c87770380ade1"
,
"blk.2.ffn_norm.weight"
:
"07e05f82b3f63f711db3b684ca79aed25c0657917e66f88af47348a82065c227"
,
"blk.2.ffn_up.weight"
:
"4835a682ef1826c12df01ae7663fc45f9c82bc8e64b665f13fb7da8e201ec0fb"
,
"blk.3.attn_norm.weight"
:
"f22aba7c03999ba7136f39cda747a39715e498699dc1716cd97fc5dfc58d1b1c"
,
"blk.3.attn_output.weight"
:
"53b579855366fd786c5126b2b30aac4d583ca7bda56833c4865f5cadb5c18c6d"
,
"blk.3.attn_qkv.weight"
:
"bb56aba78158123140fcea59c69ac562ca208f6d3086819417cdad8c50f333ad"
,
"blk.3.ffn_down.weight"
:
"97280897a7cd86db2830c004bccc5bc094f50e293baded0189159a2019145a6e"
,
"blk.3.ffn_norm.weight"
:
"10a8c99f8b57a960e8e0a1133c4a26f9148403d1b9bff2eff114917de996f3b5"
,
"blk.3.ffn_up.weight"
:
"7324046c915e75d621b2043597a245a428d8eea31869135e6257a861491d8dcc"
,
"blk.4.attn_norm.weight"
:
"507d8e164de94646edbfe33def8e8fbf7c9a6ee3fbaedb5000f72d9f51ec5e36"
,
"blk.4.attn_output.weight"
:
"bbb3429e6efa98c150e0fdbf48c16180cbf0d0cbc1b3c253c6c319d78f4593a2"
,
"blk.4.attn_qkv.weight"
:
"b95ee5be0786d3901273d806c339fe6c20e6bfffd2a20672a9f56af80921e8ab"
,
"blk.4.ffn_down.weight"
:
"806bbf91df92a5a22bd5aa1ffb7fc2869f7293ffc7704771c290ecc583b27975"
,
"blk.4.ffn_norm.weight"
:
"cfc2930a81df7aee3a5e7f726a15c1182233e868bf0d9d37f6b6ae6d8c15c234"
,
"blk.4.ffn_up.weight"
:
"c3390c69533de2c8424e8069323ccc5d0c4543111535da04cf2c7d26745576aa"
,
"blk.5.attn_norm.weight"
:
"0d71c4fbcefabbd021569442853d2fe90668b19409ae2805a718a829ca60beab"
,
"blk.5.attn_output.weight"
:
"10ebd93629112bf2df5c30dd0953a4a5e9020306768283181ed426934d47e14f"
,
"blk.5.attn_qkv.weight"
:
"5cb05633369f12d4b00e0ff787736bd846856682115720ebc6cce05270c334f6"
,
"blk.5.ffn_down.weight"
:
"e28bcc5094212eafc7476dbc5b7a520d25b79578cbf4229d698e2655956a80ad"
,
"blk.5.ffn_norm.weight"
:
"b6f2c4cf9f34bb4d59989f96165c14a67dc1e266ad0a6d0fcc49f1add929e6ff"
,
"blk.5.ffn_up.weight"
:
"0f9ef99423cc07ebedc0e9cfa95809f2d7108d910bb4ef97ebc0b0309c440750"
,
"blk.6.attn_norm.weight"
:
"b3edcc47a42218234f7564d7470611b49401a41ae8cd42123f86557c69f5d7f2"
,
"blk.6.attn_output.weight"
:
"eb9b7d257b388bb5b8fe0515e5c6873317239cb94cda236e4b6ada2a6c57c65c"
,
"blk.6.attn_qkv.weight"
:
"eb968081f478c52f07bd9c2761741e982dba33cc4eeadeea3557d391b9ac2106"
,
"blk.6.ffn_down.weight"
:
"1b8588bb7463206290322695577dcfced300895d6e6f4b26966c53a9ae2f0f84"
,
"blk.6.ffn_norm.weight"
:
"1219c04b7770983c77814200eefe743f46d15328ea2b12711e44f8103eab08d3"
,
"blk.6.ffn_up.weight"
:
"197ef287239fec47c55677f0fbb66eaf0644f775bc382de843971730721394f6"
,
"blk.7.attn_norm.weight"
:
"b630ad08c80d564ed1c024384818e9fd3f22a36cd7a14aa96e7e2759a8285099"
,
"blk.7.attn_output.weight"
:
"970255aa750828a47d6b9d399f9612b5bf25aefe7dadbcba41fc416d0d4067c1"
,
"blk.7.attn_qkv.weight"
:
"ebb157c880293e6de8d629f263ba8853ed1dbdc02c311d43432bb8cfbb310739"
,
"blk.7.ffn_down.weight"
:
"24bcd4db4cba844c89f878b81843c373dbbc0675e889d32c5b12e63384a7b670"
,
"blk.7.ffn_norm.weight"
:
"b9c6f71001808ee873ce7db8056e4b53fb4cccec8b7f0f312899b575fae39d39"
,
"blk.7.ffn_up.weight"
:
"979f1828d227455c26015a2a11afe9dd05f2bb97a8ba6b38c8dab3f50e627401"
,
"blk.8.attn_norm.weight"
:
"4e8e347e3775010b7112ee630f2f4f2383be7ff64e6ca6154b9b22566552eaa6"
,
"blk.8.attn_output.weight"
:
"65a44babf44a435a1829945211b3168f9ec78ac3cb7a049a733e93d11f0d6659"
,
"blk.8.attn_qkv.weight"
:
"343ed07671da400b040812a4058482fa38284b5d9af9becfed07417fe26ce747"
,
"blk.8.ffn_down.weight"
:
"7fb7e073e3c2c503c4e9d60efa0988fed7398d900cc003695fe3fffd3e188b82"
,
"blk.8.ffn_norm.weight"
:
"b07c1f655d8593e3892a2cf73f8a0c19ce8e5cb613fafbe7cbd430da8ce4c57d"
,
"blk.8.ffn_up.weight"
:
"8b26e14de54b3fdc2e2d3ea41720f9d9c236a93688c3b7fd7bf43f5fbb327c9b"
,
"blk.9.attn_norm.weight"
:
"46394d408a8e316916177e6aa261de32e137a82d729c0b1800b072f0c38c39b6"
,
"blk.9.attn_output.weight"
:
"d57f3d46107947a7073373a0b35d6ecf7759b5df15406f4a3590a60666af6b16"
,
"blk.9.attn_qkv.weight"
:
"14bb8ace8c5453148f4b536e9f4279c813f31136716947256f5cca333448639c"
,
"blk.9.ffn_down.weight"
:
"2b8d98e2b5ed68338f6e4de43bf7de0c4858cc69103cd5177725f7444eec7694"
,
"blk.9.ffn_norm.weight"
:
"41a499dfd418cc4c6b8c12313f673f7e2cd4a3f9c4065eb6c4feb5eed02fb542"
,
"blk.9.ffn_up.weight"
:
"143aab7533a64b17fbe201490a6f674bc7f0bd370c094500b2e100419073d1c2"
,
"blk.10.attn_norm.weight"
:
"ebb670aafd36816a794347287269d8f1a5b19c1e3c0a1e38023bc19fdba9b073"
,
"blk.10.attn_output.weight"
:
"b5d65bbc0ed5e49fdd9d754bc18163cd042a285024d0cf6f954c503bc8c877cb"
,
"blk.10.attn_qkv.weight"
:
"f06b15bac88da798fa34a62b03eaac0dbe8b846020516603c387541f2d8dd672"
,
"blk.10.ffn_down.weight"
:
"fb091fcd1b4de25d1bea94d1755e255cb02914a030d23e3a234e57b8d46bde6e"
,
"blk.10.ffn_norm.weight"
:
"eb347bdf9c40414af87e13a8e72e40b31f004b50f7cb366f1a219ced60a61355"
,
"blk.10.ffn_up.weight"
:
"ed2d52fc881a173f404fe8a1067862c9856d6c3e0d2e90a330a7aa394e3f84d1"
,
"blk.11.attn_norm.weight"
:
"64e252603cf010a0e502ca39fdf8d0a196a79aec67c0d2bb9213fc0cb80c47d4"
,
"blk.11.attn_output.weight"
:
"228e33e21c69f52efc74fdfc831bc9af271e44b2a29a3dced1d64e667ce36eb5"
,
"blk.11.attn_qkv.weight"
:
"ab9ce6d4ef9e42ee0da3f20a7708a3bbc5e79e967b05fa86ba946a05e2eb63eb"
,
"blk.11.ffn_down.weight"
:
"0ca133b7835c98dc77c25d64e4eb7873778bdb5e4d22d8b80f920f46865b43bd"
,
"blk.11.ffn_norm.weight"
:
"02455741a0dfd161c79aa1ecc381901721f229fdcda5615622a629631fb61cfd"
,
"blk.11.ffn_up.weight"
:
"9fecdcc099fbb8e23c6b1ea9294702a027f4a58d265543ec5e7be79b8f63b354"
,
"blk.12.attn_norm.weight"
:
"783bb459911b1b3609a9b2bdfe272f1670add73b5471da738e07ac47e2e07dfd"
,
"blk.12.attn_output.weight"
:
"1e1a914c9e48b857206ac5a1f7cead994bc1ea91d5d4fff8c834d73f2e38ef5d"
,
"blk.12.attn_qkv.weight"
:
"5953e7185ccb87fb4dae8f9426ec86315d4c7794326e8ab59b3a95d4af2189f0"
,
"blk.12.ffn_down.weight"
:
"a3eecf0f394f86e2cfb48a5940a5c50ca86d71883b2f79fcc642a935fabce0d4"
,
"blk.12.ffn_norm.weight"
:
"0a4272e41373c23bd72f10d2d82930aa3a1480aac75832bfbf01cebf0b86b6a4"
,
"blk.12.ffn_up.weight"
:
"06f42776de3a7ceac3025f26a7a8bd20e062233cce2bdaa2183470dc4b30b87d"
,
"blk.13.attn_norm.weight"
:
"5915da60fb03e201fa649faba780e5fdf1c761c262b206e5415cf83181f65780"
,
"blk.13.attn_output.weight"
:
"4dbf6eab074fa3835fd32bd631a8208e511037d5056d2fd3015735cca7674ef7"
,
"blk.13.attn_qkv.weight"
:
"d3d8339a1c4782d9e73d77fdebe154d3c5b83ac40c9175b3e91a4977d08f876b"
,
"blk.13.ffn_down.weight"
:
"de6772b46a55e1fd42b007637dfbf68b6598e5d5b61622da0935002e1e192d3a"
,
"blk.13.ffn_norm.weight"
:
"5a640ea3b8c7be49c95a58a2327e10d8e8d9d142504bde5c8091613e5b961d7a"
,
"blk.13.ffn_up.weight"
:
"f35e3545e4bd3531b2e843b5efd31dee0c13c807ee6386e65473ba67bbec30d0"
,
"blk.14.attn_norm.weight"
:
"9b34986450b7c98b4927e81e61a816f9e84b1addc7c14926402100037aad6678"
,
"blk.14.attn_output.weight"
:
"155d52efb23d366016d861a251d4d1f4a0c13699188c50d50dba016a0d8bfcd9"
,
"blk.14.attn_qkv.weight"
:
"8e1415084e1f33c73a777f19e752489f4dd312cca047733e5ea643cd4a955e04"
,
"blk.14.ffn_down.weight"
:
"a2a142226b94baa01ccb65bdea2b7418e49085c1d9c3c63e544e3112c58a25da"
,
"blk.14.ffn_norm.weight"
:
"8aecfd9b0ae6affaea31a80c5c9a4a14b31deaa0db7bd8f6da2a64d23447921c"
,
"blk.14.ffn_up.weight"
:
"0c1407237b8c1bd02f193346b5681926fe698a5055eac6a7450451b0f991707c"
,
"blk.15.attn_norm.weight"
:
"e037bd19880bfa83d983200fb0c7866f8ad16c3ff5cc4b4f3a37ca7373870ff6"
,
"blk.15.attn_output.weight"
:
"045fe4fc95cc129a1b92771b179c11b12845c4c088786c607f17bd98857e68e1"
,
"blk.15.attn_qkv.weight"
:
"7621b7559705cab1d4dea1c69f76dbf9dc1c8837a203b656f484703b9c1b70ce"
,
"blk.15.ffn_down.weight"
:
"7e5ac20e290bc60761e1cd972354fde225b7fa861048d44d9a0dd9b046d55f58"
,
"blk.15.ffn_norm.weight"
:
"b6d830d88f1db1825687973c8c2b1a24c6fa84f07af8d0e3ef9c86009baca0b2"
,
"blk.15.ffn_up.weight"
:
"dcda0957cd04fc45476774dba2bbf9aa89d6b05d5ca7b10ae6f73ad2c49b1cd3"
,
"blk.16.attn_norm.weight"
:
"4ee9b70ba15cb2a08240f93990e90f5068c48fceb481f8e2186bec8b7214eb3f"
,
"blk.16.attn_output.weight"
:
"315cfe5536658d2498192b2980eade15b2c9a4ff220e4011911457b1727fa103"
,
"blk.16.attn_qkv.weight"
:
"3c8122e3ad637583b9dcde8ff3a323267d3014bb1f0f9771e5322260ca9ecc8d"
,
"blk.16.ffn_down.weight"
:
"3b5fbebd5ee2b86cad96fb8a9b45a8770d08f82c1c8b74d7061e866f7020a18d"
,
"blk.16.ffn_norm.weight"
:
"ffab69f20bda372de6e5878f0539163e2fc6ba113621ded95705fc3b1465c9f0"
,
"blk.16.ffn_up.weight"
:
"0935ea3d258da42d6258406365f39f58ddaabfe97ea5977580db3635188f24a1"
,
"blk.17.attn_norm.weight"
:
"f030441733f3d147b4a06a1eb4aeb8465c7c24d9c53bf4c48fe7e134d3629803"
,
"blk.17.attn_output.weight"
:
"07a955ef09e8dc766ac0df647d0b2c69f23c4c69a7137654b4aad80303ed0eda"
,
"blk.17.attn_qkv.weight"
:
"1c10688061e21e2fe12ad0cb54bf03895c1f83c3b0df743a42f548b52cbca1b2"
,
"blk.17.ffn_down.weight"
:
"ebb9cc9836f41d88fdae2aa9a4355514e4edaec8d1577ffeb947a35204e77f52"
,
"blk.17.ffn_norm.weight"
:
"50aff44f6528b13db5389f2ddcdb7676244947610bd7ffbff3f881c968c2a0d4"
,
"blk.17.ffn_up.weight"
:
"d716537949582be33bde6b02e38f5a70081c9642a9fb05a61312126718b8d148"
,
"blk.18.attn_norm.weight"
:
"0ea695c4e53d637902f46663a6ee42adc493c36794476acc7dbddaa05b13840d"
,
"blk.18.attn_output.weight"
:
"5fd35b500221a612eb4f4bddf0e9b6b7db4d7733032a75f8802fb2d884647c2e"
,
"blk.18.attn_qkv.weight"
:
"b0da37fd030fe69581f990bf23bfd35467a1bbe558af6de7c0924f6b72e92317"
,
"blk.18.ffn_down.weight"
:
"b355c33f44b328f4bb977567de8f7544db4b005d7a8fbded658518ecf3c5a153"
,
"blk.18.ffn_norm.weight"
:
"58b3fe9094079989a86e0387143259e1cc35952d24dc3df290c4ba6df44f5c51"
,
"blk.18.ffn_up.weight"
:
"2ce530954c342c30ed2ead5353f931960bfae1d278868504c0efb973560fabbe"
,
"blk.19.attn_norm.weight"
:
"533e9aed66feea8f0392aa81f9e293240e1f009a5334253915fb60c2749b615d"
,
"blk.19.attn_output.weight"
:
"84f2d00f98a4113a779d3b5d1c3e7c914eb47784d3ab13b290367c124c2994aa"
,
"blk.19.attn_qkv.weight"
:
"fbe6b9f53b07fa7537d3b3d452d20a9bc666f9fd41ec2091dd28bc2f70fc668f"
,
"blk.19.ffn_down.weight"
:
"b30199e098c8bb3f890183d8b18471e80b62b604729b277ad62488dd71e1206b"
,
"blk.19.ffn_norm.weight"
:
"c81373e41cd340b7badb19f9517c77c4250b4eb9a02dc758b8b49b652487d7ff"
,
"blk.19.ffn_up.weight"
:
"5a5cb083ca7725720e3a890f7fa46354760e8007a8188849a092e305694a75e3"
,
"blk.20.attn_norm.weight"
:
"4953091b4477e354357a8e743ba0a1900633e52f1599ee082a0c9b0b2b5cd978"
,
"blk.20.attn_output.weight"
:
"62d54f7749cd6856097b2632066a322b0296df915fe66f382c5b5981be0d4f23"
,
"blk.20.attn_qkv.weight"
:
"406de9e35b0729ebe902d7a47905cc7fb29a921431ed35dbef0c03e5690a1329"
,
"blk.20.ffn_down.weight"
:
"62fb678b0d1261e19a4903a2b347d67afcc8acff01feb33a687a35a2d1e6f9a5"
,
"blk.20.ffn_norm.weight"
:
"cd9d36b7e71e55c8925b97bb09c28219f182626bcff094878ae39c3db887a14b"
,
"blk.20.ffn_up.weight"
:
"b9276771d79d3e932e73ccc520c3f8476342b9ef312ed2ee1e0da822e6e3ad18"
,
"blk.21.attn_norm.weight"
:
"66d8c8a35e13ce9c2a0e75b670150e2c31484a55c2316df46075312196178ed3"
,
"blk.21.attn_output.weight"
:
"12ab46c9382648f9b3350fdd92a6be6352743d62d6b520d7e2024e0c838588f5"
,
"blk.21.attn_qkv.weight"
:
"a7909676ee1675ca23cd29a5fdd226df8dd9d68f94c6c9bbb51dd9fd38504008"
,
"blk.21.ffn_down.weight"
:
"6fb317279c6542e82f97d5a12a60fac1bd0fa0405154f9fbe265e2fe39bd49cc"
,
"blk.21.ffn_norm.weight"
:
"c0f703eb3ff161b5ba4490d87d8684b8a6c47a8f433e12f418333b9db439010a"
,
"blk.21.ffn_up.weight"
:
"6dbdb80ef0c35e364bbce12d40d5e74c7963c7b55d58d9579567a07ffce7b863"
,
"blk.22.attn_norm.weight"
:
"f94237433bf03d675cb2f655b81ca91a1ce2447bc6b00b13d6b0ccfe2d411eff"
,
"blk.22.attn_output.weight"
:
"e821f95995ce497c01e63ca64f737713b1b65f11df1903e51d444aa516f33f71"
,
"blk.22.attn_qkv.weight"
:
"1b0f717c73afb5eb4c82a1708c4e85c969e8a2a8770d9ddb78b1870a2d8a781e"
,
"blk.22.ffn_down.weight"
:
"0f33f7a3cdc685484be99aa0c03642b0b20850a27d1fddbe054b13a9382f3ccb"
,
"blk.22.ffn_norm.weight"
:
"9df285cf211ddd7df2b36a50489af574755c7d4d98b29a05cd04566ae613c8dc"
,
"blk.22.ffn_up.weight"
:
"63ac300e1efb34041dd0136cf43ea622fac6f0caccce1cd9262f5e08d2cf179c"
,
"blk.23.attn_norm.weight"
:
"5f72d9e88689b4027b28f5f8f26cd3abb03635ceea7ec98a4c91a9fc691f6707"
,
"blk.23.attn_output.weight"
:
"6ecf04ff61125c5fc768f8656497152149373daf321ee9c957e8f7245a1184d1"
,
"blk.23.attn_qkv.weight"
:
"a9d9978806724c2959f2cf386c233831f08e1e933dbf2b32665e788d9d512ea4"
,
"blk.23.ffn_down.weight"
:
"72c7d17886a3da17fa0daa456aa5e877b2ef5b8b403182b870d9ca5ca9c70347"
,
"blk.23.ffn_norm.weight"
:
"971e4b712e3025a13419b5b57d674b5e4ab7f18f74b57b9afc4671623da90c4b"
,
"blk.23.ffn_up.weight"
:
"df2b5c7dbd5834545b815073af0c7355b065124e6d6f0fee78d8fa5b2076dc3e"
,
"blk.24.attn_norm.weight"
:
"c41957c4a79ad3b16f6e11daec1c7f530b9f3f4b618e1e4367c3b67787ac4ab6"
,
"blk.24.attn_output.weight"
:
"ef7d61f5fc88ac6f31bf60cb5f4d2d6b8df42d38825807112361a7224b0dee3b"
,
"blk.24.attn_qkv.weight"
:
"3e6a58fe7d49c90bb6971efbad3371c32256881173ea5aee4b0c296cb206490f"
,
"blk.24.ffn_down.weight"
:
"f43619144047de42fed81dfa495f1815d3cb771330e574043e2b67620819292c"
,
"blk.24.ffn_norm.weight"
:
"5501d4a2a98c8ca6b42e77b53b221dbc08f530f6a067256d787534ec6fe028bd"
,
"blk.24.ffn_up.weight"
:
"d64c8b0e509e2b1118f6000176f8956cacecdbb200c7e95ed93fb78b6e26c84a"
,
"blk.25.attn_norm.weight"
:
"502fa3c302d371f61c5791f4615b73018ffb1daa09b6499b227116581244c5d4"
,
"blk.25.attn_output.weight"
:
"ad8391d4e9c980856f2547aa945b2b6a407a6382158dc1ddd4f08d94ecc24be6"
,
"blk.25.attn_qkv.weight"
:
"42e8983780d4a01a02c54ad23d4df21eea437f119a10af5a9c12a76a42d308c1"
,
"blk.25.ffn_down.weight"
:
"302dd010d4e0ab4eeaee89090409ea0dddeeeed3236415eb8f97c942497eea91"
,
"blk.25.ffn_norm.weight"
:
"fb34c1ee5bca96986c08834df0a0c047ba041c1123ac1f563e9d64312bf82d6a"
,
"blk.25.ffn_up.weight"
:
"10739a8de156816d93c92b935386540bfa976bdbef204f0312960f6fc657582f"
,
"blk.26.attn_norm.weight"
:
"7036c711609128c4e55968ff3681d3043338879a5737efd6c2ac9e1a2a61f1a0"
,
"blk.26.attn_output.weight"
:
"db5db45dead5cb911fa01da59832f121b7c18b2d167bf53741c40819f24d346c"
,
"blk.26.attn_qkv.weight"
:
"cae34c6b7f82ed14348d5ed30a79919c383737c1694a9cb9c0de609d3b0c1d0a"
,
"blk.26.ffn_down.weight"
:
"491ec3a4da9b4f49f8ebc6be658ce397a9b801ae9fb35e82177e47808c65e5d0"
,
"blk.26.ffn_norm.weight"
:
"fd7059d75d7f0e5288511ddeeb0f772eb3cae3ccfe4226b877015834edc3c386"
,
"blk.26.ffn_up.weight"
:
"ea1ee1274c56458ce056d2205e5bb6e5422ce4cb0ad58006b8141749b97a0c39"
,
"blk.27.attn_norm.weight"
:
"cc362c9a937609265052cd38544af17a1a7448cea086d4c801139e1fc865832d"
,
"blk.27.attn_output.weight"
:
"ba757a81dabde9cb1b069d1bb616fe79649a1724f756567ec61caed1304fe6cf"
,
"blk.27.attn_qkv.weight"
:
"1ab8d7d02d87756c12c2275636823aa5ede3d683178225c4cac4bd892c319bd4"
,
"blk.27.ffn_down.weight"
:
"deb1c711c8a66acf4dcd2d088e1548f8e08f296f755e4067d6557fa55afde88c"
,
"blk.27.ffn_norm.weight"
:
"fc6242d8cb8a4a37a8ddb7e41e7e60a63d4a89edf36acb35df052f10b9c91ece"
,
"blk.27.ffn_up.weight"
:
"8df39b09c4801f343aca78f2918a1f6db78c8c55e591eda4c69eadb74c26e180"
,
"blk.28.attn_norm.weight"
:
"75b539308f77e3cefdc6d98484d8b5cbf0538f0c2869a77b7373a145a18bc850"
,
"blk.28.attn_output.weight"
:
"ae128940eb60a6d2e121762ef4b3e9dcf9eb3e105b249507fa7f12de0e19822c"
,
"blk.28.attn_qkv.weight"
:
"bdda781c288e9326c240e33905f8e621b6a2ad902e620739d34f93fcd6f933de"
,
"blk.28.ffn_down.weight"
:
"f1d6e6d1c286b1138bfd7e53fe477f399ae93bc2c04e35416f84218ed7247965"
,
"blk.28.ffn_norm.weight"
:
"3f837ce82c8b9bde0d61d08b6f5fe5574886ea5328dbdc53f2929f18da8b4087"
,
"blk.28.ffn_up.weight"
:
"2af027002e31d1b6cfedbdb30a2b9d7213f3aa691167c353913adfd48fda31e4"
,
"blk.29.attn_norm.weight"
:
"61e8003b5329462ffe0fe172f2b160260de006aed858332d49d75504b6b6aa7a"
,
"blk.29.attn_output.weight"
:
"ca44542a72a37476dc73dbdcc01f5b7497cb3ebc4ea230a55c9634ccd8e56ad4"
,
"blk.29.attn_qkv.weight"
:
"abb3d9d6abe57872ae3daa51935d43264093ded5ce63b49d1e280ee5758be0e4"
,
"blk.29.ffn_down.weight"
:
"6764b895fce881df097489c263446f0106de36217997660c15984b3ee22a5a06"
,
"blk.29.ffn_norm.weight"
:
"89e03e9a33fc0e6e31ba9f0c2bd7c5734a118c5602bb90148793e08a80e8d0ae"
,
"blk.29.ffn_up.weight"
:
"fa7ad57a84954f4121653152efed1a871d8adb20a1ea9086e3e849ce359d7d2e"
,
"blk.30.attn_norm.weight"
:
"91a697aca1e42af54f806a20211031c3369e8d0bd58df1b0147fe24954e1f5a4"
,
"blk.30.attn_output.weight"
:
"36063fcf766c89ac75be56f688cc63cefe5f2c733fbf4378ea9956ad386fa148"
,
"blk.30.attn_qkv.weight"
:
"2cacd1161f1121a2c0b979930134f4666f73fb8d7237b3b0659ae091b15955a6"
,
"blk.30.ffn_down.weight"
:
"9f3fcb6217100595850c05dc98f9ab2a263afdb6ab28df2fcb08aeff512057d7"
,
"blk.30.ffn_norm.weight"
:
"6c600bc1fc7de39d4f8917b81fc7d1d5ed2a9b56492234c13a4bd6028c30d880"
,
"blk.30.ffn_up.weight"
:
"73cabd1bb011956b2689ea3338bb76642ef3a57c197377d666d2ab5f56317668"
,
"blk.31.attn_norm.weight"
:
"72d3e1cc771380645fa75a899858c95f39857a4f3f1ed60fe1578df383b8bc53"
,
"blk.31.attn_output.weight"
:
"40089cdd29994dc19a1d89fa15902a89cfeca3540f12dc9bf4d00ef82506e456"
,
"blk.31.attn_qkv.weight"
:
"1d0bb40e9258071ae14290a53c619a8e331dda07354d2a02ef45766c029ae5e4"
,
"blk.31.ffn_down.weight"
:
"8defa0e06335b793fa8be03883f0a322d6c5b33f52c69c943c35c60d16e42c0a"
,
"blk.31.ffn_norm.weight"
:
"33c55d9d0c496ccfb130361fe131649346e098abaaac39c0519507e5d846721d"
,
"blk.31.ffn_up.weight"
:
"599f6503f61c692c1f82001973d35119f9688db5e6be9d9c298411491c93f09b"
,
"output.weight"
:
"14b8dc662bfa3308ebb2e102c562d8e52c15670e538f20f3216a9c310ca9dd41"
,
"output_norm.weight"
:
"7f2294ba94ce65681df6c7ddd8698799199b9d77dc83c10bdad5c3999f0fdb82"
,
"rope_factors_long.weight"
:
"e34d378664e354652c38f47d10dafb0498ccc2fb042d39ff7fef768146fff22b"
,
"rope_factors_short.weight"
:
"9379146a4988f373d362fe47b06c75e7fe7c54aa4dc9558758df79b7a87471fd"
,
"token_embd.weight"
:
"19a03c1fb5ac0baee93b0a7d8b0f26e9a9b011e229b694afc50ebfc13d84f8bf"
}
llm/ggml.go
View file @
6ffb5cb0
...
...
@@ -157,6 +157,14 @@ type Tensor struct {
io
.
WriterTo
`json:"-"`
}
func
(
t
Tensor
)
block
()
(
n
int
)
{
if
_
,
err
:=
fmt
.
Sscanf
(
t
.
Name
,
"blk.%d."
,
&
n
);
err
!=
nil
{
return
-
1
}
return
}
func
(
t
Tensor
)
blockSize
()
uint64
{
switch
t
.
Kind
{
case
0
,
1
,
24
,
25
,
26
,
27
,
28
,
30
:
// F32, F16, I8, I16, I32, I64, F64, BF16
...
...
llm/gguf.go
View file @
6ffb5cb0
...
...
@@ -532,15 +532,14 @@ func WriteGGUF(ws io.WriteSeeker, kv KV, ts []Tensor) error {
}
}
slices
.
SortFunc
(
ts
,
func
(
a
,
b
Tensor
)
int
{
var
i
,
j
int
if
n
,
err
:=
fmt
.
Sscanf
(
a
.
Name
,
"blk.%d"
,
&
i
);
err
!=
nil
||
n
!=
1
{
return
cmp
.
Compare
(
a
.
Name
,
b
.
Name
)
}
else
if
n
,
err
:=
fmt
.
Sscanf
(
b
.
Name
,
"blk.%d"
,
&
j
);
err
!=
nil
||
n
!=
1
{
return
cmp
.
Compare
(
a
.
Name
,
b
.
Name
)
}
slices
.
SortStableFunc
(
ts
,
func
(
a
,
b
Tensor
)
int
{
if
i
,
j
:=
a
.
block
(),
b
.
block
();
i
<
0
&&
j
>
0
{
return
1
}
else
if
i
>
0
&&
j
<
0
{
return
-
1
}
else
{
return
cmp
.
Compare
(
i
,
j
)
}
})
var
s
uint64
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment