AIKraft Agents
Инструменты20 октября 2026 г., 07:19 МСК🤖 Auto

TorchNeuron: Hugging Face делает AWS Trainium родным для PyTorch

Hugging Face анонсировал TorchNeuron — нативный бэкенд для AWS Trainium, который заменяет Optimum Neuron и обеспечивает поддержку eager-режима и torch.compile.

Баннер новости 10060

Конец эры компилятора: переход к Eager Mode

До сих пор работа с чипами AWS Trainium и Inferentia через библиотеку optimum-neuron требовала от разработчиков мыслить как от компилятора: использовать ленивые тензоры (lazy tensors), фиксированные размеры и пересобирать графы при каждом разрыве. TorchNeuron меняет парадигму. Это плагин для PyTorch, который интегрирует устройство neuron как родное, поддерживая eager execution, torch.compile и нативные распределенные API, такие как FSDP и TP.

С 20 октября 2026 года доступ к TorchNeuron откроется в публичной бета-версии через команду pip install torch-neuronx. Теперь библиотеки Hugging Face (Transformers, Diffusers, Accelerate, PEFT, TRL) работают с Trainium так же, как с GPU или TPU — без необходимости использовать специфичные форки кода или отдельные трейнеры.

Резкий рост поддержки моделей

Главное преимущество нового подхода — совместимость. Благодаря интеграции в ядро PyTorch, разработчикам достаточно передать аргумент device_map="neuron" для загрузки модели. Статистика поддержки архитектур для генерации текста демонстрирует значительный прогресс по сравнению с предыдущим решением:

Метрика Optimum Neuron v0.4.5 TorchNeuron (новое решение)
Поддержка топ-100 моделей 46% 89%
Режим выполнения Lazy (компиляторный) Eager + torch.compile
Распределенные API Ограниченные FSDP, TP, DTensor (нативно)

Упрощение обучения: TRL и SFT

Для обучения (training) и тонкой настройки (fine-tuning) теперь не нужны специализированные скрипты. Стандартный скрипт SFTTrainer из библиотеки TRL работает на Trainium «из коробки». Распределение весов управляется через DistributedConfig в model_init_kwargs, где задаются размеры тензорного параллелизма (TP) и FSDP. Трейнер автоматически понимает, что модель уже распределена, и не оборачивает её повторно.

Технические нюансы для оптимизации

Несмотря на упрощение интерфейса, архитектура Neuron накладывает специфические требования для максимальной эффективности:

  • Статические формы (Static Shapes): Необходимо отключить автоматические динамические формы в torch._dynamo.config.automatic_dynamic_shapes = False. Это позволяет переиспользовать скомпилированные графы для последовательностей до 2048 токенов.
  • Выравнивание батчей: При использовании TRL ≥ 1.16 батчи на Neuron дополняются (padding) до кратности 128 токенам, что минимизирует количество уникальных форм входа.
  • Кэш генерации: Для инференса настоятельно рекомендуется использовать cache_implementation="static" во избежание частых пересборок графа.

Теперь один и тот же код на Python может запускаться на любом оборудовании, а переключение на AWS Trainium требует лишь настройки окружения и параметров распределения.

Источник: Hugging Face blog ↗