ПНСТ 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  |   
         Информационные технологии. Искусственный интеллект. Концепции искусственного интеллекта и терминология  | 


