Английский язык тпу: Главная / Языковая школа Космополит

Главная / Языковая школа Космополит

Подать заявку

  • Английский
  • Арабский
  • Греческий
  • Испанский
  • Итальянский
  • Китайский
  • Корейский
  • Немецкий
  • Русский
  • Турецкий
  • Французский
  • Чешский
  • Японский

Новости

идет набор

Открыт набор на программу «Language for Mobility» (английский язык)

19 января

идет набор

Языковая школа «Космополит» объявляет набор на обучение в весеннем семестре.

..

12 января

Донабор в группы по английскому языку

12 октября 2022

Идет набор на программу повышения квалификации «Бизнес-тренинг по английскому языку»…

01 октября 2022

Донабор на программу «Language for Mobility. Light» (английский язык)

28 сентября 2022

Языковая школа «Космополит» объявляет набор на обучение в осеннем семестре…

15 августа 2022

Открыт набор на программу «Language for Mobility» (английский язык)

15 августа 2022

Опубликовано расписание на курсах «Language for Mobility» на весенний семестр…

14 марта 2022

Сертификационный экзамен на получение сертификата ТПУ по иностранному языку в. ..

20 января 2022

Открыт набор на программу «Language for Mobility»

20 января 2022

Все новости

Наши преподаватели

Казакова Ольга

Преподаватель стилистики русского языка и культуры речи, кандидат филологических наук. Окончила Томский государственный университет по специальности «Филология» (лингвистика). Автор 18 учебных изданий и 60 научных и научно-методических работ.

Пономарёв Кирилл

Преподаватель английского языка, переводчик. Окончил Томский государственный университет по специальности «Лингвистика и межкультурная коммуникация». Стажировался в Австралии, Канаде, Новой Зеландии.

Шенкал Гексел

Преподаватель турецкого языка, переводчик, кандидат филологических наук. Турецкий язык – родной. Выпускник Красноярского государственного университета (факультет современных иностранных языков, специальность – лингвист-переводчик в сфере межкультурной коммуникации).

Имеет опыт преподавания турецкого языка с 2004 года.

Кабанова Наталья

Преподаватель английского и немецкого языков, выпускница Факультета иностранных языков Томского государственного педагогического университета. Опыт преподавания английского языка в дошкольных учреждениях, средней общеобразовательной школе и в вузе более 24 лет. Регулярно принимает участие в семинарах и курсах повышения квалификации по педагогике, методике преподавания ИЯ, переводу. Автор более 28 научно-методических работ.

Проскура Оксана

Преподаватель английского языка, выпускница Факультета иностранных языков Томского государственного педагогического университета. Проходила курсы повышения квалификации «Теория и методика преподавания профессионального иностранного языка» (Томск, ТПУ), стажировалась в Университете Тампере (Финляндия).

Лопаткова Наталья

Преподаватель испанского языка. Выпускница Томского государственного университета по специальности «Перевод и переводоведение» (квалификация «Лингвист.

Переводчик»). Имеет опыт работы преподавателем испанского языка более 10 лет.

Все преподаватели

О школе говорят

Angelo замечательный преподаватель! На его занятиях всегда было очень интересно, прекрасная подача материала и внимательная работа с каждым из обучающихся. Скучаю по……. »

Читать далее

Черданцева Дарья

Считаю, что в настоящее время знание иностранного языка является необходимым как для профессионального, так и для всестороннего развития человека. А проекты, подобны……. »

Читать далее

Высотин Никита Сергеевич

Национальный исследовательский Томский политехнический университет / студент

Хотелось бы выразить огромную благодарность языковой школе Космополит за организацию данного проекта! Благодаря ему, общаясь с носителем языка на разнообразные темы,……. »

Читать далее

Моногов Богдан

ТПУ / студент 1 курса

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

Читать далее

Виктория Шелепова

МАОУ СОШ №25

Очень понравилось заниматься у Панамарёвой Анны Николаевны, пары проходят интересно, легко и непринужденно, два семестра прошли на одном дыхании. Анна Николаевна пре……. »

Читать далее

Екатерина Колоколова

студентка

Курс очень понравился. Алина Геховна – замечательный преподаватель, объясняет темы понятно, уделяя каждой теме достаточно времени для осмысления. В курсе присутствов……. »

Читать далее

Гришкова Галина

ТГУ, студент

Все отзывы

Оставить отзыв

Корпоративный портал ТПУ – Языковая подготовка

Перечень курсов по иностранным языкам реализуемые подразделениями ТПУ
Английский язык
Языковая школа “Космополит”
  • Общий курс английского языка
  • Общий курс и основы перевода английского языка
  • Разговорный английский язык
  • Синхронный и последовательный перевод (английский язык)
  • Деловой английский язык
  • Общий курс английского языка
  • Общий курс и основы перевода английского языка
  • Разговорный английский язык
  • Синхронный и последовательный перевод (английский язык)
  • Деловой английский язык
  • Подготовка к сдаче международных экзаменов (английский язык)
  • Подготовка к сдаче ЕГЭ (английский язык)
  • Английский язык для подростков
  • Экспресс-курс разговорного английского языка
  • Экспресс-курс делового английского языка
  • Экспресс-курс английского языка для путешественников
  • Work and travel USA (английский язык)
  • Английский язык для детей 5-6 лет
  • Английский язык для школьников 7-12 лет
  • Кафедра иностранных языков Института социально-гуманитарных технологий (ИЯСГТ)
    • Разговорный английский
    • Профессиональный английский язык
    • Базовый курс английского языка
    • Подготовка к сдаче международных экзаменов (английский язык)
    • Деловой английский язык
    Кафедра иностранных языков института природных ресурсов (ИЯПР)
    • Общий курс английского языка
    • Подготовка к сдаче ЕГЭ (английский язык)
    Русско-французский центр
    • Общий курс английского языка
    • Разговорный английский язык
    Русско-немецкий центр
    Языковой центр (ИМОЯК)
    • Language for Mobility (английский язык)
    Немецкий язык
    Языковая школа “Космополит”
  • Общий курс немецкого языка
  • Разговорный немецкий язык
  • Синхронный и последовательный перевод (немецкий язык)
  • Подготовка к сдаче ЕГЭ (немецкий язык)
  • Немецкий язык для подростков
  • Курс “Академический немецкий язык”
  • Экспресс-курс разговорного немецкого языка
  • Экспресс-курс немецкого языка для путешественников
  • Немецкий язык для школьников 7-12 лет
  • Кафедра иностранных языков Института социально-гуманитарных технологий (ИЯСГТ)
    • Факультативный курс по 2 иностранному языку (немецкий)
    Русско-немецкий центр
  • Общий курс немецкого языка
  • Разговорный немецкий язык
  • Синхронный и последовательный перевод (немецкий язык)
  • Подготовка к сдаче ЕГЭ (немецкий язык)
  • Немецкий язык для подростков
  • Курс “Академический немецкий язык”
  • Экспресс-курс разговорного немецкого языка
  • Экспресс-курс немецкого языка для путешественников
  • Немецкий язык для школьников 7-12 лет
  • Языковой центр (ИМОЯК)
    • Language for Mobility (немецкий язык)
    Французский язык
    Языковая школа “Космополит”
    • Общий курс французского языка
    • Разговорный французский язык
    • Подготовка к сдаче ЕГЭ (французский язык)
    • Экспресс-курс разговорного французского языка
    • Экспресс-курс французского языка для путешественников
    Русско-французский центр
    • Общий курс французского языка
    • Разговорный французский язык
    • Подготовка к сдаче ТСF (французский язык)
    • Экспресс-курс разговорного французского языка
    Языковой центр (ИМОЯК)
    • Language for Mobility (французский язык)
    Русский язык
    Языковая школа “Космополит”
  • Курс русского языка “Готовимся к ЕГЭ”
  • Курс русского языка и литературы “Пишем сочинение”
  • Экспрес-курс “Пишем сочинение”
  • Экспрес-курс “Пишем сочинение”
  • Курс русского языка как иностранного для начинающих
  • Курс русского языка как иностранного I
  • Курс русского языка как иностранного II
  • Курс русского языка как иностранного III
  • Русско-немецкий центр
    Итальянский язык
    Языковая школа “Космополит”
    • Общий курс итальянского языка
    • Разговорный итальянский язык
    • Экспресс-курс разговорного итальянского языка
    • Экспресс-курс итальянского языка для путешественников
    Испанский язык
    Языковая школа “Космополит”
    • Общий курс испанского языка
    • Разговорный испанский язык
    • Экспресс-курс разговорного испанского языка
    • Экспресс-курс испанского языка для путешественников
    Чешский язык
    Языковая школа “Космополит”
    • Общий курс чешского языка
    Турецкий язык
    Языковая школа “Космополит”
    • Общий курс турецкого языка
    Арабский язык
    Языковая школа “Космополит”
    • Общий курс арабского языка
    Китайский язык
    Языковая школа “Космополит”
    • Общий курс китайского языка
    • Деловой китайский язык
    • Китайский язык для детей от 3-5 лет
    • Китайский язык для детей 5-6 лет
    Кафедра иностранных языков Института социально-гуманитарных технологий (ИЯСГТ)
    • Факультативный курс по 2 иностранному языку (китайский)
    Языковой центр (ИМОЯК)
    • Language for Mobility (китайский язык)
    Японский язык
    Языковая школа “Космополит”
    • Общий курс японского языка
    Языковая школа “Космополит”
  • Курс устного перевода
  • Курс письменного перевода
  • Научно-технический перевод на иностранном языке
  • Гид-переводчик
  • Бизнес-тренинг
  • Научно-технический перевод на иностранном языке
  • Методическое мастерство преподавателя иностранного языка
  • Использование иностранного языка в профессиональной деятельности
  • Cloud Tensor Processing Units (TPU)

    Tensor Processing Units (TPUs) — это специально разработанные Google специализированные интегральные схемы (ASIC), используемые для ускорить рабочие нагрузки машинного обучения. ТПУ спроектированы из с нуля благодаря богатому опыту и лидерству Google в машинное обучение.

    Cloud TPU позволяет запускать рабочие нагрузки машинного обучения на аппаратном ускорителе Google TPU с использованием ТензорФлоу. Cloud TPU разработан для максимальной производительности и гибкости чтобы помочь исследователям, разработчикам и предприятиям создавать вычисления TensorFlow кластеры, которые могут использовать CPU, GPU и TPU. Высокоуровневые API TensorFlow поможет вам запустить модели на оборудовании Cloud TPU.

    Преимущества TPU

    Облачные ресурсы TPU ускоряют выполнение линейной алгебры вычисления, которые широко используются в приложениях машинного обучения. ТПУ свести к минимуму время достижения точности при обучении большой и сложной нейронной сети модели. Модели, на обучение которых раньше уходили недели на других аппаратных платформах может сходиться в часах на TPU.

    Доступность

    Регионы и зоны Cloud TPU показывают места, где Доступны облачные TPU.

    Модель программирования Cloud TPU

    Облачные TPU очень быстро выполняют плотные векторные и матричные вычисления. Передача данных между Cloud TPU и памятью хоста происходит медленно по сравнению со скоростью вычислений – скорость шины PCIe на намного на медленнее чем межсоединение Cloud TPU и встроенная высокая пропускная способность память (HBM). Частичная компиляция модели, где выполнение проходит туда и обратно между хостом и устройством, заставляет TPU простаивать большую часть время ожидания поступления данных по шине PCIe. Чтобы облегчить это ситуации модель программирования для Cloud TPU предназначена для выполнять большую часть обучения на TPU — в идеале весь цикл обучения.

    Ниже приведены некоторые характерные особенности модели программирования TPU:

    • Все параметры модели хранятся во встроенной памяти с высокой пропускной способностью.
    • Стоимость запуска вычислений на Cloud TPU амортизируется выполнение многих тренировочных шагов в цикле.
    • Входные обучающие данные передаются в очередь «входа» на Облачный ТПУ. Программа, работающая в Cloud TPU, извлекает партии из этих очередей на каждом шаге обучения.
    • Сервер TensorFlow, работающий на хост-компьютере (ЦП, подключенный к Облачное устройство TPU) извлекает данные и предварительно обрабатывает их перед «подача» на оборудование Cloud TPU.
    • Параллелизм данных: ядра в облачном TPU выполняют идентичные программы, находящиеся в их собственном соответствующем HBM синхронным образом. А операция редукции выполняется в конце каждого шага нейронной сети по все ядра.

    Когда использовать TPU

    Облачные TPU оптимизированы для определенных рабочих нагрузок. В некоторых ситуациях вы можете хотите использовать GPU или CPU в экземплярах Compute Engine для запускать рабочие нагрузки машинного обучения. В общем, вы можете решить, какое оборудование лучше всего подходит для вашей рабочей нагрузки на основе следующих рекомендаций:

    • ЦП

      • Быстрое прототипирование, требующее максимальной гибкости
      • Простые модели, которые не требуют много времени для обучения
      • Небольшие модели с небольшими эффективными размерами партий
      • Модели, в которых преобладают пользовательские операции TensorFlow, написанные на С++
      • Модели, которые ограничены доступным вводом-выводом или пропускной способностью сети хост-система
    • GPU

      • Модели, для которых источник не существует или его изменение слишком обременительно
      • Модели со значительным количеством пользовательских операций TensorFlow, которые должны работать хотя бы частично на процессорах
      • Модели с операциями TensorFlow, недоступными на Облачный ТПУ (см. список доступные операции TensorFlow)
      • Модели среднего и крупного размера с большими эффективными размерами партий
    • ТПУ

      • Модели, в которых преобладают матричные вычисления
      • Модели без пользовательских операций TensorFlow внутри основного цикла обучения
      • Модели, которые тренируются неделями или месяцами
      • Большие и очень большие модели с очень большими эффективными размерами партий

    Облачные TPU , а не подходят для следующих рабочих нагрузок:

    • Программы линейной алгебры, которые требуют частого ветвления или доминируют поэлементно по алгебре. TPU оптимизированы для быстрой работы с громоздкой матрицей умножение, поэтому рабочая нагрузка, в которой не преобладает матричное умножение вряд ли будет хорошо работать на TPU по сравнению с другими платформами.
    • Рабочие нагрузки, которые обращаются к памяти разреженным образом, могут быть недоступны на ТПУ.
    • Рабочие нагрузки, требующие высокоточных арифметических операций. Например, арифметика с двойной точностью не подходит для TPU.
    • Рабочие нагрузки нейронной сети, содержащие пользовательские операции TensorFlow, написанные на С++. В частности, пользовательские операции в теле основного цикла обучения не подходит для ТПУ.

    Рабочие нагрузки нейронной сети должны иметь возможность выполнять несколько итераций всего тренировочный цикл на ТПУ. Хотя это не является принципиальным требованием ТПУ сами по себе, это одно из текущих ограничений программной экосистемы TPU. что требуется для эффективности.

    Отличия от обычного обучения

    Типичный обучающий граф TensorFlow состоит из нескольких перекрывающихся подграфов которые обеспечивают различные функции, включая:

    • Операции ввода-вывода для чтения обучающих данных.
    • Этапы предварительной обработки ввода, часто связанные через очереди.
    • Переменные модели.
    • Код инициализации для этих переменных.
    • Сама модель.
    • Функции потерь.
    • Код градиента (обычно генерируется автоматически).
    • Сводка операций по наблюдению за обучением.
    • Сохранение/восстановление операций для контрольной точки.

    В Cloud TPU программы TensorFlow компилируются Своевременный компилятор XLA. Когда обучение на Cloud TPU, код только , который можно скомпилировать и выполненный на оборудовании соответствует плотным частям модели, подграфы потерь и градиента. Все остальные части программы TensorFlow работают на хост-компьютеры (сервер Cloud TPU) как часть регулярного распределенный сеанс TensorFlow. Обычно это операции ввода/вывода которые считывают обучающие данные, любой код предварительной обработки (например: декодирование сжатые изображения, случайная выборка/обрезка, сборка обучающих мини-пакетов) и все части обслуживания графа, такие как сохранение/восстановление контрольной точки.

    Рекомендации по разработке моделей

    Один чип Cloud TPU содержит 2 ядра, каждое из которых содержит несколько матричных блоков (MXU), предназначенных для ускорения программ, в которых доминируют плотные матричные умножения и свертки (см. Архитектура системы). Программы, которые тратят значительную часть своего времени на выполнение матричные умножения обычно хорошо подходят для Cloud TPU. Программа, в вычислениях которой преобладают нематричные операции. такие как добавление, изменение формы или объединение, скорее всего, не приведут к высокому значению MXU. использование. Ниже приведены некоторые рекомендации, которые помогут вам выбрать и построить модели. которые подходят для Cloud TPU.

    Одно устройство Cloud TPU состоит из четырех микросхем, каждая из которых имеет два ядра ТПУ. Поэтому для эффективного использования Cloud TPU необходимо программа должна использовать каждое из восьми ядер.

    Компоновка

    Компилятор XLA выполняет преобразования кода, включая мозаичное построение матрицы размножаться на более мелкие блоки, чтобы эффективно выполнять вычисления на матричный блок (MXU). Аппаратная структура MXU, систолическое 128×128 массив и конструкция ТПУ подсистема памяти, которая предпочитает размеры, кратные 8, используется компилятор XLA для эффективности листов. Следовательно, некоторые макеты более подходит для укладки плитки, в то время как другие требуют изменяет форму , которую нужно выполнить до того, как они можно выложить плиткой. Операции изменения формы часто связаны с памятью. Облачный ТПУ.

    Фигуры

    Компилятор XLA компилирует граф TensorFlow как раз вовремя для первой партии. Если какие-либо последующие партии имеют другую форму, модель не работает. (Повторно компилировать график каждый раз при изменении формы слишком медленно.) Следовательно, любая модель, которая имеет тензоры с динамическими формами, которые изменяются во время выполнения, не является хорошо подходит для ТПУ.

    Прокладка

    Высокопроизводительная программа Cloud TPU — это программа, в которой плотные вычисления можно легко разбить на фрагменты размером 128×128. Когда матричное вычисление не может занимать весь MXU компилятор дополняет тензоры нулями. Есть два недостатка to padding:

    • Тензоры, дополненные нулями, недостаточно используют ядро ​​TPU.
    • Padding увеличивает объем встроенной памяти, необходимой для тензора. и в крайнем случае может привести к ошибке нехватки памяти.

    Хотя при необходимости компилятор XLA автоматически выполняет заполнение, один может определить количество заполнения, выполненного с помощью op_profile орудие труда. Вы можете избежать заполнения, выбрав размеры тензора, которые хорошо подходят к ТПУ.

    Размеры

    Выбор подходящих размеров тензора имеет большое значение для извлечения максимального производительность оборудования TPU, особенно MXU. Компилятор XLA пытается использовать либо размер пакета, либо размер элемента, чтобы максимально использовать MXU. Следовательно, одно из них должно быть кратно 128. В противном случае компилятор дополнит один из них до 128. В идеале размер пакета, а также функция размеры должны быть кратны 8, что позволяет извлекать высокую производительность из подсистемы памяти.

    Операции

    См. список доступных операций TensorFlow.

    Интеграция элементов управления службой VPC

    Cloud TPU Элементы управления службой VPC позволяют определить безопасность периметры вокруг ваших ресурсов Cloud TPU и контролировать перемещение данных через границу периметра. Дополнительные сведения об элементах управления услугами VPC см. Обзор средств управления услугами VPC. К узнать об ограничениях использования Cloud TPU с VPC Service Controls, см. поддерживаемые продукты и ограничения.

    Edge TPU

    Модели машинного обучения, обученные в облаке, все чаще нуждаются в запуске вывод «на границе», то есть на устройствах, которые работают на границе сети. Интернет вещей (IoT). К таким устройствам относятся датчики и другие интеллектуальные устройства. которые собирают данные в режиме реального времени, принимают разумные решения, а затем предпринимают действия или передавать свою информацию на другие устройства или в облако.

    Поскольку такие устройства должны работать с ограниченной мощностью (включая питание от батареи), Google разработал сопроцессор Edge TPU для ускорения вывода машинного обучения на маломощные устройства. Отдельный Edge TPU может выполнять 4 трлн. операций в секунду (4 TOPS), потребляя всего 2 Вт мощности, другими словами, вы получаете 2 TOPS на ватт. Например, Edge TPU может выполнять современные модели мобильного зрения, такие как MobileNet V2, со скоростью почти 400 кадров в секунду, и энергоэффективным способом.

    Этот ускоритель машинного обучения с низким энергопотреблением дополняет Cloud TPU и Cloud IoT для предоставить сквозную (между облаком, аппаратным и программным обеспечением) инфраструктуру, которая облегчает ваши решения на основе ИИ.

    Edge TPU доступен для ваших собственных прототипов и производственных устройств в несколько форм-факторов, в том числе одноплатный компьютер, система-на-модуле, Карта PCIe/M. 2 и модуль для поверхностного монтажа. Для получения дополнительной информации о Edge TPU и все доступные продукты можно найти на сайте coral.ai.

    Что дальше

    • Прочитайте краткое руководство по TPU, чтобы начать использовать Ресурсы облачного ТПУ.
    • Завершите одно из учебных пособий по Cloud TPU. чтобы узнать, как запускать общие рабочие нагрузки машинного обучения на Ресурсы облачного ТПУ.

    Обучение крупномасштабным рекомендательным моделям с TPU

    Инженерный блог

    Карьера

    30 марта 2022 г.

    30 марта 2022 г. качество рекомендаций для Snapchatters и повышение ценности для рекламодателей. Эти модели ранжирования объявлений имеют сотни миллионов параметров и обучаются на миллиардах примеров. Обучение модели ранжирования рекламы — это задача, требующая больших вычислительных ресурсов и поиска в памяти. Для надежного и своевременного завершения обучения требуется современная распределенная система и высокопроизводительное оборудование. В этом посте описывается, как мы использовали Tensor Processing Units (TPU) Google для быстрого и эффективного обучения.

    В Snap мы ежедневно обучаем большое количество моделей глубокого обучения, чтобы постоянно улучшать качество рекомендаций по рекламе для Snapchatters и повышать ценность для рекламодателей. Эти модели ранжирования объявлений имеют сотни миллионов параметров и обучаются на миллиардах примеров. Обучение модели ранжирования рекламы — это задача, требующая больших вычислительных ресурсов и поиска в памяти. Для надежного и своевременного завершения обучения требуется современная распределенная система и высокопроизводительное оборудование. В этом посте описывается, как мы использовали Tensor Processing Units (TPU) Google для быстрого и эффективного обучения.

    Основные выводы

    • TPU могут предложить гораздо более высокую скорость обучения и значительно более низкие затраты на обучение для моделей рекомендательных систем, чем CPU.

    • Оборудование TPU хорошо поддерживается TensorFlow, который предоставляет мощный API для обработки больших таблиц встраивания и быстрого поиска.

    • TPU обеспечивает почти линейную производительность масштабирования для небольшого количества ядер, но масштабирование усложняется по мере увеличения количества ядер.

    • Переход от асинхронного обучения к синхронному помог нам проводить более стабильные эксперименты.

    Распределенное обучение моделям ранжирования рекламы

    Рекламная платформа Snap нацелена на ежедневное предоставление релевантной и своевременной рекламы более чем 300 миллионам пользователей с соблюдением их предпочтений в отношении конфиденциальности. Мы ранжируем миллионы объявлений, используя настраиваемые модели глубокой нейронной сети (DNN), которые предсказывают вероятность различных событий конверсии для каждого пользователя; см. раздел «Машинное обучение для ранжирования объявлений Snap» [9].] для получения дополнительной информации.

    В этом разделе представлен обзор проблем, с которыми мы сталкиваемся при обучении больших моделей DNN для ранжирования рекламы. Затем мы опишем систему на основе процессора, которую мы использовали до TPU, и ее ограничения.

    Учебные задания 

    Модели DNN для ранжирования объявлений обучаются на миллиардах примеров, созданных в результате взаимодействия пользователей с показываемой рекламой. Обучение этих моделей является критически важным компонентом команды по ранжированию рекламы. Их улучшение требует множества офлайн и онлайн экспериментов. Наша учебная платформа должна обеспечивать высокую производительность обучения при низких затратах, чтобы обеспечить быстрые итерации наших моделей машинного обучения.

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

    Специализированное оборудование для обучения нейронных сетей обычно способствует ускорению умножения больших матриц. Это очень хорошо сработало для больших современных моделей Computer Vision или NLP. Напротив, у рекомендателей есть дополнительные требования, такие как быстрый поиск встраивания, больший объем ОЗУ для размещения больших таблиц встраивания и высокая пропускная способность памяти. Это усложняет выбор правильного ускорителя.

    Асинхронное распределенное обучение 

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

    У этого подхода есть несколько недостатков:

    • Асинхронное обучение удаляет точку синхронизации и, таким образом, выполняется быстрее, но оно также более шумное и может повлиять на точность.

    • Выбор оптимального количества серверов параметров нетривиален. Очень легко выбрать неоптимальную настройку: слишком много серверов параметров могут привести к большим затратам на обучение из-за низкого уровня использования; или наоборот, слишком малое количество серверов параметров также может привести к большим затратам на обучение из-за узких мест в пропускной способности.

    • Крайне важно не перегружать сервер параметров, убедившись, что мы разделяем и распределяем все обучающие переменные поровну, чтобы избежать частого размещения идентификаторов на одном и том же PS. Однако найти правильный раздел трудно.

    Ограничения PS-подхода также были задокументированы и подтверждены недавними исследованиями [1] и поэтому обычно не одобряются.

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

    Обзор аппаратных ускорителей

    Эволюция аппаратного обеспечения для машинного обучения

    За последнее десятилетие аппаратные ускорители для обучения больших моделей машинного обучения (МО), особенно моделей ГНС, претерпели огромные изменения. В настоящее время графические процессоры (GPU) и тензорные процессоры (TPU) являются ведущими аппаратными ускорителями.

    Начато обучение DNN на многоядерных центральных процессорах общего назначения (ЦП). Обучение ЦП обычно использует кластер машин для разделения рабочей нагрузки и увеличения пропускной способности обучения [10].

    GPU — это специализированное аппаратное обеспечение с тысячами арифметико-логических устройств (ALU) внутри процессора. Он может эффективно обрабатывать большие блоки данных параллельно. ГНС обычно имеют массовый параллелизм в своих основных матричных операциях, что делает графические процессоры наиболее популярным выбором для обучения моделей ГНС. Со временем графические процессоры были усовершенствованы, чтобы предложить огромную вычислительную мощность для удовлетворения постоянно растущего спроса на обучение DNN [11]. Графические процессоры также подходят для вывода моделей; см. Применение графического процессора к привязке [15].

    TPU — это специально разработанные Google интегральные схемы для конкретных приложений. Они достигают массового параллелизма рабочих нагрузок нейронной сети за счет архитектуры систолического массива [12], называемой матричной единицей, где тысячи ALU напрямую связаны, чтобы сформировать большую физическую матрицу. Эта специфичная для предметной области архитектура не требует доступа к памяти во время процесса умножения матриц; Напротив, графические процессоры имеют более общее назначение и нуждаются в доступе к памяти для чтения операндов и сохранения промежуточных результатов [13]. TPU стали конкурентоспособным вариантом для обучения больших DNN.

    На сегодняшний день компания Google представила четыре поколения TPU [14], причем последняя версия v4 была представлена ​​в 2020 году. имеет 2 ядра). Кроме того, платы TPU могут быть подключены через двухмерную тороидальную ячеистую сеть и стать облачным модулем TPU с огромной вычислительной мощностью. Модуль TPU v2 имеет 512 ядер, а модуль v3 — 2048 ядер. Обычно мы используем только часть всего модуля, указав количество используемых ядер.

    Public Benchmark

    В недавних результатах теста MLPerf v1.0 (полученных в июне 2021 г.) самые быстрые обучающие задания на различных архитектурах моделей для различных приложений машинного обучения выполняются либо с использованием новейшего графического процессора Nvidia A100 (запущенного в 2020 г.), либо Google TPU v4. .

    В приведенной ниже таблице указано время обучения (в минутах) для четырех разных моделей с использованием модуля Nvidia DGX Pod с 64 картами A100 или модуля TPU v4 с 128 ядрами (поскольку A100 — это одночиповая карта, а каждый чип TPU имеет два ядра, эти два слайса содержат одинаковое количество чипов). В частности, TPU v4 имеет ускорение обучения в 1,25 раза по сравнению с A100 на DLRM, рекомендательной модели глубокого обучения с открытым исходным кодом, которая является хорошим ориентиром для наших моделей ранжирования.

    * Источник: https://mlcommons.org/en/training-normal-10/ [7]

    Эволюция использования аппаратного ускорителя в Snap распределенная система. Каждая рабочая машина использует либо ЦП, либо видеокарту (например, Nvidia T4) для обработки другого фрагмента входного набора данных.

    Недавно мы начали миграцию обучения модели для синхронного запуска либо на облачной плате TPU v2 или v3 (с 8 ядрами), либо на срезе (обычно с 32 ядрами) модуля TPU v2 или v3. В то же время мы также синхронно изучаем обучающие модели на графических процессорах Nvidia, особенно на новейшем A100.

    Для справки, в приведенной ниже таблице приведены вычислительные мощности в триллионах операций с плавающей запятой в секунду (TFLOPS) для трех ускорителей, с которыми мы экспериментировали при синхронном обучении, а именно для плат TPU v2 и v3, а также карты графического процессора A100. . Эта таблица также включает стандартную почасовую стоимость в облаке Google и соответствующую производительность на доллар для этих трех устройств.

    * Источник: https://cloud.google.com/blog/products/ai-machine-learning/bfloat16-the-secret-to-high-performance-on-cloud-tpus [4]

    Детали интеграции TPU

    Обзор

    TPU хорошо подходят для обучения наших моделей ранжирования по нескольким причинам:

    • TPU изначально поддерживаются и оптимизированы в TensorFlow. У TPU есть собственные настраиваемые API для критической операции поиска встраивания. Например, его можно настроить для эффективной обработки огромных таблиц встраивания путем их автоматического сегментирования по всем ядрам TPU, где часть оптимизации связана со сверхбыстрым межчиповым соединением в устройствах TPU и слайсах pod. Кроме того, в этом режиме TPU может поддерживать гораздо больший размер словаря. Обратите внимание, что мы не тестировали последнюю версию TPU v4, потому что она еще не полностью поддерживается этим API поиска встраивания.

    • Хорошая масштабируемость от платы TPU с 8 ядрами до части модуля с 32 ядрами для обеспечения высокой пропускной способности и экономической эффективности.

    • TPU обеспечивает синхронное обучение, при котором ядра TPU синхронно тренируются на разных фрагментах входных данных и объединяют градиенты с помощью all-reduce на каждом этапе. All-reduce [8] — это коллективная коммуникационная операция, которая суммирует различные градиенты от всех ядер TPU и возвращает результаты каждому. Каждое ядро ​​TPU обновляет параметры своей локальной модели, используя одни и те же агрегированные градиенты, чтобы у него всегда была идентичная копия переменных после каждого шага обучения.

    Однако уникальность аппаратного обеспечения TPU и оптимизированный конвейер обучения TPU в TensorFlow также усложняют интеграцию (мы использовали API TensorFlow v1, ожидается, что интеграция будет проще с API v2, который лучше поддерживает TPU). обучение):

    • TPU имеет уникальный входной конвейер для параллелизма данных и использует очередь ввода/вывода для передачи данных или результатов между хостом и ядрами TPU.

    • TensorFlow использует компилятор XLA (ускоренная линейная алгебра) для ускорения обучения модели на TPU. Однако этот этап компиляции требует, чтобы формы всех тензоров в графе модели были статическими, т. е. известными во время компиляции графа. Это создает проблемы, поскольку длина списка категориальных признаков не является статической.

    • TPU также включает этап обучения модели в собственный цикл while TensorFlow, чтобы амортизировать стоимость запуска, что делает некоторые операторы TensorFlow, визуализацию TensorBoard и настраиваемые обучающие крючки намного сложнее, чем их аналоги без поддержки TPU.

    TPU Embedding Column

    Основной проблемой при обучении TPU является обработка разреженного тензора, полученного из списка категориальных признаков, который имеет нестатическую форму и вызывает ошибку компиляции графа. Более того, поиск встраивания разреженного тензора поддерживается только через API столбца встраивания TPU.

    После некоторых первоначальных исследований по нарезке разреженных тензоров для получения статической формы мы в конечном итоге приняли API для встраивания столбцов TPU. Это собственное и оптимизированное решение для операций на основе внедрения, которое принимает список категориальных функций в качестве входных данных и эффективно выполняет операции на основе внедрения. Он также предлагает настраиваемые параметры, в том числе сегментирование больших таблиц встраивания на нескольких ядрах.

    Входной конвейер 

    TPU требуется специальный код и параметры для его уникальной настройки входного конвейера, чтобы максимизировать общую производительность обучения. В наших первоначальных тестах обучение TPU было намного медленнее, чем ожидалось. После некоторой отладки мы обнаружили, что входной конвейер был узким местом. Мы применяли те же параметры набора данных TensorFlow, которые хорошо работали в наших распределенных задачах обучения ЦП, к входному конвейеру TPU, который оказался неоптимальным.

    После тщательного тестирования мы нашли оптимальные параметры, которые могут устранить большую часть узких мест ввода-вывода и приблизиться к теоретической максимальной производительности. Общая производительность обучения увеличилась более чем в два раза по сравнению с первоначальными результатами.

    Результаты и тесты

    Сравнение TPU и ЦП

    Настройка

    Тесты проводились с использованием внутренней распределенной системы обучения Snap на Google Cloud AI Platform с одной из наших основных архитектур и функций модели. Мы оценили как модель стандартного размера, так и более тяжелую. Оба следуют типичной архитектуре, найденной в [9], при этом более тяжелая модель имеет на 50% больше функций, больший размер встраивания, в два раза большие слои DNN и дополнительные блоки взаимодействия DCN.

    В обучении эталонного ЦП используются: – 56 рабочих процессов (c2-standard-8, 8 виртуальных ЦП, 32 ГБ памяти), пропускная способность 10 Гбит/с – 10 серверов параметров (n2-standard-16, 16 виртуальных ЦП, 64 ГБ памяти), пропускная способность 10 Гбит/с

    TPU Benchmark

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

    Среднее Относительная производительность для обучения с использованием TPU и CPU.

    Благодаря более высокому количеству TFLOPS на ядро, высокому уровню межсоединений между платами TPU и высокой пропускной способности памяти, кажется, что TPU может в целом лучше соответствовать нашему варианту использования, чем наше текущее распределенное обучение на основе ЦП.

    Влияние размера пакета

    Размер пакета необходим для обеспечения насыщения вычислительных возможностей устройства. Увеличение размера пакета для увеличения пропускной способности — распространенный метод, но он может оказаться сложным, поскольку очень большие размеры пакетов обычно приводят к ухудшению метрик. В нашей предыдущей системе мы измерили это для партии >4096, потери в логарифме будут быстро ухудшаться, какими бы общими методами мы ни пытались это смягчить [2], [3].

    Для синхронного обучения с TPU увеличение размера пакета было относительно устойчивым. Мы смогли обеспечить базовую точность при очень большом размере партии, просто увеличив скорость обучения по мере увеличения размера партии и применив прогрев, как описано в статье «Точная, большая мини-пакетная обработка SGD: обучение ImageNet за 1 час» [2]. Производительность TPU v2 начала насыщаться при размере пакета около 131 КБ для нашей системы, и увеличение этого значения не принесло бы пользы.

    Среднее Относительная производительность для обучения с TPU v2 по сравнению с базовой линией ЦП при разных размерах пакетов.

    Масштабирование

    TPU также дает возможность еще больше увеличить количество ядер. В то время как мы наблюдали почти линейное масштабирование при переходе от 8-ядерного к 32-ядерному TPU, 128-ядерные запуски столкнулись с довольно серьезным узким местом и могли обеспечить только 5,25-кратные улучшения вместо теоретических 16-кратных. Подобные проблемы с масштабированием можно наблюдать в общедоступных тестах DLRM с TPU [7] и требуют дальнейшего изучения.

    Среднее Относительная производительность при масштабировании TPU по сравнению с ядрами TPU-8.

    Стабильность обучения

    Мы также измерили стабильность переключения с асинхронного обучения на синхронное. Для команды действительно очень важно иметь возможность воспроизвести прошлые и текущие эксперименты. Если дисперсия между идентичными учебными заданиями слишком велика, труднее сделать значимые выводы из экспериментов и сложнее настроить гиперпараметры.

    Переход на синхронное обучение показал значительное уменьшение дисперсии между идентичными учебными заданиями:

    Логарифмическая дисперсия потерь для 5 идентичных тренировочных прогонов.

    Сравнительные тесты TPU и GPU

    Наконец, мы сравнили TPU с GPU. Использование графических процессоров для обучения рекомендательных систем с помощью TensorFlow имело несколько проблем. Например, до версии TF 2.6 не существовало операций для поддержки базового поиска встроенных графических процессоров. Нам также пришлось ждать TF 2.7, чтобы исправить ошибку с поиском пустого разреженного списка идентификаторов на графических процессорах (подробнее: Улучшенные операции TF 2.7 для более быстрых рекомендаций с NVIDIA [16]).

    В следующем эталонном тесте сравниваются 4x A100 с 32-ядерными процессорами TPU v3 (4 платы TPU-8) и используется тот же глобальный размер партии 131 072. Мы попытались запустить A100 в наиболее оптимизированной среде, используя последнюю версию NVIDIA NGC 22.01 с TensorFlow v2.7.

    Относительная производительность NVIDIA A100 по сравнению с TPU v3.

    До сих пор нам не удавалось сравнить производительность TPU с NVIDIA A100. Возможное объяснение заключается в том, что не используется оптимизация встроенных поисковых запросов, как мы это делали для TPU. Nvidia начала прилагать большие усилия для улучшения поддержки обучения модели рекомендательной системы на графических процессорах. Например, библиотека HugeCTR [5] недавно выпустила плагин TF [6], демонстрирующий ускорение в 7,9 раз благодаря оптимизации встраиваемых слоев по сравнению с ванильным TensorFlow. Мы активно улучшаем наш конвейер обучения, чтобы лучше поддерживать графические процессоры и интегрировать эти оптимизированные решения.

    Резюме

    В заключение, несмотря на то, что сегодня TPU лучше всего подходят для нужд ранжирования рекламы Snap, область аппаратных ускорителей очень активна, и интересные инновации продолжают появляться каждый год. Наша стратегическая цель — продолжать улучшать нашу систему обучения, чтобы достичь самой современной производительности для каждого основного оборудования машинного обучения (TPU, GPU, CPU) и иметь возможность переключаться на любое оборудование, которое обеспечит наибольшую ценность в будущем.

    Ссылки

    [1] Анализ производительности и сравнение распределенных систем машинного обучения

    [2] Точное крупносерийное SGD: обучение ImageNet за 1 час

    [3] Большой пакетное обучение сверточных сетей

    [4] https://cloud.google.com/blog/products/ai-machine- Learning/bfloat16-the-secret-to-high-performance-on-cloud-tpus

    [5] https://github. com/NVIDIA-Merlin/HugeCTR

    [6] https://developer.nvidia. com/blog/accelerating-embedding-with-the-hugectr-tensorflow-embedding-plugin/

    [7] https://mlcommons.org/en/training-normal-10/

    [8] https://tech.preferred.jp/en/blog/technologies-behind-distributed-deep-learning-allreduce/

    [9] Машинное обучение для рейтинга Snap Ad

    [10] https:/ /blog.inten.to/cpu-hardware-for-deep-learning-b91f53cb18af

    [11] https://blog.inten.to/hardware-for-deep-learning-part-3-gpu-8906c1644664

    [12] https://research.google/pubs/pub46078/

    [13] https://cloud.google.com/tpu/docs/intro-to-tpu

    [14] https://blog. inten.to/hardware-for-deep-learning-part-4-asic-96a542fe6a81#e04d

    [15] Применение графического процессора к Snap

    [16] Улучшенные операции TensorFlow 2.7 для более быстрых рекомендаций с NVIDIA

    [17] Глубокое остаточное обучение для распознавания изображений

    [18] SSD: Single Shot90 0 MultiBox 0 [19] BERT: предварительное обучение глубоких двунаправленных преобразователей для понимания языка

    [20] Модель рекомендаций глубокого обучения для систем персонализации и рекомендаций

    Компания

    • Snap Inc.

    Оставить комментарий