76 lines
2.3 KiB
Markdown
76 lines
2.3 KiB
Markdown
# Fluksio
|
|
|
|
Turn Python functions into connected nodes, run experiments, and keep their
|
|
metrics and artifacts together. Start an engine with Python 3.12 or newer
|
|
on Linux or macOS:
|
|
|
|
```sh
|
|
pip install fluksio
|
|
fluksio serve
|
|
```
|
|
|
|
The first start prints an admin password and opens a terminal dashboard.
|
|
For a browser dashboard, connect the instance to the optional
|
|
[portal](https://docs.fluksio.com/interface/portal/).
|
|
|
|
## For data science
|
|
|
|
Save this small experiment as `study.py`. No dataset or GPU needed:
|
|
|
|
```python
|
|
import math
|
|
|
|
from fluksio import Flow, Port, node
|
|
|
|
@node(
|
|
requires=[Port("lr", "float")],
|
|
provides=[Port("loss", "float", stream=True), Port("final_loss", "float")],
|
|
)
|
|
def fit(lr, epochs=25):
|
|
for epoch in range(epochs):
|
|
loss = math.exp(-lr * (epoch + 1))
|
|
yield {"loss": loss}
|
|
return {"final_loss": loss}
|
|
|
|
|
|
train = Flow(
|
|
"train",
|
|
nodes=[fit],
|
|
inputs=[Port("lr", "float", initial=0.01)],
|
|
outputs=["final_loss"],
|
|
)
|
|
```
|
|
|
|
Matching message names connect the nodes and determine their order. After
|
|
syncing the project, start a run:
|
|
|
|
```sh
|
|
fluksio sync study
|
|
fluksio run train --lr 0.05 --wait
|
|
```
|
|
|
|
Each yield records a point on the loss curve. Replace the toy calculation
|
|
with your own training code when you're ready. For artifacts and comparisons, try the
|
|
[data science guide](https://docs.fluksio.com/getting-started/data-science/).
|
|
|
|
## More to explore
|
|
|
|
- **Flows**: typed messages between nodes, wired by name, edited on a canvas
|
|
or declared in code. Every change is a commit in a git repository you own.
|
|
- **Runs**: an experiment and a CI-style job are the same entity. Parameters,
|
|
seed, result, per-node timings, artifacts and the commit it ran at.
|
|
- **Dashboards**: charts and controls bound to the same messages the flows
|
|
carry, with no separate metrics pipeline.
|
|
- **Remote workers**: `pip install fluksio-worker` on the GPU box; it dials
|
|
*out* over one websocket, so nothing there has to be reachable.
|
|
|
|
For sensors, devices and live automation, try the
|
|
[facility automation guide](https://docs.fluksio.com/getting-started/facility-automation/).
|
|
|
|
## License
|
|
|
|
Copyright (C) 2026 Melvin Strobl - [GNU Affero General Public License v3.0 or
|
|
later](https://www.gnu.org/licenses/agpl-3.0.en.html). Running a modified
|
|
version over a network obliges you to offer its users the corresponding source
|
|
(AGPL §13).
|