от Акшай Будхкар и Париназ Собхани

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

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

Однако сейчас, более чем когда-либо, вам придется делать это самостоятельно с максимальной эффективностью. Здесь мы даем несколько советов о том, как использовать новейшие технологии для максимально экономичного управления вашей командой при создании дифференцированного продукта машинного обучения в вашем стартапе.

Сведите к минимуму расходы на облачную инфраструктуру

Стоимость использования ИИ может возрасти. В свою очередь, высокие затраты съедают валовую прибыль. Поставщики облачных услуг могут быть, мягко говоря, дорогими, но есть способы управлять этими расходами.

Начните с предварительно обученных моделей

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

Если вы правильно используете трансферное обучение, нет необходимости создавать модель для изучения всего с нуля. Например, языковые модели BERT уже достаточно знают английский язык, чтобы обеспечить хорошую основу для языковых задач.

Кроме того, трансферное обучение может помочь вам повысить ценность продуктов машинного обучения для ваших новых клиентов до того, как они накопят достаточно данных. Это означает, что вы можете внедрять новые клиенты или новые регионы, не дожидаясь сбора достаточного количества помеченных данных для создания хорошо работающей модели. В результате вы можете сократить время приема на работу и сократить время окупаемости для новых клиентов. Побеждай для себя, выигрывай для своих клиентов!

Другие методы также помогают управлять расходами на обучение. При правильном использовании, например, достижения в распределенном обучении и обучение со смешанной точностью сокращают время окупаемости. Архитектура модели достижения в области машинного обучения (ML) также снижает затраты на обучение.

Затраты быстро возрастают, когда компании не уверены, какие проблемы решать с помощью машинного обучения, а затем создают собственные модели для каждой решаемой проблемы. Чтобы помочь в этом, некоторые инструменты AutoML могут помочь определить техническую осуществимость решений машинного обучения и обеспечить более быстрые итерации. Это была одна из основных причин, по которой мы создали Foreshadow, наш инструментарий с открытым исходным кодом для автоматического создания конвейеров машинного обучения.

Еще одна альтернатива привлекательным счетам за облачные услуги? Инвестируйте в оборудование, чтобы сократить расходы. Это капитальные вложения, но в конечном итоге они могут окупиться, в зависимости от ваших потребностей. Совет Скотту Локлину и многим в сообществе Y Combinator и Reddit за указание на это.

Люди всегда будут стоить больше, чем оборудование, что при правильной стратегии делает ИИ в целом рентабельным.

Уменьшите объем логических выводов с помощью оптимизации, где это возможно

Хотя вывод моделей обычно требует лишь небольшой части исследования и обучения моделей, стоит также найти способы минимизировать эти затраты. Вы можете, например, использовать оптимизацию от FP16 до FP8 и вариантов ZPAQ. Это по существу вдвое снижает затраты на обрезку нейронной сети, уделяя особое внимание наиболее важным узлам. Darwin.ai, например, помогает оптимизировать модели, сокращая время вычислений и связанные с этим затраты.

Кроме того, многие модели имеют дистиллированные варианты, такие как distillBERT, TinyBERT и BERT-OF-THESEUS. Эти вариации, по сути, учатся предсказывать выходные данные исходной модели, используя лишь часть вычислений. Другими словами, это небольшая часть стоимости.

Кроме того, даже такие облачные провайдеры, как Amazon, помогают снизить затраты на облачные вычисления. Недавно они запустили свой новый INF1, чтобы ускорить вывод, резко снизив затраты. Это относится к моделям, обученным в стандартных фреймворках, таких как TensorFlow (TF) и Pytorch.

Используя эти современные инструменты вывода, вывод не должен сильно истощать ресурсы.

Ищите возможности оптимизации обработки данных

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

Существуют новые методы, позволяющие более эффективно обрабатывать эти большие файлы данных. Архитектура Reformer, например, обрабатывала весь текст Преступления и наказания на одном графическом процессоре (ГП) в течение одного цикла обучения. Фактически, он может обрабатывать до миллиона слов, используя всего 16 ГБ памяти. Это совсем не плохо.

Исследователи постоянно совершенствуют свои методы обработки данных. Например, токенизация текста теперь выполняется намного быстрее благодаря основанной на RUST библиотеке токенизатора HuggingFace, которая максимизирует использование ядра. После токенизации модели используют только числа для представления исходных данных. Оттуда исследователи могут использовать FP16 и другие инструменты для создания наиболее эффективных моделей.

Планируйте масштаб

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

На самом деле существуют хорошие инструменты и методы для управления затратами на масштабирование.

Мы рекомендуем нашим компаниям использовать специальную команду разработчиков ИИ для глобального масштабирования. Такие инструменты, как Algorithmia, управляют некоторым масштабированием, уменьшая нагрузку на масштабирование экземпляров вверх и вниз по запросу. Облачные сервисы, такие как AWS, GCP и Azure, на самом деле довольно интуитивно понятны при распределении моделей по разным регионам с точки зрения надежности, задержки и соответствия, так что это не так плохо, как кажется.

Хотя верно то, что затрат на масштабирование нелегко избежать, с этими расходами определенно можно справиться при правильном подходе.

Найдите самый быстрый путь к максимальной производительности

Очистка и разметка больших наборов данных трудоемки. Мало того, процесс никогда не заканчивается, поскольку модели требуется постоянный поток новых обучающих данных.

Хотя наличие людей в цикле может помочь быстрее достичь максимальной производительности, большинство моделей работают достаточно хорошо сразу после установки. Вы можете начать с существующей модели, а затем использовать интеллектуальное активное обучение, чтобы настроить ее для будущей задачи. Существующие методы позволяют обрабатывать неправильно размеченные данные, отфильтровывая некачественные метки с научной точки зрения, без необходимости серьезного вмешательства человека.

По нашему опыту, многие проблемы на самом деле не так сложны, как кажется на первый взгляд. Инструменты AutoML или предварительно обученные модели часто выполняют большую часть начальной работы без какой-либо настройки. Тогда ваши люди смогут убедиться, что модели улавливают правильный сигнал.

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

Генерация синтетических данных создает искусственные входные и конечные данные; слабый контроль генерирует зашумленные, ограниченные или неточные метки, производя слабые сигналы для маркировки больших объемов обучающих данных в условиях контролируемого обучения. Обе инновации позволяют быстрее получить доступ к гораздо большему количеству данных по обучению.

Решите вопрос о масштабировании с помощью ожидания

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

Простое решение для пользователей, вводящих неправильные данные? Управляйте их ожиданиями. Сразу же после первого разговора о продажах вы должны сообщить им, чего они могут ожидать. Не переоценивайте его возможности, и ваши клиенты не будут разочарованы плохими результатами.

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

Поймите крайние случаи и примите «достаточно хорошо». Общайтесь со своими клиентами, чтобы управлять их ожиданиями и узнавать их потребности.

Разместите свой IP поверх открытого исходного кода, чтобы создать уникальное предложение

Некоторые из предлагаемых здесь методов, такие как модели с открытым исходным кодом и данные, принадлежащие клиентам или общедоступные, затрудняют техническую дифференциацию. Чтобы отличаться, у вас должны быть фирменные ярлыки или данные.

Собственные данные - это не только частные данные. Это может быть разумное сочетание общедоступных и частных данных, применяемых к вашей задаче. Хотя у всех есть доступ к интернет-данным из таких источников, как Common Crawl, вы можете выбрать основные данные, наиболее полезные для последующих задач. Выделите себя, например, выбрав лучший способ пополнения данных.

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

Заключение

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