Run ONNX transformer pipelines (like Hugging Face) natively in Go for inference and fine-tuning, with support for CPU, GPU, and TPU.
Hugot is a Go library that allows developers to run ONNX transformer pipelines—such as those from Hugging Face—natively within Go applications. It solves the challenge of deploying AI models in Go production environments by providing seamless inference and fine-tuning capabilities without requiring external Python services.
Go developers and ML engineers who need to integrate transformer models (e.g., for NLP, computer vision) directly into their Go applications, especially those with performance or self-hosting requirements.
Hugot offers a performant, self-contained alternative to external API calls, enabling tight coupling of AI models with Go code, support for multiple hardware accelerators, and compatibility with Hugging Face's ecosystem.
Onnx transformer pipelines in Golang
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Models exported from Hugging Face to ONNX provide identical predictions, enabling seamless lift-and-shift from Python development without API calls.
Supports native Go, ONNX Runtime, and OpenXLA backends, allowing developers to choose based on performance needs and hardware constraints.
Facilitates inference on CPU, GPU (CUDA), and TPU via ONNX Runtime or OpenXLA, with tested support for Nvidia GPUs as detailed in the README.
Enables training and fine-tuning of feature extraction pipelines for tasks like semantic search using the XLA backend, with examples provided in tests.
Only a subset of Hugging Face pipelines is implemented, missing common ones like translation or summarization, which limits out-of-the-box functionality.
Built and tested exclusively on amd64-linux, making cross-platform deployments challenging and unsupported for other architectures or OSes.
Configuring GPU acceleration requires specific library installations and compatibility checks, adding overhead compared to drop-in solutions.
The pure Go backend is optimized for small batches and simpler models, necessitating C backends for high performance, which introduces dependency management complexity.