Перейти к содержанию
Публикация AiManual

AI-ОС на Rust для локальных LLM: что внутри, как записать USB-образ и какие риски

Разбираем AIO-систему на безопасном Rust с инференс-движком, ядром и панелью управления: что автор заявил, что не подтверждено, как записать USB-образ через bal

Коротко

Что будет в материале

  1. 01

    Что именно представил автор: AIO-система на Rust для локальных LLM

  2. 02

    Панель управления: настройка, диагностика, чат и обучение моделей

  3. 03

    Заявления о производительности на 7900 XTX: что проверять и как

  4. 04

    Как записать образ и протестировать: пошаговый сценарий

Что именно представил автор: AIO-система на Rust для локальных LLM

Пользователь u/W61k3r опубликовал в r/LocalLLaMA пост о собственной AIO-системе на безопасном Rust: в один образ собраны инференс-движок, отдельное ядро и панель управления с настройкой, диагностикой, чатом и обучением моделей (исходный пост). Система работает headless, записывается на USB-носитель и подгружает веса с Hugging Face.

Ключевая деталь для оценки зрелости: по умолчанию образ грузится с Linux-ядром 7.4 RC2. Собственное Rust-ядро, по словам автора, ещё требует доработки. В текущем виде «ОС на Rust» означает Linux под капотом плюс написанные на Rust движок и панель, а не самостоятельное ядро.

Все заявления о скорости идут от автора. Независимых замеров нет, исходники лежат в приватном git-репозитории, поэтому ни аудировать код, ни воспроизвести сравнения сторонний человек пока не может. Ниже: что именно заявлено, что из этого проверяемо и как пройти тест, не потеряв рабочие данные.

УтверждениеКак обстоит дело
Единый образ: движок, ядро и панель на безопасном RustЗаявлено автором, код закрыт, проверить нельзя
Headless-режим, загрузка с USBЗаявлено, деталей доступа к системе в посте нет
Модели качаются с Hugging FaceЗаявлено
Ядро по умолчанию: Linux 7.4 RC2Заявлено, собственное Rust-ядро в доработке
Vulcan с qwen3.8 27b на 7900 XTX быстрее llamaНе подтверждено: нет tok/s, кванта, контекста, версии драйвера
llama, vllm, camelid работают быстрее, чем на UbuntuНе подтверждено, методика сравнения не описана
unsloth 3.1 27b запускается «на отлично»Не подтверждено
Исходники в приватном репозитории, вопрос open source открытСледует из слов автора

Из чего состоит система: движок, ядро, панель

Автор описывает проект как четыре части, которые обычно живут отдельно и настраиваются вручную.

  • Инференс-движок. Часть образа, работает с моделями, которые система качает с Hugging Face. Поддерживаемые форматы (GGUF, safetensors), версии и список квантизаций в посте не названы.
  • Панель управления. Единая точка входа для настройки, подстройки параметров, управления, диагностики, чата и обучения моделей.
  • Rust-ядро. Заявлено как часть проекта, но пока не готово к роли основного.
  • Linux-ядро 7.4 RC2. Рабочий режим по умолчанию. Именно с ним система и загружается на тестовом железе.

Слово AIO (all-in-one) здесь означает единый образ, а не набор отдельных пакетов вроде дистрибутив + драйверы + движок + веб-интерфейс. Для домашней ноды это удобно: меньше шагов установки. Для оценки качества это неудобно: слой за слоем проверить сборку сложнее, чем обычный стек из открытых компонентов.

Чем это отличается от Ubuntu + llama.cpp

Аргумент автора такой: ОС, панель и ядро 7.4 RC2 запускают llama, vllm, camelid и другие движки быстрее Ubuntu, потому что система изначально собрана под headless-работу с AI, без десктопного балласта. Звучит логично: в headless-сборке меньше сервисов, меньше фоновой нагрузки, предсказуемее распределение памяти.

Проблема в том, что тезис не подкреплён числами. Сравнение «быстрее Ubuntu» без версии ядра, версии ROCm, флагов сборки движков, кванта модели, длины контекста и числа повторов воспроизвести невозможно. Перед сменой привычного стека имеет смысл получить ответы на конкретные вопросы:

  • Какая версия ROCm и какие флаги сборки используются для llama.cpp и vLLM в образе?
  • Что именно быстрее: старт системы, загрузка весов в VRAM или генерация токенов?
  • Сколько прогонов сделано и какие были температура GPU и частоты?
  • Совпадают ли квант модели и длина контекста в сравниваемых конфигурациях?

Пока ответов нет, разумная позиция - считать это гипотезой автора, а не свойством продукта.

Панель управления: настройка, диагностика, чат и обучение моделей

Панель - самая практичная часть заявки. В типовом домашнем сетапе вы собираете её из разных инструментов: веб-интерфейс для чата и работы с моделями, консольные утилиты вроде rocm-smi или nvidia-smi для диагностики, отдельные скрипты и конфиги для тренировки, плюс россыпь команд для запуска движка. Автор обещает собрать всё это в одном интерфейсе на headless-машине.

Заявленные функции панели: настройка, подстройка параметров, управление, диагностика, чат и обучение моделей. Деталей в посте нет, и это важно для планирования. Непонятно, что именно автор называет обучением: полный fine-tune, LoRA, дообучение на пользовательских данных или просто подбор параметров. От ответа зависит всё: полный fine-tune 27B-модели требует множества GPU и часов работы, LoRA укладывается в одну карту с 24 ГБ при аккуратных настройках, а «тренировка» в интерфейсе чата может оказаться чем-то третьим.

Второй неясный момент: диагностика. Хорошая панель показывает не только «GPU найден», но и занятую VRAM, температуру, загрузку SM, версию драйвера и наличие ошибок в логах движка. Насколько это покрыто в интерфейсе u/W61k3r, из поста не видно.

Вывод по разделу: панель интересна как единая точка входа для домашней AI-ноды, но её реальные возможности придётся проверять руками в тесте. Ни список функций, ни скриншоты, ни документация в источнике не раскрыты.

Заявления о производительности на 7900 XTX: что проверять и как

Формулировки автора выглядят так: на его Radeon RX 7900 XTX сборка запускает Vulcan с моделью qwen3.8 27b быстрее llama в той же конфигурации; система запускает llama, vllm, camelid и другие движки быстрее Ubuntu; недавние обновления дали дополнительный прирост, а модель unsloth 3.1 27b запускается «на отлично» (пост автора).

Ни одна из этих цифр не измерена независимо. В посте нет токенов в секунду, времени до первого токена, кванта модели, длины контекста, версии драйвера и температур. Есть только сравнительные формулировки. Для читателя, который выбирает стек под свои задачи, этого мало.

Почему «быстрее llama» пока не аргумент

«Быстрее» может означать четыре разные метрики: скорость генерации в токенах в секунду, скорость обработки промпта, задержку до первого токена и время старта системы вместе с загрузкой весов в VRAM. Лидеры на этих метриках не совпадают, а разница между ними измеряется в разы. На длинном контексте на первый план выходит prompt processing, в чате с короткими репликами - decode, при старте контейнера - время загрузки модели.

Второй момент: Vulcan, llama, vllm и camelid - разные движки с разной логикой батчинга, работы с KV-кэшем и выгрузки слоёв. Хороший результат одного движка на одной модели не переносится на остальные. Отдельно стоит уточнить, что автор называет Vulcan: из поста неясно, идёт ли речь о Vulkan-бэкенде существующего движка или о собственном движке проекта.

Третий фактор - драйверный стек AMD. На RDNA3 производительность заметно зависит от версии ROCm и состояния Vulkan/RADV, а часть проблем в этой связке ещё открыта. Что происходит в экосистеме инструментов AMD, видно по релизу ROCm HRX Loom v0.1: даже официальные утилиты выходят в статусе ранних версий с ограничениями.

Четвёртый фактор - эффект самой ОС. Разница в несколько процентов между дистрибутивами легко теряется на фоне температуры, частот и кванта. У llama.cpp к тому же результат сильно зависит от патчей и параметров сэмплера, что хорошо видно на примере экспериментальных оптимизаций llama.cpp под Tesla P100: без фиксации версии движка и настроек сравнение теряет смысл.

Что должно быть в отчёте тестировщика

Осмысленный отчёт по такой сборке содержит не «работает», а набор чисел и условий. Минимальный список:

  • GPU, версия драйвера и ROCm, версия прошивки;
  • версия образа и дата его сборки, если автор их указывает;
  • модель, квант и длина контекста;
  • tok/s на prompt processing и на генерации, отдельно для каждого движка;
  • занятая VRAM и пиковая VRAM;
  • температура GPU и частоты под нагрузкой, хотя бы по показаниям панели;
  • стабильность: сколько минут держится нагрузка, были ли OOM или падения движка;
  • поведение при отключённых и изолированных дисках.

Три и более прогонов на конфигурацию дают представление о разбросе. Один замер ничего не показывает: при длинной генерации разница между прогонами легко достигает 10%.

Как записать образ и протестировать: пошаговый сценарий

Сценарий от автора предельно короткий: скачать образ, записать его на USB через balenaEtcher, загрузиться, протестировать и прислать отчёт (пост). Ниже - как пройти эти шаги, не потеряв данные и получив результат, который можно сравнивать.

Подготовка: USB, balenaEtcher и изоляция дисков

Отдельная флешка на 32 ГБ и больше, желательно не единственная копия образа. balenaEtcher стирает целевой носитель целиком, поэтому выбирать в нём нужно именно флешку, а не внешний SSD с проектами. Контрольные суммы автор в посте не публикует, так что проверить целостность загрузки штатным способом пока нечем - стоит хотя бы зафиксировать, откуда скачан файл, и не перекачивать его с зеркал.

Совет автора отключать и изолировать диски при загрузке разумен, но трактовать его нужно как признание риска. Загрузчик незнакомой сборки получает доступ к железу, и никакая изоляция не заменяет физического отключения накопителей с личными данными.

  • Тестируйте на машине без рабочих дисков или на отдельном тестовом ПК.
  • Если есть возможность, попробуйте виртуалку с пробросом GPU: это снижает риск для хоста, но добавляет свои искажения в производительность.
  • Не вводите в систему тестового стенда реальные аккаунты и токены Hugging Face с широкими правами.

Что проверить в первую очередь после загрузки

  1. Определяется ли GPU в панели и совпадает ли увиденное с реальной картой.
  2. Стартует ли панель управления и открывается ли она по сети (система headless, локального монитора может не быть).
  3. Скачивается ли модель с Hugging Face и как ведёт себя загрузка на слабом канале.
  4. Запускается ли хотя бы один движок: llama, vllm или camelid из списка автора.
  5. Работает ли чат и выдаёт ли модель осмысленный ответ на русском и английском.
  6. Собирается ли debug kit и что именно он складывает в архив.

Отдельно стоит прогнать сценарий с длинным контекстом и большим промптом: именно там вылезают OOM и деградация. Похожие подводные камни разбирались в материале про запуск 27B на двух GPU, где риск OOM и поведение агента под нагрузкой оказались важнее пиковых токенов в секунду.

Риски: закрытый код, непроверенный образ и доступ к дискам

Начнём с главного. Исходный код проекта лежит в приватном git-репозитории, автор ещё решает, открывать ли его. Значит, проверить, что именно делает образ при загрузке, чем он торгует в сеть и какие данные читает, снаружи нельзя. Для загрузочного носителя с доступом к железу это существенное ограничение.

  • Непроверенный загрузчик. USB-образ с ядром и системными службами получает доступ к дискам, сети и прошивкам. Аудит без кода невозможен.
  • Изоляция дисков как признание риска. Автор сам предлагает отключать накопители. Это честно и одновременно показательно.
  • Debug kit и приватность. Встроенный механизм собирает диагностику и отправляет её автору. Перед отправкой отчёта стоит посмотреть, что попадает в архив: логи, конфиги, имена моделей, пути, идентификаторы оборудования.
  • Отсутствие подписи и репутации. Проект новый, истории релизов и публичного трекера ошибок нет, поэтому оценить аккуратность автора в работе с чужими данными нечем.

Призыв автора «проверяйте USB-накопитель, но не критикуйте проект без теста» звучит справедливо по отношению к труду, но не решает вопрос доверия. Аудит носителя проверяет целостность записи, а не логику системы.

Статус открытого кода и финансирование: что это значит для пользователя

По словам автора, весь код лежит в приватном репозитории, а решение об открытии ещё не принято: он изучает варианты финансирования. Для пользователя это три практических следствия.

  • Лицензия неизвестна. Непонятно, можно ли использовать сборку коммерчески, форкать и распространять.
  • Модель монетизации может измениться. Проект, который сейчас бесплатен, способен перейти на подписку или закрытые сборки.
  • Починить самостоятельно не получится. При поломке остаётся ждать автора или откатываться на открытый стек.

Для сравнения: Ubuntu, llama.cpp и vLLM открыты, проверяемы и имеют публичные трекеры. Это не значит, что они лучше по скорости, это значит, что их поведение можно изучить до запуска. Требования сообщества r/LocalLLaMA к подобным публикациям тоже стоит держать в голове: разбор того, что ждут от поста с проектом, включая подтверждение open source и доказательства тестов, собран в материале про требования Project Showcase. Пост u/W61k3r закрывает часть пунктов описанием функций, но не даёт ни методики замеров, ни открытого кода.

Кому AIO-система действительно может пригодиться

Идея единого образа под headless-инференс закрывает реальную боль. Домашняя AI-нода обычно собирается из десятка кусков: дистрибутив, драйверы, движок, веб-интерфейс, скрипты запуска, мониторинг. Каждый апдейт может что-то сломать, а документация расползается по десятку репозиториев.

Где подход полезен:

  • домашний headless-сервер, который хочется поднять быстро и без глубокой возни с конфигами;
  • отдельный тестовый стенд на AMD, где важно посмотреть, как ведёт себя RDNA3 с разными движками;
  • эксперименты с обучением моделей, если панель действительно умеет то, что заявлено;
  • желание получить единый интерфейс вместо россыпи терминалов.

Где смысла мало:

  • продакшн и любые задачи с обязательствами по надёжности: закрытый код и отсутствие поддержки здесь стоп-фактор;
  • работа с чувствительными данными: непроверенный загрузочный образ с сетевым доступом этому не помогает;
  • команды, которым нужен проверенный стек с документацией и сообществом вокруг движка.

Старт с тестировщиков из сообщества - нормальная практика для AI-проекта. Разница в том, что полезные отчёты получаются из воспроизводимых прогонов, а не из «завелось, летает».

Итог: стоит ли записывать образ прямо сейчас

Проект любопытный: панель управления, единый образ и ставка на Rust закрывают понятную боль домашних AI-стендов. При этом «ОС на Rust» пока опирается на Linux-ядро 7.4 RC2, код закрыт, а все цифры по скорости и запуску моделей взяты из слов автора без методики и независимой проверки.

Записывать образ имеет смысл, если вы готовы отнестись к этому как к эксперименту на изолированном железе. Чек-лист перед стартом:

  1. Свободная флешка и машина без рабочих дисков, накопители с данными физически отключены.
  2. Запись через balenaEtcher с фиксацией источника файла и его размера.
  3. Проверка, что система видит GPU, панель открывается, модель качается с Hugging Face.
  4. Прогон минимум одного движка (llama, vllm или camelid) на фиксированных модели, кванте и контексте, три повтора.
  5. Замер tok/s на генерации и на обработке промпта, плюс VRAM и температуры.
  6. Сравнение с базовым стеком на том же железе и с той же моделью, иначе цифры не о чём не говорят.
  7. Просмотр содержимого debug kit до отправки автору.

Если сравнение с Ubuntu и llama.cpp на вашем железе покажет заметный разрыв, это будет первый независимый аргумент в пользу проекта. Если разницы нет или она в пределах погрешности, вы получите ответ на главный вопрос и останетесь на проверенном стеке. Все цифры в этом материале - со слов автора, ни один замер не подтверждён независимо.

Подписаться на канал