[Model] Support SigLIP encoder and alternative decoders for LLaVA models (#7153)
Co-authored-by: Roger Wang <136131678+ywang96@users.noreply.github.com>
This commit is contained in:
@@ -16,7 +16,7 @@ import numpy as np
|
||||
import torch
|
||||
from huggingface_hub import HfApi, hf_hub_download
|
||||
from torch import nn
|
||||
from transformers import AutoModelForCausalLM
|
||||
from transformers import AutoModelForCausalLM, PretrainedConfig
|
||||
|
||||
from vllm.config import (CacheConfig, DeviceConfig, LoadConfig, LoadFormat,
|
||||
LoRAConfig, ModelConfig, MultiModalConfig,
|
||||
@@ -143,6 +143,22 @@ def _get_model_initialization_kwargs(
|
||||
return extra_kwargs
|
||||
|
||||
|
||||
def build_model(model_class: Type[nn.Module], hf_config: PretrainedConfig,
|
||||
cache_config: Optional[CacheConfig],
|
||||
quant_config: Optional[QuantizationConfig], *,
|
||||
lora_config: Optional[LoRAConfig],
|
||||
multimodal_config: Optional[MultiModalConfig],
|
||||
scheduler_config: Optional[SchedulerConfig]) -> nn.Module:
|
||||
extra_kwargs = _get_model_initialization_kwargs(model_class, lora_config,
|
||||
multimodal_config,
|
||||
scheduler_config)
|
||||
|
||||
return model_class(config=hf_config,
|
||||
cache_config=cache_config,
|
||||
quant_config=quant_config,
|
||||
**extra_kwargs)
|
||||
|
||||
|
||||
def _initialize_model(
|
||||
model_config: ModelConfig,
|
||||
load_config: LoadConfig,
|
||||
@@ -151,15 +167,17 @@ def _initialize_model(
|
||||
cache_config: CacheConfig,
|
||||
scheduler_config: Optional[SchedulerConfig] = None) -> nn.Module:
|
||||
"""Initialize a model with the given configurations."""
|
||||
model_class = get_model_architecture(model_config)[0]
|
||||
quant_config = _get_quantization_config(model_config, load_config)
|
||||
model_class, _ = get_model_architecture(model_config)
|
||||
|
||||
return model_class(config=model_config.hf_config,
|
||||
cache_config=cache_config,
|
||||
quant_config=quant_config,
|
||||
**_get_model_initialization_kwargs(
|
||||
model_class, lora_config, multimodal_config,
|
||||
scheduler_config))
|
||||
return build_model(
|
||||
model_class,
|
||||
model_config.hf_config,
|
||||
quant_config=_get_quantization_config(model_config, load_config),
|
||||
lora_config=lora_config,
|
||||
multimodal_config=multimodal_config,
|
||||
cache_config=cache_config,
|
||||
scheduler_config=scheduler_config,
|
||||
)
|
||||
|
||||
|
||||
class BaseModelLoader(ABC):
|
||||
|
||||
Reference in New Issue
Block a user