Octomil — serve, deploy, and observe ML models on edge devices
Project description
Octomil
Run ML models locally. Train them together.
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
Contributing
See CONTRIBUTING.md.
License
Project details
Release history Release notifications | RSS feed
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-2.1.7.tar.gz
(391.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
octomil_sdk-2.1.7-py3-none-any.whl
(253.7 kB
view details)
File details
Details for the file octomil_sdk-2.1.7.tar.gz.
File metadata
- Download URL: octomil_sdk-2.1.7.tar.gz
- Upload date:
- Size: 391.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d3f1554a02f400a4f30aea083ef8a1bd949f3f99e32c9604062d4455cb9d100
|
|
| MD5 |
513affd988e33452d594d1674c1a300c
|
|
| BLAKE2b-256 |
f405b337a05dfb51458c3415780b7d817d82341cc0b6472c0441f273c4142f2e
|
File details
Details for the file octomil_sdk-2.1.7-py3-none-any.whl.
File metadata
- Download URL: octomil_sdk-2.1.7-py3-none-any.whl
- Upload date:
- Size: 253.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4aa2a419df12cb5c618af88013085aa207c39d599274f5075e259ffe0955c8b
|
|
| MD5 |
b1580a1ef1a68ee3a08fd68aeacef715
|
|
| BLAKE2b-256 |
03aee6e70bf60e9c571503760259524e05534e13187875e31ac38944d4f0c3fe
|