🤗 Don't Repeat Yourself
#pro_nlp #nlp #transformers #opensource
Вчера HuggingFace подняли 100 миллионов долларов инвестиций и достигли капитализации в 2 миллиарда долларов.
С 2016 года HuggingFace стал самой большой и быстрорастущей платформой для машинного обучения. В HF Hub хостятся 100+ тысяч предобученных моделей и 10+ тысяч датасетов для NLP, CV, ASR, RL и многих других направлений.
Я давно хотела подсветить Transformers Design Philosophy, принятый в команде для развития opensource платформы.
🤗 Для сравнения: контрибьюторы Linux исчисляются десятками тысяч человек (популярная оценка — 16 тысяч разработчиков). ML-сообщество HuggingFace — теперь более 100 тысяч.
В основе философии лежит отказ от принципа DRY ("Don't repeat yourself"). Этот принцип широко используются во многих сферах разработки ПО, и впервые был сформулирован в книге "Программист-прагматик". TLDR: не дублировать логику, которая уже написана где-то еще. В трансформерах же вариаций того же механизма attention уже 50+ в разных файлах, а функции BERT часто просто скопированы разработчиками в код новых моделей — что с этим делать?
В data science зачастую нормализован грязный код, разобранный по ноутбукам, плохой контроль версий экспериментов и чекпоинтов, полученных в результате, не говоря уже о датасетах (guilty). В платформе для коллабораций такого хочется избежать и обеспечить порядок. Но в случае с тем же attention пришлось бы писать много абстракций разного уровня вложенности, чтобы обеспечить все вариации механизма, представленные в статьях, и заставлять разработчиков новых моделей переиспользовать их.
Примерно таким путем расширялся тот же sklearn, однако, там никогда не было сотни тысяч контрибьюторов: с таким масштабом контролировать порядок все сложнее. Как сделать централизованный цивилизованный подход, обеспечивающий воспроизводимость и прозрачность результатов?
Ответ HuggingFace: не использовать DRY вообще. Вместо принципов DRY исппользуется single file policy: весь необходимый код для запуска и инференса модели должен находиться в одном файле вида
Другие разаботчики будут смотреть только его, если хотят разобраться с логикой модели. И никакой абстракции.
Потому что:
1. Transformers создается open source сообществом и для него.
2. Как пишут фаундеры, продукт HuggingFace — это модели, а их клиенты — это разработчики, которые читают или настраивают код модели.
3. Область ML развивается очень быстро, абстракций не напасешься.
4. ML-модели при этом статичны и зафиксированы.
Уверена, что для продуктовой разработки этот подход как минимум очень нестандартный. А вот если продукт на самом деле — коммьюнити, то очень даже понятный. Легкая интеграция в индустриальные пайплайны, ниже порог входа, модели — в открытом доступе, никакого обучения с нуля,полная экономия green AI 🌱.
Можно сказать, что HuggingFace — инстраструктурный продукт ML для ML, и теперь сложно представить разработку без него. И вместе с ним и single file policy — для нужд опенсорса пока что самый рабочий вариант.
#pro_nlp #nlp #transformers #opensource
Вчера HuggingFace подняли 100 миллионов долларов инвестиций и достигли капитализации в 2 миллиарда долларов.
С 2016 года HuggingFace стал самой большой и быстрорастущей платформой для машинного обучения. В HF Hub хостятся 100+ тысяч предобученных моделей и 10+ тысяч датасетов для NLP, CV, ASR, RL и многих других направлений.
Я давно хотела подсветить Transformers Design Philosophy, принятый в команде для развития opensource платформы.
🤗 Для сравнения: контрибьюторы Linux исчисляются десятками тысяч человек (популярная оценка — 16 тысяч разработчиков). ML-сообщество HuggingFace — теперь более 100 тысяч.
В основе философии лежит отказ от принципа DRY ("Don't repeat yourself"). Этот принцип широко используются во многих сферах разработки ПО, и впервые был сформулирован в книге "Программист-прагматик". TLDR: не дублировать логику, которая уже написана где-то еще. В трансформерах же вариаций того же механизма attention уже 50+ в разных файлах, а функции BERT часто просто скопированы разработчиками в код новых моделей — что с этим делать?
В data science зачастую нормализован грязный код, разобранный по ноутбукам, плохой контроль версий экспериментов и чекпоинтов, полученных в результате, не говоря уже о датасетах (guilty). В платформе для коллабораций такого хочется избежать и обеспечить порядок. Но в случае с тем же attention пришлось бы писать много абстракций разного уровня вложенности, чтобы обеспечить все вариации механизма, представленные в статьях, и заставлять разработчиков новых моделей переиспользовать их.
Примерно таким путем расширялся тот же sklearn, однако, там никогда не было сотни тысяч контрибьюторов: с таким масштабом контролировать порядок все сложнее. Как сделать централизованный цивилизованный подход, обеспечивающий воспроизводимость и прозрачность результатов?
Ответ HuggingFace: не использовать DRY вообще. Вместо принципов DRY исппользуется single file policy: весь необходимый код для запуска и инференса модели должен находиться в одном файле вида
zapuskaem_berta.py.
Другие разаботчики будут смотреть только его, если хотят разобраться с логикой модели. И никакой абстракции.
Потому что:
1. Transformers создается open source сообществом и для него.
2. Как пишут фаундеры, продукт HuggingFace — это модели, а их клиенты — это разработчики, которые читают или настраивают код модели.
3. Область ML развивается очень быстро, абстракций не напасешься.
4. ML-модели при этом статичны и зафиксированы.
Уверена, что для продуктовой разработки этот подход как минимум очень нестандартный. А вот если продукт на самом деле — коммьюнити, то очень даже понятный. Легкая интеграция в индустриальные пайплайны, ниже порог входа, модели — в открытом доступе, никакого обучения с нуля,
Можно сказать, что HuggingFace — инстраструктурный продукт ML для ML, и теперь сложно представить разработку без него. И вместе с ним и single file policy — для нужд опенсорса пока что самый рабочий вариант.