После десяти лет создания всего: от приложений для iPhone на ранних стадиях стартапов до медицинских систем искусственного интеллекта в крупных технологических компаниях, я наблюдал, как бесчисленные организации с головой бросались на внедрение ИИ, но спотыкались, когда наступала реальность. Цифры рассказывают отрезвляющую историю: 74% компаний изо всех сил пытаются достичь и масштабировать ценность ИИ, а 42% отказываются от своих инициатив в области ИИ, не дойдя до производства. Проблема не в самой технологии, а в том, как мы к ней подходим.
Основная проблема? Большинство проектов ИИ терпят неудачу, потому что их рассматривают как эксперименты по машинному обучению (ML), а не как инженерные проекты.
Разрыв в инженерном мышлении
Когда я работал старшим инженером по генеративному искусственному интеллекту (GenAI) в медицинских технологиях, а теперь и основателем, я видел повторение одной и той же закономерности: блестящие специалисты по обработке данных создают впечатляющие модели, которые никогда не доходят до производства, потому что никто не думал о надежности, ремонтопригодности или реальных ограничениях при развертывании.
Традиционная разработка программного обеспечения решила эти проблемы несколько десятилетий назад, но мы изобретаем велосипед с помощью ИИ. Отраслевые исследования производственных систем ML показывают, что код модели ML представляет собой лишь 5% реальной производственной системы. Остальные 95% — это чистая инженерия: конвейеры данных, мониторинг, тестирование, инфраструктура развертывания и обслуживание.
Почему принципы программной инженерии по-прежнему важны для искусственного интеллекта
Компании, успешно масштабирующие ИИ, обладают не самыми причудливыми алгоритмами. Именно они применяют скучные, устоявшиеся инженерные методы к системам искусственного интеллекта.
Подсказки требуют такой же строгости, как и любой другой код. Они требуют контроля версий, тестирования, отладки и мониторинга производительности. Команды, которые осознают это на раннем этапе, избегают неизбежного технического долга, который впоследствии убивает проекты ИИ.
В то время как традиционные модульные тесты проверяют, возвращают ли функции ожидаемые результаты, системы искусственного интеллекта требуют тестирования на дрейф модели, качество данных и крайние случаи. Ведущие команды разработчиков искусственного интеллекта поняли, что системы машинного обучения нуждаются в постоянном мониторинге, поскольку они деградируют так, как традиционное программное обеспечение не происходит.
Самые надежные системы искусственного интеллекта, которые я создал, относятся к неопределенности как к первоклассному гражданину. Они созданы для того, чтобы корректно давать сбой, когда модели выдают неожиданные результаты, имеют механизмы возврата и предоставляют пользователям четкую обратную связь об уровнях достоверности.
Разница между стартапами и предприятиями
Крупные технологические компании могут позволить себе роскошь мощной инфраструктуры и специализированных групп инженеров по обеспечению надежности, но большинство компаний этого не имеют. А для многих стартапов каждое инженерное решение должно учитывать ограниченность ресурсов и необходимость действовать быстро, сохраняя при этом качество.
Ключевой вывод заключается в том, чтобы начать с основ проектирования, а затем добавить возможности искусственного интеллекта. Слишком многие компании делают обратное, создавая впечатляющие демонстрационные версии, которые не выдерживают контакта с реальными пользователями и производственной средой.
Компании, выигрывающие с помощью ИИ, не обязательно имеют лучшие алгоритмы. Именно они применяют десятилетия опыта разработки программного обеспечения для решения новой проблемной области.
Управление проектами ИИ требует иных навыков, чем традиционные программные проекты. Зависимости данных создают каскадные эффекты, которые труднее предсказать, чем зависимости кода. Разработка функций часто требует знаний в предметной области, находящихся за пределами команды разработчиков. Обучение модели может занять дни или недели, что затрудняет быструю итерацию.
Решение состоит не в отказе от гибких методологий, а в их адаптации. Мы планируем спринты вокруг доступности данных, а не только полноты функций. Мы выделяем время на переобучение и проверку модели. Мы относимся к обновлениям моделей ИИ с той же осторожностью, что и к изменениям схемы базы данных.
Навыки, необходимые традиционным инженерам для искусственного интеллекта
Переход от традиционной разработки программного обеспечения к разработке искусственного интеллекта не связан с изучением сложной математики или теории глубокого обучения. Речь идет об адаптации инженерной дисциплины для работы с неопределенностью и вероятностными системами.
Самым большим узким местом в проектах ИИ является не архитектура модели, а качество и доступность данных. Инженеры, которые разбираются в конвейерах данных, процессах ETL и оптимизации баз данных, более ценны, чем те, кто может реализовать новейшую архитектуру преобразователя.
Традиционный мониторинг приложений отслеживает время безотказной работы и время отклика. Системы искусственного интеллекта нуждаются в мониторинге точности моделей, отклонения данных, обнаружения систематических ошибок и корреляции бизнес-показателей. Инфраструктура мониторинга часто становится более сложной, чем сама модель ИИ.
Развертывание моделей ИИ требует продумывания управления версиями моделей, A/B-тестирования различных алгоритмов, постепенного развертывания и стратегий отката. Это классические проблемы развертывания программного обеспечения с ограничениями, специфичными для ИИ.
Сделать системы искусственного интеллекта достаточно надежными и безопасными
Надежность в системах искусственного интеллекта означает, что ваша модель будет ошибочной в определенном проценте случаев. Это не ошибка, которую нужно исправить, а фундаментальная характеристика, которую нужно учитывать.
Создание систем обучения речи, которые надежно работают в производственных колл-центрах, требует проектирования с учетом перебоев в сети, изменений качества звука и крайних случаев, которые никогда не учитывались данными обучения. Модель ИИ — это всего лишь один компонент в более крупной системе, предназначенной для решения проблем в реальном мире.
Хорошая новость заключается в том, что если вы умеете создавать надежные программные системы, у вас уже есть большая часть навыков, необходимых для создания надежных систем искусственного интеллекта.
Безопасность ИИ заключается не только в предотвращении вредных выходных данных, но и в построении систем, в которых сбои можно наблюдать, отлаживать и восстанавливать. Это требует того же системного подхода к обработке ошибок, регистрации и реагированию на инциденты, который мы используем в традиционных системах.
Компании, выигрывающие с помощью ИИ, не обязательно имеют лучшие алгоритмы. Именно они применяют десятилетия опыта разработки программного обеспечения для решения новой проблемной области. Поскольку искусственный интеллект становится все более распространенным, конкурентное преимущество будет принадлежать командам, которые смогут преодолеть разрыв между исследованиями в области машинного обучения и производственным проектированием.
Хорошая новость заключается в том, что если вы умеете создавать надежные программные системы, у вас уже есть большая часть навыков, необходимых для создания надежных систем искусственного интеллекта. Задача состоит в том, чтобы признать, что за каждым успешным продуктом искусственного интеллекта стоит множество действительно хороших, но скучных разработок.
ТЕНДЕНЦИОННЫЕ ИСТОРИИ YOUTUBE.COM/THENEWSTACK Технологии развиваются быстро, не пропустите ни одной серии. Подпишитесь на наш канал YouTube, чтобы смотреть все наши подкасты, интервью, демонстрации и многое другое. ПОДПИСАТЬСЯ Группа, созданная в Sketch. Андрей Просихин — генеральный директор и основатель Blobfish AI, стартапа, который использует голосовой ИИ для обучения операторов колл-центров. Имея более чем 10-летний опыт работы инженером-программистом, специализирующимся на генеративном искусственном интеллекте, он работал в ведущих… Подробнее от Андрея Просихина