|
@@ -96,280 +96,3 @@ var DefaultOptions PredictOptions = PredictOptions{
|
|
|
MirostatETA: 0.1,
|
|
|
MMap: true,
|
|
|
}
|
|
|
-
|
|
|
-// SetContext sets the context size.
|
|
|
-func SetContext(c int) ModelOption {
|
|
|
- return func(p *ModelOptions) {
|
|
|
- p.ContextSize = c
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-func SetModelSeed(c int) ModelOption {
|
|
|
- return func(p *ModelOptions) {
|
|
|
- p.Seed = c
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetContext sets the context size.
|
|
|
-func SetMMap(b bool) ModelOption {
|
|
|
- return func(p *ModelOptions) {
|
|
|
- p.MMap = b
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetNBatch sets the n_Batch
|
|
|
-func SetNBatch(n_batch int) ModelOption {
|
|
|
- return func(p *ModelOptions) {
|
|
|
- p.NBatch = n_batch
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// Set sets the tensor split for the GPU
|
|
|
-func SetTensorSplit(maingpu string) ModelOption {
|
|
|
- return func(p *ModelOptions) {
|
|
|
- p.TensorSplit = maingpu
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetMainGPU sets the main_gpu
|
|
|
-func SetMainGPU(maingpu string) ModelOption {
|
|
|
- return func(p *ModelOptions) {
|
|
|
- p.MainGPU = maingpu
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetPredictionTensorSplit sets the tensor split for the GPU
|
|
|
-func SetPredictionTensorSplit(maingpu string) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.TensorSplit = maingpu
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetPredictionMainGPU sets the main_gpu
|
|
|
-func SetPredictionMainGPU(maingpu string) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.MainGPU = maingpu
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-var VocabOnly ModelOption = func(p *ModelOptions) {
|
|
|
- p.VocabOnly = true
|
|
|
-}
|
|
|
-
|
|
|
-var EnabelLowVRAM ModelOption = func(p *ModelOptions) {
|
|
|
- p.LowVRAM = true
|
|
|
-}
|
|
|
-
|
|
|
-var EnableNUMA ModelOption = func(p *ModelOptions) {
|
|
|
- p.NUMA = true
|
|
|
-}
|
|
|
-
|
|
|
-var EnableEmbeddings ModelOption = func(p *ModelOptions) {
|
|
|
- p.Embeddings = true
|
|
|
-}
|
|
|
-
|
|
|
-var EnableF16Memory ModelOption = func(p *ModelOptions) {
|
|
|
- p.F16Memory = true
|
|
|
-}
|
|
|
-
|
|
|
-var EnableF16KV PredictOption = func(p *PredictOptions) {
|
|
|
- p.F16KV = true
|
|
|
-}
|
|
|
-
|
|
|
-var Debug PredictOption = func(p *PredictOptions) {
|
|
|
- p.DebugMode = true
|
|
|
-}
|
|
|
-
|
|
|
-var EnableMLock ModelOption = func(p *ModelOptions) {
|
|
|
- p.MLock = true
|
|
|
-}
|
|
|
-
|
|
|
-// Create a new PredictOptions object with the given options.
|
|
|
-func NewModelOptions(opts ...ModelOption) ModelOptions {
|
|
|
- p := DefaultModelOptions
|
|
|
- for _, opt := range opts {
|
|
|
- opt(&p)
|
|
|
- }
|
|
|
- return p
|
|
|
-}
|
|
|
-
|
|
|
-var IgnoreEOS PredictOption = func(p *PredictOptions) {
|
|
|
- p.IgnoreEOS = true
|
|
|
-}
|
|
|
-
|
|
|
-// SetMlock sets the memory lock.
|
|
|
-func SetMlock(b bool) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.MLock = b
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetMemoryMap sets memory mapping.
|
|
|
-func SetMemoryMap(b bool) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.MMap = b
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetGPULayers sets the number of GPU layers to use to offload computation
|
|
|
-func SetGPULayers(n int) ModelOption {
|
|
|
- return func(p *ModelOptions) {
|
|
|
- p.NGPULayers = n
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetTokenCallback sets the prompts that will stop predictions.
|
|
|
-func SetTokenCallback(fn func(string) bool) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.TokenCallback = fn
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetStopWords sets the prompts that will stop predictions.
|
|
|
-func SetStopWords(stop ...string) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.StopPrompts = stop
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetSeed sets the random seed for sampling text generation.
|
|
|
-func SetSeed(seed int) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.Seed = seed
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetThreads sets the number of threads to use for text generation.
|
|
|
-func SetThreads(threads int) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.Threads = threads
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetTokens sets the number of tokens to generate.
|
|
|
-func SetTokens(tokens int) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.Tokens = tokens
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetTopK sets the value for top-K sampling.
|
|
|
-func SetTopK(topk int) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.TopK = topk
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetTopP sets the value for nucleus sampling.
|
|
|
-func SetTopP(topp float64) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.TopP = topp
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetTemperature sets the temperature value for text generation.
|
|
|
-func SetTemperature(temp float64) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.Temperature = temp
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetPenalty sets the repetition penalty for text generation.
|
|
|
-func SetPenalty(penalty float64) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.Penalty = penalty
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetRepeat sets the number of times to repeat text generation.
|
|
|
-func SetRepeat(repeat int) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.Repeat = repeat
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetBatch sets the batch size.
|
|
|
-func SetBatch(size int) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.Batch = size
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetKeep sets the number of tokens from initial prompt to keep.
|
|
|
-func SetNKeep(n int) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.NKeep = n
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// Create a new PredictOptions object with the given options.
|
|
|
-func NewPredictOptions(opts ...PredictOption) PredictOptions {
|
|
|
- p := DefaultOptions
|
|
|
- for _, opt := range opts {
|
|
|
- opt(&p)
|
|
|
- }
|
|
|
- return p
|
|
|
-}
|
|
|
-
|
|
|
-// SetTailFreeSamplingZ sets the tail free sampling, parameter z.
|
|
|
-func SetTailFreeSamplingZ(tfz float64) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.TailFreeSamplingZ = tfz
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetTypicalP sets the typicality parameter, p_typical.
|
|
|
-func SetTypicalP(tp float64) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.TypicalP = tp
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetFrequencyPenalty sets the frequency penalty parameter, freq_penalty.
|
|
|
-func SetFrequencyPenalty(fp float64) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.FrequencyPenalty = fp
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetPresencePenalty sets the presence penalty parameter, presence_penalty.
|
|
|
-func SetPresencePenalty(pp float64) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.PresencePenalty = pp
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetMirostat sets the mirostat parameter.
|
|
|
-func SetMirostat(m int) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.Mirostat = m
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetMirostatETA sets the mirostat ETA parameter.
|
|
|
-func SetMirostatETA(me float64) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.MirostatETA = me
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetMirostatTAU sets the mirostat TAU parameter.
|
|
|
-func SetMirostatTAU(mt float64) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.MirostatTAU = mt
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetPenalizeNL sets whether to penalize newlines or not.
|
|
|
-func SetPenalizeNL(pnl bool) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.PenalizeNL = pnl
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// SetLogitBias sets the logit bias parameter.
|
|
|
-func SetLogitBias(lb string) PredictOption {
|
|
|
- return func(p *PredictOptions) {
|
|
|
- p.LogitBias = lb
|
|
|
- }
|
|
|
-}
|