Fine Tuning as a Service (FTAAS)
register → orchestrate → train (HF / TRL / LLaMA-Factory / Unsloth / Axolotl · LoRA / QLoRA / DoRA) → MLflow → vLLM / Ray Serve → API / Console
ftaas.Client / notebook Console
\ /
▼ ▼
FTAAS gateway (:8080)
┌─────────┼──────────┐
▼ ▼ ▼
registry control deploy
│
workflow
│
runner · Ray · MLflow · vLLM
Components
| Module | Role |
|---|---|
gateway (ftaas_app) |
Single process on :8080 — Console + APIs |
| console | Web UI for setup, tracking, prompt |
| registry | Dataset registration → id:version |
| control | Fine-tune jobs + model registry |
| workflow | Pipeline create / complete |
| deploy | Endpoints (vLLM / Ray Serve path) + prompt API |
| runner | Local (or Airflow) train pipeline |
| ftaas SDK | Client for notebooks / automation |
Quick start
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
./scripts/start_all.sh # → http://127.0.0.1:8080
./scripts/e2e_smoke.sh
./scripts/stop_all.sh
SDK
from ftaas import Client, Framework, Technique, HyperParameters
with Client() as c:
ds = c.register_dataset("examples/data/alpaca_sample.jsonl", name="alpaca")
job = c.create_finetune_job(
model_name="sshleifer/tiny-gpt2",
dataset=ds,
framework=Framework.TRANSFORMERS,
technique=Technique.LORA,
parameters=HyperParameters(max_steps=10),
)
job = c.wait_for_job(job.job_id)
model = c.get_model(job.registered_model_name)
ep = c.create_endpoint(model.model_name, inference_framework="vllm")
print(c.prompt(ep.endpoint_id, "What is LoRA?").completion)
Layout
FTAAS/
├── packages/ftaas_sdk/ftaas/ # Client SDK
├── services/
│ ├── ftaas_app/ # gateway
│ ├── registry/
│ ├── control/
│ ├── workflow/
│ └── deploy/
├── runner/ # local + Airflow DAG
├── training/
├── ui/console/
├── examples/
└── scripts/
License
Apache-2.0
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ftaas-0.1.0.tar.gz
(13.9 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
ftaas-0.1.0-py3-none-any.whl
(13.6 kB
view details)
File details
Details for the file ftaas-0.1.0.tar.gz.
File metadata
- Download URL: ftaas-0.1.0.tar.gz
- Upload date:
- Size: 13.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d292d4ec337e9a69cb04d1d1f4877029ab93dba5f8d30eae9837b7cf0daebfa6
|
|
| MD5 |
3bc929c40219bda460fae9133c6a511a
|
|
| BLAKE2b-256 |
1cc13df74227f226b073e159c28e9d1e9848a37f2afb80ba27ef281c0cb796bb
|
File details
Details for the file ftaas-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ftaas-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b556ac8ff68a51711b9e45f2a8bac9ac74dbfe649faa92085b268dcd0f21a24f
|
|
| MD5 |
39227f16061be0baacc2fbd30a46b8db
|
|
| BLAKE2b-256 |
d5ff03f2ababf0284c8788fd28c5fcd4c371b9a8fe3d9f5fb94eb0c3c07565ae
|