Skip to content

ml-explore/mlx-swift-examples

Repository files navigation

MLX Swift Examples

Example MLX Swift programs.

  • MNISTTrainer: An example that runs on both iOS and macOS that downloads MNIST training data and trains a LeNet.

  • LLMEval: An example that runs on both iOS and macOS that downloads an LLM and tokenizer from Hugging Face and generates text from a given prompt.

  • VLMEval: An example that runs on iOS, macOS and visionOS to download a VLM and tokenizer from Hugging Face and analyzes the given image and describe it in text.

  • LinearModelTraining: An example that trains a simple linear model.

  • StableDiffusionExample: An example that runs on both iOS and macOS that downloads a stable diffusion model from Hugging Face and and generates an image from a given prompt.

  • llm-tool: A command line tool for generating text using a variety of LLMs available on the Hugging Face hub.

  • image-tool: A command line tool for generating images using a stable diffusion model from Hugging Face.

  • mnist-tool: A command line tool for training a a LeNet on MNIST.

Running

The application and command line tool examples can be run from Xcode or from the command line:

./mlx-run llm-tool --prompt "swift programming language"

See also:

Installation of libraries

The MLXLLM, MLXVLM, MLXLMCommon, MLXMNIST, MLXEmbedders, and StableDiffusion libraries in the example repo are available as Swift Packages.

Add the following dependency to your Package.swift

.package(url: "https://github.com/ml-explore/mlx-swift-examples/", branch: "main"),

Then add one or more libraries to the target as a dependency:

.target(
    name: "YourTargetName",
    dependencies: [
        .product(name: "MLXLLM", package: "mlx-swift-examples")
    ]),

Alternatively, add https://github.com/ml-explore/mlx-swift-examples/ to the Project Dependencies and set the Dependency Rule to Branch and main in Xcode.