-
-
Notifications
You must be signed in to change notification settings - Fork 7.7k
[Model] support MiniMax-VL-01 model #16328
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
Merged
Merged
Changes from all commits
Commits
Show all changes
291 commits
Select commit
Hold shift + click to select a range
166efb2
fix code
qscqesze ec91d9a
fix code
qscqesze 91551ca
fix code
qscqesze 4aa950d
fix code
qscqesze 5fb9ffc
fix code
qscqesze 173c9a0
fix code
qscqesze 9c2b6e2
fix bug
qscqesze ac1b7e2
fix code
qscqesze 789dd0e
fix code
qscqesze 1cdd2cf
fix code
qscqesze d616131
fix code
qscqesze 06fce4a
fix
qscqesze 7a5c1f5
fix code
qscqesze 509d5fc
fix code
qscqesze 40d9075
fix code
qscqesze 0f3ab18
fix code
qscqesze 999a3ab
fix code
qscqesze 4db1ba8
fix code
qscqesze 37fc348
fix code
qscqesze 0fd255b
fix code
qscqesze 415926e
fix code
qscqesze fa150a1
fix code
qscqesze 18d8ca3
fix code
qscqesze 3245ca8
fix code
qscqesze e701618
fix code
qscqesze 86e7656
fix code
qscqesze 4954958
fix code
qscqesze 4efc192
fix code
qscqesze a855bbe
fix code
qscqesze 6976391
fix code
qscqesze 69db01a
fix code
qscqesze 9421581
fix code
qscqesze 27ccae4
fix code
qscqesze 540cd96
fix code
qscqesze ac84a09
fix code
qscqesze df2e97b
fix code
qscqesze 0d7424f
fix code
qscqesze a1aa44c
fix code
qscqesze b64e156
fix code
qscqesze ee7f68d
fix code
qscqesze dfa4361
fix code
qscqesze 87bbf9b
fix code
qscqesze 153c34a
fix code
qscqesze 79251db
fix code
qscqesze 3e3d16e
fix code
qscqesze fe6271c
fix code
qscqesze c8b0c18
fix code
qscqesze 9c2cbb6
fix code
qscqesze cd882eb
fix code
qscqesze bc753a0
fix code
qscqesze 2f20b64
fix code
qscqesze 9c82188
fix code
qscqesze e7514d5
fix code
qscqesze 3746251
fix code
qscqesze 1fd388c
fix code
qscqesze 641ca08
fix code
qscqesze d27bc8d
fix code
qscqesze 69739f4
fix code
qscqesze 0961a29
fix code
qscqesze d95adbc
fix code
qscqesze 857e78e
fix code
qscqesze a4b4ab1
fix code
qscqesze 4dd8722
fix code
qscqesze be64010
fix code
qscqesze cc59771
fix code
qscqesze 41eede7
fix image
qscqesze 28e5f83
fix code
qscqesze 2ae6a30
fix code
qscqesze cb12273
fix code
qscqesze c35403f
fix code
qscqesze d8cf84c
add image token
qscqesze e45cbf8
fix code
qscqesze 47464d1
fix code
qscqesze 6086190
fix code
qscqesze 8183e1b
fix code
qscqesze 0e08d41
fix code
qscqesze 17b31f9
fix code
qscqesze 0c38058
fix code
qscqesze 87a1410
fix code
qscqesze e141853
fix code
qscqesze a38b04d
fix code
qscqesze 1c21295
fix code
qscqesze 48232ec
fix code
qscqesze ca3390e
fix code
qscqesze 9a13af6
fix code
qscqesze 7397a4a
add
qscqesze 1d21b15
fix code
qscqesze 59a98a0
fix code
qscqesze 48a975d
fix code
qscqesze 4b4c81f
fix code
qscqesze 4f8bc81
fix code
qscqesze 6425531
fix code
qscqesze 69cf8d4
fix code
qscqesze c6f3fcb
fix code
qscqesze 9751164
fix code
qscqesze e2bab67
fix code
qscqesze c32a767
fix ce
qscqesze dad312c
ix code
qscqesze 0a65921
fix code
qscqesze 971753c
fix code
qscqesze 019626d
fix code
qscqesze 0310224
fix code
qscqesze b464cb9
fix pixel number
qscqesze fc25ee5
fix code
qscqesze ee494ab
fix ce
qscqesze ab2aef2
fix code
qscqesze 9e0eabc
fix code
qscqesze 75d5fff
fix code
qscqesze 04afbc5
fix code
qscqesze 07d4675
fix code
qscqesze 5341027
fix code
qscqesze bdfa8ef
fix code
qscqesze 0925313
fix code
qscqesze 4d5948a
fix code
qscqesze b5f1125
fix code
qscqesze 198f3aa
fix code
qscqesze f56c799
fix code
qscqesze dc1ab92
fix code
qscqesze 2092aff
fix code
qscqesze e2be301
fix code
qscqesze 2785b3c
fix code
qscqesze 7f42d0c
fix code
qscqesze 2a41bae
fix code
qscqesze a9c8bd5
fix code
qscqesze 1cb8bc3
fix code
qscqesze dcc3a58
fix code
qscqesze 65ff912
fix code
qscqesze e5d7f4b
fix code
qscqesze 9e416ad
fix code
qscqesze 4bc93e4
fix code
qscqesze 27c1835
fix up processor
qscqesze 54b9b82
fix code
qscqesze 2128b37
fix code
qscqesze f9bce2f
fix code
qscqesze de30b06
fix code
qscqesze f98a6f0
fix code
qscqesze 9bed82d
add code
qscqesze 2af16ea
fix code
qscqesze 9c11ace
fix code
qscqesze d242762
fix code
qscqesze 77db27d
fix code
qscqesze 705e8b2
change model
qscqesze 5a2677c
fix code
qscqesze 8f2ef44
fix code
qscqesze 54efe71
fix code
qscqesze f71e00f
fix code
qscqesze 589bc89
fix code
qscqesze 610e6fd
fix code
qscqesze f705a71
fix code
qscqesze 74fe462
fix code
qscqesze 2449d22
fix code
qscqesze 9776926
fix code
qscqesze b743790
fix llava
qscqesze da7ff3f
fix code
qscqesze 069efed
fix code
qscqesze 104f92e
fix code
qscqesze 09842c0
fix import
qscqesze 399c373
fix code
qscqesze 5c701bf
fix code
qscqesze 14b246f
fix code
qscqesze 71a7bf0
fix code
qscqesze f8c8f54
fix code
qscqesze d404d25
fix code
qscqesze 088c8de
fix code
qscqesze 89efb39
fix code
qscqesze 84ff3e2
fix code
qscqesze fc0ccf8
fix code
qscqesze 667f7a9
fix code
qscqesze bcd0744
fix code
qscqesze 8016ff9
fix code
qscqesze bef469a
fix code
qscqesze 6b396ff
fix code
qscqesze 9f3daab
fix code
qscqesze 9b9e82b
Refactored the code, optimized import order, fixed comments and forma…
qscqesze 6a2661e
Merge branch 'main' into qingjun/vl
qscqesze d6cd217
fix import bug
qscqesze f98c8e2
fix import bug #2
qscqesze f3837e9
fix import
qscqesze 5b28dd8
fix code
qscqesze 75d9714
fix config
qscqesze 0fa7914
format files
qscqesze b5f20e1
Removed unused files, including minimax_image_processer.py and minima…
qscqesze d25e9f7
Added support for the MiniMax-VL-01 model in the test files, and remo…
qscqesze 8d5d9bf
Added SPDX license identifiers to minimax_image_processer.py and mini…
qscqesze f44ea9a
Deleted the minimax_image_processer.py file and cleaned up redundant …
qscqesze 653c349
Updated the docstrings in the test files to ensure that MiniMaxVL01Mu…
qscqesze 454e015
fix code update
qscqesze 5bede72
format code
qscqesze d3431f8
fix code
qscqesze 76606f7
fix code
qscqesze 5dda227
Merge branch 'main' into qingjun/vl
qscqesze 467e062
fix code
qscqesze cc7ee27
fix code
qscqesze 1e7eaae
fix code
qscqesze 85ae307
fix comments
qscqesze fdc8e32
fix code
qscqesze 07ebdc6
fix code
qscqesze 53d11e1
fix code&fix up
qscqesze 193f35e
fix code
qscqesze e909429
fix test config
qscqesze e26ca62
fix dummy run
qscqesze 55419cb
fix code
qscqesze 2b768d3
fix code
qscqesze cbe89ab
fix code
qscqesze 98c9403
fix code
qscqesze 72647c6
fix code
qscqesze 7c1244c
fix code
qscqesze 1797d48
fix special case
qscqesze 5b7e382
add log
qscqesze 4ce41f2
fix code
qscqesze 4d9b4ac
fix code
qscqesze 31c4b4b
fix code
qscqesze 85e4d11
fix code
qscqesze 0424185
fix code
qscqesze dbb0e9d
fix code
qscqesze e831284
fix code
qscqesze 7ae14db
fix code
qscqesze 76f26fb
fix code
qscqesze 6456971
fix code
qscqesze 6663b4e
fix code
qscqesze 9da4960
Merge branch 'main' into qingjun/vl
qscqesze c1aafbb
fix code
qscqesze cec44db
fix code
qscqesze 4dd3781
fix code
qscqesze c5e910e
fix function
qscqesze 79b0baf
fix bug
qscqesze ea79083
fix bug
qscqesze 4048fb0
fix code
qscqesze 686c56c
fix code
qscqesze 3c18bf5
fix code
qscqesze 656b516
fix code
qscqesze 7b5ff17
fix code
qscqesze e57d009
fix code
qscqesze c4f3cef
fix code
qscqesze 6ba30ea
fix code
qscqesze 273278e
add for test
qscqesze 77e2824
add for test
qscqesze 2494e16
fix code
qscqesze 3990d65
fix bug
qscqesze c4f1225
fix code
qscqesze 80060cb
fix code
qscqesze 2c39391
fix code
qscqesze b6f26cf
fix code
qscqesze 25d5d66
add test
qscqesze 9ba0a93
fix code
qscqesze 7170f4a
fix code
qscqesze baae72e
fix code
qscqesze a1c79ab
fix test
qscqesze 72d7c02
fix code
qscqesze 8f0aee4
fix code
qscqesze File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
import pytest | ||
from PIL import Image | ||
|
||
from vllm.multimodal import MULTIMODAL_REGISTRY | ||
from vllm.multimodal.parse import ImageSize | ||
from vllm.multimodal.processing import BaseMultiModalProcessor | ||
|
||
from ....conftest import _ImageAssets | ||
from ...utils import build_model_context | ||
|
||
|
||
@pytest.mark.parametrize("model_id", ["MiniMaxAI/MiniMax-VL-01"]) | ||
# yapf: enable | ||
@pytest.mark.parametrize("num_imgs", [1, 2]) | ||
def test_processor_override( | ||
image_assets: _ImageAssets, | ||
model_id: str, | ||
num_imgs: int, | ||
): | ||
ctx = build_model_context( | ||
model_id, | ||
mm_processor_kwargs=None, | ||
limit_mm_per_prompt={"image": num_imgs}, | ||
) | ||
processor = MULTIMODAL_REGISTRY.create_processor(ctx.model_config) | ||
prompt = "<image>" * num_imgs | ||
image = Image.new("RGB", size=(364, 364)) | ||
mm_data = {"image": [image] * num_imgs} | ||
|
||
processed_inputs = processor.apply(prompt, mm_data, {}) | ||
image_placeholders = processed_inputs["mm_placeholders"]["image"] | ||
|
||
assert len(image_placeholders) == num_imgs | ||
|
||
|
||
def _validate_image_prompt_replacements_one( | ||
processor: BaseMultiModalProcessor, | ||
num_imgs: int, | ||
failed_size_excs: list[tuple[ImageSize, Exception]], | ||
image_size: ImageSize, | ||
) -> None: | ||
prompt = "<image>" * num_imgs | ||
image = Image.new("RGB", size=image_size) | ||
mm_data = {"image": [image] * num_imgs} | ||
|
||
try: | ||
processed_inputs = processor.apply(prompt, mm_data, {}) | ||
|
||
image_placeholders = processed_inputs["mm_placeholders"]["image"] | ||
assert len(image_placeholders) == num_imgs | ||
|
||
except Exception as exc: | ||
failed_size_excs.append((image_size, exc)) | ||
|
||
|
||
def _test_image_prompt_replacements( | ||
processor, | ||
*, | ||
num_imgs: int, | ||
image_sizes: list[ImageSize], | ||
) -> None: | ||
|
||
failed_size_excs = list[tuple[ImageSize, Exception]]() | ||
|
||
for size in image_sizes: | ||
_validate_image_prompt_replacements_one(processor, num_imgs, | ||
failed_size_excs, size) | ||
|
||
if failed_size_excs: | ||
msg = "Found failing image sizes:" \ | ||
+ "\n========\n".join(f"[{size}]\n{exc}" | ||
for size, exc in failed_size_excs) | ||
raise AssertionError(msg) | ||
|
||
|
||
@pytest.mark.parametrize("model_id", ["MiniMaxAI/MiniMax-VL-01"]) | ||
@pytest.mark.parametrize("num_imgs", [1, 2]) | ||
def test_processor_prompt_replacements_regression(model_id, num_imgs): | ||
ctx = build_model_context( | ||
model_id, | ||
mm_processor_kwargs=None, | ||
limit_mm_per_prompt={"image": num_imgs}, | ||
) | ||
processor = MULTIMODAL_REGISTRY.create_processor(ctx.model_config) | ||
|
||
image_ratios = [(171, 152), (184, 161), (198, 176), (333, 296), (369, 328), | ||
(488, 183), (2560, 1669)] | ||
image_sizes = [ | ||
size for w, h in image_ratios | ||
for size in [ImageSize(w, h), ImageSize(h, w)] | ||
] | ||
|
||
_test_image_prompt_replacements( | ||
processor, | ||
num_imgs=num_imgs, | ||
image_sizes=image_sizes, | ||
) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.