-
Notifications
You must be signed in to change notification settings - Fork 229
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support Qwen2-VL's multimodal RoPE implementation #384
Conversation
69dd704
to
b903e7e
Compare
Very nice! Can you update the convergence tests for qwen2_vl to include your RoPE implementation as well? Right now there is a line excluding rope for qwen2_vl models specifically. Also are you available to add a benchmark for your kernel? https://github.com/linkedin/Liger-Kernel/blob/main/docs/CONTRIBUTING.md#adding-a-new-kernel |
Thank you for making the non-trivial contribution!
|
9570f98
to
8e2758a
Compare
@tyler-romero The Qwen2VL convergence tests are already fixed in #388. I've updated them to enable M-RoPE kernel injection for Qwen2VL. Also added benchmark scripts for M-RoPE in the latest commit. Benchmark results on A800 are visualized below: You may test it on A100 and update |
@ByronHsu Hi,
|
Thank you @li-plus !! |
Summary
Support Qwen2-VL's multimodal RoPE kernel. See original implementation here: https://github.com/huggingface/transformers/blob/a3d69a8994d673899608a7c17fbf4f953f50474e/src/transformers/models/qwen2_vl/modeling_qwen2_vl.py#L203-L245
Finished the TODO left in #175. Complete feature request #165.
Testing Done
make test
to ensure correctnessmake checkstyle
to ensure code stylemake test-convergence
to ensure convergence