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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

fedops_vlm_framework-0.1.0-py3-none-any.whl (35.3 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for fedops_vlm_framework-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a1a3375bb2be614b360ac9a924952641f89d73e65f6614460f0bca7bec0e1af5
MD5 2be57470d5e305fba8b832de417b97f9
BLAKE2b-256 80c4d0a419606802a4a1b571338b3c9bfe1dfc32ec03c037908926186664f87b

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