summaryrefslogtreecommitdiff
path: root/llm/evaluator.go
diff options
context:
space:
mode:
Diffstat (limited to 'llm/evaluator.go')
-rw-r--r--llm/evaluator.go11
1 files changed, 8 insertions, 3 deletions
diff --git a/llm/evaluator.go b/llm/evaluator.go
index 8340ad4..8aa4a32 100644
--- a/llm/evaluator.go
+++ b/llm/evaluator.go
@@ -8,6 +8,11 @@ import (
"go.jknobloc.com/x/dataset"
)
+type EvaluatorConfig struct {
+ BatchSize int
+ NumWorkers int
+}
+
type Evaluator[R any] struct {
models []Causal
tokenizer Tokenizer
@@ -24,12 +29,12 @@ type Evaluator[R any] struct {
callback func(job Job, logProbs []float32, tokens []int) R
}
-func NewEvaluator[R any](model Causal, tokenizer Tokenizer, callback func(job Job, logProbs []float32, tokens []int) R) *Evaluator[R] {
+func NewEvaluator[R any](model Causal, tokenizer Tokenizer, callback func(job Job, logProbs []float32, tokens []int) R, cfg EvaluatorConfig) *Evaluator[R] {
return &Evaluator[R]{
models: []Causal{model}, // TODO multiple devices
tokenizer: tokenizer,
- batchSize: 1, // TODO arg
- numWorkers: 4, // TODO arg
+ batchSize: cfg.BatchSize,
+ numWorkers: cfg.NumWorkers,
jobs: make(chan batch, 1024),
results: make(chan R, 1024),
callback: callback,