lisa-on-cuda / README.md
alessandro trinca tornidor
chore: update dependencies (gradio == 4.44.0, samgis-core == 3.0.13), bump lisa-on-cuda to version 1.4.2
818094d

A newer version of the Gradio SDK is available: 5.6.0

Upgrade
metadata
title: lisa + gradio + fastapi + ZeroGPU
emoji: 
colorFrom: red
colorTo: purple
sdk: gradio
sdk_version: 4.44.0
app_file: app.py
pinned: true

LISA (Reasoning Segmentation via Large Language Model) on cuda, now with huggingface ZeroGPU support!

Exec jupyter on the remote server with port forwarding on localhost

  1. checkout repo, install venv with jupyter
  2. port forwarding in localhost wiht private key: ssh -i /path/to/private_key name@endpoint.com -L 8889:localhost:8889 -N -f
  3. start the jupyter-lab server
  4. connect to page in localhost

Commands to work on remote virtual machines (e.g. SaturnCloud) after clone and git lfs install

cd ~/workspace/lisa-on-cuda/
rm -rf lisa_venv 
python3 -m venv lisa_venv
ln -s lisa_venv/ venv
source  venv/bin/activate
pip --version
which python
python -m pip install pip wheel --upgrade
python -m pip install pytest pytest-cov jupyterlab
python -m pip install -r requirements.txt
nohup jupyter-lab &
tail -F nohup.out

Jupyterlab Howto

To run the test.ipynb notebook you should already:

Hardware requirements for local usage

  • an nvidia gpu with 10 or 12GB of memory (a T4 should suffice)
  • at least 16GB of system ram

Hardware requirements on huggingface ZeroGPU

Right now (July 2024) huggingface let use ZeroGPU Nvidia A100 GPUs.

Gradio Open in OpenXLab

See LISA for details on the original project. Note that the authors don't keep the project updated anymore.

Dependencies and HuggingFace demos with Gradio SDK

HuggingFace demos based on Gradio SDK (you need that to use ZeroGPU hardware) needs updated requirements.txt. You can keep your requirements.txt in sync with the dependencies installed in the project using this python command (from samgis-core):

python -m samgis_core.utilities.update_requirements_txt --req_no_version_path requirements_no_versions.txt --req_output_path requirements.txt

About the parameters:

  • input argument --req_no_version_path is a file with the dependencies package list without version declared
  • output argument --req_output_path is the output requirements.txt

This command simply freeze the installed packages and filter it using the dependencies package list from the input argument. If you need to modify the requirements_no_versions.txt file, avoid inserting

  • python (this is required only by poetry)
  • gradio, gradio-client (installed directly by HuggingFace, selecting the version in header section of the README.md file)
  • spaces (installed directly by HuggingFace, version selected connected by the gradio version)

In case of doubt check the HuggingFace container log for the correct spaces package version.