При обучении моделей глубокого обучения ИИ он обычно реализуется на языке Python из-за его гибкости и высокой читаемости. Однако при фактическом развертывании моделей ИИ в основном используется C++ из-за эффективности самого языка.
Для развертывания моделей ИИ можно выбрать один из нескольких методов:
Модельразвертыватьобщие рассуждениярамкаиметь:ONNX、NCNN、OpenVINO、 TensorRT、Mediapipe。
Официальный сайт:https://onnx.ai/
github:https://github.com/onnx/onnx
Open Neural Network Exchange (ONNX) — это набор открытых форматов, представляющих модели глубоких нейронных сетей. Он был запущен Microsoft и Facebook в 2017 году и быстро получил поддержку крупных производителей и платформ. Всего за несколько лет разработки он стал фактическим стандартом для выражения моделей глубокого обучения, а благодаря ONNX-ML он может поддерживать традиционные модели машинного обучения, не относящиеся к нейронным сетям, и наблюдается тенденция к унификации всей модели искусственного интеллекта. стандарт обмена.
Независимо от того, какая платформа обучения используется для обучения модели (например, TensorFlow/Pytorch/OneFlow/Paddle), после обучения вы можете единообразно преобразовать модели этих платформ в хранилище ONNX. Файлы ONNX не только хранят веса модели нейронной сети, но также хранят структурную информацию модели, входные и выходные данные каждого слоя в сети и другую информацию. В настоящее время ONNX в основном фокусируется на прогнозировании модели (выводе), преобразовании преобразованной модели ONNX в типы, которые нам нужны для развертывания с использованием различных платформ, которые можно легко развернуть в ONNX-совместимой операционной среде.
github:https://github.com/Tencent/ncnn
ncnn — это высокопроизводительная платформа прямых вычислений на основе нейронных сетей, оптимизированная для мобильных телефонов. Это также первый проект с открытым исходным кодом с момента создания Tencent Youtu Lab. ncnn с самого начала тщательно продумал развертывание и использование мобильного телефона. Он не имеет сторонних зависимостей и является кроссплатформенным. Скорость процессора мобильного телефона выше, чем у всех известных в настоящее время платформ с открытым исходным кодом. На основе ncnn разработчики могут легко переносить алгоритмы глубокого обучения на мобильные телефоны для эффективного выполнения и разрабатывать приложения с искусственным интеллектом.
Из матрицы разработки NCNN видно, что NCNN охватывает практически все часто используемые системные платформы, особенно его применимость лучше на мобильных платформах. Его можно развернуть с использованием графических процессоров на Linux, Windows и Android, а также на платформах iOS и macOS. Модель.
Официальный сайт:https://docs.openvino.ai/latest/home.html
github:https://github.com/openvinotoolkit/openvino
OpenVINO — это набор инструментов, который ускоряет разработку высокопроизводительных приложений компьютерного зрения и глубокого обучения. Он поддерживает глубокое обучение на аппаратных ускорителях различных платформ Intel и обеспечивает прямое гетерогенное выполнение. Набор инструментов OpenVINO™ — это комплексный набор инструментов для быстрой разработки приложений и решений, решающих самые разные задачи, включая моделирование человеческого зрения, автоматическое распознавание речи, обработку естественного языка, рекомендательные системы и многое другое. Масштабируйте рабочие нагрузки, связанные с компьютерным зрением и не связанные с ним, на оборудовании Intel® для максимизации производительности.
Перед развертыванием модели OpenVINO сначала оптимизирует модель, оптимизирует топологию модели, удалит ненужные слои, а также объединит и объединит одни и те же операции для повышения эффективности вычислений и уменьшения количества копий в памяти. уменьшите объем модели и улучшите ее производительность, обеспечивая при этом небольшую потерю точности. С точки зрения развертывания разработка OpenVIVO относительно проста и предоставляет три интерфейса программирования: C, C++ и Python.
Официальный сайт:https://developer.nvidia.com/zh-cn/tensorrt
github:https://github.com/NVIDIA/TensorRT
NVIDIA TensorRT™ — это SDK для высокопроизводительного вывода данных глубокого обучения. Этот SDK содержит оптимизатор вывода глубокого обучения и среду выполнения, которая обеспечивает низкую задержку и высокую пропускную способность для приложений вывода глубокого обучения.
Во время вывода приложения на основе TensorRT могут выполняться до 40 раз быстрее, чем платформы ЦП. С помощью TensorRT вы можете оптимизировать модели нейронных сетей, обученные во всех основных платформах, точно корректировать низкую точность и, в конечном итоге, развертывать модели в гипермасштабных центрах обработки данных, на платформах встроенных или автомобильных продуктов.
Созданный на основе CUDA, модели параллельного программирования NVIDIA, TensorRT помогает вам использовать библиотеки, инструменты разработки и методы CUDA-X для оптимизации вывода во всех средах глубокого обучения для искусственного интеллекта, автономных машин, высокопроизводительных вычислений и графики.
Официальный сайт:https://google.github.io/mediapipe/
github:https://github.com/google/mediapipe
MediaPipe — это платформа приложений для мультимедийных моделей машинного обучения, разработанная и открытая компанией Google Research. В Google MediaPipe глубоко интегрирован в ряд ключевых продуктов, таких как YouTube, Google Lens, ARCore, Google Home и Nest. Как кросс-платформенная платформа, MediaPipe может быть развернут не только на стороне сервера, но также на нескольких мобильных терминалах (Android и Apple iOS) и встроенных платформах (Google Coral и Raspberry Pi) в качестве вывода машинного обучения на стороне устройства (на -устройство вывода машинного обучения).
В дополнение к вышеперечисленным функциям MediaPipe также поддерживает механизм вывода TensorFlow и TF Lite. В MediaPipe можно использовать любую модель TensorFlow и TF Lite. В то же время на мобильных терминалах и встроенных платформах MediaPipe также поддерживает ускорение графического процессора на самом устройстве.
Развертывание модели ИИ — это процесс применения обученных моделей ИИ к реальным сценариям. Вот некоторые распространенные платформы развертывания моделей ИИ: