Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 239новых вакансий за сутки·75 016вакансий открыто сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании6 548
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 400 кандидатов открыты к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python14 623
  • Облачные технологии10 965
  • QA вакансии3 255
  • Backend вакансии1 723
  • Инженер данных1 270
  • Продакт-менеджер586

Разработка

  • Android1 706
  • iOS1 579
  • AI вакансии822
  • Fullstack вакансии697
  • Frontend вакансии598
  • Mobile вакансии30

По стеку

  • Go8 025
  • Java5 176
  • Node.js1 637
  • Kotlin1 393
  • Rust1 331
  • .NET1 254
  • PHP541
  • C++384
  • C#352

DevOps и инфраструктура

  • Kubernetes6 272
  • Linux-инфраструктура4 763
  • DevOps вакансии4 564
  • Terraform / IaC3 459
  • Мониторинг и Observability1 587
  • CI/CD1 478
  • SRE458
  • Кибербезопасность127

Аналитика и данные

  • Аналитик данных683
  • Бизнес-аналитик638
  • Data Scientist622
  • Системный аналитик92

Другие направления

  • Проджект-менеджер202
  • UI/UX дизайн93
  • Ручное тестирование14

По регионам

  • Вакансии в США34 823
  • Вакансии в Европе15 244
  • Работа в России3 882
  • Вакансии в Канаде3 408

По формату

  • Удалённые вакансии54 624
  • Релокация в США34 823
  • Гибридная работа9 269
  • Офисная работа6 545

По уровню

  • Senior вакансии33 244
  • Middle вакансии15 490
  • Junior вакансии5 355

Сейчас нанимают

Все компании
  • Wise194 вакансии
  • Rakuten189 вакансий
  • ASML164 вакансии
  • Grab134 вакансии
  • Celonis45 вакансий
  • Spotify37 вакансий
  • Infobip28 вакансий
  • Adyen27 вакансий
  • Monzo19 вакансий
  • Darktrace17 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме TensorFlowВсе вопросы
TensorFlowSeniorПроектирование систем

Как работает mixed-precision training в TensorFlow (tf.keras.mixed_precision)?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Mixed precision ускоряет обучение, вычисляя в float16 и сохраняя веса в float32. Включается через mixed_precision.set_global_policy("mixed_float16"); loss scaling предотвращает underflow градиентов.

Включение mixed precision

import tensorflow as tf
from tensorflow.keras import mixed_precision

# Устанавливаем политику: вычисления в float16, переменные в float32
mixed_precision.set_global_policy("mixed_float16")

# Для TPU и A100 bfloat16 предпочтительнее:
# mixed_precision.set_global_policy("mixed_bfloat16")

print("Compute dtype:", mixed_precision.global_policy().compute_dtype)   # float16
print("Variable dtype:", mixed_precision.global_policy().variable_dtype)  # float32

Mixed-precision training в TensorFlow

Mixed precision — техника обучения, при которой вычисления выполняются в float16 (или bfloat16), а веса хранятся в float32. Это ускоряет обучение на GPU (Tensor Cores) и TPU, снижает потребление памяти примерно вдвое, при этом точность модели не страдает благодаря сохранению мастер-копии весов в float32.

Построение модели и loss scaling

После установки политики все слои автоматически работают в float16. Выходной слой классификатора нужно явно перевести в float32, чтобы избежать численной нестабильности при вычислении softmax/sigmoid.

inputs = tf.keras.Input(shape=(224, 224, 3))
x = tf.keras.layers.Conv2D(32, 3, activation="relu")(inputs)  # вычисления в fp16
x = tf.keras.layers.GlobalAveragePooling2D()(x)
# Явно приводим к float32 перед финальной активацией
outputs = tf.keras.layers.Dense(1000, activation="softmax", dtype="float32")(x)

model = tf.keras.Model(inputs, outputs)

Loss scaling

float16 имеет диапазон ~5.96e-8 до 65504. Градиенты могут уйти в underflow (стать нулями) или overflow (Inf/NaN). Loss scaling умножает loss на большой коэффициент перед backward pass, масштабирует градиенты обратно перед обновлением весов.

# При использовании model.compile() loss scaling включается автоматически
optimizer = tf.keras.optimizers.Adam(learning_rate=1e-3)

# Явная обёртка LossScaleOptimizer (если нужен ручной контроль)
optimizer = mixed_precision.LossScaleOptimizer(optimizer)

model.compile(
    optimizer=optimizer,
    loss="sparse_categorical_crossentropy",
    metrics=["accuracy"],
)

model.fit(x_train, y_train, epochs=10, batch_size=256)

Кастомный тренировочный цикл с mixed precision

optimizer = mixed_precision.LossScaleOptimizer(
    tf.keras.optimizers.Adam(1e-3)
)

@tf.function
def train_step(x, y):
    with tf.GradientTape() as tape:
        predictions = model(x, training=True)
        loss = loss_fn(y, predictions)
        # Масштабируем loss
        scaled_loss = optimizer.get_scaled_loss(loss)

    scaled_grads = tape.gradient(scaled_loss, model.trainable_variables)
    # Возвращаем градиенты к исходному масштабу
    grads = optimizer.get_unscaled_gradients(scaled_grads)
    optimizer.apply_gradients(zip(grads, model.trainable_variables))
    return loss

Проверка ускорения

import time

# Замер throughput
start = time.time()
model.fit(x_train, y_train, epochs=3, batch_size=256, verbose=0)
elapsed = time.time() - start
print(f"Training time: {elapsed:.2f}s")

# Проверка текущего коэффициента масштабирования
print("Loss scale:", optimizer.loss_scale)

Подводные камни

  • Финальный слой (Dense с softmax/sigmoid) должен явно иметь dtype="float32" — иначе softmax в float16 даёт Inf при больших логитах.
  • mixed_float16 эффективно работает только на GPU с Tensor Cores (Volta, Turing, Ampere и новее). На CPU и старых GPU прирост отсутствует, а замедление возможно из-за конверсий типов.
  • bfloat16 предпочтительнее float16 на TPU и A100/H100, так как имеет тот же диапазон, что и float32, и не требует dynamic loss scaling.
  • BatchNormalization накапливает скользящие средние в float32 независимо от политики — это ожидаемое поведение, но потребление памяти для BN-слоёв не уменьшится.
  • Dynamic loss scaling может временно привести к пропуску шагов обновления, если обнаружены Inf/NaN в градиентах — это нормально, но если скиппинг постоянный, значит модель нестабильна.
  • Некоторые кастомные слои или операции могут не поддерживать float16 — возникнет ошибка типа. Явно добавляйте tf.cast(x, self.compute_dtype) в call().
  • При сохранении модели в формате SavedModel веса сохраняются в float32 (мастер-копия), что корректно, но файл занимает столько же места, как при float32-обучении.
  • Установка глобальной политики через set_global_policy влияет на все слои в текущем процессе — при запуске нескольких экспериментов в одном процессе необходимо сбрасывать политику явно.

Частые вопросы на собеседовании

  • Как работает tf.data API и почему он важен для построения эффективных пайплайнов загрузки данных?
  • Что такое tf.function и как он улучшает производительность за счёт компиляции графа?
  • Как бороться с переобучением в моделях TensorFlow (dropout, L2-регуляризация, аугментация данных)?
  • Как работает tf.keras.Model.compile() — что такое loss, optimizer и metrics?

Типичные ошибки

  • Объяснять mixed precision только синтаксисом без shape, dtype, состояния или режима выполнения.
  • Игнорировать leakage, воспроизводимость, пустые входы и скрытые копии данных.
  • Не проверять production-симптомы: latency, память, ретраи, дрейф качества и несовпадение версий.

Что проверяет интервьюер

  • Может ли связать mixed precision с реальным контрактом входов и выходов.
  • Упоминает ли тесты, метрики, reproducibility и диагностику ошибок.
  • Видит ли различие между demo-кодом в ноутбуке и production-пайплайном.
  • Предлагает ли observability, rollback, ограничения стоимости и стратегию incident replay.

Как вы знаете этот вопрос?

Проверить себя по теме TensorFlow →

Источники

  • https://www.tensorflow.org/guide/keras
  • https://www.tensorflow.org/guide/mixed_precision

Связанные темы

TensorFlowdata-aiobservabilityproduction-ml