zetavg
for ui demo
6885a7c unverified
|
raw
history blame
5.98 kB
metadata
title: LLaMA-LoRA UI Demo
emoji: πŸ¦™πŸŽ›οΈ
colorFrom: pink
colorTo: gray
sdk: gradio
sdk_version: 3.24.1
python_version: 3.8.9
app_file: app_hf_ui_demo.py
pinned: false

HF UI DEMO

To update, run:

git push -f hf-ui-demo hf-ui-demo:main

πŸ¦™πŸŽ›οΈ LLaMA-LoRA

Open In Colab

Making evaluating and fine-tuning LLaMA models with low-rank adaptation (LoRA) easy.

Features

How to Start

There are various ways to run this app:

  • Run on Google Colab: The simplest way to get started, all you need is a Google account. Standard (free) GPU runtime is sufficient to run generation and training with micro batch size of 8. However, the text generation and training is much slower than on other cloud services, and Colab might terminate the execution in inactivity while running long tasks.
  • Run on a cloud service via SkyPilot: If you have a cloud service (Lambda Labs, GCP, AWS, or Azure) account, you can use SkyPilot to run the app on a cloud service. A cloud bucket can be mounted to preserve your data.
  • Run locally: Depends on the hardware you have.

Run On Google Colab

Open this Colab Notebook and select Runtime > Run All (⌘/Ctrl+F9).

You will be prompted to authorize Google Drive access, as Google Drive will be used to store your data. See the "Config"/"Google Drive" section for settings and more info.

After approximately 5 minutes of running, you will see the public URL in the output of the "Launch"/"Start Gradio UI πŸš€" section (like Running on public URL: https://xxxx.gradio.live). Open the URL in your browser to use the app.

Run on a cloud service via SkyPilot

After following the installation guide of SkyPilot, create a .yaml to define a task for running the app:

# llama-lora-multitool.yaml

resources:
  accelerators: A10:1  # 1x NVIDIA A10 GPU
  cloud: lambda  # Optional; if left out, SkyPilot will automatically pick the cheapest cloud.

file_mounts:
  # Mount a presisted cloud storage that will be used as the data directory.
  # (to store train datasets trained models)
  # See https://skypilot.readthedocs.io/en/latest/reference/storage.html for details.
  /data:
    name: llama-lora-multitool-data  # Make sure this name is unique or you own this bucket. If it does not exists, SkyPilot will try to create a bucket with this name.
    store: gcs  # Could be either of [s3, gcs]
    mode: MOUNT

# Clone the LLaMA-LoRA repo and install its dependencies.
setup: |
  git clone https://github.com/zetavg/LLaMA-LoRA.git llama_lora
  cd llama_lora && pip install -r requirements.txt
  cd ..
  echo 'Dependencies installed.'

# Start the app.
run: |
  echo 'Starting...'
  python llama_lora/app.py --data_dir='/data' --base_model='decapoda-research/llama-7b-hf' --share

Then launch a cluster to run the task:

sky launch -c llama-lora-multitool llama-lora-multitool.yaml

-c ... is an optional flag to specify a cluster name. If not specified, SkyPilot will automatically generate one.

You will see the public URL of the app in the terminal. Open the URL in your browser to use the app.

Note that exiting sky launch will only exit log streaming and will not stop the task. You can use sky queue --skip-finished to see the status of running or pending tasks, sky logs <cluster_name> <job_id> connect back to log streaming, and sky cancel <cluster_name> <job_id> to stop a task.

When you are done, run sky stop <cluster_name> to stop the cluster. To terminate a cluster instead, run sky down <cluster_name>.

Run locally

Prepare environment with conda
conda create -y -n llama-lora-multitool python=3.8
conda activate llama-lora-multitool
pip install -r requirements.txt
python app.py --data_dir='./data' --base_model='decapoda-research/llama-7b-hf' --share

You will see the local and public URLs of the app in the terminal. Open the URL in your browser to use the app.

For more options, see python app.py --help.

UI development mode

To test the UI without loading the language model, use the --ui_dev_mode flag:

python app.py --data_dir='./data' --base_model='decapoda-research/llama-7b-hf' --share --ui_dev_mode

Acknowledgements

TBC