Skip to content

ivelin/zk0

Repository files navigation

zk0 [zee-ˈkō]

Open Source Humanoid AI trained collaboratively by a community of builders.

First Milestone:

Lerobot + Flower Quickstart Tutorial

Ultimate Goal and Massive Transformative Purpose:

image

πŸš€ Latest Model Release

The zk0.bot SmolVLA Federated Learning model is now available on Hugging Face Hub!

You can also read this post with more detailes about the SmolVLA FL milestone.

  • Model: ivelin/zk0-smolvla-fl
  • Training: 30 rounds of federated learning with FedProx (ΞΌ=0.01)
  • Final Policy Loss: 0.544
  • Clients: 4 clients on diverse SO-100 robotics tasks
  • Framework: Flower + SmolVLA + SO-100 datasets
from transformers import AutoModel, AutoConfig
import torch

# Load the federated model
model = AutoModel.from_pretrained("ivelin/zk0-smolvla-fl")
config = AutoConfig.from_pretrained("ivelin/zk0-smolvla-fl")

# Ready for robotics manipulation tasks!

Why

AI technology has advanced enough to speculate that within a decade most people will have their own humanoid buddy. By some estimates humanoids will become $100 Trillion market (5B humanoids * $20,000 per unit).

Today's leading closed source humanoid is trained on 100,000+ GPU farm with real world data collected from millions of cars labeled by able human drivers and a growing number of humanoid robot prototypes used in real world manufacturing environment. This is an enormous scale of compute and data that is hard to compete with as a centralized entity. However it would be interesting to see if a decentralized approach might produce useful results over time. On the chance that proprietary humanoids ever go rogue, it would be nice to have open source alternatives.

Community Events

Upcoming Events

  • Register now for the zk0 event at the upcoming DevConnect conference in Buenos Aires, Argentina on November 18, 2025.

Past Events

Join the Community

Join our Discord server to connect with other contributors, ask questions, and stay updated on the latest developments:

Join zk0 Discord

For more detailed contribution guidelines, see CONTRIBUTING.md and docs/DEVELOPMENT.md.

How

zk0 is composed of several major building blocks:

  • Physical Embodiment:
  • Generative AI:
  • Federated Learning:
    • Distributed network of nodes contributing local data and training compute to a shared model.
    • FL framework: Flower

Roadmap

  • Zero Knowledge Proofs that allow quick verification and data privacy:
    • Quickly verifiable proofs that an FL node is making meaningful contributions.
    • Frameworks under consideration:
  • Onchain contributor coordination
    • Immutable contribution history
    • Programmable network participation rules, incentives and project governance
    • Hosting blockchain: TBD

Share

image

Quick Start

For detailed setup, see docs/INSTALLATION.md.

Prerequisites

  • Python 3.10+, Conda, Git.
  • NVIDIA GPU recommended.

Clone and Setup

git clone <repository-url> .
cd zk0

# Create conda env
conda create -n zk0 python=3.10 -y
conda activate zk0
conda install ffmpeg=7.1.1 -c conda-forge

# Install deps
pip install -r requirements.txt
pip install -e .

# Env vars
cp .env.example .env  # Edit as needed (e.g., HF_TOKEN)

Run the Simulation

See docs/RUNNING.md for full instructions.

# Quick test (1 round, serialized GPU)
./train.sh

# Full run (5 rounds)
conda run -n zk0 flwr run . local-simulation-serialized-gpu --run-config "num-server-rounds=5"

# Docker alternative
./train.sh --docker
  • Defaults: 500 rounds, 4 clients, SO-100/SO-101 datasets.
  • Outputs: outputs/<timestamp>/ with logs, metrics, charts (eval_policy_loss_chart.png), checkpoints (.safetensors), videos.

Tested: Completes 500 rounds in ~10-15 minutes; policy loss tracks convergence with early stopping.

Repository Branches

  • main: Stable releases. Use this for production setups and quick starts.
  • staging: Final polish before merging with main. No new features. Only bug fixes and docs polish.
  • dev: Active feature development. Pull requests should target dev. Clone or switch with git checkout dev for latest features (may be unstable).

Project Status

πŸš€ Current Stage: Beta

Advanced development with core FL for SmolVLA on SO-100/SO-101. Recent updates: Enhanced security, consolidated metrics, early stopping, dynamic learning rate.

Completed Milestones

  • βœ… Core Infrastructure: Flower 1.20.0 + Ray 2.31.0 + LeRobot 0.3.0.
  • βœ… Client Implementation: SmolVLA training, dataset partitioning.
  • βœ… Testing: 80%+ coverage, unit/integration suites.
  • βœ… CI/CD: GitHub Actions, auto-testing.
  • βœ… Config/Tooling: YAML datasets, env management.
  • βœ… Enhanced Security: Bidirectional SHA256 parameter validation.
  • βœ… Consolidated Metrics: Server-side evaluation files now include both aggregated and individual client metrics with dataset identification (v0.1.19).
  • βœ… Early Stopping: Configurable server-side early stopping with patience-based termination.

In Progress

  • Multi-task learning, advanced strategies (FedProx+), hyperparam tuning.
  • ZK proofs, onchain coordination.

Full status: docs/ARCHITECTURE.md. Baselines: docs/TECHNICAL-OVERVIEW.md.

Config: 4 clients (LEGO bin, direction test, plush toy, stuffed animal); 500 rounds; policy loss metric; early stopping (patience=10); FedProx (ΞΌ=0.01).

Documentation

Internal: .kilocode/rules/memory-bank/ (e.g., brief.md).

Social Media

It's time for a complete open-source stack for autonomy/robotics plus distributed learning. The first step is here: @LeRobotHF + @flwrlabs LFG πŸš€@comma_ai @wayve_ai @Figure_robot @Tesla https://t.co/8O8cSD3SbO https://t.co/oVUOLTvwzm

β€” nic lane (@niclane7) January 15, 2025
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Open-source robots just got a boost. Frameworks like Flower FL enable faster learning, efficient scaling, and continuous knowledge sharing using real-world data. https://t.co/j8VSGiWF0W

β€” 𝚐π”ͺ𝟾𝚑𝚑𝟾 (@gm8xx8) January 15, 2025
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

We are not so far from a future where robots will be constantly learning by interacting with humans and their environments.

Frameworks like @flwrlabs will enable these robots to learn much faster by continuously sharing their learnings.

We really live in a sci-fi movie πŸ˜… https://t.co/kAz3xZ2qvB

β€” Remi Cadene (@RemiCadene) January 15, 2025
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Federated Learning Meets Robotics: πŸ€– LeRobot + 🌼 Flower

This demo demonstrates how robots in remote environments can collaboratively train an AI model using their local data, which is then aggregated into a shared model.

In this quickstart, you will train a Diffusion policy… pic.twitter.com/i32MkbxoPW

β€” Flower (@flwrlabs) January 15, 2025
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Contributing

We welcome contributions from the community! At this Beta stage, we're particularly interested in:

Node Operators

If you have access to a LeRobot SO100 arm (or the newer SO101 version) and a local machine with an RTX 3090 GPU or better compatible with the LeRobot library, we'd love for you to join as a node operator. Your unique training data and compute resources will help improve the federated learning system.

Code Contributors

We're also looking for developers to help with:

  • Bug fixes and improvements
  • Documentation enhancements
  • New feature development
  • Testing and quality assurance

Getting Started

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

License: LICENSE
Repository: GitHub
Memory Bank: Internal docs in .kilocode/rules/memory-bank/ for contributors.

About

Community raised humanoid

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published