empirical – это платформа, на которой исследователи могут проводить свои эксперименты и делиться полной исследовательской средой, включая данные, структуру, модель решения и результаты.

Я хотел бы начать этот блог с небольшого предыстории эмпирического и того, почему я над ним работаю.

Сначала немного о себе: меня зовут Алан, я основатель компании empirical. Я изучал мехатронику в колледже, а затем получил докторскую степень по искусственному интеллекту, где специализировался на компьютерном зрении. В то время я начал консультировать стартап, оптимизируя алгоритмы компьютерного зрения для маркировки видео для создания интерактивных впечатлений. Я оставил докторскую, не закончив диссертацию, чтобы присоединиться к стартапу на постоянной основе, руководя технической стороной.

Наука неэффективна

И во время моей докторской диссертации в качестве исследователя, и во время моей работы инженером-программистом я работал с эмпирической наукой и понял, что существует множество неэффективных факторов, замедляющих современную науку.

Открытие

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

Воспроизводимость

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

Экспериментальный рабочий процесс

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

Все эти проблемы складываются и приводят к длинным петлям обратной связи, медленным циклам итерации исследований, что часто приводит к некачественным исследованиям.

Там должен быть лучший способ

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

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

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

Почему сейчас?

«Программное обеспечение пожирает мир» — Марк Андрисен

«Мы перейдем от мобильных устройств к миру, основанному на искусственном интеллекте». — Сундар Пичаи

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

ИИ — это эмпирическая наука, и инструменты, которые нам нужны для тестирования и разработки, сильно отличаются от тех, которые используются для веб-приложений и мобильных приложений. Ваши тесты больше не будут проходить или не проходить, вам нужно будет оценивать показатели производительности и, в идеале, сравнивать их с общедоступным тестом.

Это означает, что неэффективность, которая сегодня влияет на научные исследования в академических кругах, скоро повлияет на все остальные отрасли.

Знакомство с эмпирическими

В empirical мы хотим создать инструменты, необходимые ученым и инженерам для продуктивной работы с эмпирической наукой. В это уже вложено много работы, и на данный момент мы имеем:

  • каркас для портативных вычислительных экспериментов
  • Клиент с открытым исходным кодом для оптимизации рабочего процесса разработки и повторения экспериментов.
  • Онлайн-панель для отслеживания ваших экспериментов (в настоящее время находится в закрытой альфа-версии)

Что дальше?

Предстоит еще много работы. Некоторые вещи, над которыми мы сейчас работаем, включают:

  • Поддержка графического процессора. (Редактировать: сделано с версии 0.5)
  • Создайте основу для модульной оценки/сравнительного анализа
  • Упростите организациям внутреннюю совместную работу
  • Размещение наборов данных и моделей
  • Разрешить проводить эксперименты в облаке

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

Используйте результаты для лучшего обнаружения.Для любой вычисляемой задачи будьте в состоянии ответить: какое лучшее решение для этой задачи?

Втягиваться

Если что-то из этого звучит интересно, пожалуйста, обращайтесь. Будем рады вашему отзыву. Вы можете сделать это, используя инструмент и проблемы с файлами, предложить новые функции или просто присоединиться к разговору в нашем чате Gitter.