Skip to main content

Octomil — serve, deploy, and observe ML models on edge devices

Project description

Octomil
Run ML models locally. Train them together.

CI PyPI MIT


Install

pip install octomil-sdk

Quick Start

Serve a model locally with an OpenAI-compatible API:

octomil serve gemma-1b
curl http://localhost:8080/v1/chat/completions \
  -d '{"model": "gemma-1b", "messages": [{"role": "user", "content": "Hello"}]}'

SDK Usage

from octomil import Octomil

client = Octomil(api_key="oct_...", org_id="org_123")

# Register a model
model = client.registry.ensure_model(name="sentiment", framework="pytorch")

# Gradual rollout
client.rollouts.create(model_id=model["id"], version="1.0.0", rollout_percentage=10)

# A/B test
client.experiments.create(name="v1-vs-v2", model_id=model["id"],
                          control_version="1.0.0", treatment_version="1.1.0")

Federated Learning

Train across devices without centralizing data:

from octomil import DeviceAuthClient, FederatedClient

auth = DeviceAuthClient(base_url="https://api.octomil.com", org_id="org_123",
                        device_identifier="runtime-001")
await auth.bootstrap(bootstrap_bearer_token=token)

client = FederatedClient(auth_token_provider=lambda: auth.get_access_token_sync(),
                         org_id="org_123")
client.register()

assignment = client.get_round_assignment()
if assignment:
    client.participate_in_round(round_id=assignment["round_id"],
                                local_train_fn=my_train_fn)

CLI

Command
octomil serve <model> Local inference server (OpenAI-compatible)
octomil pull <model> Download a model
octomil push <file> Upload a model
octomil deploy <model> Deploy to devices
octomil convert <file> Convert to CoreML / TFLite
octomil check <file> Validate a model
octomil scan <path> Security scan
octomil benchmark <model> Latency benchmarks
octomil login Authenticate

Documentation

docs.octomil.com/sdks/python

Contributing

See CONTRIBUTING.md.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

octomil_sdk-1.0.0.tar.gz (365.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

octomil_sdk-1.0.0-py3-none-any.whl (227.2 kB view details)

Uploaded Python 3

File details

Details for the file octomil_sdk-1.0.0.tar.gz.

File metadata

  • Download URL: octomil_sdk-1.0.0.tar.gz
  • Upload date:
  • Size: 365.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for octomil_sdk-1.0.0.tar.gz
Algorithm Hash digest
SHA256 053fd0c61726feaaf5864841d619a0acd0e2d7e321f79127bfa5935f668df95c
MD5 c37d2e2cb820c57c6e2c6ccb032f4ba3
BLAKE2b-256 281a7d2be379c397aa38dfcab3bb1a86def328ab00ab46579234b84db9934e35

See more details on using hashes here.

File details

Details for the file octomil_sdk-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: octomil_sdk-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 227.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for octomil_sdk-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bec332a2e355a8c119b8ec1a44505ac2b897d3c4fec0c514211049fc4e4b8390
MD5 308d9bdae1d0872652d5f3b100974ec2
BLAKE2b-256 f9b6293c52defcb26dc9a7b3ca983a8e239a508a7fee9cdb8b9fec5098c9b9e3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page