qwen2.5omni
代码:pip install git+https://github.com/huggingface/transformers@f742a644ca32e65758c3adb36225aef1731bd2a8
3个文件:
- models/qwen2_5_omni/processing_qwen2_5_omni.py
- models/qwen2_5_omni/modular_qwen2_5_omni.py
- models/qwen2_5_omni/modeling_qwen2_5_omni.py
大部分的大模型(LLM)采用左填充(left-padding)的原因
https://zhuanlan.zhihu.com/p/646852375
encoder-only模型主要采用right-padding的原因是,填充右侧的方式很直观,并且我们有时需要获得每个句子的首个token(cls),左侧不对齐不好操作
decoder-only模型采用 left-padding的原因是, 模型的输入是对模型输入的延续(模型的输出中会带着输入,并在输入后边补充输出),如果采用right-padding,会导致大量的[pad]token夹在模型的输入和输入之间,不利于处理结果.并且模型的输出句子的语义也被pad打乱了,输入并不直观.此外,decoder-only的模型并不需要cls等开头的token来做额外的处理,right-padding在decoder-only的模型中没有任何优势.
decoder-only的模型也可以使用right-padding方式,如果设置 skip_special_tokens=True 也应该会获得正确的输入,但是不建议使用.