Coverage for transformer_lens/model_bridge/supported_architectures/florence2.py: 100%
13 statements
« prev ^ index » next coverage.py v7.10.1, created at 2026-08-11 18:50 +0000
« prev ^ index » next coverage.py v7.10.1, created at 2026-08-11 18:50 +0000
1"""Florence-2 architecture adapter.
3Microsoft's Florence-2 (``Florence2ForConditionalGeneration``): a DaViT
4vision backbone at ``model.vision_tower`` whose projected features are
5scattered into image-placeholder tokens, feeding a BART encoder-decoder at
6``model.language_model``. The text stack reuses the BART mapping with
7re-prefixed paths; the vision tower and projector are opaque delegated
8components (window/channel-attention DaViT has no TL analogue).
9"""
11from typing import Any
13from transformer_lens.model_bridge.generalized_components.base import (
14 GeneralizedComponent,
15)
16from transformer_lens.model_bridge.supported_architectures.bart import (
17 BartArchitectureAdapter,
18)
20_TEXT_PREFIX = "model.language_model."
23class Florence2ArchitectureAdapter(BartArchitectureAdapter):
24 """Architecture adapter for Florence2ForConditionalGeneration models."""
26 def __init__(self, cfg: Any) -> None:
27 """Initialize the Florence-2 architecture adapter."""
28 super().__init__(cfg)
30 self.cfg.is_multimodal = True
31 if hasattr(cfg, "vision_config"):
32 self.cfg.vision_hidden_size = getattr(cfg.vision_config, "hidden_size", None)
34 self._reprefix_components("model.", _TEXT_PREFIX)
36 self.components["vision_encoder"] = GeneralizedComponent(name="model.vision_tower")
37 self.components["vision_projector"] = GeneralizedComponent(
38 name="model.multi_modal_projector"
39 )