Multimodal Mistral#502
Merged
flaviabeo merged 49 commits intoFeb 12, 2026
Merged
Conversation
Signed-off-by: Rashed Z. Bhatti, PhD <rzbhatti@us.ibm.com>
Signed-off-by: Rashed Z. Bhatti, PhD <rzbhatti@gmail.com>
Signed-off-by: Rashed Z. Bhatti, PhD <rzbhatti@gmail.com>
Signed-off-by: Rashed Z. Bhatti, PhD <rzbhatti@gmail.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Closed
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
10c4661 to
9ac3391
Compare
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Gaurav-Kumbhat <Gaurav.Kumbhat@ibm.com>
Signed-off-by: Gaurav-Kumbhat <Gaurav.Kumbhat@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Gaurav-Kumbhat <Gaurav.Kumbhat@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Gaurav-Kumbhat <Gaurav.Kumbhat@ibm.com>
Signed-off-by: Gaurav-Kumbhat <Gaurav.Kumbhat@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
cca3a3f to
a773da4
Compare
Signed-off-by: Gaurav-Kumbhat <Gaurav.Kumbhat@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
ac47f5c to
1018bf8
Compare
Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com>
flaviabeo
approved these changes
Feb 6, 2026
flaviabeo
left a comment
Collaborator
There was a problem hiding this comment.
Tested locally, and the equivalence is running smoothly. Looks good to me!
flaviabeo
reviewed
Feb 12, 2026
flaviabeo
left a comment
Collaborator
There was a problem hiding this comment.
Run on deepview:
$ deepview --model_type fms --model mistralai/Mistral-Small-3.2-24B-Instruct-2506 --mode unsupported_op --show_details --output_file debugger.txt
Deepview output:
Loading complete, took 4.394s
Compiling model
Compiling complete, took 0.114s
DEEPVIEW========================================================================
DEEPVIEW No unsupported operations detected.
DEEPVIEW========================================================================
DeepView run completed
No unsupported ops detected in spyre.
joerunde
pushed a commit
to torch-spyre/sendnn-inference
that referenced
this pull request
Feb 17, 2026
# Description This PR adds support for multimodal (vision+text) for mistral models: 1. [mistralai/Mistral-Small-3.1-24B-Instruct-2503](https://huggingface.co/mistralai/Mistral-Small-3.1-24B-Instruct-2503) 2. [mistralai/Mistral-Small-3.2-24B-Instruct-2506](https://huggingface.co/mistralai/Mistral-Small-3.2-24B-Instruct-2506) This PR depends on FMS PR: foundation-model-stack/foundation-model-stack#502 ## Test result 1. Start vllm: ``` vllm serve --port=8080 --model=$MODEL_NAME --max_model_len=16384 --max-num-seqs=4 --tensor-parallel-size=4 --num-gpu-blocks-override=2080 --tokenizer_mode mistral --config_format mistral --enable-prefix-caching ``` 2. Curl command: Ref: https://huggingface.co/mistralai/Mistral-Small-3.2-24B-Instruct-2506 ``` curl -X POST "http://localhost:8080/v1/chat/completions" \ -H "Content-Type: application/json" \ -d '{ "model": "/models/mistralai/Mistral-Small-3.2-24B-Instruct-2506/", "messages": [ { "role": "system", "content": "You are Mistralw, a Large Language Model (LLM) created by Mistral AI, a French startup headquartered in Paris.\nYou power an AI assistant called Le Chat.\nYour knowledge base was last updated on 2023-10-01.\nThe current date is 2026-02-17.\n\nWhen you'\''re not sure about some information or when the user'\''s request requires up-to-date or specific data, you must use the available tools to fetch the information. Do not hesitate to use tools whenever they can provide a more accurate or complete response. If no relevant tools are available, then clearly state that you don'\''t have the information and avoid making up anything.\nIf the user'\''s question is not clear, ambiguous, or does not provide enough context for you to accurately answer the question, you do not try to answer it right away and you rather ask the user to clarify their request (e.g. \"What are some good restaurants around me?\" => \"Where are you?\" or \"When is the next flight to Tokyo\" => \"Where do you travel from?\").\nYou are always very attentive to dates, in particular you try to resolve dates (e.g. \"yesterday\" is 2026-02-16) and when asked about information at specific dates, you discard information that is at another date.\nYou follow these instructions in all languages, and always respond to the user in the language they use or request.\nNext sections describe the capabilities that you have.\n\n# WEB BROWSING INSTRUCTIONS\n\nYou cannot perform any web search or access internet to open URLs, links etc. If it seems like the user is expecting you to do so, you clarify the situation and ask the user to copy paste the text directly in the chat.\n\n# MULTI-MODAL INSTRUCTIONS\n\nYou have the ability to read images, but you cannot generate images. You cannot read nor transcribe audio files or videos.\n\n# TOOL CALLING INSTRUCTIONS\n\nYou may have access to tools that you can use to fetch information or perform actions. You must use these tools in the following situations:\n\n1. When the request requires up-to-date information.\n2. When the request requires specific data that you do not have in your knowledge base.\n3. When the request involves actions that you cannot perform without tools.\n\nAlways prioritize using tools to provide the most accurate and helpful response. If tools are not available, inform the user that you cannot perform the requested action at the moment." }, { "role": "user", "content": [ { "type": "text", "text": "What action do you think I should take in this situation? List all the possible actions and explain why you think they are good or bad." }, { "type": "image_url", "image_url": { "url": "https://static.wikia.nocookie.net/essentialsdocs/images/7/70/Battle.png/revision/latest?cb=20220523172438" } } ] } ] }' | json_pp ``` 3. Response ``` { "choices" : [ { "finish_reason" : "stop", "index" : 0, "logprobs" : null, "message" : { "annotations" : null, "audio" : null, "content" : "In this situation, you are playing a Pokémon game where your Pikachu (Level 42) is facing a wild Pidgey (Level 17). Here are the possible actions you can take and an analysis of each:\n\n1. **FIGHT**:\n - **Pros**: Pikachu is significantly higher level than the wild Pidgey, which suggests that it should be able to defeat Pidgey easily. This could be a good opportunity to gain experience points and possibly items or money.\n - **Cons**: There is always a small risk of Pikachu fainting, especially if Pidgey has a powerful move or a status effect that could hinder Pikachu. However, given the large level difference, this risk is minimal.\n\n2. **BAG**:\n - **Pros**: You might have items in your bag that could help in this battle, such as Potions, Poké Balls, or Berries. Using an item could help you capture the Pidgey or heal your Pikachu if needed.\n - **Cons**: Using items might not be necessary given the level difference. It could be more efficient to just fight and defeat the Pidgey quickly.\n\n3. **POKÉMON**:\n - **Pros**: You might have another Pokémon in your party that is better suited for this battle or that you want to gain experience. Switching Pokémon could also be strategic if you want to train a lower-level Pokémon.\n - **Cons**: Switching Pokémon might not be necessary since Pikachu is at a significant advantage. It could also waste time and potentially give Pidgey a turn to attack.\n\n4. **RUN**:\n - **Pros**: Running away could save time and conserve your Pokémon's health and resources. If you are in a hurry or do not need the experience or items, running away is a safe option.\n - **Cons**: Running away means you miss out on the experience points and potential items or money that you could gain from defeating the Pidgey. It also means you do not get the chance to capture the Pidgey if you wanted to.\n\n### Recommendation:\nGiven the significant level advantage, the best action is likely to **FIGHT**. This will allow you to quickly defeat the Pidgey, gain experience points, and possibly obtain items or money. If you are concerned about Pikachu's health, you could use an item from your **BAG** to heal it before or during the battle. Running away or switching Pokémon does not seem necessary in this situation.", "function_call" : null, "reasoning" : null, "reasoning_content" : null, "refusal" : null, "role" : "assistant", "tool_calls" : [] }, "stop_reason" : null, "token_ids" : null } ], .... } } ``` --------- Signed-off-by: Gaurav-Kumbhat <Gaurav.Kumbhat@ibm.com> Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com> Co-authored-by: Alex-Brooks <Alex.Brooks@ibm.com>
joerunde
pushed a commit
to torch-spyre/sendnn-inference
that referenced
this pull request
Feb 17, 2026
This PR adds support for multimodal (vision+text) for mistral models: 1. [mistralai/Mistral-Small-3.1-24B-Instruct-2503](https://huggingface.co/mistralai/Mistral-Small-3.1-24B-Instruct-2503) 2. [mistralai/Mistral-Small-3.2-24B-Instruct-2506](https://huggingface.co/mistralai/Mistral-Small-3.2-24B-Instruct-2506) This PR depends on FMS PR: foundation-model-stack/foundation-model-stack#502 1. Start vllm: ``` vllm serve --port=8080 --model=$MODEL_NAME --max_model_len=16384 --max-num-seqs=4 --tensor-parallel-size=4 --num-gpu-blocks-override=2080 --tokenizer_mode mistral --config_format mistral --enable-prefix-caching ``` 2. Curl command: Ref: https://huggingface.co/mistralai/Mistral-Small-3.2-24B-Instruct-2506 ``` curl -X POST "http://localhost:8080/v1/chat/completions" \ -H "Content-Type: application/json" \ -d '{ "model": "/models/mistralai/Mistral-Small-3.2-24B-Instruct-2506/", "messages": [ { "role": "system", "content": "You are Mistralw, a Large Language Model (LLM) created by Mistral AI, a French startup headquartered in Paris.\nYou power an AI assistant called Le Chat.\nYour knowledge base was last updated on 2023-10-01.\nThe current date is 2026-02-17.\n\nWhen you'\''re not sure about some information or when the user'\''s request requires up-to-date or specific data, you must use the available tools to fetch the information. Do not hesitate to use tools whenever they can provide a more accurate or complete response. If no relevant tools are available, then clearly state that you don'\''t have the information and avoid making up anything.\nIf the user'\''s question is not clear, ambiguous, or does not provide enough context for you to accurately answer the question, you do not try to answer it right away and you rather ask the user to clarify their request (e.g. \"What are some good restaurants around me?\" => \"Where are you?\" or \"When is the next flight to Tokyo\" => \"Where do you travel from?\").\nYou are always very attentive to dates, in particular you try to resolve dates (e.g. \"yesterday\" is 2026-02-16) and when asked about information at specific dates, you discard information that is at another date.\nYou follow these instructions in all languages, and always respond to the user in the language they use or request.\nNext sections describe the capabilities that you have.\n\n# WEB BROWSING INSTRUCTIONS\n\nYou cannot perform any web search or access internet to open URLs, links etc. If it seems like the user is expecting you to do so, you clarify the situation and ask the user to copy paste the text directly in the chat.\n\n# MULTI-MODAL INSTRUCTIONS\n\nYou have the ability to read images, but you cannot generate images. You cannot read nor transcribe audio files or videos.\n\n# TOOL CALLING INSTRUCTIONS\n\nYou may have access to tools that you can use to fetch information or perform actions. You must use these tools in the following situations:\n\n1. When the request requires up-to-date information.\n2. When the request requires specific data that you do not have in your knowledge base.\n3. When the request involves actions that you cannot perform without tools.\n\nAlways prioritize using tools to provide the most accurate and helpful response. If tools are not available, inform the user that you cannot perform the requested action at the moment." }, { "role": "user", "content": [ { "type": "text", "text": "What action do you think I should take in this situation? List all the possible actions and explain why you think they are good or bad." }, { "type": "image_url", "image_url": { "url": "https://static.wikia.nocookie.net/essentialsdocs/images/7/70/Battle.png/revision/latest?cb=20220523172438" } } ] } ] }' | json_pp ``` 3. Response ``` { "choices" : [ { "finish_reason" : "stop", "index" : 0, "logprobs" : null, "message" : { "annotations" : null, "audio" : null, "content" : "In this situation, you are playing a Pokémon game where your Pikachu (Level 42) is facing a wild Pidgey (Level 17). Here are the possible actions you can take and an analysis of each:\n\n1. **FIGHT**:\n - **Pros**: Pikachu is significantly higher level than the wild Pidgey, which suggests that it should be able to defeat Pidgey easily. This could be a good opportunity to gain experience points and possibly items or money.\n - **Cons**: There is always a small risk of Pikachu fainting, especially if Pidgey has a powerful move or a status effect that could hinder Pikachu. However, given the large level difference, this risk is minimal.\n\n2. **BAG**:\n - **Pros**: You might have items in your bag that could help in this battle, such as Potions, Poké Balls, or Berries. Using an item could help you capture the Pidgey or heal your Pikachu if needed.\n - **Cons**: Using items might not be necessary given the level difference. It could be more efficient to just fight and defeat the Pidgey quickly.\n\n3. **POKÉMON**:\n - **Pros**: You might have another Pokémon in your party that is better suited for this battle or that you want to gain experience. Switching Pokémon could also be strategic if you want to train a lower-level Pokémon.\n - **Cons**: Switching Pokémon might not be necessary since Pikachu is at a significant advantage. It could also waste time and potentially give Pidgey a turn to attack.\n\n4. **RUN**:\n - **Pros**: Running away could save time and conserve your Pokémon's health and resources. If you are in a hurry or do not need the experience or items, running away is a safe option.\n - **Cons**: Running away means you miss out on the experience points and potential items or money that you could gain from defeating the Pidgey. It also means you do not get the chance to capture the Pidgey if you wanted to.\n\n### Recommendation:\nGiven the significant level advantage, the best action is likely to **FIGHT**. This will allow you to quickly defeat the Pidgey, gain experience points, and possibly obtain items or money. If you are concerned about Pikachu's health, you could use an item from your **BAG** to heal it before or during the battle. Running away or switching Pokémon does not seem necessary in this situation.", "function_call" : null, "reasoning" : null, "reasoning_content" : null, "refusal" : null, "role" : "assistant", "tool_calls" : [] }, "stop_reason" : null, "token_ids" : null } ], .... } } ``` --------- Signed-off-by: Gaurav-Kumbhat <Gaurav.Kumbhat@ibm.com> Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com> Co-authored-by: Alex-Brooks <Alex.Brooks@ibm.com>
joerunde
pushed a commit
to torch-spyre/sendnn-inference
that referenced
this pull request
Feb 17, 2026
This PR adds support for multimodal (vision+text) for mistral models: 1. [mistralai/Mistral-Small-3.1-24B-Instruct-2503](https://huggingface.co/mistralai/Mistral-Small-3.1-24B-Instruct-2503) 2. [mistralai/Mistral-Small-3.2-24B-Instruct-2506](https://huggingface.co/mistralai/Mistral-Small-3.2-24B-Instruct-2506) This PR depends on FMS PR: foundation-model-stack/foundation-model-stack#502 1. Start vllm: ``` vllm serve --port=8080 --model=$MODEL_NAME --max_model_len=16384 --max-num-seqs=4 --tensor-parallel-size=4 --num-gpu-blocks-override=2080 --tokenizer_mode mistral --config_format mistral --enable-prefix-caching ``` 2. Curl command: Ref: https://huggingface.co/mistralai/Mistral-Small-3.2-24B-Instruct-2506 ``` curl -X POST "http://localhost:8080/v1/chat/completions" \ -H "Content-Type: application/json" \ -d '{ "model": "/models/mistralai/Mistral-Small-3.2-24B-Instruct-2506/", "messages": [ { "role": "system", "content": "You are Mistralw, a Large Language Model (LLM) created by Mistral AI, a French startup headquartered in Paris.\nYou power an AI assistant called Le Chat.\nYour knowledge base was last updated on 2023-10-01.\nThe current date is 2026-02-17.\n\nWhen you'\''re not sure about some information or when the user'\''s request requires up-to-date or specific data, you must use the available tools to fetch the information. Do not hesitate to use tools whenever they can provide a more accurate or complete response. If no relevant tools are available, then clearly state that you don'\''t have the information and avoid making up anything.\nIf the user'\''s question is not clear, ambiguous, or does not provide enough context for you to accurately answer the question, you do not try to answer it right away and you rather ask the user to clarify their request (e.g. \"What are some good restaurants around me?\" => \"Where are you?\" or \"When is the next flight to Tokyo\" => \"Where do you travel from?\").\nYou are always very attentive to dates, in particular you try to resolve dates (e.g. \"yesterday\" is 2026-02-16) and when asked about information at specific dates, you discard information that is at another date.\nYou follow these instructions in all languages, and always respond to the user in the language they use or request.\nNext sections describe the capabilities that you have.\n\n# WEB BROWSING INSTRUCTIONS\n\nYou cannot perform any web search or access internet to open URLs, links etc. If it seems like the user is expecting you to do so, you clarify the situation and ask the user to copy paste the text directly in the chat.\n\n# MULTI-MODAL INSTRUCTIONS\n\nYou have the ability to read images, but you cannot generate images. You cannot read nor transcribe audio files or videos.\n\n# TOOL CALLING INSTRUCTIONS\n\nYou may have access to tools that you can use to fetch information or perform actions. You must use these tools in the following situations:\n\n1. When the request requires up-to-date information.\n2. When the request requires specific data that you do not have in your knowledge base.\n3. When the request involves actions that you cannot perform without tools.\n\nAlways prioritize using tools to provide the most accurate and helpful response. If tools are not available, inform the user that you cannot perform the requested action at the moment." }, { "role": "user", "content": [ { "type": "text", "text": "What action do you think I should take in this situation? List all the possible actions and explain why you think they are good or bad." }, { "type": "image_url", "image_url": { "url": "https://static.wikia.nocookie.net/essentialsdocs/images/7/70/Battle.png/revision/latest?cb=20220523172438" } } ] } ] }' | json_pp ``` 3. Response ``` { "choices" : [ { "finish_reason" : "stop", "index" : 0, "logprobs" : null, "message" : { "annotations" : null, "audio" : null, "content" : "In this situation, you are playing a Pokémon game where your Pikachu (Level 42) is facing a wild Pidgey (Level 17). Here are the possible actions you can take and an analysis of each:\n\n1. **FIGHT**:\n - **Pros**: Pikachu is significantly higher level than the wild Pidgey, which suggests that it should be able to defeat Pidgey easily. This could be a good opportunity to gain experience points and possibly items or money.\n - **Cons**: There is always a small risk of Pikachu fainting, especially if Pidgey has a powerful move or a status effect that could hinder Pikachu. However, given the large level difference, this risk is minimal.\n\n2. **BAG**:\n - **Pros**: You might have items in your bag that could help in this battle, such as Potions, Poké Balls, or Berries. Using an item could help you capture the Pidgey or heal your Pikachu if needed.\n - **Cons**: Using items might not be necessary given the level difference. It could be more efficient to just fight and defeat the Pidgey quickly.\n\n3. **POKÉMON**:\n - **Pros**: You might have another Pokémon in your party that is better suited for this battle or that you want to gain experience. Switching Pokémon could also be strategic if you want to train a lower-level Pokémon.\n - **Cons**: Switching Pokémon might not be necessary since Pikachu is at a significant advantage. It could also waste time and potentially give Pidgey a turn to attack.\n\n4. **RUN**:\n - **Pros**: Running away could save time and conserve your Pokémon's health and resources. If you are in a hurry or do not need the experience or items, running away is a safe option.\n - **Cons**: Running away means you miss out on the experience points and potential items or money that you could gain from defeating the Pidgey. It also means you do not get the chance to capture the Pidgey if you wanted to.\n\n### Recommendation:\nGiven the significant level advantage, the best action is likely to **FIGHT**. This will allow you to quickly defeat the Pidgey, gain experience points, and possibly obtain items or money. If you are concerned about Pikachu's health, you could use an item from your **BAG** to heal it before or during the battle. Running away or switching Pokémon does not seem necessary in this situation.", "function_call" : null, "reasoning" : null, "reasoning_content" : null, "refusal" : null, "role" : "assistant", "tool_calls" : [] }, "stop_reason" : null, "token_ids" : null } ], .... } } ``` --------- Signed-off-by: Gaurav-Kumbhat <Gaurav.Kumbhat@ibm.com> Signed-off-by: Alex-Brooks <Alex.Brooks@ibm.com> Co-authored-by: Alex-Brooks <Alex.Brooks@ibm.com>
This was referenced Mar 3, 2026
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR does the following: