Hub documentation
Использование MLX в Hugging Face
Использование MLX в Hugging Face
MLX — это фреймворк для обучения и обслуживания моделей на процессорах Apple silicon, разработанный Apple Machine Learning Research.
В комплекте с ним поставляется множество примеров:
- Генерация текста с помощью MLX-LM и генерация текста с помощью MLX-LM для моделей в формате GGUF.
- Генерация текста в больших масштабах с помощью LLaMA.
- Допобучение с LoRA.
- Генерация изображений с помощью Stable Diffusion.
- Распознавание речи с помощью Whisper от OpenAI.
Исследование 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>