Skip to main content

Plugin-based federated learning framework for Vision Language Models (VLMs)

Project description

FedOps VLM Framework

This is a separate framework-oriented folder (not a single experiment run).

Goal

Provide a reusable Flower-based VLM framework with:

  • model plugins (onevision, phiva)
  • dataset plugins (vqav2, vqa_rad, and future multimodal sets)
  • deployment plugins (mlc_compatible, onevision_research)
  • runtime backends (mlc, llama_cpp) from one shared export request schema

Current status

  • Framework CLI + plugin registry + runtime planning is active.
  • Existing project tracks remain in:
    • /home/ccl/Desktop/akeel_folder/MMFL_Flower/fedops-vlm/projects/onevision-research
    • /home/ccl/Desktop/akeel_folder/MMFL_Flower/fedops-vlm/projects/mlc-compatible

Quick start

cd /home/ccl/Desktop/akeel_folder/MMFL_Flower/fedops-vlm/fedops-vlm-framework
source /home/ccl/Desktop/akeel_folder/MMFL_Flower/akeel_research_env/bin/activate
pip install -e .
python -m fedops_vlm_framework.cli --help

List runtime backends:

python -m fedops_vlm_framework.cli --list-runtimes

Generate a full end-to-end setup bundle (recommended first step):

python -m fedops_vlm_framework.cli --setup-e2e --track mlc-compatible

Or for OneVision research:

python -m fedops_vlm_framework.cli --setup-e2e --track onevision-research

This creates a timestamped folder under fedops-vlm/exports/ containing:

  • manifest.json
  • README_NEXT_STEPS.txt
  • scripts/00_verify_env.sh
  • scripts/01_train_fl.sh
  • scripts/02_export_merged.sh
  • scripts/03_generate_runtime_plans.sh
  • scripts/04_run_mlc_pipeline.sh
  • scripts/05_collect_a24_metrics.sh

Generate an MLC export plan (runtime-agnostic interface -> runtime-specific commands):

python -m fedops_vlm_framework.cli \
  --export-plan-runtime mlc \
  --base-model nota-ai/phiva-4b-hf \
  --adapter-dir /path/to/results/<run>/adapter_10 \
  --output-dir /path/to/exports/phiva_a24 \
  --device-profile samsung_a24 \
  --quantization q4f16_0 \
  --context-window-size 768 \
  --image-size 224

Generate the same plan from a JSON config (recommended for repeatability):

python -m fedops_vlm_framework.cli \
  --plan-config examples/plan_config.phiva.mlc.json \
  --save-plan /tmp/plan_mlc.json

Generate a llama.cpp export plan:

python -m fedops_vlm_framework.cli \
  --export-plan-runtime llama_cpp \
  --base-model nota-ai/phiva-4b-hf \
  --adapter-dir /path/to/results/<run>/adapter_10 \
  --output-dir /path/to/exports/phiva_a24 \
  --runtime-option gguf_quant=Q4_K_M

Or config-driven:

python -m fedops_vlm_framework.cli \
  --plan-config examples/plan_config.phiva.llama_cpp.json \
  --save-plan /tmp/plan_llama_cpp.json

Adding new models/datasets/runtimes

No large refactor is needed for normal extension:

  1. Add one plugin file under fedops_vlm_framework/plugins/{models|datasets|runtime}.
  2. Register it in core/registry.py (models/datasets/deploy) or core/runtime_registry.py (runtime).
  3. Use CLI planning with either flags or --plan-config.

Suggested next step

Port one track first (mlc-compatible) into this framework by wiring:

  1. model plugin: phiva
  2. dataset plugin: vqav2
  3. deployment plugin: mlc_compatible
  4. runtime backend plan: mlc first, then llama_cpp for comparison

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

fedops_vlm_framework-0.2.0.tar.gz (30.1 kB view details)

Uploaded Source

Built Distribution

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

fedops_vlm_framework-0.2.0-py3-none-any.whl (43.6 kB view details)

Uploaded Python 3

File details

Details for the file fedops_vlm_framework-0.2.0.tar.gz.

File metadata

  • Download URL: fedops_vlm_framework-0.2.0.tar.gz
  • Upload date:
  • Size: 30.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for fedops_vlm_framework-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3bcd0b0f3f87a57b44c3150bf64a57692da19c029e88d6a2a039652ce0ec1311
MD5 d380850e18c8c739f797b6c4c1ff318a
BLAKE2b-256 8b51e9033e33448d9c03aa070113e0361edab8e92102090bd0a80babbf2e7866

See more details on using hashes here.

File details

Details for the file fedops_vlm_framework-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fedops_vlm_framework-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 689fdf955d01b8f3a0f2d3d26c5c7ceb93a58d3b5b807235ed77d4cfa3021fe5
MD5 7e686be9c5b4d870984a31bbd085f44a
BLAKE2b-256 9655d7411336e1b953fb9d113ad4e0831cc22a0264436cd22b1e551b9f3cefd4

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