Ведущий разработчик Йордан Зайков из Microsoft рассказывает, что перед тем, как стать открытым, Infer.NET прошел долгий путь. В 2004 году его разработку начали ученые из исследовательской группы MS в Кембридже. Было сделано многое для того, чтобы решения для машинного обучения стали масштабируемыми и интерпретируемыми, сообщается в блоге компании.
Изначально фреймворк был нацелен исключительно на исследовательские задачи. В 2008 проект был опубликован для академического использования. И в компании говорят, что это привело к появлению сотен научных работ в разных областях, выполненных с этим инструментарием. Infer.NET помогал сохранению лесов, лечению астмы и исследованиям в области эпидемиологии, за что в свое время получил награду Patents for Humanity.
Но со временем фреймворк становился все более мощным инструментом и в какой-то момент превратился в полноценный ИИ-движок в ряде продуктов Microsoft. Например, в Office, Xbox и Azure. Например, именно на его основе работает сложная система оценки миллионов игроков в Halo 5 и Gears of War 4.
Сейчас компания хочет дать ему большее распространение, сделав открытым. В качестве главного преимущества именно этого решения называют модельный подход.
Это означает, что ученый, программист или любой другой энтузиаст, столкнувшийся с проблемой и задумавший решить ее с помощью машинного обучения, сможет получить кастомизированное ИИ-решение.
То есть ему не придется переносить свою проблему на существующие методы машинного обучения, не всегда до конца понимая, как они работают. Вместо этого, с помощью Infer.NET исследователь сможет создать алгоритм точно под свою модель. Плюсом такого подхода станет его высокая интерпретируемость. Программист сам видел, как создавалась модель, а не подгонял чужую на свою проблему.
Кажется, MS взяла курс на упрощение взаимодействия с ИИ-решениями. Почти месяц назад стало известно, что ИТ-гигант приобрел стартап Lobe. Продукт стартапа — конструктор для создания ИИ-приложений. Пользователю не нужно разбираться ни в программировании, ни в машинном обучении — только передвигать блоки с нужным функционалом.