Hub documentation

Использование MLX в Hugging Face

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Использование MLX в Hugging Face

MLX — это фреймворк для обучения и обслуживания моделей на процессорах Apple silicon, разработанный Apple Machine Learning Research.

В комплекте с ним поставляется множество примеров:

Исследование MLX на Hub

Модели MLX можно найти, применив фильтр слева на странице моделей. Также существует открытое сообщество MLX, участники которого конвертируют и публикуют веса в формате MLX.

Благодаря интеграции MLX с Hugging Face Hub вы можете загружать модели MLX всего несколькими строками кода.

Установка

MLX поставляется как отдельный пакет, а для работы с большими языковыми моделями существует подпакет MLX-LM с интеграцией Hugging Face. Чтобы установить MLX-LM, вы можете использовать следующую однострочную установку через pip:

pip install mlx-lm

Подробнее об этом можно узнать здесь.

Если вы установите mlx-lm, вам не нужно устанавливать mlx. Если вы не хотите использовать mlx-lm, а только MLX, вы можете установить сам MLX следующим образом.

С помощью pip:

pip install mlx

С помощью conda:

conda install -c conda-forge mlx

Использование существующих моделей

MLX-LM содержит полезные утилиты для генерации текста. Следующая строка напрямую скачивает и загружает модель и начинает генерировать текст.

python -m mlx_lm.generate --model mistralai/Mistral-7B-Instruct-v0.2 --prompt "hello"

Полный список параметров генерации можно получить, выполнив

python -m mlx_lm.generate --help

Вы также можете загрузить модель и начать генерацию текста через Python, как показано ниже:

from mlx_lm import load, generate

model, tokenizer = load("mistralai/Mistral-7B-Instruct-v0.2")

response = generate(model, tokenizer, prompt="hello", verbose=True)

MLX-LM поддерживает популярные архитектуры LLM, включая LLaMA, Phi-2, Mistral и Qwen. Модели, отличные от поддерживаемых, можно легко скачать следующим образом:

Установка HF_XET_HIGH_PERFORMANCE=1 повышает пределы параллелизма и размеры буферов для машин с высокой пропускной способностью и как минимум 64 ГБ ОЗУ:

pip install -U huggingface_hub

export HF_XET_HIGH_PERFORMANCE=1
hf download --local-dir <LOCAL FOLDER PATH> <USER_ID>/<MODEL_NAME>

Конвертация и обмен моделями

Вы можете конвертировать, а при необходимости и квантовать, LLM с Hugging Face Hub следующим образом:

python -m mlx_lm.convert --hf-path mistralai/Mistral-7B-v0.1 -q 

Если вы хотите сразу загрузить модель после конвертации, вы можете сделать это следующим образом.

python -m mlx_lm.convert \
    --hf-path mistralai/Mistral-7B-v0.1 \
    -q \
    --upload-repo <USER_ID>/<MODEL_NAME>

Дополнительные ресурсы

Update on GitHub