From 309b40aaf097e840f55e8c975bbbaa5f30a62646 Mon Sep 17 00:00:00 2001 From: haixuanTao Date: Sun, 13 Oct 2024 06:02:07 +0200 Subject: [PATCH] Add `modelscope` to qwenvl --- node-hub/dora-qwenvl/dora_qwenvl/main.py | 17 +++++++++++++---- node-hub/dora-qwenvl/pyproject.toml | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/node-hub/dora-qwenvl/dora_qwenvl/main.py b/node-hub/dora-qwenvl/dora_qwenvl/main.py index 4538c63e..7a2b6119 100644 --- a/node-hub/dora-qwenvl/dora_qwenvl/main.py +++ b/node-hub/dora-qwenvl/dora_qwenvl/main.py @@ -5,10 +5,19 @@ from qwen_vl_utils import process_vision_info import numpy as np import pyarrow as pa from PIL import Image +from pathlib import Path import cv2 DEFAULT_PATH = "Qwen/Qwen2-VL-2B-Instruct" -CUSTOM_MODEL_PATH = os.getenv("CUSTOM_MODEL_PATH", DEFAULT_PATH) + +MODEL_NAME_OR_PATH = os.getenv("MODEL_NAME_OR_PATH", DEFAULT_PATH) + +if bool(os.getenv("MODELSCOPE")) is True: + from modelscope import snapshot_download + + if not Path(MODEL_NAME_OR_PATH).exists(): + MODEL_NAME_OR_PATH = snapshot_download(MODEL_NAME_OR_PATH) + DEFAULT_QUESTION = os.getenv( "DEFAULT_QUESTION", "Describe this image", @@ -20,14 +29,14 @@ try: import flash_attn as _ model = Qwen2VLForConditionalGeneration.from_pretrained( - CUSTOM_MODEL_PATH, + MODEL_NAME_OR_PATH, torch_dtype="auto", device_map="auto", attn_implementation="flash_attention_2", ) except (ImportError, ModuleNotFoundError): model = Qwen2VLForConditionalGeneration.from_pretrained( - CUSTOM_MODEL_PATH, + MODEL_NAME_OR_PATH, torch_dtype="auto", device_map="auto", ) @@ -38,7 +47,7 @@ if ADAPTER_PATH != "": # default processor -processor = AutoProcessor.from_pretrained(CUSTOM_MODEL_PATH) +processor = AutoProcessor.from_pretrained(MODEL_NAME_OR_PATH) def generate(frames: dict, question): diff --git a/node-hub/dora-qwenvl/pyproject.toml b/node-hub/dora-qwenvl/pyproject.toml index eac55946..f4f9f1bd 100644 --- a/node-hub/dora-qwenvl/pyproject.toml +++ b/node-hub/dora-qwenvl/pyproject.toml @@ -20,6 +20,7 @@ transformers = "^4.45" qwen-vl-utils = "^0.0.2" accelerate = "^0.33" opencv-python = ">= 4.1.1" +modelscope = "^1.18.1" # flash_attn = "^2.6.1" # Install using: pip install -U flash-attn --no-build-isolation