Дилемма запуска аппаратного обеспечения машинного обучения
За последние 5 лет индустрия запуска аппаратного обеспечения ML процветала, и причина проста: программы ML требуют больших вычислительных ресурсов, и во многих случаях традиционное оборудование, такое как ЦП, не самый подходящий выбор для их запуска. Процессор похож на швейцарский армейский нож — он может запускать различные типы программ с приличной производительностью, тогда как для машинного обучения вам нужно оборудование, которое отлично справляется с запуском только нескольких типов программ — немецкий нож для стейков, если хотите. Как оказалось, на самом деле относительно легко создать оборудование, которое запускает только несколько типов программ, и для экспертов по оборудованию это отличная новость. Следовательно, после переломного момента внедрения машинного обучения стартапы аппаратного обеспечения машинного обучения также процветали.
Я считаю, что последние 5 лет были фазой демонстрации нового крутого оборудования, когда стартапы просто создавали самое мощное оборудование и рекламировали именно это. По сути, они раздвинули границы максимально возможной производительности, также известной как показатели производительности на крыше аппаратного обеспечения ML. Для чистокровного инженера-соучредителя это захватывающий этап, потому что чем больше эти цифры на крыше, тем больше вероятность того, что крупный инвестор прислушается к их стартапу. Но эти цифры на крыше — только одна часть головоломки, и я бы сказал, не самая важная. Запуск приложений машинного обучения требует правильной настройки нескольких частей программного стека машинного обучения.
Теперь эти стартапы переходят к тому, что я называю фазой «ваше-железо-любое-полезно», в которой наиболее важным фактором успеха будет удобство использования продукта. Можно хвастаться всеми показателями производительности, которые они хотят, но выживание аппаратного обеспечения машинного обучения будет зависеть от
- Какой процент этих значений линии крыши на самом деле воспроизводим для реальных приложений (не только для тестов) и
- Сколько усилий требуется среднему пользователю для использования и потенциальной выгоды от оборудования
Успешный переход от классной технологии к полезному продукту требует правильной проработки непривлекательных аспектов — создания инструментов и возможностей отладки, написания компиляторов, которые могут взаимодействовать с различными платформами, документации и многого другого. Точно так же, как немецкий нож для стейка хорош настолько, насколько хорош человек, который его использует, так и аппаратное обеспечение настолько хорошо, насколько хорошо программное обеспечение, особенно компилятор, который его инструктирует.
К сожалению, до сих пор существует множество аппаратных стартапов, отдающих предпочтение только аппаратной части, а о программном обеспечении обычно забывают. Некоторые даже не доходят до этого. Разработка аппаратного обеспечения принципиально отличается от разработки программного обеспечения способами, упомянутыми здесь, поэтому эти стартапы часто надеются, что крупная компания с практически бесконечными ресурсами приобретет их для их аппаратного волшебного соуса и позаботится о программной части. Некоторым удается добиться успеха в этой игре по приобретению, но из-за огромного количества аппаратных стартапов в этой области большинству необходимо осознать, что реальным отличием аппаратного обеспечения является программное обеспечение.