Documentation
¶
Overview ¶
Package zerfoo provides the core building blocks for creating and training neural networks. It offers a prelude of commonly used types to simplify development and enhance readability of model construction code.
Index ¶
- func NewAdamW[T tensor.Numeric](learningRate, beta1, beta2, epsilon, weightDecay T) *optimizer.AdamW[T]
- func NewCPUEngine[T tensor.Numeric]() compute.Engine[T]
- func NewDefaultTrainer[T tensor.Numeric](g *graph.Graph[T], lossNode graph.Node[T], opt optimizer.Optimizer[T], ...) *training.DefaultTrainer[T]
- func NewFloat32Ops() numeric.Arithmetic[float32]
- func NewGraph[T tensor.Numeric](engine compute.Engine[T]) *graph.Builder[T]
- func NewMSE[T tensor.Numeric](engine compute.Engine[T]) *loss.MSE[T]
- func NewRMSNorm[T tensor.Numeric](name string, engine compute.Engine[T], ops numeric.Arithmetic[T], modelDim int, ...) (*normalization.RMSNorm[T], error)
- func NewTensor[T tensor.Numeric](shape []int, data []T) (*tensor.TensorNumeric[T], error)
- func RegisterLayer[T tensor.Numeric](opType string, builder model.LayerBuilder[T])
- func UnregisterLayer(opType string)
- type Batch
- type Engine
- type Graph
- type LayerBuilder
- type Node
- type Numeric
- type Parameter
- type Tensor
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewAdamW ¶
func NewAdamW[T tensor.Numeric](learningRate, beta1, beta2, epsilon, weightDecay T) *optimizer.AdamW[T]
NewAdamW creates a new AdamW optimizer.
func NewCPUEngine ¶
NewCPUEngine creates a new CPU engine for the given numeric type.
func NewDefaultTrainer ¶
func NewDefaultTrainer[T tensor.Numeric]( g *graph.Graph[T], lossNode graph.Node[T], opt optimizer.Optimizer[T], strategy training.GradientStrategy[T], ) *training.DefaultTrainer[T]
NewDefaultTrainer creates a new default trainer.
func NewFloat32Ops ¶
func NewFloat32Ops() numeric.Arithmetic[float32]
NewFloat32Ops returns the float32 arithmetic operations.
func NewRMSNorm ¶
func NewRMSNorm[T tensor.Numeric](name string, engine compute.Engine[T], ops numeric.Arithmetic[T], modelDim int, options ...normalization.RMSNormOption[T]) (*normalization.RMSNorm[T], error)
NewRMSNorm is a factory function for creating RMSNorm layers.
func RegisterLayer ¶
func RegisterLayer[T tensor.Numeric](opType string, builder model.LayerBuilder[T])
RegisterLayer registers a new layer builder.
func UnregisterLayer ¶
func UnregisterLayer(opType string)
UnregisterLayer unregisters a layer builder.
Types ¶
type Batch ¶
type Batch[T tensor.Numeric] struct { Inputs map[graph.Node[T]]*tensor.TensorNumeric[T] Targets *tensor.TensorNumeric[T] }
Batch represents a training batch.
type LayerBuilder ¶
type LayerBuilder[T tensor.Numeric] func( engine compute.Engine[T], ops numeric.Arithmetic[T], name string, params map[string]*graph.Parameter[T], attributes map[string]interface{}, ) (graph.Node[T], error)
LayerBuilder is a function that builds a layer.
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
bench-compare
command
Command bench-compare compares two NDJSON benchmark result files and outputs a markdown regression report.
|
Command bench-compare compares two NDJSON benchmark result files and outputs a markdown regression report. |
|
bench_tps
command
bench_tps measures tokens-per-second for a local ZMF model.
|
bench_tps measures tokens-per-second for a local ZMF model. |
|
cli
Package cli provides a generic command-line interface framework for Zerfoo.
|
Package cli provides a generic command-line interface framework for Zerfoo. |
|
coverage-gate
command
Command coverage-gate reads a Go coverage profile and fails if any testable package drops below the configured coverage threshold.
|
Command coverage-gate reads a Go coverage profile and fails if any testable package drops below the configured coverage threshold. |
|
debug-infer
command
|
|
|
zerfoo
command
|
|
|
zerfoo-predict
command
|
|
|
zerfoo-tokenize
command
|
|
|
Package config provides file-based configuration loading with validation and environment variable overrides.
|
Package config provides file-based configuration loading with validation and environment variable overrides. |
|
Package distributed provides distributed training strategies and coordination mechanisms for multi-node machine learning workloads in the Zerfoo framework.
|
Package distributed provides distributed training strategies and coordination mechanisms for multi-node machine learning workloads in the Zerfoo framework. |
|
coordinator
Package coordinator provides a distributed training coordinator.
|
Package coordinator provides a distributed training coordinator. |
|
Package health provides HTTP health check endpoints for Kubernetes-style liveness and readiness probes.
|
Package health provides HTTP health check endpoints for Kubernetes-style liveness and readiness probes. |
|
Package inference provides a high-level API for loading models and generating text with minimal boilerplate.
|
Package inference provides a high-level API for loading models and generating text with minimal boilerplate. |
|
internal
|
|
|
clblast
Package clblast provides Go wrappers for the CLBlast BLAS library.
|
Package clblast provides Go wrappers for the CLBlast BLAS library. |
|
codegen
Package codegen generates CUDA megakernel source code from a compiled ExecutionPlan instruction tape.
|
Package codegen generates CUDA megakernel source code from a compiled ExecutionPlan instruction tape. |
|
cublas
Package cublas provides low-level purego bindings for the cuBLAS library.
|
Package cublas provides low-level purego bindings for the cuBLAS library. |
|
cuda
Package cuda provides low-level bindings for the CUDA runtime API using dlopen/dlsym (no CGo).
|
Package cuda provides low-level bindings for the CUDA runtime API using dlopen/dlsym (no CGo). |
|
cuda/kernels
Package kernels provides Go wrappers for custom CUDA kernels.
|
Package kernels provides Go wrappers for custom CUDA kernels. |
|
cudnn
Package cudnn provides purego bindings for the NVIDIA cuDNN library.
|
Package cudnn provides purego bindings for the NVIDIA cuDNN library. |
|
gpuapi
Package gpuapi defines internal interfaces for GPU runtime operations.
|
Package gpuapi defines internal interfaces for GPU runtime operations. |
|
hip
Package hip provides low-level bindings for the AMD HIP runtime API using purego dlopen.
|
Package hip provides low-level bindings for the AMD HIP runtime API using purego dlopen. |
|
hip/kernels
Package kernels provides Go wrappers for custom HIP kernels via purego dlopen.
|
Package kernels provides Go wrappers for custom HIP kernels via purego dlopen. |
|
miopen
Package miopen provides low-level bindings for the AMD MIOpen library using purego dlopen.
|
Package miopen provides low-level bindings for the AMD MIOpen library using purego dlopen. |
|
nccl
Package nccl provides CGo bindings for the NVIDIA Collective Communications Library (NCCL).
|
Package nccl provides CGo bindings for the NVIDIA Collective Communications Library (NCCL). |
|
opencl
Package opencl provides Go wrappers for the OpenCL 2.0 runtime API.
|
Package opencl provides Go wrappers for the OpenCL 2.0 runtime API. |
|
opencl/kernels
Package kernels provides OpenCL kernel source and dispatch for elementwise operations.
|
Package kernels provides OpenCL kernel source and dispatch for elementwise operations. |
|
rocblas
Package rocblas provides low-level bindings for the AMD rocBLAS library using purego dlopen.
|
Package rocblas provides low-level bindings for the AMD rocBLAS library using purego dlopen. |
|
tensorrt
Package tensorrt provides bindings for the NVIDIA TensorRT inference library via purego (dlopen/dlsym, no CGo).
|
Package tensorrt provides bindings for the NVIDIA TensorRT inference library via purego (dlopen/dlsym, no CGo). |
|
workerpool
Package workerpool provides a persistent pool of goroutines that process submitted tasks.
|
Package workerpool provides a persistent pool of goroutines that process submitted tasks. |
|
layers
|
|
|
activations
Package activations provides activation function layers.
|
Package activations provides activation function layers. |
|
attention
Package attention provides attention mechanisms for neural networks.
|
Package attention provides attention mechanisms for neural networks. |
|
components
Package components provides reusable components for neural network layers.
|
Package components provides reusable components for neural network layers. |
|
core
Package core provides core neural network layer implementations.
|
Package core provides core neural network layer implementations. |
|
embeddings
Package embeddings provides neural network embedding layers for the Zerfoo ML framework.
|
Package embeddings provides neural network embedding layers for the Zerfoo ML framework. |
|
gather
Package gather provides the Gather layer for the Zerfoo ML framework.
|
Package gather provides the Gather layer for the Zerfoo ML framework. |
|
hrm
Package hrm implements the Hierarchical Reasoning Model.
|
Package hrm implements the Hierarchical Reasoning Model. |
|
normalization
Package normalization provides various normalization layers for neural networks.
|
Package normalization provides various normalization layers for neural networks. |
|
reducesum
Package reducesum provides the ReduceSum layer for the Zerfoo ML framework.
|
Package reducesum provides the ReduceSum layer for the Zerfoo ML framework. |
|
registry
Package registry provides a central registration point for all layer builders.
|
Package registry provides a central registration point for all layer builders. |
|
regularization
Package regularization provides regularization layers for neural networks.
|
Package regularization provides regularization layers for neural networks. |
|
sequence
Package sequence provides sequence modeling layers such as State Space Models.
|
Package sequence provides sequence modeling layers such as State Space Models. |
|
transformer
Package transformer provides transformer building blocks such as the Transformer `Block` used in encoder/decoder stacks.
|
Package transformer provides transformer building blocks such as the Transformer `Block` used in encoder/decoder stacks. |
|
transpose
Package transpose provides the Transpose layer for the Zerfoo ML framework.
|
Package transpose provides the Transpose layer for the Zerfoo ML framework. |
|
Package model provides adapter implementations for bridging existing and new model interfaces.
|
Package model provides adapter implementations for bridging existing and new model interfaces. |
|
gguf
Package gguf implements a pure-Go parser for the GGUF v3 model format used by llama.cpp.
|
Package gguf implements a pure-Go parser for the GGUF v3 model format used by llama.cpp. |
|
hrm
Package hrm provides experimental Hierarchical Reasoning Model types.
|
Package hrm provides experimental Hierarchical Reasoning Model types. |
|
Package serve provides an OpenAI-compatible HTTP API server for model inference.
|
Package serve provides an OpenAI-compatible HTTP API server for model inference. |
|
Package shutdown provides orderly shutdown coordination using context cancellation and cleanup callbacks.
|
Package shutdown provides orderly shutdown coordination using context cancellation and cleanup callbacks. |
|
tests
|
|
|
Package training provides adapter implementations for bridging existing and new interfaces.
|
Package training provides adapter implementations for bridging existing and new interfaces. |
|
loss
Package loss provides various loss functions for neural networks.
|
Package loss provides various loss functions for neural networks. |
|
optimizer
Package optimizer provides various optimization algorithms for neural networks.
|
Package optimizer provides various optimization algorithms for neural networks. |