diff options
| author | Jonas Knobloch <jonas.knobloch@t-online.de> | 2026-04-08 22:24:10 +0200 |
|---|---|---|
| committer | Jonas Knobloch <jonas.knobloch@t-online.de> | 2026-04-08 23:46:10 +0200 |
| commit | 4386784c1006321c5cf0e1e005b19e0a7d7563ae (patch) | |
| tree | 3d22360aaac8e4d64ca90e39b7247942073582d1 /gpt2/allocator.go | |
| parent | a006507a24b93a6af7e3cff8833fb96b48b159d7 (diff) | |
Refactor model options
* Add options struct
Diffstat (limited to 'gpt2/allocator.go')
| -rw-r--r-- | gpt2/allocator.go | 46 |
1 files changed, 21 insertions, 25 deletions
diff --git a/gpt2/allocator.go b/gpt2/allocator.go index 3c85410..46d612d 100644 --- a/gpt2/allocator.go +++ b/gpt2/allocator.go @@ -8,32 +8,28 @@ import ( type Allocator struct { config Config + options Options batchSize int sequenceLength int64 step int64 inputNames []string outputNames []string values map[string]ort.Value - withCache bool - withLogits bool - withLogProbs bool } -func NewAllocator(cfg Config, batchSize int, withCache bool, withLogits bool, withLogProbs bool) *Allocator { +func NewAllocator(cfg Config, opts Options, batchSize int) *Allocator { return &Allocator{ config: cfg, + options: opts, batchSize: batchSize, values: make(map[string]ort.Value), - withCache: withCache, - withLogits: withLogits, - withLogProbs: withLogProbs, } } func (a *Allocator) InputNames() []string { capacity := 3 - if a.withCache { + if a.options.WithCache { capacity += 2 * a.config.NumLayers } @@ -41,7 +37,7 @@ func (a *Allocator) InputNames() []string { names = append(names, "input_ids", "position_ids", "attention_mask") - if a.withCache { + if a.options.WithCache { for i := range a.config.NumLayers { names = append(names, fmt.Sprintf("past_key_values.%d.key", i), fmt.Sprintf("past_key_values.%d.value", i)) } @@ -53,29 +49,29 @@ func (a *Allocator) InputNames() []string { func (a *Allocator) OutputNames() []string { capacity := 0 - if a.withLogits { + if a.options.WithLogits { capacity++ } - if a.withLogProbs { + if a.options.WithLogProbs { capacity++ } - if a.withCache { + if a.options.WithCache { capacity += 2 * a.config.NumLayers } names := make([]string, 0, capacity) - if a.withLogits { + if a.options.WithLogits { names = append(names, "logits") } - if a.withLogProbs { + if a.options.WithLogProbs { names = append(names, "token_logprobs") } - if a.withCache { + if a.options.WithCache { for i := range a.config.NumLayers { names = append(names, fmt.Sprintf("present.%d.key", i), fmt.Sprintf("present.%d.value", i)) } @@ -119,7 +115,7 @@ func (a *Allocator) Init(tokens []int64) error { func (a *Allocator) initInputs(tokens []int64) error { capacity := 3 - if a.withCache { + if a.options.WithCache { capacity += 2 * a.config.NumLayers } @@ -143,7 +139,7 @@ func (a *Allocator) initInputs(tokens []int64) error { names = append(names, "attention_mask") - if !a.withCache { + if !a.options.WithCache { a.inputNames = names return nil @@ -171,21 +167,21 @@ func (a *Allocator) initInputs(tokens []int64) error { func (a *Allocator) initOutputs(tokens []int64) error { capacity := 0 - if a.withLogits { + if a.options.WithLogits { capacity++ } - if a.withLogProbs { + if a.options.WithLogProbs { capacity++ } - if a.withCache { + if a.options.WithCache { capacity += 2 * a.config.NumLayers } names := make([]string, 0, capacity) - if a.withLogits { + if a.options.WithLogits { if err := a.logits(false); err != nil { return err } @@ -193,7 +189,7 @@ func (a *Allocator) initOutputs(tokens []int64) error { names = append(names, "logits") } - if a.withLogProbs { + if a.options.WithLogProbs { if err := a.logProbs(false); err != nil { return err } @@ -201,7 +197,7 @@ func (a *Allocator) initOutputs(tokens []int64) error { names = append(names, "token_logprobs") } - if !a.withCache { + if !a.options.WithCache { a.outputNames = names return nil @@ -247,13 +243,13 @@ func (a *Allocator) Step(token int64) error { return err } - if a.withLogits { + if a.options.WithLogits { if err := a.logits(true); err != nil { return err } } - if a.withLogProbs { + if a.options.WithLogProbs { if err := a.logProbs(true); err != nil { return err } |
