执行摘要
移除 AsyncMMDataProcessor 包装器,简化多模态数据处理逻辑。
PR body中指出:'Remove AsyncMMDataProcessor as it provides no real value and has fundamental design flaws.' 具体原因包括:所有多模态处理器均继承BaseMultiModalProcessor并实现process_mm_data_async,导致包装器的异步路径总是被使用,而同步回退路径为死代码;处理器非线程安全,同步回退设计错误;异步非阻塞、并发限制和超时功能对大多数'假异步'处理器无效。
建议工程师精读此PR,了解多模态处理器异步设计的历史问题和简化决策。特别关注llava.py中添加的超时实现,以及tokenizer_manager.py中直接调用异步方法的变更,以理解如何平衡设计简洁性与功能需求。
讨论核心围绕移除AsyncMMDataProcessor的价值展开。yuan-luo最初反对,认为超时和信号量对有真实await点的处理器(如LLaVA)有价值,建议保留这些功能。yhyang201反驳指出设计缺陷和多数处理器的'假异步'特性。经过代码审计,yuan-luo发现仅LLaVA处理器有真实await点,最终同意移除包装器,但建议为LLaVA添加直接超时,并在提交中实现。讨论结论:移除包装器以简化设计,针对性保护关键处理器。
参与讨论