Chapter 41

model/sampling

github.com/openfluke/welvet/model/sampling


Why it exists

Logits → token ID needs ArgMax, TopK+temperature, penalties, and chat hygiene in one place.

What it is

ArgMax, SampleTopK, ApplyRepetitionPenalty, BanIDs, SanitizeChatReply.

Go example

examples/41-sampling/main.go

Run:cd welvet/examples/41-sampling && source ../env.sh && go run .
package main

import (
	"fmt"

	"github.com/openfluke/welvet/model/sampling"
)

func main() {
	logits := []float32{0.1, 2.4, 0.3, -1}
	fmt.Println(sampling.ArgMax(logits))
	fmt.Println(sampling.SampleTopK(logits, 2, 0.8, true))
}

Output

exit 0 · last run via go run .

1
1