Как стать автором
Обновить
15
0
Максим Рябинин @mryab

Исследователь в Yandex Research

Отправить сообщение

Можете пояснить какие проблемы там были обнаружены?

В случае с датасетами RUSSE и RuCoS, в которых надо ответить сущностью или что-то сказать о смысле слова из предложения, я заметил ряд проблем с соответствием сущностей и сегментов, которые им сопоставлены: например, сегменты включают в себя пунктуацию, пробелы или вообще не те слова, которые должны в них находиться. Это вредит чистоте данных, а соответственно, и качеству моделей: в коде (например, тут) более детально описана суть проблем и исправления, которые применяются при подготовке данных. Как можно видеть по лидерборду, подобные исправления для RUSSE сделали наше решение лучшим по сравнению со всеми другими ML-методами.

На HF Hub у вас лежит только файл модели. Это правильно? Разве там не должен быть рядом сложен vocab и конфиги для токенайзера?

Кажется, всё нужное на месте: по этой ссылке находятся файлы токенизатора (как написано в инструкции на GitHub, они лежат в отдельной папке).

  1. Я бы не стал лишний раз конвертировать модели в TensorFlow без необходимости (скажем, без наличия inference-движка, опирающегося на модели в нужном формате): экосистема PyTorch на текущий момент гораздо богаче, а отличия с точки зрения производительности в стандартных ситуациях бывают в пользу каждого фреймворков и не всегда значимы. Более того, насколько я понимаю, поддержка TensorFlow в целом ослабевает в последнее время на фоне популярности PyTorch.

  2. Использовать эти классы вы в целом действительно можете, но из-за деталей реализации модели (это всё-таки не обычный BERT) загрузить RuLeanALBERT в AutoModel у вас пока что не получится. В качестве решения на текущий момент вы можете использовать реализацию LeanAlbertForSequenceClassification из кода, который мы выложили: общий интерфейс там такой же, как у AutoModel, и, как видно из кода обучения, всё прекрасно работает вместе с классом Trainer из transformers.

какой объем VRAM ей требуется? Хватит 12 Гб у 3060?

На всякий случай специально замерил: в загруженном состоянии модель изначально занимает примерно 2300 MB видеопамяти, при полноценном дообучении на RuCoLA — примерно 10 гигабайт (разумеется, в смешанной точности, но без больших хаков наподобие offloading). Должно хватить в вашем сетапе :)

сколько BERT требует VRAM?

Тут нужно учитывать, что вариаций BERT бывает много: скажем, есть RuRoBERTa-large, которая при обучении в сетапе выше потребляет примерно 7500 MB памяти, а есть rubert-tiny, которая весит десятки мегабайт и сравнительно быстро работает даже на CPU. При этом все модели имеют разный размер и уникальные сильные и слабые стороны; как я писал в посте, выбирать, что использовать, стоит исходя из задачи.

судя по всему, какие-то неподдерживающиеся ТПУ операции

Кстати, технически ничто действительно не мешает использовать и даже предобучать модель нашим кодом на TPU: в частности, в проектах sahajBERT и в особенности CALM волонтёры уже могли пользоваться TPU в рамках эксперимента (код есть в оригинальном репозитории).

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

В целом область науки, занимающаяся этой проблемой, называется byzantine-tolerant training, и существует не так мало методов для обеспечения устойчивости. В частности, в ещё одной нашей недавней статье мы предлагаем масштабируемый метод для защиты децентрализованного обучения: он опирается на устойчивую к выбросам агрегацию CenteredClip и идеи из secure multi-party computation для проверки случайного подмножества участников. Уже работаем над его встраиванием в hivemind, stay tuned!

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность