i
Новости
Новости · 2026-10-20

Hugging Face ❤️ TorchTPU: запускаем PyTorch на TPU нативно

@neuronium_ai @neuronium_ai

Hugging Face представила TorchTPU — новую платформу, которая позволяет запускать PyTorch-код на тензорных ускорителях Google без PyTorch/XLA. Поддержка уже доступна в Transformers и Diffusers: модели можно загружать на TPU, а большие — распределять между несколькими чипами. В тестах на Cloud TPU v6e-8 при размере пакета 64 скорость декодирования выросла в 21,5 раза для Qwen3-30B-A3B и в 12,8 раза для Gemma 4 26B-A4B. Из 34 найденных ошибок 19 уже исправили.

Обложка: Hugging Face ❤️ TorchTPU: запускаем PyTorch на TPU нативно

Что такое TPU

TPU — это тензорный процессор, собственный ускоритель Google для задач искусственного интеллекта. Чипы рассчитаны на матричные вычисления, которые занимают большую часть работы нейросетей. Google разрабатывает TPU около десяти лет и использует их для обучения и запуска своих моделей, в том числе Gemini.

TPU доступны в Google Cloud: от одного чипа до подов с тысячами чипов. Они подходят для задач, которым нужны большие вычислительные мощности, — обучения моделей и их масштабного обслуживания.

Проблемой долго оставалось программное обеспечение: экосистема TPU развивалась вокруг TensorFlow и JAX, поэтому пользователям PyTorch приходилось прикладывать дополнительные усилия.

Как запускали PyTorch раньше

До появления TorchTPU для запуска PyTorch на TPU требовался PyTorch/XLA (torch_xla). Он работал, но с особенностями: тензоры вычислялись лениво, поэтому код не всегда выполнялся в ожидаемый момент. Даже небольшие изменения могли вызывать повторную компиляцию графа, а отладка была непростой.

Чтобы упростить работу, Hugging Face создала Optimum TPU — библиотеку для запуска и обучения моделей Hugging Face на TPU. Теперь, когда TorchTPU обеспечивает нативную поддержку, Optimum TPU больше не нужен для работы с моделями Hugging Face в Transformers и Diffusers.

Как работает TorchTPU

TorchTPU добавляет TPU в PyTorch как новый бэкенд. Пользователь пишет обычный код PyTorch, а пакет предоставляет оптимизированные для TPU ядра Pallas, поддержку распределённого обучения и интеграцию с torch.compile для ускорения вычислений. Установка на виртуальную машину с TPU выполняется одной командой:

Команда
pip install torch-tpu --extra-index-url https://download.pytorch.org/whl/cpu

Дополнительный индекс устанавливает версию torch для центрального процессора. Без него pip скачает значительно более крупную версию CUDA, которая для TPU не нужна.

Transformers и Diffusers на TPU

Transformers

Transformers v5 создавали с расчётом на то, чтобы библиотека была основным источником описаний моделей и позволяла запускать их где угодно. Теперь в этот список входят и TPU. Чтобы загрузить модель на TPU, достаточно передать device_map="tpu":

Код
from
 transformers 
import
 AutoModelForCausalLM, AutoTokenizer

model_id = 
"Qwen/Qwen3.5-9B"

model = AutoModelForCausalLM.from_pretrained(
    model_id,
    device_map=
"tpu"
, 
# will load model directly on the TPU

)
tokenizer = AutoTokenizer.from_pretrained(model_id)
inputs = tokenizer(
"The future of ИИ is"
, return_tensors=
"pt"
).to(
"tpu"
)
out = model.generate(**inputs, max_new_tokens=
64
)

print
(tokenizer.decode(out[
0
], skip_special_tokens=
True
))

По умолчанию модель работает в обычном режиме выполнения. Для повышения производительности можно использовать torch.compile или запустить модель в распределённой конфигурации.

Генерация изображений и видео с Diffusers

В Diffusers TPU теперь поддерживается как полноценное устройство. Для прототипирования и отладки достаточно вызвать pipe.to("tpu"). При развёртывании можно добавить один вызов компиляции. Пайплайны и код остаются прежними, отдельную версию Diffusers для TPU поддерживать не нужно.

Код
import
 torch

from
 diffusers 
import
 StableDiffusion3Pipeline

pipe = StableDiffusion3Pipeline.from_pretrained(
    
"stabilityai/stable-diffusion-3.5-medium"
, dtype=torch.bfloat16
)
pipe.to(
"tpu"
)  
# eager mode: that's the whole change

# optional: compiled mode

pipe.transformer.
compile
(backend=
"tpu"
, fullgraph=
True
, dynamic=
False
)

image = pipe(
"a corgi astronaut planting a flag on a pizza moon"
).images[
0
]

Первый вызов запускает компиляцию. При последующих вызовах с тем же размером изображения используется уже собранный граф.

Если модель не помещается на один чип, при загрузке через from_pretrained можно передать TensorParallelConfig: тогда трансформер распределится между несколькими чипами. Многим популярным пайплайнам эта возможность доступна сразу, а для остальных достаточно указать план тензорного параллелизма. Полный пример приведён в руководстве Diffusers для TPU.

Ниже — примеры, запущенные на Cloud TPU v6e-4: TP=4, то есть каждая модель распределена между четырьмя чипами; формат bf16, размер пакета — 1.

Ядра

В Kernels Hub доступны готовые ядра для TPU. Их можно загрузить через библиотеку Kernels и использовать для ускорения модели.

Ядра для TPU пишут на Pallas, который предоставляет низкоуровневый доступ к аппаратным возможностям. Можно использовать и ядра из библиотеки Tokamax. Например, ядро ragged-dot из Tokamax можно подключить к модели типа «смесь экспертов»:

Код
from
 kernels 
import
 get_kernel

from
 transformers 
import
 AutoModelForCausalLM

from
 transformers.integrations.moe 
import
 ALL_EXPERTS_FUNCTIONS

repo_id = 
"tengomucho/ragged-dot-tpu"

kernel = get_kernel(repo_id, version=
1
, trust_remote_code=[repo_id])
ALL_EXPERTS_FUNCTIONS.register(
"tokamax_ragged_dot"
, kernel.experts_forward)
model = AutoModelForCausalLM.from_pretrained(
    
"Qwen/Qwen3-30B-A3B-Instruct-2507"
,
    experts_implementation=
"tokamax_ragged_dot"
,
)

Чем больше размер пакета, тем заметнее ускорение. При размере 64 декодирование на Qwen3-30B-A3B стало быстрее в 21,5 раза, а на Gemma 4 26B-A4B — в 12,8 раза.

Источник: huggingface.co

На графиках сравнивается пропускная способность декодирования на TPU v6e-8 при использовании ядра из Hub и реализации по умолчанию.

Как проверяют поддержку TPU

Hugging Face постоянно улучшает поддержку TPU в Transformers, запуская набор тестов библиотеки. Команда готовит ежедневные проверки на TPU и планирует публиковать результаты на панели Transformers.

Источник: huggingface.co

Панель CI Transformers показывает результаты TPU рядом с результатами для других ускорителей; работа над ней продолжается.

Пока проходят не все тесты, но сейчас успешно завершаются 96,5% проверок, запущенных на TPU. Каждую найденную ошибку оформляют как небольшой сценарий для воспроизведения и задачу в репозитории TorchTPU. На данный момент команда сообщила о 34 проблемах, 19 из них уже исправлены. Запуски на TPU также помогли обнаружить несколько ошибок в самой Transformers, включая проблемы со StaticCache и планами тензорного параллелизма для Qwen3. Эти ошибки исправили в основном проекте.

Команда хочет узнавать о сбоях на TPU раньше пользователей.

С чего начать

Пользователям PyTorch больше не нужно обходное решение, чтобы работать с TPU. Установите TorchTPU, выберите модель из Hub и отправьте её на устройство "tpu".

Если возникнет проблема, Hugging Face предлагает сообщить о ней, создав задачу в репозитории.

TPU Google Cloud для пользователей Hugging Face

Тысячи открытых языковых моделей в Vertex AI Model Garden

Сообщество

Источник: huggingface.co

Project Deal: Anthropic проверила, как Claude ведёт себя на внутреннем рынке Muse от Meta набрала 10 млн скачиваний в США за 40 дней — такой рубеж покорили лишь 11 других приложений Mistral AI выпустила Voxtral 3 — полный стек голосовых ИИ-агентов, которые слушают, думают и говорят в реальном времени ALTK-Evolve: как обученная память выводит модель без передовых ИИ-возможностей в лидеры τ²-bench по задачам поддержки клиентов Сценарии будущего нашей экономики Амулья Вишванат, бывшая сотрудница Nvidia и нынешний венчурный инвестор: физический ИИ пока в эпохе LEGO Растения передают сигналы с помощью электричества — стартап создал ИИ-модель, чтобы расшифровать их язык Как ИИ и квантовые технологии помогают прояснить главные загадки человечества Не станет ли это для криптокроссвордов моментом Deep Blue? ИИ-агент вступил в рассылку ведущих интернет-исследователей — хаос с ответами всем продолжается Эксперты предупреждают: люди могут стать пустыми оболочками под контролем ИИ Yelp теперь может позвонить в ресторан за вас и узнать, сколько ждать столик С сожалением сообщаем: «GatGPT» — именно то, что вы подумали Сооснователь Figma Дилан Филд считает, что MCP далёк от идеального протокола Google и Synaptics представили новые ИИ-чипы для носимых и промышленных устройств на базе открытой технологии Coral Лейбористы и Коалиция готовы безрассудно поставить на ИИ. Неужели они не заметили, что общественная поддержка рухнула? Как разные отрасли осваивают ИИ и чему могут научиться друг у друга Google DeepMind без лишнего шума нанимает физиков-ядерщиков Чтобы масштабировать ИИ-агентов, нужны реестр, договоры и актуальный контекст США запретили госведомствам использовать ИИ-инструменты китайской DeepSeek

Ежедневные новости об ИИ

Каждый день отбираем важные новости об ИИ и рассказываем главное — без хайпа и воды. Если хотите понимать, что происходит в ИИ раньше остальных, — подписывайтесь.

Только важное — каждый день

В Telegram