Simplify model conversion (#3422)

This commit is contained in:
Patrick Devine
2024-04-01 16:14:53 -07:00
committed by GitHub
parent d6dd2ff839
commit 3b6a9154dd
4 changed files with 366 additions and 251 deletions

View File

@@ -654,30 +654,22 @@ func convertSafetensors(name, path string, fn func(resp api.ProgressResponse)) (
return "", err
}
SupportedArchs := []string{
"MistralForCausalLM",
"GemmaForCausalLM",
}
for _, arch := range params.Architectures {
if !slices.Contains(SupportedArchs, arch) {
return "", fmt.Errorf("this safetensors model is not yet supported")
}
}
fn(api.ProgressResponse{Status: "processing safetensors"})
t, err := convert.GetSafeTensors(tempDir, params)
mArch, err := convert.GetModelArchFromParams(name, tempDir, params)
if err != nil {
return "", err
}
vocab, err := convert.LoadTokens(tempDir, params)
if err != nil {
fn(api.ProgressResponse{Status: "processing safetensors"})
if err := mArch.GetTensors(); err != nil {
return "", err
}
if err := mArch.LoadVocab(); err != nil {
return "", err
}
fn(api.ProgressResponse{Status: "converting model"})
path, err = convert.WriteGGUF(name, t, params, vocab)
path, err = mArch.WriteGGUF()
if err != nil {
return "", err
}