Мы в Тинькофф активно инвестируем в образование. Развиваем Поколение, Финтех, Академию и другие программы. Open source — наглядный способ передать экспертизу на конкретных примерах и дополнительная возможность развивать наши образовательные программы. Открытая разработка инструментов позволяет расширить свою экспертность и развить саму область вокруг, проводить митапы и конференции и развивать dev-комьюнити. В прошлой статье мы рассказали про центр технологий искусственного интеллекта — Tinkoff.AI. А сегодня поговорим про развитие AI open source: как мы развивали ETNA, релизили CORL, открывали свои AI-исследования. Все самое интересное про насыщенный 2022 год — в этом посте. Начнем с первого большого open source проекта — ETNA, о котором мы много рассказывали в этом году [тык, тык, тык, тык]. ETNA — это Python-библиотека для анализа и прогнозирования временных рядов.  Разработка библиотеки началась несколько лет назад, чтобы упростить рутинные задачи. Чуть больше года назад мы решили поделиться ею с общественностью и выложили на GitHub. Если вам интересно узнать, как все это начиналось, — смотрите выступление Андрея Алексеева на PyCon-2021: Вот несколько крутых фишек, которые появились за год развития библиотеки: Больше 30 методов EDA. Поддержка предсказательных интервалов — теперь можно оценить уверенность прогноза моделей и учитывать неопределенность при использовании прогнозов. Больше десяти адаптеров для популярных моделей — Prophet, SARIMAX, Catboost и небольшой зоопарк нативных нейросетей — MLP, RNN. Три метода отбора признаков. Мы адаптировали алгоритм Гейла — Шепли, MRMR и tree-based подходы отбора наиболее релевантных фич для прогнозирования временных рядов. Перебор пайплайнов прогнозирования на базе Optuna. Теперь можно перебирать как собственный набор пайплайнов, так и дефолтный пул — прогнозирование по одной кнопке. Останавливаться не планируем, пул идей для доработок непрерывно пополняется. Часть из них появляются как артефакты наших исследовательских проектов в рамках внутренних задач, а часть подсказывает наше любимое комьюнити. Кроме разработки, мы всячески популяризировали нашу библиотеку — выступали на конференциях PyCon, Dump и PiterPy, организовали митап и сходили на митапы других компаний. Еще подготовили ноутбуки для четырех соревнований на Kaggle (тык, тык, тык) и даже заняли седьмое место на одном из них. А еще подготовили 10 туториал-ноутбуков по библиотеке и написали четыре статьи на Хабр. На 2023 год у нас ряд амбициозных планов по расширению возможностей библиотеки: EDA Pipeline — автоматизируем аналитику временных рядов, у пользователей появится возможность генерировать аналитические отчеты на основе их данных по одной кнопке. AutoML — упростим подбор пайплайнов прогнозирования и их гиперпараметров. Добавим интерфейс прогнозирования и интерфейс для кастомизированного подбора гиперпараметров на базе Optuna. Иерархический пайплайн — добавим возможность работы с иерархическими данными. Интерпретация — будут инструменты интерпретации работы моделей прогнозирования, пользователи смогут анализировать работу модели, смотреть, на что она обращает внимание при обучении и почему выдает те или иные прогнозы. Большие данные ждут поддержку распределенных вычислений для работы с большими датасетами. Если вам интересно поддержать, поучаствовать, или позадавать вопросы по ETNA — заходите в наш телеграм-канал. И не забудьте поставить звездочку на GitHub! Второй значимый проект этого года — запуск Clean Offline Reinforcement Learning, или CORL, библиотеки. Одно из основных направлений в отделе исследований Tinkoff AI — Reinforcement Learning и Offline Reinforcement Learning. И в отличие от других направлений, RL отличается повышенной волатильностью результатов агентов и чувствительностью к гиперпараметрам и имплементации. Хотя на GitHub уже хватает открытых реализаций и целых фреймворков по ORL, с точки зрения RL-исследователя они имеют ряд недостатков. С одной стороны, это может быть авторская имплементация, написанная в research-стиле, понять которую может не каждый. С другой стороны, фреймворки для ORL, предлагающие удобный API взаимодействия, придумывают много дополнительных абстракций, которые также непросто понять и быстро изменить под себя при необходимости.  Чтобы дать исследователям возможность быстро и легко реализовывать свои идеи в области ORL, мы и выпустили CORL. В отличие от альтернатив, мы не писали фреймворк, а написали single-file имплементации. Для поддержания воспроизводимости каждая single-file имплементация параметризуется через single-file yml-конфиг и логирует все результаты в wandb. Такой подход как упрощает нам адаптацию имплементаций под свои идеи, что важно при исследованиях, так и сохраняет воспроизводимость результатов: и имплементацию, и конфиг можно залогировать прямо в wandb! Мы имплементировали и протестировали на 18 (!) офлайн-датасетах Mujoco такие алгоритмы: AWAC, BC, CQL, DT, EDAC, IQL, SAC-N, TD3+BC. Подробное описание результатов можно найти на GitHub. Несмотря на недавний релиз, мы успели пройти с этой библиотекой на NeurIPS ORL workshop, а еще активно используем ее в RL-исследованиях. А более подробный рассказ про имплементации можно найти на Ютубе: Заключительное направление нашего AI open source — открытые имплементации исследовательских статей. Такие имплементации не только ускоряют развитие области AI, но и делают ее более воспроизводимой и надежной. RL. Продолжая тему Reinforcement Learning, в этом году мы также открыли EOP — codebase по нашей статье с ICML этого года Showing Your Offline Reinforcement Learning Work: Online Evaluation Budget Matters. Предложенный метод позволяет исследователям более точно и обширно представлять результаты новых алгоритмов, а значит, помогает делать более надежные выводы о том, какой из алгоритмов стоит выбрать в той или иной ситуации. Подробнее рассказали в прошлой статье. NLP. В области обработки текстов в этом году у нас были две крупные статьи. Первая — PALBERT, новый метод для раннего выхода из вычислений модели. Открытая реализация метода позволит новым исследователям легко строить новые работы на основе наших результатов. Вторая — CAIF, метод для контролируемой генерации текста. Кроме открытой реализации мы сделали демо в Hugging Face Hub. Благодаря этому каждый может поиграться с CAIF — посмотреть, как будет работать метод с разными гиперпараметрами и текстовыми затравками для генерации.  ML. Кроме RL и NLP, мы также развиваем область Metric Learning. Например, по результатам недавней статьи Probabilistic Embeddings Revisited выложили код, реализующий известные вероятностные подходы к Metric Learning. Пока мы занимались стохастическими нейронными сетями, родилась идея оптимизировать их точность при помощи градиентного спуска. В итоге появился loss для задач классификации, который мы представили в статье EXACT: How to Train Your Accuracy на воркшопе конференции ICML 2022. Код выложили в паблик. Подробнее о наших исследовательских направлениях рассказывали на митапе: За этот год мы открыли много собственных разработок и не планируем останавливаться. Начавшееся с ETNA в прошлом году движение в сторону open source, мы продолжили новыми открытыми исследованиями. Надеемся, что наши работы будут полезны вам и помогут развитию AI/ML-сообщества. Еще больше открытых активностей по ML/AI от Тинькофф ловите на нашем ютуб-канале. А если интересно следить за жизнью центра здесь и сейчас — присоединяйтесь к Желтому AI.   RnD