-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Integrating custom models for Exo #937
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
base: main
Are you sure you want to change the base?
Integrating custom models for Exo #937
Conversation
|
Hi, I have successfully added a new Feature: Testing custom MLX models Can Someone please clone & run my fork to verify downloading a larger model like mlx-community/gpt-oss-20b-MXFP4-Q8? I don’t have enough RAM :/ |
|
Not sure why my VSCode Prettier auto I will probably create a new clean PR where I only change the required code blocks, to keep it clean, if it’s needed to Approve this feature request. |
|
Looks good! I wonder if we should directly add the model to the model cards instead of a separate KNOWN_MODELS but there's wider questions to be answered in there. |
|
As for prettier, I don't believe our current formatter extends to the dashboard so I don't particularly mind atm |
My idea was after the users tests it and verify, then we add it model_cards as official supported model. but yeah, can be skipped. |
|
Ok - gpt-oss-20b-MXFP4-Q8 did not work, but the download was completely fine, seems like an upstream problem. |
Yes I see the erorr. this might be more difficult than I thought. |
|
This isn't an issue for this PR - we need to bump mlx versions and test afaik. |
|
Ok it’s working. GPT-OSS- model loaded. However I had to adedd TEMPORARY overrides as in my commit: 2e446ab Not ideal, we need to wait for official mlx support version. |
|
GPT-oss-20b has no chat_template.jinja resulting in artifacts and instructions appearing in chat: |
|
appreciate the enthusiasm but can we keep this pr down to custom models? the gpt-oss fix is a separate issue. |
This reverts commit 2e446ab.
|
Tested this branch and ran into this, would be useful to be also download models that you converted yourself. Model ID must start with mlx-community/ |
You want to run models outside of mlx-community? they are not optimized for exo. |
|
Yes, it is a MLX converted model.
Sent from Android device
Op 2 jan 2026 21:10 schreef Nightguarder ***@***.***>:
[https://avatars.githubusercontent.com/u/73370044?s=20&v=4]nightguarder left a comment (exo-explore/exo#937)<#937 (comment)>
Tested this branch and ran into this, would be useful to be also download models that you converted yourself.
Model ID must start with mlx-community/
You want to run models outside of mlx-community? they are not optimized for exo.
—
Reply to this email directly, view it on GitHub<#937 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AIIULKDF5AHHSXTJJFWMD3D4E3GA3AVCNFSM6AAAAACPT3UOTGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTOMBWGE2DQMRRG4>.
You are receiving this because you commented.Message ID: ***@***.***>
|
Ok, You can now try your custom model. Please let me know if it works. |
|
Let me know when a good time for re-review is, I'm keen to get this integrated next week. |
|
I'll test it tomorrow.
Sent from Android device
Op 4 jan 2026 17:58 schreef Evan Quiney ***@***.***>:
[https://avatars.githubusercontent.com/u/13599445?s=20&v=4]Evanev7 left a comment (exo-explore/exo#937)<#937 (comment)>
Let me know when a good time for re-review is, I'm keen to get this integrated next week.
—
Reply to this email directly, view it on GitHub<#937 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AIIULKG4IROVZ6IS6JGOWBT4FFBEPAVCNFSM6AAAAACPT3UOTGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTOMBYGI2DQOBSGU>.
You are receiving this because you commented.Message ID: ***@***.***>
|
|
Hi,
I checked out the latest code but I still receive this issue after uv rebuilding:
DOWNLOAD
Note: Downloading a custom model will automatically place it on available nodes.
Model ID must start with mlx-community/
Verzonden vanaf Outlook voor Mac
Van: Gert-Jan de Boer ***@***.***>
Datum: zondag, 4 januari 2026 om 21:30
Aan: exo-explore/exo ***@***.***>
CC: exo-explore/exo ***@***.***>, Comment ***@***.***>
Onderwerp: Re: [exo-explore/exo] Integrating custom models for Exo (PR #937)
I'll test it tomorrow.
Sent from Android device
Op 4 jan 2026 17:58 schreef Evan Quiney ***@***.***>:
[https://avatars.githubusercontent.com/u/13599445?s=20&v=4]Evanev7 left a comment (exo-explore/exo#937)<#937 (comment)>
Let me know when a good time for re-review is, I'm keen to get this integrated next week.
—
Reply to this email directly, view it on GitHub<#937 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AIIULKG4IROVZ6IS6JGOWBT4FFBEPAVCNFSM6AAAAACPT3UOTGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTOMBYGI2DQOBSGU>.
You are receiving this because you commented.
|
|
Turns out I needed to rebuild the dashboard, my bad. The download works fine now.
[image.png]
The model runs fine on our Mac Studio.
Thank you!
Verzonden vanaf Outlook voor Mac
Van: Gert-Jan de Boer ***@***.***>
Datum: maandag, 5 januari 2026 om 13:08
Aan: exo-explore/exo ***@***.***>
CC: exo-explore/exo ***@***.***>, Comment ***@***.***>
Onderwerp: Re: [exo-explore/exo] Integrating custom models for Exo (PR #937)
Hi,
I checked out the latest code but I still receive this issue after uv rebuilding:
DOWNLOAD
Note: Downloading a custom model will automatically place it on available nodes.
Model ID must start with mlx-community/
Verzonden vanaf Outlook voor Mac
Van: Gert-Jan de Boer ***@***.***>
Datum: zondag, 4 januari 2026 om 21:30
Aan: exo-explore/exo ***@***.***>
CC: exo-explore/exo ***@***.***>, Comment ***@***.***>
Onderwerp: Re: [exo-explore/exo] Integrating custom models for Exo (PR #937)
I'll test it tomorrow.
Sent from Android device
Op 4 jan 2026 17:58 schreef Evan Quiney ***@***.***>:
[https://avatars.githubusercontent.com/u/13599445?s=20&v=4]Evanev7 left a comment (exo-explore/exo#937)<#937 (comment)>
Let me know when a good time for re-review is, I'm keen to get this integrated next week.
—
Reply to this email directly, view it on GitHub<#937 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AIIULKG4IROVZ6IS6JGOWBT4FFBEPAVCNFSM6AAAAACPT3UOTGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTOMBYGI2DQOBSGU>.
You are receiving this because you commented.
|
Great News! Yes you need to update the frontend via |
|
https://huggingface.co/gjdeboer/Foundation-Sec-1.1-8B-Instruct-mlx-4Bit
Runs just as well as in mlx-gui.
Verzonden vanaf Outlook voor Mac
Van: Nightguarder ***@***.***>
Datum: maandag, 5 januari 2026 om 16:21
Aan: exo-explore/exo ***@***.***>
CC: Gert-Jan de Boer ***@***.***>, Comment ***@***.***>
Onderwerp: Re: [exo-explore/exo] Integrating custom models for Exo (PR #937)
[https://avatars.githubusercontent.com/u/73370044?s=20&v=4]nightguarder left a comment (exo-explore/exo#937)<#937 (comment)>
Turns out I needed to rebuild the dashboard, my bad. The download works fine now. [image.png] The model runs fine now.
Great News! Yes you need to update the frontend via cd dashboard && npm run build. What model did you use? No problems with unknown messages appearing in chat? Thanks
—
Reply to this email directly, view it on GitHub<#937 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AIIULKBMFC6CLGOJ3RCIRB34FJ6QVAVCNFSM6AAAAACPT3UOTGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTOMJQHA3TANBRHE>.
You are receiving this because you commented.
|
|
@Evanev7 However I had some issues after pulling the latest changes after your commit Regarding this commit do you plan to fix the download model status? I find it rather disturbing to show all the default models not being downloaded. Just hide them under a tab |
|
It's not my favourite, but it's not really my code. WIP I think. |
@Evanev7 I would like to fix it but this PR already has a lot of changes and we should not complicate things further. |
|
Agreed - let's get this merged and we can iterate |
JakeHillion
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few things before we can consider merging this:
- There are merge conflicts in model_cards and the Svelte file. I am able to fix the model card ones quite easily, but the Svelte changes were significantly overlapping. Please push a merge commit for that.
- There are several unrelated changes in here. Please run
git rm -r .vscode/,git checkout main dashboard/package-lock.jsonand commit at least. - Run
nix fmtand commit it. - There are lots of unrelated changes spread throughout this. I left a comment on a specific one. After the above steps, please push this PR and take a look through the "Files Changed" on GitHub. If there are any changes which aren't adding integration for custom models, please remove them from the PR so they don't show up anymore.
Thanks for the submission, I look forward to reviewing it in detail once it's merged & cleaned up!
| topologyData, | ||
| type DownloadProgress, | ||
| placeInstance, | ||
| } from "$lib/stores/app.svelte"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These quote changes, for example, shouldn't be in this PR.

Custom MLX Models Support - Issue #918
Motivation
Fixes Issue #918: Enable users to run custom MLX based models from
mlx-communityon Hugging Face without manual code updates.What Changed
1. Frontend UI for Custom Models
Commit: “Add custom models to dashboard"
/custom_modelsAPI2. Tests
Commit: “Integrate new test”
@pytestare available insrc/exo/worker/tests/test_custom_model.pyfolderwith future possibility to run them on CI/CD Pipeline on Github file (
.github/workflows/custom_models.yml)3. Persistent Storage & Model Registration
Commit: "Persist storage for custom models"
~/.exo/custom_models.jsonduring download4. Safe Downloading logic
Commit: “SAFE model registration”
download_onlyinstances until a task is received, while model downloads continue in the background.~/.exo/custom_models.jsonimmediately when the download starts, ensuring they are recognized by the system right away.Why It Works
This implementation enables dynamic custom model loading without requiring manual modifications to model_cards.
Users can:
mlx-communitybased model via the dashboard from HuggingFaceKnown Issues
1. Missing
chat_template.jinjafor Some ModelsSome
mlx-communitymodels don't include a chat template, causing the model to output its Instructions instead of formatted chat responses. This is a model-specific issue withmlx-communitymodels, not a bug in our implementation.Workaround: Use models that include proper chat templates (e.g.,
mlx-community/Qwen2.5-0.5B-Instruct-4bit) or add a chat template.jinja yourself.Testing
Note that manual rebuild of dashboard
cd dashboard && npm run buildis neededManual Testing
mlx-community/Qwen2.5-14B-Instruct-8bit~/.exo/custom_models.jsonAutomated Testing
src/exo/worker/tests/test_custom_model.py.github/workflows/test_custom_models.ymlFiles Modified