| """main.py. |
| |
| This module here is the entrypoint to the VLM Lens toolkit. |
| """ |
| import logging |
|
|
| from src.models.base import ModelBase |
| from src.models.config import Config, ModelSelection |
|
|
|
|
| def get_model( |
| model_arch: ModelSelection, |
| config: Config |
| ) -> ModelBase: |
| """Returns the model based on the selection enum chosen. |
| |
| Args: |
| model_arch (ModelSelection): ModelSelection enum chosen for the specific architecture. |
| config (Config): The configuration object. |
| |
| Returns: |
| ModelBase: A model of type ModelBase which implements the runtime |
| """ |
| if model_arch == ModelSelection.LLAVA: |
| from src.models.llava import LlavaModel |
| return LlavaModel(config) |
| elif model_arch == ModelSelection.QWEN: |
| from src.models.qwen import QwenModel |
| return QwenModel(config) |
| elif model_arch == ModelSelection.CLIP: |
| from src.models.clip import ClipModel |
| return ClipModel(config) |
| elif model_arch == ModelSelection.GLAMM: |
| from src.models.glamm import GlammModel |
| return GlammModel(config) |
| elif model_arch == ModelSelection.JANUS: |
| from src.models.janus import JanusModel |
| return JanusModel(config) |
| elif model_arch == ModelSelection.BLIP2: |
| from src.models.blip2 import Blip2Model |
| return Blip2Model(config) |
| elif model_arch == ModelSelection.MOLMO: |
| from src.models.molmo import MolmoModel |
| return MolmoModel(config) |
| elif model_arch == ModelSelection.PALIGEMMA: |
| from src.models.paligemma import PaligemmaModel |
| return PaligemmaModel(config) |
| elif model_arch == ModelSelection.INTERNLM_XC: |
| from src.models.internlm_xc import InternLMXComposerModel |
| return InternLMXComposerModel(config) |
| elif model_arch == ModelSelection.INTERNVL: |
| from src.models.internvl import InternVLModel |
| return InternVLModel(config) |
| elif model_arch == ModelSelection.MINICPM: |
| from src.models.minicpm import MiniCPMModel |
| return MiniCPMModel(config) |
| elif model_arch == ModelSelection.COGVLM: |
| from src.models.cogvlm import CogVLMModel |
| return CogVLMModel(config) |
| elif model_arch == ModelSelection.PIXTRAL: |
| from src.models.pixtral import PixtralModel |
| return PixtralModel(config) |
| elif model_arch == ModelSelection.AYA_VISION: |
| from src.models.aya_vision import AyaVisionModel |
| return AyaVisionModel(config) |
| elif model_arch == ModelSelection.PLM: |
| from src.models.plm import PlmModel |
| return PlmModel(config) |
|
|
|
|
| if __name__ == '__main__': |
| logging.getLogger().setLevel(logging.INFO) |
| config = Config() |
| logging.debug( |
| f'Config is set to ' |
| f'{[(key, value) for key, value in config.__dict__.items()]}' |
| ) |
|
|
| model = get_model(config.architecture, config) |
| model.run() |
|
|