mirror of
https://git.datalinker.icu/vllm-project/vllm.git
synced 2025-12-10 03:15:20 +08:00
PaliGemma 2 support (#11142)
This commit is contained in:
parent
be39e3cd18
commit
7cd7409142
@ -664,9 +664,9 @@ Text Generation (``--task generate``)
|
|||||||
- ✅︎
|
- ✅︎
|
||||||
- ✅︎
|
- ✅︎
|
||||||
* - :code:`PaliGemmaForConditionalGeneration`
|
* - :code:`PaliGemmaForConditionalGeneration`
|
||||||
- PaliGemma
|
- PaliGemma, PaliGemma 2
|
||||||
- T + I\ :sup:`E`
|
- T + I\ :sup:`E`
|
||||||
- :code:`google/paligemma-3b-pt-224`, :code:`google/paligemma-3b-mix-224`, etc.
|
- :code:`google/paligemma-3b-pt-224`, :code:`google/paligemma-3b-mix-224`, :code:`google/paligemma2-3b-ft-docci-448`, etc.
|
||||||
-
|
-
|
||||||
- ✅︎
|
- ✅︎
|
||||||
-
|
-
|
||||||
|
|||||||
@ -137,6 +137,18 @@ def run_paligemma(question: str, modality: str):
|
|||||||
return llm, prompt, stop_token_ids
|
return llm, prompt, stop_token_ids
|
||||||
|
|
||||||
|
|
||||||
|
# PaliGemma 2
|
||||||
|
def run_paligemma2(question: str, modality: str):
|
||||||
|
assert modality == "image"
|
||||||
|
|
||||||
|
# PaliGemma 2 has special prompt format for VQA
|
||||||
|
prompt = "caption en"
|
||||||
|
llm = LLM(model="google/paligemma2-3b-ft-docci-448",
|
||||||
|
mm_cache_preprocessor=args.mm_cache_preprocessor)
|
||||||
|
stop_token_ids = None
|
||||||
|
return llm, prompt, stop_token_ids
|
||||||
|
|
||||||
|
|
||||||
# Chameleon
|
# Chameleon
|
||||||
def run_chameleon(question: str, modality: str):
|
def run_chameleon(question: str, modality: str):
|
||||||
assert modality == "image"
|
assert modality == "image"
|
||||||
@ -473,6 +485,7 @@ model_example_map = {
|
|||||||
"fuyu": run_fuyu,
|
"fuyu": run_fuyu,
|
||||||
"phi3_v": run_phi3v,
|
"phi3_v": run_phi3v,
|
||||||
"paligemma": run_paligemma,
|
"paligemma": run_paligemma,
|
||||||
|
"paligemma2": run_paligemma2,
|
||||||
"chameleon": run_chameleon,
|
"chameleon": run_chameleon,
|
||||||
"minicpmv": run_minicpmv,
|
"minicpmv": run_minicpmv,
|
||||||
"blip-2": run_blip2,
|
"blip-2": run_blip2,
|
||||||
|
|||||||
@ -105,6 +105,11 @@ def input_processor_for_paligemma(ctx: InputContext,
|
|||||||
orig_prompt_ids.remove(hf_config.image_token_index)
|
orig_prompt_ids.remove(hf_config.image_token_index)
|
||||||
|
|
||||||
new_prompt = f"{image_token_str_pad}{bos_token}{orig_prompt}\n"
|
new_prompt = f"{image_token_str_pad}{bos_token}{orig_prompt}\n"
|
||||||
|
|
||||||
|
# The PaliGemma 2 tokenizer does not include a starting BOS token
|
||||||
|
if orig_prompt_ids[0] != hf_config.bos_token_id:
|
||||||
|
orig_prompt_ids = [hf_config.bos_token_id] + orig_prompt_ids
|
||||||
|
|
||||||
new_token_ids = image_token_ids_pad + orig_prompt_ids + [108] #newline
|
new_token_ids = image_token_ids_pad + orig_prompt_ids + [108] #newline
|
||||||
|
|
||||||
# NOTE: Create a defensive copy of the original inputs
|
# NOTE: Create a defensive copy of the original inputs
|
||||||
@ -149,7 +154,11 @@ class PaliGemmaForConditionalGeneration(nn.Module, SupportsMultiModal,
|
|||||||
projection_dim=config.vision_config.projection_dim)
|
projection_dim=config.vision_config.projection_dim)
|
||||||
|
|
||||||
self.quant_config = quant_config
|
self.quant_config = quant_config
|
||||||
config.text_config.architectures = ["GemmaForCausalLM"]
|
|
||||||
|
if config.text_config.model_type == "gemma":
|
||||||
|
config.text_config.architectures = ["GemmaForCausalLM"]
|
||||||
|
else:
|
||||||
|
config.text_config.architectures = ["Gemma2ForCausalLM"]
|
||||||
self.language_model = init_vllm_registered_model(
|
self.language_model = init_vllm_registered_model(
|
||||||
vllm_config=vllm_config,
|
vllm_config=vllm_config,
|
||||||
hf_config=config.text_config,
|
hf_config=config.text_config,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user