Self-hosted inference. Typed workflows. Evals.

Self-hosted open-weight inference, done properly.

Define your task. Build your pipeline. Measure and improve.

Open-weight models on your own hardware. A typed async inference API, declarative YAML workflows, and an eval surface that sharpens with use. Runs airgapped once set up -- no request ever reaches OpenAI, Anthropic, or any other external provider. Open source, free to run.

pip install bayis-marigold
git clone https://github.com/bayinfosys/marigold-examples
marigold deployment start marigold-examples/chat

Runs on hardware you control. No request leaves the machine, no third-party model provider sits in the path, nothing is retained outside the directory you point it at. For regulated sectors, that resolves the data question before procurement starts. Architecture detail →

01

Private Inference API

A unified async API over self-hosted HuggingFace models: text, image, audio, cross-modal. One container image, one weight cache, per-model isolation.

02

Workflow execution (roadmap)

Declarative YAML pipelines over the model registry, planned as the next layer on top of the inference API. Steps will declare typed inputs and outputs; the executor resolves the dependency graph and runs independent steps in parallel.

03

Evals

Run any model or pipeline against a labelled dataset, scored by the same handler registry. Build eval libraries from production runs and corrections. The spec sharpens with use.

Content ingestion and moderation

Extract text, embed, classify, and gate restricted content before it reaches an index. Text and image embeddings in one pipeline enable cross-modal search.

img2txt text-embed instruct image-embed

Quality-gated image generation

Generate, score for safety, aesthetic quality, and prompt alignment. Regenerate automatically until thresholds are met or attempts run out.

txt2img image-eval image-text-eval

Visual conformance checking

Compare an observation image against a reference by structural embedding. On deviation, segment both, diff the masks, and describe the discrepancy in natural language.

image-embed img2mask img2txt instruct

Document briefing and audio delivery

Extract entities, classify, summarise, and convert to speech in multiple languages from one workflow submission. Output: a summary plus audio per language.

img2txt instruct tts

Batch tabular classification

Classify large volumes of unlabelled rows against a small labelled set. Low-confidence predictions go to an instruct model for explanation. No retraining.

tabular-classify instruct

Site monitoring with change detection

Embed and compare images from multiple locations in parallel. On change, describe it and assemble a report, delivered as text and audio on a schedule.

image-embed img2txt instruct tts

Model types

  • text-embedding, image-embedding
  • instruct (chat / instruction-following)
  • txt2img, img2txt, img2mask, depth
  • tts, txt2audio
  • text-eval, image-eval, image-text-eval
  • text-similarity

Workflow features

  • Shared state across steps
  • Sequential and parallel execution
  • Conditional branching on output values
  • Halt and reject with a structured result
  • Prompt interpolation from prior outputs
  • Per-step audit trail -- status, timing, output, run count

Workflow execution is built on runfox and json-logic-path, both open source on PyPI.

Stop rebuilding your inference stack per engagement.

Open source. Clone it, run it on your own hardware.

Questions? ed@bayis.co.uk