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 →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте