ggml: fix wrong param size of metaggml
This commit is contained in:
parent
5f32d764fd
commit
a12cabbdf9
|
|
@ -663,18 +663,22 @@ func MakeMetaGGML(ggmls []GGML, ggmlPaths []string) MetaGGML {
|
|||
return cmp.Compare(a.weight, b.weight)
|
||||
})
|
||||
metaGgml := MetaGGML{}
|
||||
var param_counts uint64 = 0
|
||||
for i := range wrappers {
|
||||
param_counts += wrappers[i].ggml.KV().ParameterCount()
|
||||
if i == 0 {
|
||||
kv := maps.Clone(wrappers[i].ggml.KV())
|
||||
// remove the keys contained in split gguf files. add more if needed.
|
||||
delete(kv, "slice.no")
|
||||
delete(kv, "slice.count")
|
||||
delete(kv, "slice.tensors.count")
|
||||
delete(kv, "general.parameter_count")
|
||||
metaGgml.kv = kv
|
||||
}
|
||||
metaGgml.Shards = append(metaGgml.Shards, wrappers[i].ggml)
|
||||
metaGgml.ShardPaths = append(metaGgml.ShardPaths, wrappers[i].path)
|
||||
}
|
||||
metaGgml.kv["general.parameter_count"] = param_counts
|
||||
ft, _ := BuildForeignTensors(metaGgml.Shards, metaGgml.ShardPaths)
|
||||
metaGgml.Tensors = *ft
|
||||
return metaGgml
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ func (llm *gguf) numKV() uint64 {
|
|||
}
|
||||
}
|
||||
|
||||
func (llm *gguf) Decode(rs io.ReadSeeker, mainKV ...KV) error {
|
||||
func (llm *gguf) Decode(rs io.ReadSeeker) error {
|
||||
// decode key-values
|
||||
for i := 0; uint64(i) < llm.numKV(); i++ {
|
||||
k, err := readGGUFString(llm, rs)
|
||||
|
|
@ -235,11 +235,7 @@ func (llm *gguf) Decode(rs io.ReadSeeker, mainKV ...KV) error {
|
|||
// patch KV with parameter count
|
||||
llm.kv["general.parameter_count"] = llm.parameters
|
||||
|
||||
alignment := llm.kv.Uint("general.alignment", 0xffffffff)
|
||||
if alignment == 0xffffffff {
|
||||
// try to get alignment from main shard instead.
|
||||
alignment = append(mainKV, make(KV))[0].Uint("general.alignment", 32)
|
||||
}
|
||||
alignment := llm.kv.Uint("general.alignment", 32)
|
||||
|
||||
offset, err := rs.Seek(0, io.SeekCurrent)
|
||||
if err != nil {
|
||||
|
|
|
|||
Loading…
Reference in New Issue