* implement LoRA / QLoRA - example of using MLX to fine-tune an LLM with low rank adaptation (LoRA) for a target task - see also https://arxiv.org/abs/2106.09685 - based on https://github.com/ml-explore/mlx-examples/tree/main/lora * add some command line flags I found useful during use - --quiet -- don't print decorator text, just the generated text - --prompt @/tmp/file.txt -- load prompt from file * user can specify path to model OR model identifier in huggingface * update mlx-swift reference Co-authored-by: Ashraful Islam <ashraful.meche@gmail.com> Co-authored-by: JustinMeans <46542161+JustinMeans@users.noreply.github.com>
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 and generates text from a given prompt.
-
LinearModelTraining: An example that trains a simple linear model.
-
llm-tool: A command line tool for generating text using a variety of LLMs available on the Hugging Face hub.
-
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 MLXLLM and MLXMNIST libraries
The MLXLLM and MLXMNIST 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 library or both libraries to the target as a dependency.
.target(
name: "YourTargetName",
dependencies: [
.product(name: "LLM", 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.