TensorFold: инференс языковых моделей на Apple Silicon и NVIDIA GPU
TensorFold — это движок для инференса языковых моделей на Apple Silicon и NVIDIA GPU с использованием Metal и CUDA. Он позволяет запускать модели без необходимости устанавливать Python или MLX, что упрощает процесс деплоя.
Проект направлен на разработчиков, нуждающихся в высокопроизводительном процессе запуска моделей машинного обучения на Mac и обещает более быструю интеграцию с текущими рабочими процессами. Основное отличие от аналогичных решений — это отсутствие зависимости от Python, что может упростить использование в средах, где установка дополнительных библиотек нежелательна.
TensorFold написан с использованием Zig, а его запуск можно осуществить, следуя инструкциям по установке и настройке через ATC (Agent Traffic Control). Обрати внимание, что проект находится на стадии разработки, и могут быть недоработки. О подробностях работы с агентами и событиями можно узнать из документации в репозитории.
Проект TensorFold предназначен для работы с языковыми моделями и разработан для запуска на компьютерах с Apple Silicon и графических процессорах NVIDIA. Основной задачей данного инструмента является прямое выполнение моделей языкового обучения, без необходимости установки Python или MLX. TensorFold считывает контрольные точки, токенизирует запросы и запускает вычисления либо с помощью Metal (для macOS), либо с помощью CUDA (для Linux).
Установка и запуск
Для начала работы с TensorFold ты можешь воспользоваться следующими командами в зависимости от используемой платформы.
macOS с Apple Silicon
- Установи TensorFold через Homebrew:
brew install ashhart/tensorfold/tensorfold
tensorfold pull mlx-community/Qwen3.5-2B-MLX-4bit@93760be4f1f69842a46bc13dbdc0f19e291392a3
tensorfold serve mlx-community/Qwen3.5-2B-MLX-4bit --name local-model --context 8192 --no-thinking
Linux с NVIDIA GPU
- Скачай подходящий архив для своей архитектуры:
V=1.1.4
case "$(uname -m)" in
aarch64|arm64) PLATFORM=linux-aarch64 ;;
x86_64) PLATFORM=linux-x86_64 ;;
*) echo 'No release archive for this CPU' >&2; exit 1 ;;
esac
curl -fLO "https://github.com/ashhart/TensorFold/releases/download/v$V/tensorfold-$V-$PLATFORM.tar.gz"
curl -fLO "https://github.com/ashhart/TensorFold/releases/download/v$V/tensorfold-$V-$PLATFORM.tar.gz.sha256"
sha256sum -c "tensorfold-$V-$PLATFORM.tar.gz.sha256"
tar -xzf "tensorfold-$V-$PLATFORM.tar.gz"
export PATH="$PWD/tensorfold-$V-$PLATFORM/bin:$PATH"
tensorfold pull mlx-community/Qwen3.5-2B-MLX-4bit@93760be4f1f69842a46bc13dbdc0f19e291392a3
tensorfold serve mlx-community/Qwen3.5-2B-MLX-4bit --name local-model --context 8192 --no-thinking
Использование API
После запуска сервера ты можешь отправлять запросы к API. Пример отправки запроса выглядит так:
curl -fsS http://127.0.0.1:8080/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"local-model","messages":[{"role":"user","content":"Say hello in one sentence."}],"max_tokens":128,"temperature":0}'
API поддерживает получение завершений, ответов и сообщений антропического типа. Ты также можешь получить список доступных моделей, отправив запрос на `/v1/models`.
Ограничения и особенности
Хотя TensorFold предлагает мощные возможности, у него есть некоторые ограничения:
- Для работы требуется определённая версия glibc (не ниже 2.28) и драйвер NVIDIA, обеспечивающий `libcuda.so.1` для Linux.
- Для модели могут быть специфические требования к количеству оперативной памяти, особенно при использовании больших контрольных точек.
- Не все модели и функции доступны на всех платформах, и некоторые могут требовать специальные конфигурации.
- Есть известные проблемы с производительностью и кэшированием, которые могут влиять на работу некоторых моделей.
Пользовательский интерфейс и дополнительные возможности
TensorFold также поддерживает экспериментальную функцию под названием Living Weights, которая позволяет модели "учить" новые факты. Эта функция требует, чтобы сервер был запущен с определёнными параметрами. Подробности о пользовательском интерфейсе и других возможностях можно найти в документации проекта.
Открыть на GitHub: ashhart/TensorFold →
RepoRadar