Дилемма запуска аппаратного обеспечения машинного обучения

За последние 5 лет индустрия запуска аппаратного обеспечения ML процветала, и причина проста: программы ML требуют больших вычислительных ресурсов, и во многих случаях традиционное оборудование, такое как ЦП, не самый подходящий выбор для их запуска. Процессор похож на швейцарский армейский нож — он может запускать различные типы программ с приличной производительностью, тогда как для машинного обучения вам нужно оборудование, которое отлично справляется с запуском только нескольких типов программ — немецкий нож для стейков, если хотите. Как оказалось, на самом деле относительно легко создать оборудование, которое запускает только несколько типов программ, и для экспертов по оборудованию это отличная новость. Следовательно, после переломного момента внедрения машинного обучения стартапы аппаратного обеспечения машинного обучения также процветали.

Я считаю, что последние 5 лет были фазой демонстрации нового крутого оборудования, когда стартапы просто создавали самое мощное оборудование и рекламировали именно это. По сути, они раздвинули границы максимально возможной производительности, также известной как показатели производительности на крыше аппаратного обеспечения ML. Для чистокровного инженера-соучредителя это захватывающий этап, потому что чем больше эти цифры на крыше, тем больше вероятность того, что крупный инвестор прислушается к их стартапу. Но эти цифры на крыше — только одна часть головоломки, и я бы сказал, не самая важная. Запуск приложений машинного обучения требует правильной настройки нескольких частей программного стека машинного обучения.

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

  1. Какой процент этих значений линии крыши на самом деле воспроизводим для реальных приложений (не только для тестов) и
  2. Сколько усилий требуется среднему пользователю для использования и потенциальной выгоды от оборудования

Успешный переход от классной технологии к полезному продукту требует правильной проработки непривлекательных аспектов — создания инструментов и возможностей отладки, написания компиляторов, которые могут взаимодействовать с различными платформами, документации и многого другого. Точно так же, как немецкий нож для стейка хорош настолько, насколько хорош человек, который его использует, так и аппаратное обеспечение настолько хорошо, насколько хорошо программное обеспечение, особенно компилятор, который его инструктирует.

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