Running PyTorch, TensorFlow, and JAX on Mac (Apple Silicon)
If you have a Mac with Apple Silicon (M1 chip) and want to run machine learning libraries like PyTorch, TensorFlow, and JAX, you’ll need to follow a few steps to set up your environment.
1. Install Homebrew
Homebrew is a package manager for macOS that allows you to easily install and manage software packages. Open Terminal and run the following command to install Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2. Install Miniforge
Miniforge is a distribution of Anaconda that is optimized for Apple Silicon. You can install Miniforge by running the following commands in Terminal:
brew install wget
wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh
bash Miniforge3-MacOSX-arm64.sh
3. Create a new conda environment
Once Miniforge is installed, create a new conda environment for running PyTorch, TensorFlow, and JAX:
conda create -n ml-env python
conda activate ml-env
4. Install PyTorch, TensorFlow, and JAX
Now you can install the machine learning libraries in your conda environment:
conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch
pip install tensorflow jax
5. Test your setup
Finally, you can test your setup by importing PyTorch, TensorFlow, and JAX in a Python script and running some basic examples to make sure everything is working correctly.
With these steps, you should be able to run PyTorch, TensorFlow, and JAX on your Mac with Apple Silicon. Happy coding!
amazing stuff! you saved me a lot of frustration! thanks you soo much!
jax.random.PRNGKey generator seems does not compile properly on my M1 mac. My config is: jax-metal==0.0.3, jaxlib=0.4.10, jax==0.4.11, which is the suggested version from Apple. Did you face similar issue on M3?
TensorFlow won't work for most folks. Its support on mac metal is notoriously bad and outdated, there are plenty posts on StackOverflow and Reddit about this. You will have to manually match the versions of python and main libraries to have it work. Naive video…
Wow now my office's M1 ultra will be useful to train LLM. Thanks
Thank you for this video! For those, who wonder – on M1 Max 32gb RAM and 32 GPU cores – timings on CPU were 18ms (instead 14.4ms in video on M3 Max), but on GPU – 3.3ms – even slightly better.
In fact Metal 3 runs on AMD GPU Intel Macs as well
This is exactly the kind of thing I’m struggling with. For example, pyannote.audio for speaker segmentation and identification. It’s blazing fast using an Nvidia GPU… 1 min for 1 hour of audio. On Mac though? Horrendous. Basically 1 hour of audio takes 1 hour give or take to process. I’ve tried specifying MPS with PyTorch, and also looking at specialized models with MLX from Apple/hugging face. Any thoughts on this issue?
My Mac is M1 got it in 2021.
Will this work on MacBook 2017?
Dear sir, may I kindly ask you which model of Mac are you using? in terms of chip specs 🙂
Thanks a lot for the video!
Nvidia RTX or Apple Silicon, which of these two is preferred for LLM applications?
I'm getting an error when trying to following your instructions: No matching distribution found for tensorflow-metal
hey can u make tutorial how to install opencv library on mac? ive been trying and always failed.
This channel is underrated
Thank you for the specific install instructions. Python dependencies can be so tricky, and as you pointed out official docs are often incomplete