add format bytes
This commit is contained in:
parent
aca2d65b82
commit
b599946b74
4 changed files with 36 additions and 20 deletions
|
@ -127,7 +127,7 @@ func (c *Client) do(ctx context.Context, method, path string, reqData, respData
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
const maxBufferSize = 512 * 1024 // 512KB
|
const maxBufferSize = 512 * 1000 // 512KB
|
||||||
|
|
||||||
func (c *Client) stream(ctx context.Context, method, path string, data any, fn func([]byte) error) error {
|
func (c *Client) stream(ctx context.Context, method, path string, data any, fn func([]byte) error) error {
|
||||||
var buf *bytes.Buffer
|
var buf *bytes.Buffer
|
||||||
|
|
16
format/bytes.go
Normal file
16
format/bytes.go
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
package format
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
func HumanBytes(b int64) string {
|
||||||
|
switch {
|
||||||
|
case b > 1000*1000*1000:
|
||||||
|
return fmt.Sprintf("%d GB", b/1000/1000/1000)
|
||||||
|
case b > 1000*1000:
|
||||||
|
return fmt.Sprintf("%d MB", b/1000/1000)
|
||||||
|
case b > 1000:
|
||||||
|
return fmt.Sprintf("%d KB", b/1000)
|
||||||
|
default:
|
||||||
|
return fmt.Sprintf("%d B", b)
|
||||||
|
}
|
||||||
|
}
|
|
@ -454,7 +454,7 @@ type PredictRequest struct {
|
||||||
Stop []string `json:"stop,omitempty"`
|
Stop []string `json:"stop,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
const maxBufferSize = 512 * 1024 // 512KB
|
const maxBufferSize = 512 * 1000 // 512KB
|
||||||
|
|
||||||
func (llm *llama) Predict(ctx context.Context, prevContext []int, prompt string, fn func(api.GenerateResponse)) error {
|
func (llm *llama) Predict(ctx context.Context, prevContext []int, prompt string, fn func(api.GenerateResponse)) error {
|
||||||
prevConvo, err := llm.Decode(ctx, prevContext)
|
prevConvo, err := llm.Decode(ctx, prevContext)
|
||||||
|
|
20
llm/llm.go
20
llm/llm.go
|
@ -60,33 +60,33 @@ func New(workDir, model string, adapters []string, opts api.Options) (LLM, error
|
||||||
totalResidentMemory := memory.TotalMemory()
|
totalResidentMemory := memory.TotalMemory()
|
||||||
switch ggml.ModelType() {
|
switch ggml.ModelType() {
|
||||||
case "3B", "7B":
|
case "3B", "7B":
|
||||||
if ggml.FileType() == "F16" && totalResidentMemory < 16*1024*1024 {
|
if ggml.FileType() == "F16" && totalResidentMemory < 16*1000*1000 {
|
||||||
return nil, fmt.Errorf("F16 model requires at least 16 GB of memory")
|
return nil, fmt.Errorf("F16 model requires at least 16 GB of memory")
|
||||||
} else if totalResidentMemory < 8*1024*1024 {
|
} else if totalResidentMemory < 8*1000*1000 {
|
||||||
return nil, fmt.Errorf("model requires at least 8 GB of memory")
|
return nil, fmt.Errorf("model requires at least 8 GB of memory")
|
||||||
}
|
}
|
||||||
case "13B":
|
case "13B":
|
||||||
if ggml.FileType() == "F16" && totalResidentMemory < 32*1024*1024 {
|
if ggml.FileType() == "F16" && totalResidentMemory < 32*1000*1000 {
|
||||||
return nil, fmt.Errorf("F16 model requires at least 32 GB of memory")
|
return nil, fmt.Errorf("F16 model requires at least 32 GB of memory")
|
||||||
} else if totalResidentMemory < 16*1024*1024 {
|
} else if totalResidentMemory < 16*1000*1000 {
|
||||||
return nil, fmt.Errorf("model requires at least 16 GB of memory")
|
return nil, fmt.Errorf("model requires at least 16 GB of memory")
|
||||||
}
|
}
|
||||||
case "30B", "34B", "40B":
|
case "30B", "34B", "40B":
|
||||||
if ggml.FileType() == "F16" && totalResidentMemory < 64*1024*1024 {
|
if ggml.FileType() == "F16" && totalResidentMemory < 64*1000*1000 {
|
||||||
return nil, fmt.Errorf("F16 model requires at least 64 GB of memory")
|
return nil, fmt.Errorf("F16 model requires at least 64 GB of memory")
|
||||||
} else if totalResidentMemory < 32*1024*1024 {
|
} else if totalResidentMemory < 32*1000*1000 {
|
||||||
return nil, fmt.Errorf("model requires at least 32 GB of memory")
|
return nil, fmt.Errorf("model requires at least 32 GB of memory")
|
||||||
}
|
}
|
||||||
case "65B", "70B":
|
case "65B", "70B":
|
||||||
if ggml.FileType() == "F16" && totalResidentMemory < 128*1024*1024 {
|
if ggml.FileType() == "F16" && totalResidentMemory < 128*1000*1000 {
|
||||||
return nil, fmt.Errorf("F16 model requires at least 128 GB of memory")
|
return nil, fmt.Errorf("F16 model requires at least 128 GB of memory")
|
||||||
} else if totalResidentMemory < 64*1024*1024 {
|
} else if totalResidentMemory < 64*1000*1000 {
|
||||||
return nil, fmt.Errorf("model requires at least 64 GB of memory")
|
return nil, fmt.Errorf("model requires at least 64 GB of memory")
|
||||||
}
|
}
|
||||||
case "180B":
|
case "180B":
|
||||||
if ggml.FileType() == "F16" && totalResidentMemory < 512*1024*1024 {
|
if ggml.FileType() == "F16" && totalResidentMemory < 512*1000*1000 {
|
||||||
return nil, fmt.Errorf("F16 model requires at least 512GB of memory")
|
return nil, fmt.Errorf("F16 model requires at least 512GB of memory")
|
||||||
} else if totalResidentMemory < 128*1024*1024 {
|
} else if totalResidentMemory < 128*1000*1000 {
|
||||||
return nil, fmt.Errorf("model requires at least 128GB of memory")
|
return nil, fmt.Errorf("model requires at least 128GB of memory")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue