ПНСТ 844-2023 Искусственный интеллект. Методология оценки разработки программного обеспечения для глубокого обучения

Обложка ПНСТ 844-2023 Искусственный интеллект. Методология оценки разработки программного обеспечения для глубокого обучения
Обозначение
ПНСТ 844-2023
Наименование
Искусственный интеллект. Методология оценки разработки программного обеспечения для глубокого обучения
Статус
Действует
Дата введения
2024.01.01
Дата отмены
2027.0101.01
Заменен на
-
Код ОКС
35.020

        ПНСТ 844-2023


ПРЕДВАРИТЕЛЬНЫЙ НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ


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


МЕТОДОЛОГИЯ ОЦЕНКИ СРЕДЫ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ ГЛУБОКОГО ОБУЧЕНИЯ


Artificial intelligence. Deep learning software framework evaluation methodology

ОКС 35.020

Дата введения с 2024-01-01

до 2027-01-01


Предисловие


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-Т F.748.12 определения и положения из ИСО/МЭК 22989 "Информационные технологии. Искусственный интеллект. Понятия и терминология искусственного интеллекта". Это позволяет гармонизировать настоящий стандарт с принятыми ранее национальными стандартами и предварительными национальными стандартами в области ИИ.

Доступ к данной рекомендации можно получить по адресу: http://handle.itu.int/ (уникальный идентификатор - http://handle.itu.int/11.1002/1000/14681).

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


1 Область применения

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

а) экосистема среды разработки программного обеспечения для глубокого обучения;

б) простота использования среды разработки программного обеспечения для глубокого обучения;

в) производительность среды разработки программного обеспечения для глубокого обучения;

г) поддерживаемая архитектура среды разработки программного обеспечения для глубокого обучения;

д) оптимизация на уровне аппаратного обеспечения среды разработки программного обеспечения для глубокого обучения;

е) безопасность и стабильность функционирования среды разработки программного обеспечения для глубокого обучения.


2 Термины и определения

В настоящем стандарте применены следующие термины с соответствующими определениями:

2.1


глубокое обучение (нейронной сети) (deep learning): Подход к созданию обширных иерархических представлений посредством обучения нейронных сетей с большим количеством скрытых слоев.

[[1], пункт 3.4.4]


2.2 среда разработки программного обеспечения для глубокого обучения (deep learning software framework): Инструментарий, который использует набор предварительно созданных и оптимизированных компонентов для определения модели, инкапсулирующей алгоритмы искусственного интеллекта, для вызова данных и использования вычислительных ресурсов.

2.3 модель глубокого обучения (deep learning model): Алгоритм глубокого обучения для решения конкретной задачи, обычно содержащий информацию о структуре вычислительного графа и информацию о параметрах, используемых для представления алгоритма глубокого обучения.

2.4 сжатие модели (model compression): Механизм уменьшения размера модели с помощью таких алгоритмов, как отсечение (прунинг), квантификация, регуляризация, дистилляция знаний и условное начисление.


3 Сокращения

В настоящем стандарте применены следующие сокращения:

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).


4 Соглашения по терминологии

В настоящем стандарте:

- ключевые слова "требуется, чтобы" означают требование, которое должно строго соблюдаться и отклонение от которого не допускается, если будет сделано заявление о соответствии настоящему стандарту;

- ключевое слово "рекомендуется" означает требование, которое рекомендуется, но не является абсолютно необходимым. Таким образом это требование не является обязательным для заявления о соответствии настоящему стандарту.


5 Промышленная реализация среды разработки программного обеспечения для глубокого обучения в области искусственного интеллекта

5.1 Архитектура приложения на основе среды разработки программного обеспечения для глубокого обучения

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


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


5.2 Аппаратное обеспечение

К аппаратному обеспечению относятся центральный процессор (CPU), графический процессор (GPU), специализированная интегральная схема (ASIC), программируемая пользователем матрица логических элементов (FPGA) и другие микросхемы, а также серверы, мобильные устройства и встроенные терминальные устройства, созданные с использованием этих микросхем.


5.3 Компиляторы

Существующие промежуточные представления, включая низкоуровневую виртуальную машину (LLVM) CUDA, Intel Inference Engine, TVM, XLA, открытый обмен нейронными сетями (ONNX), формат обмена нейронными сетями (NNEF) и т.д.


5.4 Среды разработки

Среды разработки используются при инкапсуляции основного аппаратного обеспечения и реализации алгоритмов ИИ, включая среду разработки для обучения и среду разработки для вывода. Среда разработки для обучения включает TensorFlow, PyTorch, Caffe, PaddlePaddle, MXNet и т.д.; среда разработки для вывода - Tensor RT, TensorFlow Lite, Caffe2go, Paddle Mobile и т.д.


5.5 Базовые приложения

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


5.6 Отраслевые приложения

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


6 Определение требований и методов оценки среды разработки программного обеспечения для глубокого обучения


6.1 Обзор требований

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

Система показателей для среды обучения включает элементы, перечисленные в таблице 6.1.

Таблица 6.1 - Система показателей для среды обучения


Система показателей

Показатель

Экосистема

Интерфейс

Основные разработчики и соисполнители

Условия, при которых решают задачи

Простота использования

Построение и конверсия модели

Вторичная разработка на основе языка высокого уровня

Пользовательское расширение

Кросс-платформенность

Поддержка библиотеки моделей

Руководства и обучающие материалы

Динамический и статический графы

Стабильность

Возможность отладки

Производительность

Результативность функционирования библиотеки моделей

Результативность функционирования адаптированной модели

Поддержка аппаратного ускорения

Безопасность данных

Поддерживаемая архитектура

CPU/FPGA

Один GPU/значительное количество GPU

Распределенное обучение

Поддержка виртуальной среды

Безопасность и стабильность

Использование сторонних библиотек

Безопасность данных


Система показателей для среды вывода включает элементы, перечисленные в таблице 6.2.

Таблица 6.2 - Система показателей для среды вывода


Система показателей

Показатель

Простота использования

Функциональность оптимизации модели

Универсальное представление модели

Кросс-платформенность

Производительность

Скорость вывода

Время выхода на рабочий режим

Использование системных ресурсов

Потребление энергии

Оптимизация на уровне аппаратного обеспечения

Поддержка различного базового аппаратного обеспечения

Оптимизация набора инструкций

Безопасность и стабильность

Шифрование модели


6.2 Классические модели глубокого обучения

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

Таблица 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 Конкретные показатели и методы оценки среды разработки для обучения

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 Конкретные показатели и методы оценки среды разработки для вывода

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

Информационные технологии. Искусственный интеллект. Концепции искусственного интеллекта и терминология


УДК 004.01:006.354

ОКС 35.020


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