Youtu-LLM-A7B-Base / processing_youtu_vl_moe.py
DIYIN's picture TencentOpen's picture
Duplicate from tencent/Youtu-LLM-A7B-Base
7162ea8
Raw History Blame Contribute Delete
1.79 kB
# coding=utf-8
"""
UTU-VL MoE 处理器(适配 transformers 5.3)
直接复用 Qwen3VLProcessor,UTU-VL MoE 使用与 V4 相同的图像处理流程和 tokenizer 特殊 token 设置。
- image_token_id = 128017 (<|image_pad|>)
- video_token_id = 128040 (<|place▁holder▁no▁40|>, 与 Stage3 VIDEO_TOKEN_ID 一致;128032 在 union tokenizer 中是字面量 |DSML|)
"""
from transformers.models.qwen3_vl import Qwen3VLProcessor
class YoutuVLMoEProcessor(Qwen3VLProcessor):
"""
UTU-VL MoE processor.
It is intentionally a thin Qwen3VLProcessor subclass with UTU-VL token
aliases populated on the tokenizer.
"""
image_token = "<|image_pad|>"
video_token = "<|place▁holder▁no▁40|>"
vision_start_token = "<|vision_start|>"
vision_end_token = "<|vision_end|>"
tokenizer_class = ("PreTrainedTokenizerFast",)
def __init__(self, image_processor=None, tokenizer=None, video_processor=None, chat_template=None, **kwargs):
if tokenizer is not None:
tokenizer.image_token = self.image_token
tokenizer.video_token = self.video_token
tokenizer.vision_start_token = self.vision_start_token
tokenizer.vision_end_token = self.vision_end_token
tokenizer.image_token_id = tokenizer.convert_tokens_to_ids(self.image_token)
tokenizer.video_token_id = tokenizer.convert_tokens_to_ids(self.video_token)
tokenizer.vision_start_token_id = tokenizer.convert_tokens_to_ids(self.vision_start_token)
tokenizer.vision_end_token_id = tokenizer.convert_tokens_to_ids(self.vision_end_token)
super().__init__(image_processor, tokenizer, video_processor, chat_template=chat_template, **kwargs)
__all__ = ["YoutuVLMoEProcessor"]