Naku
Naku — One Command to Deploy ML Inference on GCP
Training a Keras model locally is straightforward. Getting it to run inference on live data at scale is not — it requires stitching together cloud storage, message queues, a processing framework, and managed compute. Naku automates that entire pipeline.
Naku is a Python CLI tool that bridges the gap between a locally trained Keras model and a production-ready real-time inference pipeline on Google Cloud Platform. It provisions and orchestrates GCP infrastructure — Pub/Sub topics, Cloud Storage buckets, and a Dataproc cluster running Apache Beam — so you can go from a .h5 model file to streaming predictions with a single command.
How It Works
- Model upload — Naku packages your trained Keras model and pushes it to a Cloud Storage bucket.
- Infrastructure provisioning — It creates the necessary Pub/Sub topics and subscriptions for ingesting live data, then spins up a Dataproc cluster configured for Beam.
- Pipeline deployment — An Apache Beam pipeline is submitted to Dataproc that reads messages from Pub/Sub, runs inference through the uploaded model, and writes predictions to the configured output sink.
- Teardown — When you’re done, Naku cleans up all provisioned resources to avoid unnecessary costs.
Why I Built It
During a university research project I found myself repeatedly performing the same manual steps: uploading model artifacts, configuring GCP services, and deploying Beam jobs. Each iteration involved dozens of gcloud commands and console clicks. Naku distills that workflow into a repeatable, scriptable CLI — making experimentation faster and infrastructure reproducible.
Tech
Python · Google Cloud Platform · Apache Beam · Dataproc · Pub/Sub · Cloud Storage · Keras · CLI