llama: remove unused helper functions
This commit is contained in:
parent
b43ddd84be
commit
5fb96255dc
2 changed files with 1 additions and 280 deletions
|
@ -60,9 +60,7 @@ func (l *LLama) Free() {
|
|||
C.llama_binding_free_model(l.ctx)
|
||||
}
|
||||
|
||||
func (l *LLama) Eval(text string, opts ...PredictOption) error {
|
||||
po := NewPredictOptions(opts...)
|
||||
|
||||
func (l *LLama) Eval(text string, po PredictOptions) error {
|
||||
input := C.CString(text)
|
||||
if po.Tokens == 0 {
|
||||
po.Tokens = 99999999
|
||||
|
|
277
llama/options.go
277
llama/options.go
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue