mirror of
https://github.com/likelovewant/ollama-for-amd.git
synced 2025-12-21 14:26:30 +00:00
model: add rnj-1 inference support (#13354)
This commit is contained in:
@@ -300,18 +300,13 @@ func filesForModel(path string) ([]string, error) {
|
||||
}
|
||||
files = append(files, js...)
|
||||
|
||||
// only include tokenizer.model is tokenizer.json is not present
|
||||
if !slices.ContainsFunc(files, func(s string) bool {
|
||||
return slices.Contains(strings.Split(s, string(os.PathSeparator)), "tokenizer.json")
|
||||
}) {
|
||||
if tks, _ := glob(filepath.Join(path, "tokenizer.model"), "application/octet-stream"); len(tks) > 0 {
|
||||
// add tokenizer.model if it exists, tokenizer.json is automatically picked up by the previous glob
|
||||
// tokenizer.model might be a unresolved git lfs reference; error if it is
|
||||
files = append(files, tks...)
|
||||
} else if tks, _ := glob(filepath.Join(path, "**/tokenizer.model"), "text/plain"); len(tks) > 0 {
|
||||
// some times tokenizer.model is in a subdirectory (e.g. meta-llama/Meta-Llama-3-8B)
|
||||
files = append(files, tks...)
|
||||
}
|
||||
// add tokenizer.model if it exists (tokenizer.json is automatically picked up by the previous glob)
|
||||
// tokenizer.model might be a unresolved git lfs reference; error if it is
|
||||
if tks, _ := glob(filepath.Join(path, "tokenizer.model"), "application/octet-stream"); len(tks) > 0 {
|
||||
files = append(files, tks...)
|
||||
} else if tks, _ := glob(filepath.Join(path, "**/tokenizer.model"), "text/plain"); len(tks) > 0 {
|
||||
// some times tokenizer.model is in a subdirectory (e.g. meta-llama/Meta-Llama-3-8B)
|
||||
files = append(files, tks...)
|
||||
}
|
||||
|
||||
return files, nil
|
||||
|
||||
@@ -888,6 +888,37 @@ func TestFilesForModel(t *testing.T) {
|
||||
"tokenizer.json",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "safetensors with both tokenizer.json and tokenizer.model",
|
||||
setup: func(dir string) error {
|
||||
// Create binary content for tokenizer.model (application/octet-stream)
|
||||
binaryContent := make([]byte, 512)
|
||||
for i := range binaryContent {
|
||||
binaryContent[i] = byte(i % 256)
|
||||
}
|
||||
files := []string{
|
||||
"model-00001-of-00001.safetensors",
|
||||
"config.json",
|
||||
"tokenizer.json",
|
||||
}
|
||||
for _, file := range files {
|
||||
if err := os.WriteFile(filepath.Join(dir, file), []byte("test content"), 0o644); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
// Write tokenizer.model as binary
|
||||
if err := os.WriteFile(filepath.Join(dir, "tokenizer.model"), binaryContent, 0o644); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
},
|
||||
wantFiles: []string{
|
||||
"model-00001-of-00001.safetensors",
|
||||
"config.json",
|
||||
"tokenizer.json",
|
||||
"tokenizer.model",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "safetensors with consolidated files - prefers model files",
|
||||
setup: func(dir string) error {
|
||||
|
||||
Reference in New Issue
Block a user