В машинном обучении существует кризис, который не позволяет этой области развиваться так быстро, как могло бы. Это связано с более широким затруднением, связанным с воспроизводимостью, которое влияет на научные исследования в целом. Опрос 1500 ученых, проведенный журналом Nature, показал, что 70% исследователей пытались и не смогли воспроизвести эксперименты других ученых, а более 50% не смогли воспроизвести свои собственные работы. Воспроизводимость, также называемая воспроизводимостью, является основным принципом научного метода, который помогает гарантировать, что результаты исследования не являются разовым явлением, а фактически представляют собой воспроизводимое наблюдение.
В компьютерных науках воспроизводимость имеет более узкое определение: любые результаты должны быть задокументированы путем обеспечения доступности всех данных и кода, чтобы вычисления можно было выполнить снова с теми же результатами. К сожалению, у искусственного интеллекта (ИИ) и машинного обучения (МО) проблемы с прозрачностью и воспроизводимостью. Возьмем, к примеру, этот ответ, опубликованный в журнале Nature 31 ученым, резко критикующим исследование Google Health, в котором задокументированы успешные испытания ИИ, обнаруживающего признаки рака молочной железы.
Скептически настроенные ученые утверждают, что в исследовании Google содержится слишком мало подробностей о том, как создавалась и тестировалась модель искусственного интеллекта, и зашли так далеко, что заявили, что это просто реклама проприетарной технологии. Без адекватной информации о том, как была создана данная модель, научное сообщество практически не может рассмотреть и воспроизвести ее результаты. Это способствует растущему восприятию того, что искусственному интеллекту не хватает прозрачности, что усугубляет проблемы доверия между людьми и системами ИИ.
Чтобы сохранить динамику развития и добиться успеха с искусственным интеллектом, необходимо решить проблемы воспроизводимости и прозрачности в полевых условиях. В этой статье объясняется значение кризиса воспроизводимости ИИ, а также то, как новая версия GitHub, созданная специально для машинного обучения, может помочь решить эту проблему.
Зачем нам нужен GitHub, созданный специально для машинного обучения
GitHub — облачный сервис для разработки и управления кодом. Платформа используется для контроля версий программного обеспечения, что помогает разработчикам отслеживать изменения в коде на протяжении всего жизненного цикла разработки. Это позволяет безопасно разветвлять и объединять проекты, а также обеспечивать воспроизводимость кода, работающего одинаково независимо от того, кто его запускает. Поскольку приложения AI и ML написаны в коде, GitHub был естественным выбором для управления ими. К сожалению, ряд различий между ИИ и более традиционными программными проектами делает GitHub неподходящим для искусственного интеллекта, что способствует кризису воспроизводимости в машинном обучении.
GitHub не был разработан с учетом данных в качестве основного компонента проекта.
Традиционные программные алгоритмы создаются разработчиками, которые берут идеи из головы и записывают их в виде кода на детерминированном, математическом, полном по Тьюрингу языке. Это делает программное обеспечение легко воспроизводимым — все, что необходимо для воспроизведения данной части программного обеспечения, — это его код и библиотеки, используемые для оптимизации задач.
Алгоритмы машинного обучения отличаются тем, что они не создаются в умах разработчиков, а подразумеваются из данных. Это означает, что если данные изменяются, алгоритм машинного обучения изменяется, даже если код и переменные операционной среды, записанные при традиционной разработке программного обеспечения, остаются постоянными. В этом и заключается основная проблема использования GitHub для ИИ: даже если вы отследите код и библиотеки, используемые для разработки алгоритма искусственного интеллекта, вы не сможете воспроизвести его, потому что он зависит от данных, а не только от кода. Некоторые способы преодоления этого включают:
- Автоматизированное управление версиями данных. Чтобы избежать проблем с воспроизводимостью, возникающих из-за несогласованности наборов обучающих данных, управление версиями данных должно быть ключевой функцией любой платформы, предназначенной для управления проектами AI/ML. Это дает командам автоматизированный способ отслеживать все изменения, внесенные в данные, гарантируя, что результаты могут быть привязаны к конкретной версии обучающего набора данных, который их информирует. Хотя сегодня GitHub может отслеживать изменения в коде, он не может отслеживать данные. Преодоление этого сыграет ключевую роль в разрешении кризиса воспроизводимости в ИИ.
- Неизменная наследственность данных. Неизменная наследственность данных обеспечивает неизменяемую запись обо всех действиях и активах в жизненном цикле машинного обучения, связанных с данными. Это позволяет командам машинного обучения отслеживать каждую версию своего кода, моделей и данных. Предоставляя неизменяемую запись для всех действий, связанных с моделью ML, от обучения до производства, обеспечивается воспроизводимость и лучше управляются отношения между историческими наборами данных.
Искусственный интеллект использует массивные неструктурированные наборы данных
Не только невозможность отслеживать изменения в данных делает использование GitHub для ИИ проблематичным, традиционное программное обеспечение и ИИ также зависят от совершенно разных типов данных. Программное обеспечение написано в виде кода, а код выражается в виде текста. По своей природе текстовые файлы не очень большие. И наоборот, искусственный интеллект опирается на неструктурированные данные, такие как аудио, изображения и видео, которые намного больше, чем текстовые файлы, и поэтому создают дополнительные проблемы с отслеживанием данных и управлением ими.
Процесс, посредством которого данные из нескольких источников объединяются в единое хранилище данных, называется извлечением, преобразованием и загрузкой (ETL). Это общий процесс репликации данных из исходных систем в целевые системы, который позволяет различным типам данных работать вместе. Специалисты по данным и инженеры нуждаются в управлении версиями данных, происхождении данных, возможности обработки больших файлов, а также в управлении сценариями и библиотеками, используемыми для обработки данных, чтобы извлекать, преобразовывать и загружать данные для использования в разработке приложений ИИ.
Некоторые появляющиеся решения этой проблемы обсуждаются далее в статье, но важно отметить, что эта функциональность в настоящее время не встроена в ядро GitHub, что делает невозможным правильное управление данными, которые информируют алгоритмы машинного обучения на платформе.
Параметры модели машинного обучения вносят дополнительную сложность
Эти проблемы с воспроизводимостью ИИ и использованием GitHub для проектов машинного обучения выходят за рамки простой невозможности отслеживать изменения в данных и управлять большими неструктурированными наборами данных. Даже если код, библиотеки и данные, используемые для разработки алгоритма искусственного интеллекта, останутся неизменными, все равно будет невозможно воспроизвести те же результаты с использованием одной и той же системы ИИ из-за изменчивости параметров модели.
Как упоминалось ранее, алгоритмы машинного обучения основаны на данных. Однако это не единственный фактор, влияющий на систему. Параметры — это другие входные данные, которые влияют на то, как работает данный алгоритм. Существует два типа параметров модели: гиперпараметры и простые параметры. Гиперпараметры можно рассматривать как высокоуровневые элементы управления процессом обучения, которые влияют на результирующие параметры данной модели. После завершения обучения модели машинного обучения параметры представляют саму модель. Гиперпараметры, хотя и используются алгоритмом обучения во время обучения, не являются частью результирующей модели.
По определению гиперпараметры являются внешними по отношению к модели ML, и их значение нельзя оценить на основе данных. Изменения гиперпараметров приводят к изменениям точного алгоритма, который в конечном итоге изучает модель машинного обучения. Если код — это дизайн того, как построить человеческий мозг, то гиперпараметры и модели — это то, как построить именно ваш мозг. Это важно, потому что одна и та же кодовая база, используемая для обучения модели, может генерировать сотни или тысячи различных параметров.
Отслеживание результатов экспериментов и проверка кода
При тестировании моделей машинного обучения важно отслеживать результаты экспериментов. Эти результаты помогают определить, какая модель лучше всего подходит для производства, и неудивительно, что GitHub не предназначен для записи этих деталей. Хотя можно создать собственный обходной путь, это решение не масштабируется и недоступно для многих разработчиков из-за нехватки времени и ресурсов.
Управление моделью машинного обучения также включает проверку кода и отслеживание версий, в чем GitHub преуспевает. Хотя GitHub очень хорошо отслеживает код и переменные среды, машинное обучение требует отслеживания данных, параметров, метаданных, результатов экспериментов и многого другого. Платформа Git не была создана для такого уровня сложности, но, к счастью, есть несколько новых решений, которые пытаются преодолеть ограничения GitHub для ИИ и машинного обучения.
Альтернативы GitHub для ИИ и машинного обучения
Не существует единственной альтернативы GitHub, которая предлагает комплексное решение для управления проектами искусственного интеллекта и машинного обучения. В идеале GitHub, специально предназначенный для машинного обучения, станет доступен для ученых и инженеров, работающих в этой области. До тех пор существует ряд решений, которые решают различные проблемы, упомянутые выше:
- Neptune — это хранилище метаданных для MLOps, которое предлагает единое место для регистрации, хранения, отображения, организации, сравнения и запроса всех метаданных для построения моделей машинного обучения. Доступна Документация по использованию Neptune для управления версиями данных. Это включает в себя управление версиями наборов данных в прогонах обучения модели, сравнение наборов данных между прогонами, а также организацию и совместное использование версий наборов данных.
- Толстокожий — это слой данных, используемый для улучшения жизненного цикла машинного обучения. Компания предлагает решения для автоматизированного управления версиями данных и неизменяемой линией данных.
- DVC — это система контроля версий с открытым исходным кодом, созданная для проектов машинного обучения. Инструмент позволяет специалистам по данным и инженерам сохранять и воспроизводить результаты экспериментов, контролировать версии моделей и данных, а также устанавливать процессы для развертывания и совместной работы.
- Git Large File Storage (Git LFS) заменяет большие файлы, такие как образцы аудио, видео, наборы данных и графику, текстовыми указателями внутри Git, сохраняя при этом содержимое файлов на удаленном сервере. Этот инструмент представляет собой расширение Git с открытым исходным кодом для управления версиями больших файлов, таких как наборы аудио- и видеоданных. Он призван помочь разработчикам более эффективно работать с большими файлами и двоичными файлами.
- DoIt — это база данных SQL, которую можно разветвлять, клонировать, разветвлять, объединять, отправлять и извлекать точно так же, как репозиторий Git. Он позиционирует себя как Git для данных, играя на недостатках GitHub для управления данными, изложенных выше. Хотя DoIt обычно используется для отслеживания версий, чтобы обеспечить согласованную воспроизводимость модели, среди множества других вариантов использования.
- LakeFS — это инструмент управления данными, доступный в обеих платных версиях программного обеспечения как услуги (SaaS) с открытым исходным кодом. В этом решении особое внимание уделяется полной воспроизводимости данных и кода, быстрому возврату данных и контролю версий в петабайтном масштабе.
- Delta Lake — это проект с открытым исходным кодом, который позволяет построить архитектуру Lakehouse поверх существующих систем хранения, таких как S3, ADLS, GCS и HDFS. Некоторые функции этого решения, которые делают его хорошим вариантом для машинного обучения, включают открытый протокол для обмена данными, масштабируемую обработку метаданных, управление версиями данных и возможность просмотра истории аудита каждого изменения, внесенного в данные.
Дополнительные ресурсы AI и ML
Наша миссия в super.AI — автоматизировать скучную работу, чтобы люди могли быть более человечными. Мы стремимся сделать искусственный интеллект доступным для всех с помощью технологий, которые мы создаем, и ресурсов, которые мы создаем. Если вы хотите узнать больше об искусственном интеллекте, ознакомьтесь со следующими ресурсами:
- Закажите индивидуальную демонстрацию, чтобы увидеть, как ИИ может помочь вашему сценарию.
- Посмотрите наш вебинар: Тенденции искусственного интеллекта, которые имеют значение в 2022 году (и далее)
- Читайте наш блог: Что такое ИИ?
Первоначально опубликовано на https://super.ai.