Image-Text-to-Text
Transformers
ONNX
Safetensors
English
medical
chest-xray
radiology
clip
blip
multimodal
cpu
Instructions to use GAD-Research-Lab/MedicalAI-Light-Weight with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use GAD-Research-Lab/MedicalAI-Light-Weight with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="GAD-Research-Lab/MedicalAI-Light-Weight")# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("GAD-Research-Lab/MedicalAI-Light-Weight", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use GAD-Research-Lab/MedicalAI-Light-Weight with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "GAD-Research-Lab/MedicalAI-Light-Weight" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "GAD-Research-Lab/MedicalAI-Light-Weight", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/GAD-Research-Lab/MedicalAI-Light-Weight
- SGLang
How to use GAD-Research-Lab/MedicalAI-Light-Weight with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "GAD-Research-Lab/MedicalAI-Light-Weight" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "GAD-Research-Lab/MedicalAI-Light-Weight", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "GAD-Research-Lab/MedicalAI-Light-Weight" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "GAD-Research-Lab/MedicalAI-Light-Weight", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use GAD-Research-Lab/MedicalAI-Light-Weight with Docker Model Runner:
docker model run hf.co/GAD-Research-Lab/MedicalAI-Light-Weight
| """ | |
| Update script — pulls the newest models, UI files, and dependencies. | |
| Usage: | |
| python update.py # interactive menu | |
| python update.py --all # update everything | |
| python update.py --models # download latest ONNX models | |
| python update.py --code # git pull latest source | |
| python update.py --deps # upgrade pip packages | |
| The default model source is a Hugging Face repo. | |
| Configure with: python update.py --set-url <HF_REPO_ID> | |
| """ | |
| import argparse | |
| import json | |
| import os | |
| import subprocess | |
| import sys | |
| from pathlib import Path | |
| CONFIG_FILE = "update_config.json" | |
| DEFAULT_HF_REPO = "your-org/medicalai-models" | |
| DEFAULT_DIR = Path("models") / "default" | |
| ONNX_FULL_DIR = Path("checkpoints") / "onnx_full" | |
| def load_config(): | |
| if os.path.exists(CONFIG_FILE): | |
| with open(CONFIG_FILE) as f: | |
| return json.load(f) | |
| return {"hf_repo": DEFAULT_HF_REPO, "auto_update": True} | |
| def save_config(cfg): | |
| with open(CONFIG_FILE, "w") as f: | |
| json.dump(cfg, f, indent=2) | |
| def _ensure_dir(path): | |
| os.makedirs(path, exist_ok=True) | |
| def _file_size(path): | |
| return os.path.getsize(path) / 1024 / 1024 | |
| def update_models_from_hf(): | |
| """Download latest ONNX models from Hugging Face.""" | |
| cfg = load_config() | |
| repo = cfg["hf_repo"] | |
| from rich.console import Console | |
| console = Console() | |
| if repo == DEFAULT_HF_REPO and "your-org" in repo: | |
| console.print("[yellow]HF_REPO not set. Skipping model download.[/yellow]") | |
| console.print("[yellow]Set your model repo: python update.py --set-url your-org/your-repo[/yellow]") | |
| console.print("[yellow]Or train locally: python training.py --mode prepare-data && python training.py --mode train[/yellow]") | |
| return | |
| try: | |
| import requests | |
| except ImportError: | |
| console.print("[red]'requests' required. Install: pip install requests[/red]") | |
| return | |
| _ensure_dir(ONNX_FULL_DIR) | |
| _ensure_dir(DEFAULT_DIR) | |
| files_to_download = [ | |
| ("fusion_full.onnx", ONNX_FULL_DIR / "fusion_full.onnx"), | |
| ("labels.json", ONNX_FULL_DIR / "labels.json"), | |
| ("fusion_classifier.onnx", DEFAULT_DIR / "fusion_classifier.onnx"), | |
| ] | |
| base_url = f"https://huggingface.co/{repo}/resolve/main" | |
| for fname, dest in files_to_download: | |
| url = f"{base_url}/{fname}" | |
| console.print(f"[cyan]Downloading {fname}...[/cyan]") | |
| try: | |
| resp = requests.get(url, stream=True, timeout=30) | |
| resp.raise_for_status() | |
| with open(dest, "wb") as f: | |
| for chunk in resp.iter_content(8192): | |
| f.write(chunk) | |
| console.print(f" [green]Saved {dest} ({_file_size(dest):.1f} MB)[/green]") | |
| except Exception as e: | |
| console.print(f" [red]Failed: {e}[/red]") | |
| console.print("[green]Model update complete.[/green]") | |
| def update_code(): | |
| """Pull latest source code from git.""" | |
| from rich.console import Console | |
| console = Console() | |
| if not os.path.exists(".git"): | |
| console.print("[yellow]Not a git repository. Skipping code update.[/yellow]") | |
| return | |
| try: | |
| result = subprocess.run( | |
| ["git", "pull", "--ff-only"], | |
| capture_output=True, text=True, timeout=60, | |
| ) | |
| if result.returncode == 0: | |
| console.print(f"[green]{result.stdout}[/green]") | |
| else: | |
| console.print(f"[yellow]{result.stderr}[/yellow]") | |
| except Exception as e: | |
| console.print(f"[red]Git pull failed: {e}[/red]") | |
| def update_deps(): | |
| """Upgrade all pip packages to latest compatible versions.""" | |
| from rich.console import Console | |
| console = Console() | |
| req = "requirements.txt" | |
| if not os.path.exists(req): | |
| console.print("[yellow]No requirements.txt found.[/yellow]") | |
| return | |
| console.print("[cyan]Upgrading dependencies...[/cyan]") | |
| try: | |
| subprocess.check_call( | |
| [sys.executable, "-m", "pip", "install", "--upgrade", "-r", req], | |
| stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, | |
| ) | |
| console.print("[green]Dependencies upgraded.[/green]") | |
| except Exception as e: | |
| console.print(f"[red]Upgrade failed: {e}[/red]") | |
| def update_all(): | |
| from rich.console import Console | |
| console = Console() | |
| console.print("[bold cyan]Full Update[/bold cyan]") | |
| console.print() | |
| console.print("[cyan]Step 1: Updating code...[/cyan]") | |
| update_code() | |
| console.print("[cyan]Step 2: Upgrading dependencies...[/cyan]") | |
| update_deps() | |
| console.print("[cyan]Step 3: Downloading latest models...[/cyan]") | |
| update_models_from_hf() | |
| console.print() | |
| console.print("[green]Update complete![/green]") | |
| console.print(" Run [bold]python quantization.py --mode status[/bold] to verify.") | |
| def set_repo_url(url): | |
| cfg = load_config() | |
| cfg["hf_repo"] = url | |
| save_config(cfg) | |
| print(f"Hugging Face repo set to: {url}") | |
| def show_status(): | |
| cfg = load_config() | |
| print(f"Update config: {CONFIG_FILE}") | |
| print(f" HF repo: {cfg['hf_repo']}") | |
| print(f" Auto update: {cfg['auto_update']}") | |
| print() | |
| print("Default models:") | |
| for f in ["fusion_classifier.onnx", "labels.json"]: | |
| p = DEFAULT_DIR / f | |
| exists = os.path.exists(p) | |
| size = f"({_file_size(p):.1f} MB)" if exists else "" | |
| print(f" {f}: {'yes' if exists else 'no'} {size}") | |
| print() | |
| print("Full ONNX pipeline:") | |
| for f in ["fusion_full.onnx", "labels.json"]: | |
| p = ONNX_FULL_DIR / f | |
| exists = os.path.exists(p) | |
| size = f"({_file_size(p):.1f} MB)" if exists else "" | |
| print(f" {f}: {'yes' if exists else 'no'} {size}") | |
| print() | |
| def main(): | |
| parser = argparse.ArgumentParser(description="Update MedicalAI models, code, and deps") | |
| parser.add_argument("--models", action="store_true", help="Download latest ONNX models") | |
| parser.add_argument("--code", action="store_true", help="Git pull latest source") | |
| parser.add_argument("--deps", action="store_true", help="Upgrade pip packages") | |
| parser.add_argument("--all", action="store_true", help="Update everything") | |
| parser.add_argument("--set-url", metavar="HF_REPO", help="Set Hugging Face model repo") | |
| parser.add_argument("--status", action="store_true", help="Show update status") | |
| args = parser.parse_args() | |
| if args.set_url: | |
| set_repo_url(args.set_url) | |
| return | |
| if args.status: | |
| show_status() | |
| return | |
| if args.all: | |
| update_all() | |
| return | |
| if args.models: | |
| update_models_from_hf() | |
| return | |
| if args.code: | |
| update_code() | |
| return | |
| if args.deps: | |
| update_deps() | |
| return | |
| # Interactive mode | |
| from rich.console import Console | |
| import questionary | |
| console = Console() | |
| console.print("[bold cyan]MedicalAI - Update Manager[/bold cyan]") | |
| console.print() | |
| choice = questionary.select( | |
| "What would you like to update?", | |
| choices=[ | |
| "Everything (code + deps + models)", | |
| "Models only (download latest ONNX)", | |
| "Code only (git pull)", | |
| "Dependencies only (pip upgrade)", | |
| "Show update status", | |
| "Set Hugging Face model repo", | |
| "Cancel", | |
| ], | |
| ).ask() | |
| if choice == "Everything (code + deps + models)": | |
| update_all() | |
| elif choice == "Models only (download latest ONNX)": | |
| update_models_from_hf() | |
| elif choice == "Code only (git pull)": | |
| update_code() | |
| elif choice == "Dependencies only (pip upgrade)": | |
| update_deps() | |
| elif choice == "Show update status": | |
| show_status() | |
| elif "Set Hugging Face" in choice: | |
| repo = questionary.text("Enter Hugging Face repo (user/repo):").ask() | |
| if repo: | |
| set_repo_url(repo) | |
| else: | |
| console.print("[yellow]Cancelled.[/yellow]") | |
| if __name__ == "__main__": | |
| main() | |