10 вопросов для разработчиков ИИ: 10 минут, чтобы понять основной процесс разработки ИИ

искусственный интеллект

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

Эта статья опубликована в сообществе HUAWEI CLOUD.«10 минут, чтобы понять базовый процесс разработки ИИ», Автор: Простое упорство.

1. Что именно разрабатывает разработка ИИ?

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

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

Работа разработчика ИИ — это модель, которая по сути является функцией:

f(图片) = "How are you"
f(猫图片) = "Cat"

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

2. Как разрабатывается модель (функция) ИИ?

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

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

3. Как проходит процесс обучения модели ИИ?

Давайте используем модель, которая может различать изображения кошек и собак, чтобы помочь понять процесс обучения: «данные» — это то, что нам нужно подготовить большое количество изображений, помеченных как «кошка» или «собака»; «алгоритм» относится к модель Мы планируем использовать мелкую сеть или глубокую сеть, Если это глубокий слой, сколько слоев мы используем, сколько нейронов в каждом слое, какова функция и т. д., то есть дизайн сетевая архитектура, а это значит, что мы определили, что наша функция прогнозирования должна иметь вид «Какова общая структура».

Обозначим эту функцию как Y=f(W, X, b), где X — существующие обучающие данные (изображения кошек и собак), а Y — метка существующих данных изображения (изображение — кошка или собака). , что означают W и b? В начале мы действительно не знали, что эти два параметра нужно выяснить машинным обучением, а процесс нахождения — это тоже процесс обучения.

«Модель» означает, что мы вносим данные в алгоритм для обучения, а машина продолжит обучение. Когда машина находит оптимальные W и b, мы говорим, что модель успешно обучена. В это время наша функция Y =f (W, X, b) полностью определяется

Затем мы можем дать модели новое изображение кошки или собаки вне существующего набора данных, и модель может вычислить, является ли метка этой картинки кошкой или собакой с помощью функции Y=f(W, X, b). , это рассуждение.

Краткое резюме: будь то простейшая модель линейной регрессии или более сложная модель глубокой нейронной сети со 100 миллионами параметров, суть в том, чтобы найти функцию Y=f(W, X, которая может хорошо соответствовать существующим данным, b), и мы ожидаем, что эта функция будет хорошо работать и с новыми неизвестными данными.

4. Почему ИИ уделяет особое внимание большим объемам данных?

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

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

5. Что хороший инструмент разработки может помочь разработчикам в процессе разработки ИИ?

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

Затем вы найдете среду разработки, Huawei MindSpore или Google Tensorflow, вы обнаружите, что вам не нужен такой высокий математический порог, это не значит, что вам нужно глубокое понимание алгоритма, чтобы лучше обучать хорошую модель, потеря модели метод оптимизации функций MindSpore/Tensorflow встроены Ну, для этого нужен только простой вызов.Если MindSpore/Tensorflow — это фреймворк, который может значительно сократить объем кода модели, то Keras — это фреймворк, который может сократить объем кода модели до удивительно небольшое количество, такое как классификация кошек и собак выше, Это можно сделать в 15 строках кода, а сетевую архитектуру глубокого обучения с высокоуровневыми методами оптимизации сверточных слоев, слоев пула и полностью связанных слоев можно написать в десятки строк кода.

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

6. Достаточно ли для разработки ИИ иметь структуру разработки?

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

7. В чем самая большая сложность в процессе разработки ИИ?

  • Для подготовки большого объема данных, как было сказано ранее, еще более пугающей является маркировка данных, по статистике на обработку и маркировку данных приходится около 70% всего цикла разработки. Так называемая маркировка предназначена для того, чтобы маркировать данные и сообщать машине, является ли изображение кошкой или собакой. Маркировка - очень низкотехнологичная работа в глазах разработчиков ИИ. Это уже трудоемкая отрасль, и там большое количество третьих лиц в отрасли Компания, специализирующаяся на маркировке данных. В качестве примера автономного вождения камера в передней части автомобиля снимает все изображения перед автомобилем в режиме реального времени Процесс автоматической маркировки вождения должен маркировать предшествующее транспортное средство, препятствия, пешеходов, сигнальные огни, знаки, индикатор линии и т. д. Если этот процесс полностью зависит от ручного труда, обратите внимание, что автономное вождение никогда не будет коммерчески доступным.

  • Требуется итеративное обучение. Обучение не проводится в одночасье. Различные параметры необходимо изменять неоднократно, чтобы постепенно повышать точность модели. В настоящее время этот процесс требует большого опыта. Если вычислительной мощности недостаточно, тренируйтесь один раз, подождите три дня, а затем отрегулируйте Обратитесь, подождите еще три дня, если вы хотите повторить 20 раз, этот процесс поглотит много воли людей. Поэтому, даже без учета фактора стоимости, вычислительная мощность является самой большой проблемой, ограничивающей популяризацию ИИ.

8. Как решить проблему разработчиков ИИ?

Как и при разработке офисного программного обеспечения, невозможно набирать код в блокноте. Вам нужна интегрированная среда разработки, такая как Visual Studio, и инструмент управления кодом, такой как Git. Точно так же для разработки модели ИИ вам также нужна интегрированная среда разработки, и требует инструмент управления версиями.

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

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

9. Есть ли способ увеличить скорость разработки ИИ быстрее?

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

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

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

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

10. Какие инструменты разработки Huawei предоставит разработчикам?

ModelArts, платформа разработки ИИ для разработки моделей ИИ.

HiLens, визуальная платформа разработки приложений ИИ для разработки приложений ИИ, модели в приложении предоставлены ModelArts.

Вышеуказанные два продукта предоставляют услуги в HUAWEI CLOUD EI в виде облачных сервисов.

Комплект разработчика Atlas 200 — это автономный комплект разработчика для ModelArts.

Нажмите «Подписаться», чтобы впервые узнать о новых технологиях HUAWEI CLOUD~