[Misc] Automatically resolve HF processor init kwargs (#22005)
Signed-off-by: DarkLight1337 <tlleungac@connect.ust.hk>
This commit is contained in:
@@ -459,17 +459,6 @@ def cat_with_pad(tensors, dim, padding_value=0):
|
||||
|
||||
class Phi4MMProcessingInfo(BaseProcessingInfo):
|
||||
|
||||
def get_hf_processor(
|
||||
self,
|
||||
*,
|
||||
dynamic_hd: Optional[int] = None,
|
||||
**kwargs: object,
|
||||
) -> ProcessorMixin:
|
||||
if dynamic_hd is not None:
|
||||
kwargs["dynamic_hd"] = dynamic_hd
|
||||
|
||||
return self.ctx.get_hf_processor(**kwargs)
|
||||
|
||||
@property
|
||||
def image_tokens(self) -> list[str]:
|
||||
return [f"<|image_{i+1}|>" for i in range(100)]
|
||||
@@ -487,8 +476,9 @@ class Phi4MMProcessingInfo(BaseProcessingInfo):
|
||||
image_processor = processor.image_processor
|
||||
return image_processor.dynamic_hd
|
||||
|
||||
def get_feature_extractor(self) -> SequenceFeatureExtractor:
|
||||
return self.get_hf_processor().audio_processor
|
||||
def get_feature_extractor(self,
|
||||
**kwargs: object) -> SequenceFeatureExtractor:
|
||||
return self.get_hf_processor(**kwargs).audio_processor
|
||||
|
||||
def get_supported_mm_limits(self) -> Mapping[str, Optional[int]]:
|
||||
return {"audio": None, "image": None}
|
||||
@@ -769,7 +759,7 @@ class Phi4MMMultiModalProcessor(BaseMultiModalProcessor[Phi4MMProcessingInfo]):
|
||||
prompt_ids = self._apply_hf_processor_tokens_only(prompt_ids)
|
||||
return BatchFeature(dict(input_ids=[prompt_ids]), tensor_type="pt")
|
||||
|
||||
sr = self.info.get_feature_extractor().sampling_rate
|
||||
sr = self.info.get_feature_extractor(**mm_kwargs).sampling_rate
|
||||
if (audio_data := mm_data.get("audios", [])):
|
||||
mm_data['audios'] = [(data, sr) for data in audio_data]
|
||||
|
||||
@@ -816,7 +806,8 @@ class Phi4MMMultiModalProcessor(BaseMultiModalProcessor[Phi4MMProcessingInfo]):
|
||||
) -> Sequence[PromptUpdate]:
|
||||
image_tokens: list[str] = self.info.image_tokens # type: ignore
|
||||
audio_tokens: list[str] = self.info.audio_tokens # type: ignore
|
||||
feature_extractor = self.info.get_feature_extractor()
|
||||
feature_extractor = self.info.get_feature_extractor(
|
||||
**hf_processor_mm_kwargs)
|
||||
hf_processor = self.info.get_hf_processor(**hf_processor_mm_kwargs)
|
||||
|
||||
def get_image_replacement_phi4mm(item_idx: int):
|
||||
|
||||
Reference in New Issue
Block a user