Skip to main content
Log in

MAX FAQ

We tried to anticipate your questions about MAX on this page. If this page doesn't answer all your questions, please ask us on our Discord channel or on the Modular forum.

Distribution

What are the system requirements?

  • macOS Ventura (13) or later
  • Apple silicon (M1/M2/M3/M4 processor)
  • Python 3.9 - 3.12
  • Xcode or Xcode Command Line Tools

Why bundle Mojo with MAX?

Integrating Mojo and MAX into a single package is the best way to ensure interoperability between Mojo and MAX for all users, and avoid version conflicts that happen when installing them separately.

We built Mojo as a core technology for MAX, and you can use it to extend MAX Engine, so MAX clearly depends on Mojo. On the other hand, writing Mojo code that runs on both CPUs and GPUs (and other accelerators) requires runtime components and orchestration logic that falls outside the domain of Mojo, and into the domain of MAX. That is, MAX isn't just a framework for AI development, it's also a framework for general heterogeneous compute. As such, writing Mojo programs that can execute across heterogeneous hardware depends on MAX.

Nothing has changed for Mojo developers—you can still build and develop in Mojo like you always have. The only difference is that you're now able to seamlessly step into general-purpose GPU programming (coming soon).

Will MAX be open-sourced?

We want to contribute a lot to open source, but we also want to do it right. Our team has decades of experience building open-source projects, and we have learned that the important thing is to create an inclusive and vibrant community, and that takes a lot of work. We will need to figure out the details, but as we do so, we will share more. Please stay tuned.

Does the MAX SDK collect telemetry?

Yes, the MAX SDK collects basic system information, session durations, compiler events, and crash reports that enable us to identify, analyze, and prioritize issues. The MAX container for model serving also collects performance metrics such as time to first token and input processing time.

This telemetry is crucial to help us quickly identify problems and improve our products for you. Without this telemetry, we would rely solely on user-submitted bug reports, which are limited and would severely limit our performance insights.

You can opt-out of some telemetry, such as compiler events and crash reports. However, package install/update/uninstall events, basic system information,and session durations (the amount of time spent running MAX Engine) cannot be disabled (see the MAX SDK terms).

To disable local telemetry, see the following section. To disable serving telemetry, see the MAX container documentation.

Disable telemetry with magic

When using Magic, telemetry is configured separately for each project. To disable telemetry for compiler events and crash reports, run this command in your project environment:

magic telemetry --disable
magic telemetry --disable

For details, see the magic telemetry docs.

Installation

Can I install both stable and nightly builds?

Yes, when you use the Magic CLI, it's safe and easy to use the stable and nightly builds for different projects, each with their own virtual environment and package dependencies.

To install nightly builds, see the MAX install guide or get started with Mojo.

How do I uninstall everything?

It depends on whether you installed using the modular CLI (deprecated) or the magic CLI.

If you installed with magic

To remove the MAX/Mojo packages you've installed with magic, delete the project paths that you created with magic init or the paths that contain a pixi.toml or mojoproject.toml file.

To remove the magic tool, delete the magic binary:

rm ~/.modular/bin/magic
rm ~/.modular/bin/magic

That's it.

If you installed with modular (deprecated)

To uninstall everything, including the modular tool itself, first use the modular uninstall command to remove the max or mojo packages and configurations:

modular uninstall max
modular uninstall max

That removes the executable tools and configurations, but it leaves the MAX Python package, the Modular CLI tool, and some other files.

To remove everything else, use these commands:

  1. Uninstall the MAX Python package. You can do this in one of two ways:

    • Delete your virtual environment completely, which removes the max-engine Python packages along with any other dependencies. For example:

      rm -rf ~/max-venv
      rm -rf ~/max-venv
    • Or, keep the virtual environment and delete just the max-engine packages inside:

      source ~/max-venv/bin/activate
      source ~/max-venv/bin/activate
      pip uninstall max-engine max-engine-libs -y
      pip uninstall max-engine max-engine-libs -y
  2. Uninstall the modular CLI:

    brew uninstall modular
    brew uninstall modular
  3. Delete the Modular home directory:

    rm -rf ~/.modular
    rm -rf ~/.modular

That should do it for situations in which you're troubleshooting your installation and want to reinstall from scratch.

If you want to remove absolutely all trace of MAX, here are a few more actions:

  • Delete the lines that mention MODULAR_HOME and .modular in ~/.bash_rc, ~/.bash_profile, or ~/.zshrc.

  • Remove the Modular repository name:

    brew untap modularml/packages/modular
    brew untap modularml/packages/modular
  • If you used Jupyter notebooks with Mojo, delete the Mojo kernels:

    jupyter kernelspec list
    jupyter kernelspec list
    jupyter kernelspec remove <KERNEL_NAME>
    jupyter kernelspec remove <KERNEL_NAME>
  • Uninstall the Mojo VS Code extension via the VS Code extensions tab.

Functionality

What types of models does MAX support and from which training frameworks?

Primarily we support PyTorch, ONNX, and MAX Graph models. However, you can convert a wide range of other other model formats to ONNX format, including models from TensorFlow, Keras, Scikit-Learn, and more. For more information, read about our supported model formats.

Does MAX support quantization and sparsity?

It supports some quantized models today (models with Int data types, and we are working to add support for more) and we will be adding support for sparsity soon.

If you're building a model with MAX Graph, you can quantize your model with several different quantization encodings.

Will MAX support distributed inference of large models?

Yes, it will support executing large models that do not fit into the memory of a single device. This isn't available yet, so stay tuned!

Can the runtime be separated from model compilation (for edge deployment)?

Yes, our runtime (and our entire stack) is designed to be modular. It scales down very well, supports heterogeneous configs, and scales up to distributed settings as well. That being said, this isn't available yet, but we'll share details about more deployment scenarios we support over time.