Ver código fonte

Merge pull request #5117 from dhiltgen/fix_prediction

Handle models with divergent layer sizes
Daniel Hiltgen 10 meses atrás
pai
commit
26d0bf9236
1 arquivos alterados com 6 adições e 0 exclusões
  1. 6 0
      llm/memory.go

+ 6 - 0
llm/memory.go

@@ -1,6 +1,7 @@
 package llm
 
 import (
+	"fmt"
 	"log/slog"
 	"strconv"
 	"strings"
@@ -179,6 +180,11 @@ func EstimateGPULayers(gpus []gpu.GpuInfo, ggml *GGML, projectors []string, opts
 
 	// For all the layers, find where they can fit on the GPU(s)
 	for i := range int(ggml.KV().BlockCount()) {
+		// Some models have inconsistent layer sizes
+		if blk, ok := layers[fmt.Sprintf("blk.%d", i)]; ok {
+			layerSize = blk.size()
+			layerSize += kv / ggml.KV().BlockCount()
+		}
 		memoryWeights += layerSize
 
 		if opts.NumGPU >= 0 && layerCount >= opts.NumGPU {