ПНСТ 844-2023 ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ. МЕТОДОЛОГИЯ ОЦЕНКИ СРЕДЫ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ ГЛУБОКОГО ОБУЧЕНИЯ
Утв. и введен в действие Приказом Федерального агентства по техническому регулированию и метрологии от 10 ноября 2023 г. N 52-пнст
Artificial intelligence. Deep learning software framework evaluation methodology
ОКС 35.020
Дата введения - с 1 января 2024 года
до 1 января 2027 года
Предисловие
1 РАЗРАБОТАН Научно-образовательным центром компетенций в области цифровой экономики Федерального государственного бюджетного образовательного учреждения высшего образования "Московский государственный университет имени М.В. Ломоносова" (МГУ имени М.В. Ломоносова) и Обществом с ограниченной ответственностью "Институт развития информационного общества" (ИРИО)
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 164 "Искусственный интеллект"
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 10 ноября 2023 г. N 52-пнст
4 Настоящий стандарт разработан с учетом основных нормативных положений международного документа ITU-T F.748.12 (2021) "Методология оценки среды разработки программного обеспечения для глубокого обучения" (Recommendation ITU-T F.748.12 (2021), Deep learning software framework evaluation methodology, NEQ)
Правила применения настоящего стандарта и проведения его мониторинга установлены в ГОСТ Р 1.16-2011 (разделы 5 и 6).
Федеральное агентство по техническому регулированию и метрологии собирает сведения о практическом применении настоящего стандарта. Данные сведения, а также замечания и предложения по содержанию стандарта можно направить не позднее чем за 4 мес до истечения срока его действия разработчику настоящего стандарта по адресу: 119991 Москва, Ленинские горы, д. 1, и в Федеральное агентство по техническому регулированию и метрологии по адресу: 123112 Москва, Пресненская набережная, д. 10, стр. 2.
В случае отмены настоящего стандарта соответствующая информация будет опубликована в ежемесячном информационном указателе "Национальные стандарты" и также будет размещена на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.rst.gov.ru)
Введение
Среда разработки программного обеспечения для глубокого обучения предоставляет производителям простой и быстрый способ разработки собственных приложений искусственного интеллекта (ИИ). Однако разные среды разработки показывают разную производительность в различных сценариях. Настоящий стандарт помогает оценить среды разработки программного обеспечения для глубокого обучения, чтобы производители могли в полной мере использовать преимущества одних и избежать недостатки других сред разработки.
В настоящий стандарт включены дополнительные по отношению к рекомендации ITU-T F.748.12 определения и положения из ИСО/МЭК 22989 "Информационные технологии. Искусственный интеллект. Понятия и терминология искусственного интеллекта". Это позволяет гармонизировать настоящий стандарт с принятыми ранее национальными стандартами и предварительными национальными стандартами в области ИИ.
Доступ к данной рекомендации можно получить по адресу: http://handle.itu.int/ (уникальный идентификатор - http://handle.itu.int/11.1002/1000/14681).
Все рекомендации ITU-T и другие источники могут подвергаться пересмотру, поэтому всем пользователям настоящего стандарта предлагается изучить возможность применения последнего издания рекомендаций и других справочных документов. Перечень действующих в настоящее время рекомендаций ITU-T регулярно публикуется. Ссылка на документ в рамках настоящего стандарта не придает ему как отдельному документу статус рекомендации.
В настоящем стандарте представлена методология оценки среды разработки программного обеспечения для глубокого обучения. В нем рассматриваются следующие темы:
а) экосистема среды разработки программного обеспечения для глубокого обучения;
б) простота использования среды разработки программного обеспечения для глубокого обучения;
в) производительность среды разработки программного обеспечения для глубокого обучения;
г) поддерживаемая архитектура среды разработки программного обеспечения для глубокого обучения;
д) оптимизация на уровне аппаратного обеспечения среды разработки программного обеспечения для глубокого обучения;
е) безопасность и стабильность функционирования среды разработки программного обеспечения для глубокого обучения.
В настоящем стандарте применены следующие термины с соответствующими определениями:
2.1
глубокое обучение (нейронной сети) (deep learning): Подход к созданию обширных иерархических представлений посредством обучения нейронных сетей с большим количеством скрытых слоев. [[1], пункт 3.4.4] |
2.2 среда разработки программного обеспечения для глубокого обучения (deep learning software framework): Инструментарий, который использует набор предварительно созданных и оптимизированных компонентов для определения модели, инкапсулирующей алгоритмы искусственного интеллекта, для вызова данных и использования вычислительных ресурсов.
2.3 модель глубокого обучения (deep learning model): Алгоритм глубокого обучения для решения конкретной задачи, обычно содержащий информацию о структуре вычислительного графа и информацию о параметрах, используемых для представления алгоритма глубокого обучения.
2.4 сжатие модели (model compression): Механизм уменьшения размера модели с помощью таких алгоритмов, как отсечение (прунинг), квантификация, регуляризация, дистилляция знаний и условное начисление.
В настоящем стандарте применены следующие сокращения:
ASIC - специализированная интегральная схема (application-specific integrated circuit);
CPU - центральный процессор (central processing unit);
FPGA - программируемая пользователем матрица логических элементов (field-programmable gate array);
GPU - графический процессор (graphics processing unit);
LLVM - низкоуровневая виртуальная машина (low level virtual machine);
NNEF - формат для обмена нейронными сетями (neural network exchange format);
ONNX - открытый обмен нейронными сетями (open neural network exchange);
SGD - стохастический градиентный спуск (stochastic gradient descent).
В настоящем стандарте:
- ключевые слова "требуется, чтобы" означают требование, которое должно строго соблюдаться и отклонение от которого не допускается, если будет сделано заявление о соответствии настоящему стандарту;
- ключевое слово "рекомендуется" означает требование, которое рекомендуется, но не является абсолютно необходимым. Таким образом это требование не является обязательным для заявления о соответствии настоящему стандарту.
На рисунке 5.1 показана архитектура приложений, основанных на среде разработки программного обеспечения для глубокого обучения.
Рисунок 5.1 - Архитектура приложений, основанных на среде разработки программного обеспечения для глубокого обучения
К аппаратному обеспечению относятся центральный процессор (CPU), графический процессор (GPU), специализированная интегральная схема (ASIC), программируемая пользователем матрица логических элементов (FPGA) и другие микросхемы, а также серверы, мобильные устройства и встроенные терминальные устройства, созданные с использованием этих микросхем.
Существующие промежуточные представления, включая низкоуровневую виртуальную машину (LLVM) CUDA, Intel Inference Engine, TVM, XLA, открытый обмен нейронными сетями (ONNX), формат обмена нейронными сетями (NNEF) и т.д.
Среды разработки используются при инкапсуляции основного аппаратного обеспечения и реализации алгоритмов ИИ, включая среду разработки для обучения и среду разработки для вывода. Среда разработки для обучения включает TensorFlow, PyTorch, Caffe, PaddlePaddle, MXNet и т.д.; среда разработки для вывода - Tensor RT, TensorFlow Lite, Caffe2go, Paddle Mobile и т.д.
Базовые приложения, как правило, обозначают сценарии применения технологий глубокого обучения в предметных областях ИИ, таких как компьютерное зрение, обработка естественного языка, интеллектуальная обработка речи.
Отраслевые приложения означают применение технологий глубокого обучения к отдельным вертикальным сферам деятельности.
В настоящем стандарте отдельно сформулированы соответствующие требования к среде обучения и среде вывода при глубоком обучении. Для среды обучения они охватывают пять аспектов, включая экосистему, простоту использования, производительность, поддерживаемую архитектуру, безопасность и стабильность. Для среды вывода в требования включены четыре аспекта, в том числе простота использования, производительность, оптимизация на уровне аппаратного обеспечения, безопасность и стабильность.
Система показателей для среды обучения включает элементы, перечисленные в таблице 6.1.
Система показателей |
Показатель |
Экосистема |
Интерфейс |
Основные разработчики и соисполнители | |
Условия, при которых решают задачи | |
Простота использования |
Построение и конверсия модели |
Вторичная разработка на основе языка высокого уровня | |
Пользовательское расширение | |
Кросс-платформенность | |
Поддержка библиотеки моделей | |
Руководства и обучающие материалы | |
Динамический и статический графы | |
Стабильность | |
Возможность отладки | |
Производительность |
Результативность функционирования библиотеки моделей |
Результативность функционирования адаптированной модели | |
Поддержка аппаратного ускорения | |
Безопасность данных | |
Поддерживаемая архитектура |
CPU/FPGA |
Один GPU/значительное количество GPU | |
Распределенное обучение | |
Поддержка виртуальной среды | |
Безопасность и стабильность |
Использование сторонних библиотек |
Безопасность данных |
Система показателей для среды вывода включает элементы, перечисленные в таблице 6.2.
Система показателей |
Показатель |
Простота использования |
Функциональность оптимизации модели |
Универсальное представление модели | |
Кросс-платформенность | |
Производительность |
Скорость вывода |
Время выхода на рабочий режим | |
Использование системных ресурсов | |
Потребление энергии | |
Оптимизация на уровне аппаратного обеспечения |
Поддержка различного базового аппаратного обеспечения |
Оптимизация набора инструкций | |
Безопасность и стабильность |
Шифрование модели |
При проведении оценки среды разработки программного обеспечения для глубокого обучения необходимы классические тестовые примеры. В таблице 6.3 перечислены некоторые классические модели глубокого обучения, используемые в различных сценариях тестирования, и соответствующие метрики, рекомендуемые при проведении оценки.
Сценарий тестирования |
Набор данных |
Цель в области качества |
Эталонная модель |
Классификация изображений |
ImageNet |
74,90% classification |
ResNet-50 v1.5 |
Обнаружение (облегченных) объектов |
COCO 2017 |
21,2% mAP |
SSD (ResNet-34 backbone) |
Обнаружение (тяжеловесных) объектов |
COCO 2017 |
0.377 Box min AP, 0.339 Mask min AP |
Mask R-CNN |
Предварительно обученная модель |
Wikipedia |
Related to specific tasks |
BERT |
Перевод (повторяющийся) |
WMT English-German |
21.8 BLEU |
Neural machine translation |
Перевод (разовый) |
WMT English-German |
25.0 BLEU |
Transformer |
Рекомендация |
MovieLens-20M |
0.635 HR@10 |
Neural collaborative filtering |
Обучение с подкреплением |
Pro games |
40.00% move prediction |
Mini Go |
6.3.1 Экосистема
6.3.1.1 Интерфейс
Относится к описанию интерфейсов к языкам программирования, которые поддерживает среда разработки для обучения.
6.3.1.2 Основные разработчики и соисполнители
Относится к количеству основных разработчиков и соисполнителей, а также к активности использования среды разработки для обучения, особенно к числу просмотров, звезд, вилок (forks), запросов на вытягивания (pull request), к количеству основных разработчиков и соисполнителей в GitHub.
6.3.1.3 Условия, при которых решают задачи
Относится к механизму и к тем условиям, при которых решают задачи.
6.3.2 Простота использования
6.3.2.1 Построение и конверсия модели
Относится к согласованности интерфейса прикладного программирования (application programming interface, API), структуры определения модели, формата хранения модели и преобразователей модели.
6.3.2.2 Вторичная разработка на основе языка высокого уровня
Относится к языкам высокого уровня, которые поддерживает среда разработки для обучения. Взвешивает популярность каждого языка для расчета средних значений уровня поддержки языков высокого уровня средой разработки для обучения.
6.3.2.3 Пользовательское расширение
Относится к поддержке и простым в использовании инструментам для разработки расширенных функций, таких как настраиваемые операции, настраиваемый сетевой уровень и добавление строк кода для реализации одной расширенной функциональности.
6.3.2.4 Кросс-платформенность
Относится к совместимости среды разработки для обучения с различными платформами, такими как Linux, Windows, Android, iOS, облачная платформа и т.д.
6.3.2.5 Поддержка библиотеки моделей
Относится к поддерживаемым моделям глубокого обучения, включая CNN, RNN и модели, которые применяют в отраслевых вариантах использования. Необходимо указать количество моделей и применяемые варианты использования.
6.3.2.6 Руководства и обучающие материалы
Должны быть продекларированы руководства и обучающие материалы, в том числе должно быть сказано, существуют ли официальные документы, документы сообщества и материалы от партнерских образовательных учреждений. Если они существуют, необходимо включить количество документов, их полноту, обновления и языки, которые использованы при написании.
6.3.2.7 Динамический граф и статический граф
Относится к механизму выполнения кода среды разработки для обучения, такому как динамический или статический граф.
6.3.2.8 Стабильность
Относится к механизму повышения стабильности среды для обучения.
6.3.2.9 Возможность отладки
Относится к гибкости и эффективности механизмов отладки.
6.3.3 Производительность
6.3.3.1 Эксплуатационная производительность библиотеки моделей
Относится ко времени исполнения и к использованию памяти при выполнении классических моделей из официальной библиотеки моделей с различными размерами пакетов.
6.3.3.2 Эксплуатационная производительность адаптированной модели
Относится к параллелизму, стабильности и количеству независимых параметров. Для параллелизма рекомендуется проводить оценки, чтобы получить конкретные расчетные величины, выполняемые одновременно, и интерактивную эффективность среды разработки. Для стабильности рекомендуется проводить оценки для получения статистических данных о сбоях в течение недели путем непрерывного выполнения задач на основе среды для обучения. Для количества независимых параметров рекомендуется проводить оценки, чтобы получить наибольшую пропускную способность среды для обучения и выровнять ее с его возможностями.
6.3.3.3 Поддержка аппаратного ускорения
Относится к оптимизации среды разработки для обучения при использовании различного базового аппаратного обеспечения, такого как CPU, GPU, FPGA, специализированные ускорители ИИ и т.д.
6.3.4 Поддерживаемая архитектура
6.3.4.1 CPU/FPGA
Относится к производительности классических моделей, исполняемых на CPU или FPGA, включая время обучения и использование памяти.
6.3.4.2 Один GPU/значительное количество GPU
Относится к производительности синхронизированного стохастического градиентного спуска (SGD) классических моделей и других сложных методов оптимизации моделей, выполняемых на одном GPU и нескольких GPU.
6.3.4.3 Распределенное обучение
Относится к синхронизированному поведению SGD классических моделей и другим сложным методам оптимизации моделей, выполняемым как на одной машине, так и на разных машинах.
6.3.4.4 Поддержка виртуальной среды
Относится к применимости среды разработки для обучения к использованию в виртуальной среде, на виртуальной машине и т.д.
6.3.4.5 Поддержка операционных систем
Относится к использованию среды разработки для обучения в нескольких операционных системах, таких как Linux, Windows и macOS.
6.3.5 Безопасность и стабильность
6.3.5.1 Использование сторонней библиотеки
Относится к сторонней библиотеке, используемой в среде разработки для обучения.
6.3.5.2 Безопасность данных
Относится к тому, поддерживаются ли средой разработки для обучения зашифрованные данные при обучении и предоставляется ли инструмент шифрования.
6.4.1 Простота использования
6.4.1.1 Функциональность оптимизации модели
Относится к возможности сжатия модели, ускорения компонентов алгоритма и компонентов оптимизации гиперпараметров.
6.4.1.2 Представление универсальной модели
Относится к тому, поддерживает ли среда разработки для вывода универсальный формат представления модели глубокого обучения, например ONNX.
6.4.1.3 Кросс-платформенность
Относится к совместимости среды разработки для вывода с различными платформами, такими как Linux, Windows, Android, iOS, облачная платформа и т.д.
6.4.2 Производительность
6.4.2.1 Скорость вывода
Относится ко времени вывода при исполнении классических моделей глубокого обучения с использованием среды разработки для вывода при различном потреблении энергии.
6.4.2.2 Скорость выхода на рабочий режим
Относится ко времени выхода на рабочий режим при исполнении классических моделей глубокого обучения с использованием среды разработки для вывода на различных массивах данных.
6.4.2.3 Использование системных ресурсов
Относится к потреблению памяти, использованию памяти центрального процессора, использованию памяти графического процессора при исполнении моделей глубокого обучения разных масштабов.
6.4.2.4 Потребление энергии
Относится к затратам энергии за 1 ч за счет выполнения моделей глубокого обучения разных масштабов.
6.4.3 Оптимизация на уровне аппаратного обеспечения
6.4.3.1 Поддержка различного аппаратного обеспечения
Относится к способности среды разработки для вывода поддерживать различное аппаратное обеспечение, такое как FPGA, ASIC, GPU и т.д.
6.4.3.2 Оптимизация набора инструкций
Относится к оптимизации поддерживаемого средой разработки для вывода набора инструкций, такого как усовершенствованная RISC-машина (ARM), набор инструкций Intel.
6.4.4 Безопасность и стабильность
6.4.4.1 Шифрование модели
Относится к стратегии шифрования обученной модели вывода в среде для разработки вывода.
Библиография
[1] |
ИСО/МЭК 22989:2022 |
Информационные технологии. Искусственный интеллект. Концепции искусственного интеллекта и терминология |