MCPcopy Create free account
hub / github.com/InternLM/InternBootcamp / hf_processor

Function hf_processor

verl/verl/utils/tokenizer.py:67–112  ·  view source on GitHub ↗

Create a huggingface processor to process multimodal data. Args: name_or_path (str): The name of the processor. Returns: transformers.ProcessorMixin: The pretrained processor.

(name_or_path, **kwargs)

Source from the content-addressed store, hash-verified

65
66
67def hf_processor(name_or_path, **kwargs):
68 """Create a huggingface processor to process multimodal data.
69
70 Args:
71 name_or_path (str): The name of the processor.
72
73 Returns:
74 transformers.ProcessorMixin: The pretrained processor.
75 """
76 from transformers import AutoConfig, AutoProcessor
77
78 try:
79 processor = AutoProcessor.from_pretrained(name_or_path, **kwargs)
80 config = AutoConfig.from_pretrained(name_or_path, **kwargs)
81
82 # Bind vlm model's get_rope_index method to processor
83 processor.config = config
84 match processor.__class__.__name__:
85 case "Qwen2VLProcessor":
86 from transformers.models.qwen2_vl import Qwen2VLModel
87
88 processor.get_rope_index = types.MethodType(Qwen2VLModel.get_rope_index, processor)
89 case "Qwen2_5_VLProcessor":
90 from transformers.models.qwen2_5_vl import Qwen2_5_VLModel
91
92 processor.get_rope_index = types.MethodType(Qwen2_5_VLModel.get_rope_index, processor)
93 case "Qwen3VLProcessor":
94 from transformers.models.qwen3_vl import Qwen3VLModel
95
96 processor.get_rope_index = types.MethodType(Qwen3VLModel.get_rope_index, processor)
97 case "Glm4vImageProcessor":
98 from transformers.models.glm4v import Glm4vModel
99
100 processor.get_rope_index = types.MethodType(Glm4vModel.get_rope_index, processor)
101 case _:
102 raise ValueError(f"Unsupported processor type: {processor.__class__.__name__}")
103 except Exception as e:
104 processor = None
105 # TODO(haibin.lin): try-catch should be removed after adding transformer version req to setup.py to avoid
106 # silent failure
107 warnings.warn(f"Failed to create processor: {e}. This may affect multimodal processing", stacklevel=1)
108 # Avoid load tokenizer, see:
109 # https://github.com/huggingface/transformers/blob/v4.49.0/src/transformers/models/auto/processing_auto.py#L344
110 if processor is not None and "Processor" not in processor.__class__.__name__:
111 processor = None
112 return processor

Calls 1

from_pretrainedMethod · 0.80