Началось всё не с бизнеса, а с науки
Научное сообщество было и остается одним из ключевых компонентов мягкой силы для популяризации open source. Ученые и исследователи — активные пользователи и разработчики открытого ПО.
В научном сообществе вопрос, что выбрать, проприетарное или свободное, так же важен, как и в бизнес-сообществах. Если есть бесплатный GROMACS, зачем брать платное ПО? Всё те же причины: поддержка, обновление, планы на будущее. Исключения появляются, когда ПО закупают централизованно через университет или научное учреждение либо в проприетарном ПО есть функциональность, которой нет в открытом. В бизнесе эту историю осознают, предлагая дорогое проприетарное ПО для исследователей (ANSYS и другие) со скидками или бесплатно при определенных условиях.
Исследователи и инженеры, работающие в области обработки данных и искусственного интеллекта, активно используют open source для создания и тестирования новых алгоритмов, нейронных сетей, методов машинного обучения и других технологий. Открытые библиотеки и фреймворки, такие как TensorFlow, PyTorch, scikit-learn и другие, стали основой для многих инновационных проектов в области искусственного интеллекта. А открытый доступ к коду и данным способствует повышению прозрачности и воспроизводимости научных исследований в этой области.
Однако вместе с прогрессом пришли и большие проблемы. Не сразу, поэтому посмотрим на историю. Забегу вперед, к выводам: сегодня некоторые эксперты предполагают, что золотая эра открытого ПО в науке кончилась.
Исторический экскурс
Я выбрал тему искусственного интеллекта по двум причинам. Первая: все об этом говорят, в отличие от проблематики открытого ПО в нефтегазовом секторе. Вторая: open source играет центральную роль в развитии ИИ. В отличие от того же нефтегазового сектора, где его роль никогда не была настолько выпуклой.
Исследователи истории связывают первые шаги самого искусственного интеллекта как оформленной концепции с 50-ми годами 20-го века.
1950 год: первые искусственные «нейроны», тест Тьюринга.
1956 год: в городе Дартмуте на одноименной конференции объявили о том, что нас ждет большое будущее и уже сейчас нужно задумываться над Artificial Intelligence. Дартмутский воркшоп — отдельная интересная история.
Следующей вехой для ИИ стала победа IBM Deep Blue в шахматной партии 90-х. Многие увидели, что машинное обучение — это процесс, контролируемый человеком, но в этом процессе рождаются тысячи комбинаций, которые не могли бы появиться в человеческой голове, и часть из них выстраивается в комбинацию комбинаций, которая для человеческого мозга уже сложна.
В 2010 году последовали победа IBM Watson и начало поисков монетизации искусственного интеллекта.
2015 год: тектонический сдвиг. В open source выходит TensorFlow от Google.
Перед TensorFlow выкладывались и другие библиотеки, например Caffe, но впервые это было сделано с маркетинговыми и DevRel-инвестициями, серьезным индустриальным игроком и не в нишевой теме. Что могло пойти не так?
Инструмент может быть замечательным, но отсутствие примеров использования и руководств снизит его популярность. В самом начале надо было самостоятельно готовить, загружать в TensorFlow свои данные и тренировать предиктивные модели. Большой труд. Аналогично и сейчас, но сегодня вокруг TensorFlow — глобальное сообщество и большое количество подготовленной документации.
Правильно оценив ситуацию, Google выложил в open source модель BERT, и снежный ком начал свое путешествие. В одном 2023 году было выложено больше 65 000 проектов, связанных с open source ИИ. Здесь уместно замечание, что выкладка в open source TensorFlow по сравнению с BERT или GPT — это совершенно разные по сложности процессы. TensorFlow — набор инструкций, а BERT — сложная модель применения этих инструкций к большим объемам данных, очистка данных, тренировка. И то, что Google смог это сделать, заслуживает уважения.
Состав проекта ИИ
Выше я упоминал только датасеты и инструменты по работе с ними. Начал я с них, так как чаще всего о них и вспоминают. В прошлой статье я упоминал проблему с лицензиями, которых уже стало так много, что сложно уследить. В ИИ еще сложнее, так как ИИ-проект состоит из большего количества компонентов, каждый из которых может иметь свою лицензию.
В ИИ-проект входит:
- 1. Программный код. Реализация основной функциональности. Бонусом — документация, которую иногда пишут. Документация описывает не только функциональность и основные нюансы, но и необходимое оборудование, спецификации и другие нужные для запуска и поддержки проекта данные.
- 2. Параметры и гиперпараметры модели. Тестовые либо реальные данные, тренированная модель, нужная для того, чтобы проект настроить и запустить.
- 3. Датасет. Набор сырых данных, разметка, валидация, комментарии и прочие полезные для тренировки на этом датасете метаданные.
- 4. Исходный код для тренировки. Код, берущий гиперпараметры, датасет и остальное и переводящий всё это в параметры модели. Плюс документация.
- 5. Фреймворки, на основе которых написан программный код. Это PyTorch, TensorFlow и другие.
Это список в первом приближении. Вне зависимости от детализации компоненты связаны между собой и могут быть выложены в open source отдельно, создавая прецеденты.
Чтобы понять, почему это проблема, представим себе классическое программное обеспечение, код которого выложили в open source, а документацию о том, как собрать, какие зависимости нужны, форматы входа и выхода — нет. Разобраться, конечно, можно, но это потребует времени. В случае ИИ-проекта, любая часть которого из списка выше отсутствует в открытом доступе, нет никакой гарантии, что разберемся мы корректно. Выкладывая в open source часть системы, разработчики ограничивают либо лишают сообщество возможности полноценно оценивать ее работоспособность и расширять функционал. Почему это происходит — подумаем в следующей статье.