← Back to projects

Naku

Python GCP Apache Beam Dataproc Pub/Sub Keras

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

  1. Model upload — Naku packages your trained Keras model and pushes it to a Cloud Storage bucket.
  2. Infrastructure provisioning — It creates the necessary Pub/Sub topics and subscriptions for ingesting live data, then spins up a Dataproc cluster configured for Beam.
  3. 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.
  4. 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

GitHub