РоссияСтатьяИсследования
Способ определения конфигурации смешанного квантования нейросетевой модели, исполняемой на гетерогенной вычислительной платформе
[144] Изобретение относится к способам оптимизации нейронных сетей для их эффективного выполнения на аппаратных ускорителях. В способе сначала формируют суженное пространство поиска вариантов разбиения графа нейросети. Для этого определяют слои с критической деградацией точности, а затем расширяют это множество, добавляя к нему соседние по графу слои. Затем в пределах этого суженного пространства оценивают различные варианты разбиения графа по двум критериям: итоговой точности модели и затратам ресурсов на передачу данных между вычислителями. Итоговую конфигурацию определяют на основе одного из найденных Парето-оптимальных вариантов. Технический результат заключается в сокращении вычислительной сложности и времени, необходимых для определения Парето-оптимальной конфигурации смешанного квантования нейросетевой модели, при одновременном повышении качества полученной конфигурации. 8 з.п. ф-лы, 2 ил., 1 табл.
Способ определения конфигурации смешанного квантования нейросетевой модели, исполняемой на гетерогенной вычислительной платформе
Выданный патент: RU2870036C1 Дата публикации: 2026-09-15 Заявитель / патентообладатель: Общество с ограниченной ответственностью "Автотех" (RU) Классификация: G06N3/02 G06N3/0495 G06N3/08 G06N3/0985 G06F9/50 G06N3/02 G06N3/0495 G06N3/08 G06N3/0985 G06F9/50
Реферат [144] Изобретение относится к способам оптимизации нейронных сетей для их эффективного выполнения на аппаратных ускорителях. В способе сначала формируют суженное пространство поиска вариантов разбиения графа нейросети. Для этого определяют слои с критической деградацией точности, а затем расширяют это множество, добавляя к нему соседние по графу слои. Затем в пределах этого суженного пространства оценивают различные варианты разбиения графа по двум критериям: итоговой точности модели и затратам ресурсов на передачу данных между вычислителями. Итоговую конфигурацию определяют на основе одного из найденных Парето-оптимальных вариантов. Технический результат заключается в сокращении вычислительной сложности и времени, необходимых для определения Парето-оптимальной конфигурации смешанного квантования нейросетевой модели, при одновременном повышении качества полученной конфигурации. 8 з.п. ф-лы, 2 ил., 1 табл.
Описание [1] Область техники изобретения [2] Изобретение относится к области вычислительной техники и информационных технологий, а именно к способам оптимизации нейронных сетей для их эффективного выполнения на аппаратных ускорителях. Более конкретно, изобретение касается способа определения конфигурации смешанного квантования нейронной сети для исполнения на гетерогенной вычислительной платформе. [3] Изобретение может быть использовано при выполнении операций нейронных сетей, задействованных в таких областях, как системы компьютерного зрения, обработка естественного языка, робототехника, а также в бортовых вычислительных системах автономных транспортных средств, где критически важным является достижение оптимального баланса между точностью вычислений и производительностью системы. [4] Уровень техники изобретения [5] Современные нейросетевые модели, обученные для решения конкретных задач, как правило, имеют параметры (веса) и промежуточные данные (активации) в виде 32-битных (FP32) или 16-битных (FP16) вещественных чисел. Для их запуска на целевых, особенно на встраиваемых и мобильных вычислителях, требуется выполнение квантования - преобразования данных в более низкую точность, например, в 8-битные целые числа (INT8). Это позволяет значительно сократить объем занимаемой памяти и повысить скорость выполнения модели. [6] Однако квантование неизбежно приводит к снижению итоговой точности модели из-за ошибок округления. Оптимальный баланс между повышением быстродействия и снижением точности является определяющим для использования квантованных нейронных сетей во всех приложениях реального времени. Одним из подходов к снижению ошибки квантования является применение смешанного квантования, при котором отдельные, наиболее чувствительные к ошибкам слои модели квантуются в повышенную точность (например, INT16), в то время как остальные - в базовую, низкую точность (INT8). [7] Ключевой проблемой при таком подходе является определение оптимального набора слоев, подлежащих квантованию с повышенной точностью. Для современных нейронных сетей, состоящих из сотен слоев, полный перебор всех возможных комбинаций является комбинаторно сложной задачей. [8] В качестве прототипа выбран способ определения конфигурации смешанного квантования нейросетевой модели, исполняемой на гетерогенной вычислительной платформе, известный из документа [CN120218134A, дата публикации: 27.06.2025 г.]. [9] Способ включает следующие основные этапы: [10] - получение исходной нейросетевой модели с повышенной точностью(например, FP32), представленной в виде графа вычислений; [11] - определение для каждого слоя модели ошибки квантования путем (например в INT8), путем сравнения его выходных данных с выходными данными исходной высокоточной модели; [12] - вычисление для каждого слоя единого значения фактора влияния (сводящего несколько характеристик слоя к одному числу), который является функцией от ошибки квантования и, опционально, от времени выполнения слоя; [13] - определение конфигурации смешанного квантования путем отбора по порогу, для чего сначала выполняется автоматическое определение порогового значения, а затем все слои модели, у которых фактор влияния превышает этот порог, определяются как слои для выполнения с повышенной точностью. Все остальные слои автоматически назначаются для выполнения с базовой точностью. [14] Основным недостатком прототипа является низкая эффективность полученной конфигурации смешанного квантования, что выражается в невозможности достижения оптимального баланса между точностью и производительностью модели. [15] Данный недостаток является следствием использования в прототипе упрощенного, локального подхода к определению конфигурации смешанного квантования, при выполнении которого влияние каждого слоя на итоговую ошибку оценивается изолированно от соседних слоев, а реальная производительность оценивается без учета системных накладных расходов. [16] Такой подход приводит к проблеме неполного анализа, поскольку прототип не способен учесть всю совокупность сложных, взаимосвязанных факторов, влияющих как на точность, так и на производительность реальной системы. К таким факторам, которые не могут быть учтены прототипом, относятся: [17] - каскадный характер ошибок квантования. Он возникает из-за того, что прототип не имеет механизма для анализа целостных проблемных зон в графе, ограничиваясь лишь поиском локальных максимумов ошибки и оценивая каждый слой как независимую единицу. При этом не учитывается, что деградация точности на выходе слоя N вызвана не столько его собственной чувствительностью к округлению, сколько тем, что на его вход уже поступили искаженные данные от его предшественника, слоя N-1. Аналогично, неточности, вносимые слоем N, распространяются дальше и влияют на работу слоя N+1. Вследствие этого слой N может быть неверно помечен как чувствительный к округлению, хотя на самом деле он является лишь получателем каскадной ошибки. Это приводит к неоптимальному выбору слоев для повышения точности и, как следствие, к невозможности достичь максимально возможного качества модели при заданных ограничениях на производительность. [18] - отсутствие учета системных затрат на разбиение графа на подграфы. Это связано с тем, что прототип оценивает производительность на основе времени выполнения отдельных слоев, игнорируя тот факт, что в реальной гетерогенной системе каждый слой или группа слоев, выделенные для выполнения с иной точностью, по сути, формируют отдельный подграф. Каждый такой разрез графа требует операции по передаче данных между вычислителями (CPU и NPU). Вследствие этого конфигурация, которая в рамках упрощенной модели прототипа считается высокопроизводительной (например, с большим количеством небольших высокоточных слоев), на практике может оказаться крайне медленной из-за неучтенных накладных расходов на коммуникацию между вычислителями. Это приводит к непредсказуемости реального времени выполнения модели и делает невозможным нахождение Парето-оптимального решения. Таким образом, при выполнении способа может быть выбрана конфигурация, которая теоретически немного точнее, но практически в два раза медленнее другой, более сбалансированной альтернативной конфигурации, которая была ошибочно отброшена. [19] - неэффективность пространства поиска, обусловленная отсутствием в прототипе механизма предварительного, быстрого отсева заведомо неперспективных слоев, что вынуждает проводить полный и вычислительно затратный анализ (расчет ошибок, фактора влияния) для каждого из сотен слоев, чтобы в итоге отобрать лишь небольшую их часть. Это приводит к значительному увеличению времени определения конфигурации, что делает способ непрактичным для современных нейросетевых моделей. [20] Таким образом, техническая проблема, на решение которой направлено изобретение, заключается в создании способа определения конфигурации смешанного квантования нейросетевой модели, устраняющего недостатки прототипа. [21] Раскрытие сущности изобретения [22] Технический результат, на достижение которого направлено изобретение, заключается в создании способа определения конфигурации смешанного квантования нейросетевой модели, обеспечивающего сокращение вычислительной сложности и времени, необходимых для определения Парето-оптимальной конфигурации смешанного квантования нейросетевой модели, при одновременном повышении качества полученной конфигурации смешанного квантования. [23] Дополнительный технический результат, на достижение которого направлено изобретение, заключается в снижении энергопотребления при выполнении операций нейросетевой модели за счет более эффективного использования вычислителей платформы и минимизации избыточных передач данных. [24] Дополнительный технический результат, на достижение которого направлено изобретение, заключается в повышении предсказуемости времени выполнения операций нейросетевой модели в системах реального времени, включая системы автопилотирования транспортных средств, где требуется гарантированный отклик в пределах заданных временных рамок. [25] Дополнительный технический результат, на достижение которого направлено изобретение, заключается в увеличении пропускной способности при обработке сенсорных данных в системах автопилотирования транспортных средств за счет оптимального распределения программных единиц (ROS2-нод), выполняющих определенную функцию в общей системе автономных транспортных средств, между компонентами бортовой вычислительной платформы. [26] Дополнительный технический результат, на достижение которого направлено изобретение, заключается в сокращении времени реакции системы управления транспортным средством благодаря минимизации задержек при обработке и анализе данных от сенсоров и повышении таким образом фактических метрик точности работы систем управления транспортным средством. [27] Сущность изобретения заключается в следующем. [28] Способ определения конфигурации смешанного квантования нейросетевой модели, исполняемой на гетерогенной вычислительной платформе, включает получение исходной нейросетевой модели с повышенной точностью, причем модель представлена в виде графа вычислений. В отличие от прототипа способ включает формирование суженного пространства поиска вариантов разбиения графа на подграфы, включающее: выполнение квантования исходной нейросетевой модели с достижением базовой точности, определение для каждого слоя модели метрики деградации точности путем сравнения его выходных данных с выходными данными соответствующего слоя исходной модели, формирование первичного подмножества слоев путем отбора тех слоев, у которых значение метрики деградации точности ниже предварительно заданного порогового значения и формирование расширенного подмножества слоев-кандидатов, подлежащих выделению в отдельные подграфы для квантования с повышенной точностью, путем добавления к первичному подмножеству соседних слоев для каждого слоя из указанного первичного подмножества в соответствии с графом вычислений модели; последующую оценку и выбор вариантов разбиения графа на подграфы из сформированного суженного пространства поиска, причем оценка каждого варианта разбиения осуществляется по меньшей мере по двум параметрам: итоговой точности модели и расхода ресурсов на передачу данных между вычислителями гетерогенной платформы, определяемым количеством полученных подграфов; при этом определение конфигурации смешанного квантования нейросетевой модели осуществляют на основе одного из обнаруженных Парето-оптимальных вариантов разбиения графа. [29] На начальном этапе способа осуществляется получение исходной нейросетевой модели. Данная модель в рамках способа выполняет функцию объекта, подлежащего оптимизации путем смешанного квантования, а также функцию эталона для количественной оценки деградации точности на последующих этапах. Исходная модель представляет собой результат обучения с использованием стандартных фреймворков машинного обучения, таких как TensorFlow или PyTorch, и представлена в повышенной точности. Под повышенной точностью понимается использование для представления весовых коэффициентов и активаций чисел с плавающей запятой, как правило, 32-битной (FP32) или 16-битной (FP16) точности, которые обеспечивают широкий динамический диапазон и являются стандартом при обучении нейронных сетей. Модель может быть представлена в одном из стандартных форматов, например, ONNX (Open Neural Network Exchange), TorchScript или TensorFlow GraphDef и др. [30] Для выполнения последующих этапов модель представляется в виде графа вычислений. Формирование графа вычислений может быть осуществлено путем синтаксического и семантического анализа архитектуры нейронной сети. Такое представление позволяет анализировать не только отдельные слои, но и их взаимосвязи, структуру потоков данных и определять соседние слои в графе. [31] Граф вычислений представляет собой ориентированный ациклический граф, в котором вершины соответствуют отдельным слоям (вычислительным операциям), а рёбра представляют собой потоки данных, то есть тензоры, передаваемые между этими операциями. Вершинами в таком графе могут являться как базовые операции нейронных сетей (свертки, функции активации), так и более сложные математические или логические операции. Каждой вершине сопоставляется набор атрибутов, включающий по меньшей мере тип операции, ее параметры, а также типы и размеры входных и выходных тензоров. Каждому ребру может быть сопоставлен вес, соответствующий объему передаваемых данных в байтах. [32] После представления исходной модели в виде графа вычислений осуществляется формирование суженного пространства поиска вариантов разбиения графа, что позволяет сократить вычислительную сложность определения оптимальной конфигурации. Вместо анализа всех возможных комбинаций разбиения, который является вычислительно сложной (экспоненциально ресурсоемкой) задачей для современных алгоритмов, сначала определяется небольшое, но наиболее релевантное подмножество слоев-кандидатов, и только в пределах этого подмножества на последующих этапах производится наиболее ресурсоемкая процедура оценки и выбора. [33] Для этого сначала осуществляется квантование исходной нейросетевой модели в базовую точность. В качестве базовой точности, как правило, используется 8-битное целочисленное представление (INT8), однако могут быть использованы и другие целочисленные представления с низкой разрядностью, например, INT4, в зависимости от аппаратных возможностей целевой платформы. Задачей этого этапа является создание второй, низкоточной версии модели, которая будет служить объектом для сравнения с исходной высокоточной моделью. [34] Далее для каждого слоя модели выполняется определение деградации точности. Это достигается путем сравнения его выходных данных с выходными данными соответствующего слоя исходной модели при подаче на вход обеих моделей идентичного набора калибровочных данных. Сравнение производится с использованием предварительно выбранной метрики. В одном из вариантов реализации метрика вычисляется на основе полных тензоров выходных данных. В другом варианте сравнение может производиться на основе статистических характеристик (дескрипторов) тензоров, таких как среднее значение, дисперсия или гистограмма распределения значений. Предпочтительно, в качестве метрики могут быть использованы различные функции, например, косинусное расстояние, среднеквадратичная ошибка (MSE), абсолютная или относительная разница. [35] На основе полученных количественных оценок выполняется формирование первичного подмножества слоев, что позволяет произвести первичный, быстрый отсев, для идентификации слоев, наиболее сильно подверженных ошибкам округления. Отбор осуществляется путем сравнения значения метрики деградации точности каждого слоя с предварительно заданным пороговым значением. Слои, для которых значение метрики оказывается хуже установленного порога, включаются в первичное подмножество. [36] После этого выполняется формирование расширенного подмножества слоев-кандидатов, что обеспечивает решение проблемы каскадного накопления ошибок за счет анализа соседних слоев для каждого слоя, вошедшего в первичное подмножество. Под соседними понимаются слои, напрямую связанные с данным слоем в графе вычислений. Стратегия добавления может быть разной. Могут добавляться только непосредственные предшественники и последователи (соседи первого порядка), либо соседние слои второго и более высоких порядков, либо может использоваться асимметричная стратегия, при которой добавляется больше предшественников, чем последователей. Количество добавляемых соседних слоев может быть фиксированным или может гибко настраиваться на основе общего числа слоев в модели и заданного пользователем коэффициента расширения. Итоговое расширенное подмножество слоев-кандидатов представляет собой суженное пространство поиска, в пределах которого будет осуществляться дальнейший выбор оптимальной конфигурации. [37] После этого осуществляется оценка и выбор вариантов разбиения графа на подграфы. Назначением данного этапа является нахождение в пределах этого ограниченного, но наиболее релевантного пространства одного или нескольких Парето-оптимальных решений, которые обеспечивают наилучший баланс между точностью и производительностью. Под вариантом разбиения понимается конкретная комбинация слоев из расширенного подмножества кандидатов, которые выделяются в отдельные подграфы для последующего квантования с повышенной точностью. В качестве повышенной точности может использоваться 16-битное целочисленное представление (INT16) или 16-битное представление с плавающей запятой (FP16), в зависимости от того, какая из них обеспечивает лучший прирост точности для конкретного типа слоя и поддерживается целевой платформой. [38] Каждый полученный вариант разбиения подвергается многокритериальной оценке по меньшей мере по двум параметрам. Первым параметром является итоговая точность модели, для определения которой модель с текущим вариантом смешанного квантования выполняется на валидационном наборе данных и для нее вычисляется итоговая метрика качества. Вторым параметром является суммарный расход ресурсов на передачу данных между вычислителями, который напрямую зависит от количества полученных подграфов. Этот параметр отражает реальные системные накладные расходы, возникающие при исполнении модели на гетерогенной платформе. [39] Под суммарным расходом ресурсов на передачу данных между вычислителями следует понимать комплексный показатель, отражающий системные накладные расходы, возникающие при разрыве вычислительного процесса между вычислителями. К таким ресурсам относятся, но не ограничиваются ими: временные затраты (задержка), обусловленные конечной пропускной способностью и латентностью каналов связи; энергетические затраты, связанные с активацией шин данных, модулей памяти и работой вычислителя; затраты по оперативной памяти, необходимой для временного хранения промежуточных тензоров между выполнениями подграфов; вычислительные затраты управляющего процессора (CPU), задействованные при организации и контроле процесса передачи данных. Хотя на практике основным измеряемым или моделируемым параметром часто выступают временные затраты, сам по себе расход ресурсов в контексте изобретения может охватывать всю совокупность указанных факторов. [40] Оценка суммарного расхода ресурсов может осуществляться по меньшей мере двумя способами. В одном из вариантов реализации оценка может производиться путем моделирования, основанного на анализе объемов данных, передаваемых между подграфами, и известных характеристиках каналов связи (пропускная способность, задержки). Этот подход позволяет быстро оценивать большое количество вариантов. В другом варианте, для достижения максимальной достоверности оценка может производиться путем прямого измерения временных задержек или иных затрат при фактическом развертывании и выполнении данного варианта разбиения на целевой или эмулирующей ее платформе. [41] Процесс итеративной генерации, оценки и выбора вариантов может быть автоматизирован с использованием специализированных программных средств. В частности, для этого может быть использован оптимизационный фреймворк, такой как Optuna, или иные средства глобальной оптимизации. Для более эффективного поиска оптимальной конфигурации разбиения графа, могут быть применены специализированные алгоритмы, например, многоуровневый рекурсивный алгоритм, который сначала находит приближенное решение на более грубом, агрегированном представлении графа, а затем итеративно уточняет его на более детальных уровнях. [42] Определение итоговой конфигурации смешанного квантования нейросетевой модели обеспечивает фиксацию одной конкретной конфигурации, которая будет в дальнейшем применена к модели для ее развертывания на целевой платформе. Результатом предыдущего этапа является набор парных значений параметров для множества оцененных вариантов разбиения графа. На основе этих данных строится множество Парето-оптимальных решений, также известное как Парето-фронт. Парето-оптимальным является такой вариант, для которого невозможно найти другой вариант, превосходящий его одновременно по обоим критериям. Таким образом, это множество представляет собой набор наилучших из возможных вариантов. Выбор итоговой конфигурации осуществляется на основе одного из обнаруженных Парето-оптимальных вариантов. Конкретный выбор зависит от заранее определенных инженерных или эксплуатационных требований к конечному продукту. Например, для бортовой системы автономного транспортного средства может быть установлено ограничение на максимальное время выполнения (инференса) модели. В этом случае из всех Парето-оптимальных вариантов, удовлетворяющих этому условию, будет выбран тот, который обеспечивает наивысшую точность. В другом сценарии, где приоритетом является максимальная точность, может быть выбран самый точный вариант, даже если он сопряжен с большим расходом ресурсов, при условии, что он остается в пределах допустимого. Определенная таким образом итоговая конфигурация затем применяется к модели для ее финальной сборки и развертывания на целевой платформе. [43] Изобретение характеризуется ранее неизвестной из уровня техники совокупностью существенных признаков, отличающейся тем, что при выполнении способа: [44] - осуществляют формирование суженного пространства поиска вариантов разбиения графа путем определения расширенного подмножества слоев-кандидатов, включающего формирование первичного подмножества на основе метрики деградации и последующее добавление к нему соседних слоев. Данный двухэтапный подход к формированию пространства поиска, в отличие от анализа всех слоев в прототипе, позволяет решить сразу две задачи. Во-первых, он обеспечивает возможность выявления и анализа возникающих системных, каскадных ошибок квантования, а не только изолированных локальных ошибок. Путем добавления соседних слоев к слоям с критической деградацией способ формирует для анализа локальные подграфы, что позволяет учесть распространение и накопление ошибок квантования между взаимосвязанными операциями и найти конфигурацию, которая компенсирует каскадный эффект деградации точности. Это напрямую повышает качество итоговой конфигурации, так как позволяет достичь значительно большего восстановления точности при той же производительности. Во-вторых, этот подход сокращает вычислительную сложность всего способа, поскольку дорогостоящая процедура многокритериальной оценки применяется не ко всему перечню слоев, а только к небольшому, но наиболее релевантному подмножеству кандидатов; [45] - оценку каждого варианта разбиения осуществляют по меньшей мере по двум параметрам: итоговой точности модели и суммарным затратам вычислительных ресурсов на передачу данных между вычислителями, определяемым количеством полученных подграфов. Введение этого второго, аппаратно-зависимого параметра позволяет решить проблему неточной оценки реальной производительности прототипа. Это повышает качество итоговой конфигурации, поскольку выбор делается не на основе теоретических предположений, а на основе оценки реальных системных накладных расходов, возникающих при разбиении графа вычислений на подграфы и необходимости межкомпонентной передачи данных между ними. Такой подход отсеивает конфигурации, которые могут быть теоретически точными, но практически медленными из-за высоких коммуникационных затрат, и гарантирует, что найденное решение будет оптимальным именно для целевой гетерогенной платформы; [46] - определение итоговой конфигурации осуществляют на основе одного из обнаруженных Парето-оптимальных вариантов разбиения графа. В отличие от однокритериального отбора в прототипе, данный подход обеспечивает проведение многокритериального поиска. Это предоставляет не одно-единственное, потенциально неподходящее решение, а множество наилучших из возможных (Парето-фронт). Это повышает практическую применимость способа, так как позволяет выбрать из этого множества именно тот вариант, который соответствует конкретным эксплуатационным требованиям конечного продукта и гарантирует, что выбранное решение не может быть улучшено одновременно по обоим критериям. [47] Совокупность существенных признаков изобретения позволяет достичь синергетического эффекта за счет того, что описанные подходы используются в рамках единого процесса, где они усиливают преимущества друг друга. В частности, этап формирования суженного пространства поиска решает проблему вычислительной сложности и позволяет повысить качество анализа за счет учета системного характера ошибок квантования. Он отсеивает подавляющее большинство заведомо плохих вариантов и сужает огромное пространство поиска до небольшого набора из нескольких десятков сильных слоев-кандидатов. А этап многокритериальной оценки с учетом реальных системных затрат решает проблему неточности теоретических моделей. Он позволяет из вариантов, построенных на основе сильных кандидатов, выбрать тот, который является наиболее эффективным в реальных условиях эксплуатации. [48] Благодаря этому обеспечивается достижение технического результата, заключающегося в создании способа определения конфигурации смешанного квантования нейросетевой модели, обеспечивающего сокращение вычислительной сложности и времени, необходимых для определения Парето-оптимальной конфигурации смешанного квантования нейросетевой модели, при одновременном повышении качества полученной конфигурации смешанного квантования. [49] Изобретение обладает ранее неизвестной из уровня техники совокупностью существенных признаков, что свидетельствует о его соответствии критерию патентоспособности «новизна». [50] Изобретение неизвестно из предшествующего уровня техники и явным образом не следует из него. Ввиду этого изобретение соответствует критерию патентоспособности «изобретательский уровень». [51] Осуществление изобретения [52] Изобретение поясняется следующими материалами. [53] Фиг. 1 - Блок-схема системы для реализации способа определения конфигурации смешанного квантования нейросетевой модели. [54] Фиг. 2 - Блок-схема алгоритма определения конфигурации смешанного квантования нейросетевой модели. [55] Для иллюстрации возможности реализации и более полного понимания сути изобретения ниже представлен вариант его осуществления, который может быть любым образом изменен или дополнен, при этом настоящее изобретение ни в коем случае не ограничивается представленным вариантом. [56] Разработанный способ определения конфигурации смешанного квантования нейросетевой модели реализуется посредством системы 100 (Фиг. 1). Система 100 включает в себя вычислительный блок 110, предназначенный для выполнения этапов анализа модели и определения итоговой конфигурации, и целевую гетерогенную вычислительную платформу 120, на которой в дальнейшем осуществляется исполнение сконфигурированной нейросетевой модели и на которой могут проводиться предварительные измерения. Система 100 также включает средства коммуникации для обмена данными между блоком 110 и платформой 120. [57] Вычислительный блок 110 представляет собой вычислительное устройство, включающее по меньшей мере один процессор, запоминающее устройство и интерфейс передачи данных. В запоминающем устройстве размещено программное обеспечение, исполняемое процессором для реализации этапов заявленного способа. Блок 110 включает следующие функциональные модули: модуль 111 анализа модели, предназначенный для получения исходной нейросетевой модели с повышенной точностью, ее представления в виде графа вычислений, а также для выполнения ее полного квантования в базовую точность (например, INT8) с целью получения квантованной модели для последующего анализа; модуль 112 формирования пространства поиска, предназначенный для определения расширенного подмножества слоев-кандидатов; модуль 113 оценки и выбора конфигурации, предназначенный для выполнения многокритериальной оценки и выбора вариантов разбиения графа на подграфы в пределах сформированного суженного пространства поиска; модуль 114 взаимодействия с платформой, предназначенный для определения расхода ресурсов. Данный модуль может функционировать в двух режимах: в режиме прямого измерения модуль 114 обеспечивает развертывание тестового варианта разбиения графа на целевой или эмулирующей ее платформе 120 и производит замер фактических временных задержек; в режиме моделирования модуль 114 производит расчетную оценку расхода ресурсов на основе математической модели, учитывающей объемы передаваемых данных и известные параметры пропускной способности каналов связи платформы 120. [58] Целевая гетерогенная вычислительная платформа 120 включает различные типы вычислителей: центральные процессоры; графические процессоры; специализированные нейросетевые ускорители и другие вычислительные устройства. [59] Способ определения конфигурации смешанного квантования нейросетевой модели реализуется в виде последовательности шагов (Фиг. 2), основной целью которых является нахождение Парето-оптимального варианта разбиения графа вычислений модели на подграфы, обеспечивающего наилучшее соотношение между точностью нейросетевой модели и расходом вычислительных ресурсов на целевой гетерогенной платформе 120. [60] Шаг 200. Получение и анализ исходной модели [61] На вход модуля 111 анализа модели поступает исходная нейросетевая модель, обученная с использованием стандартных фреймворков (например, TensorFlow, PyTorch) и имеющая повышенную точность, как правило, с 32-битными (FP32) или 16-битными (FP16) вещественными числами. Модель преобразуется в ориентированный ациклический граф вычислений . Каждая вершина представляет собой отдельный слой (вычислительную операцию). Примерами таких операций могут являться: [62] - базовые операции нейронных сетей, например, двумерная свертка (Conv2D), матричное умножение (MatMul), функция активации (например, ReLU, Sigmoid, SoftMax), операция пулинга (MaxPool, AvgPool), нормализация (BatchNorm, LayerNorm); [63] - арифметические и математические операции, например, сложение (Add), вычитание (Sub), умножение (Mul), деление (Div), возведение в степень (Pow), квадратный корень (Sqrt), экспонента (Exp), логарифм (Log), усреднение (ReduceMean), суммирование (ReduceSum); [64] - операции матричных вычислений и преобразования тензоров, например, обобщённое матричное умножение (Gemm), транспонирование тензора (Transpose), изменение формы тензора (Reshape), конкатенация тензоров (Concat), разделение тензора (Split), выбор части тензора (Slice); [65] - специализированные активационные функции, такие как активация GELU (Gelu/Erf), гиперболический тангенс (Tanh), используемые в современных архитектурах трансформеров и языковых моделей; [66] - операции позиционного кодирования и маскирования, например тригонометрические функции (Sin, Cos) для позиционного кодирования, условная замена (Where), логические операции (Equal, Not, Less), расширение тензора (Expand); [67] - вспомогательные операции, такие как выбор элементов по индексам (Gather), добавление/удаление размерности (Unsqueeze/Squeeze), изменение типа данных (Cast), вставка константных значений (Constant); [68] -другие операции, определяемые стандартами ONNX, TensorFlow, PyTorch и иными фреймворками машинного обучения. [69] Каждой вершине сопоставляется вектор атрибутов, включающий: [70] - тип операции; [71] - параметры операции; [72] - типы и размеры входных и выходных тензоров; [73] Каждое ребро представляет собой зависимость по данным между операциями , где выходной тензор операции является входным для операции . Каждому ребру сопоставляется вес, равный размеру передаваемого тензора в байтах, обозначаемый , . [74] Шаг 210. Определение послойной деградации точности [75] На этом шаге модуль 111 выполняет полное квантование исходной модели в базовую точность, в качестве которой используют 8-битное целочисленное представление (INT8). В результате получаются две версии модели: исходная высокоточная и полностью квантованная низкоточная. [76] Далее модуль 112 формирования пространства поиска итеративно для каждого слоя выполняет определение деградации точности. Это происходит путем подачи на вход обеих моделей одного и того же набора калибровочных данных и сравнения тензора выходных данных слоя из квантованной модели с тензором выходных данных соответствующего слоя из исходной модели. В качестве метрики деградации точности могут быть использованы различные функции, выбор которых зависит от архитектуры сети и задачи, на решение которой направлена нейросетевая модель. Наиболее часто применяются: косинусное расстояние (Cosine Similarity), которое хорошо показывает изменение направления векторов активаций; среднеквадратичная ошибка (MSE); а также абсолютная или относительная разница. Результатом шага является получение количественной оценки деградации, возникшей вследствие квантования, для каждого отдельного слоя. [77] Шаг 220. Формирование расширенного подмножества слоев-кандидатов, представляющего собой суженное пространство поиска вариантов разбиения графа [78] Данный шаг направлен на решение проблемы каскадного накопления ошибок квантования, при которой деградация одного слоя вызвана неточностями в выходных данных его предшественников. Модуль 112 сначала формирует первичное подмножество слоев. Этот процесс заключается в отборе тех слоев, у которых вычисленное на Шаге 210 значение метрики деградации точности оказывается ниже (хуже) предварительно заданного порогового значения. [79] Данный процесс отбора слоев в первичное подмножество описывается следующим выражением: [80] , [81] где: [82] A m - первичное подмножество слоев с критической потерей точности; [83] k -индекс слоя в графе вычислений; [84] accSimilarityThreshold - предварительно заданное пороговое значение. [85] При этом, общее количество слоев в данном подмножестве (его мощность) обозначаемое как m, определяется выражением: [86] , [87] Затем модуль 112 выполняет формирование расширенного подмножества слоев-кандидатов путем добавления к уже отобранному первичному подмножеству соседних слоев для каждого слоя из указанного первичного подмножества в соответствии со структурой графа вычислений . [88] Процесс формирования расширенного подмножества описывается как операция объединения множеств следующими формулами: [89] , [90] [91] где: [92] A ext -расширенное подмножество слоев-кандидатов; [93] A k - локальное подмножество, включающее слой k и соседние слои; [94] Количество добавляемых соседних слоев может гибко настраиваться на основе общего числа слоев модели и заданного пользователем коэффициента расширения, что позволяет управлять балансом между полнотой поиска и его скоростью. Количество добавляемых соседних слоев вычисляется по формуле: [95] , [96] где: [97] extensionRate - количество добавляемых соседних слоев; [98] n - общее количество слоев в модели; [99] kexpandingNodesPart - заданный коэффициент расширения. [100] В результате выполнения данного шага формируется суженное пространство поиска, состоящее из наиболее релевантных для анализа слоев-кандидатов, что позволяет на следующем шаге проводить эффективный поиск оптимальной конфигурации, отбросив заведомо неперспективные варианты. [101] Шаг 230. Оценка и выбор вариантов разбиения графа на подграфы в пределах сформированного суженного пространства поиска [102] На данном шаге модуль 113 оценки и выбора конфигурации выполняет итеративный поиск оптимального решения в пределах сформированного на предыдущем этапе суженного пространства поиска. Модуль 113 итеративно генерирует различные варианты разбиения графа на подграфы. Вариант разбиения определяется тем, какая комбинация слоев из расширенного подмножества кандидатов выделяется в отдельные подграфы для последующего квантования с повышенной точностью (например, INT16 или FP16). [103] Каждый сгенерированный вариант разбиения оценивается по меньшей мере по двум параметрам: [104] - итоговая точность модели, когда модель с данным вариантом смешанного квантования выполняется на валидационном наборе данных, и вычисляется итоговая метрика качества (например, mAP для детектирования, mIoU для сегментации). [105] - суммарный расход ресурсов на передачу данных между вычислителями платформы 120, для чего оценивается нагрузка на гетерогенную платформу 120. Эта оценка может осуществляться путем моделирования, основанного на оценке объемов данных, передаваемых между подграфами, и известных параметрах (пропускная способность, задержки) каналов связи между вычислителями платформы 120. Также для повышения точности оценка может осуществляться путем прямого измерения временных задержек при развертывании и выполнении данного варианта разбиения графа на целевой платформе 120 или эмулирующей ее платформе. На этом шаге оцениваются варианты с большим количеством подграфов и, соответственно, с большим числом энергозатратных операций по передаче данных. [106] Процесс перебора и оценки вариантов может быть реализован с использованием оптимизационного фреймворка Optuna. При этом для эффективного поиска в пространстве разбиений могут применяться специализированные алгоритмы, например, многоуровневый рекурсивный алгоритм. [107] Шаг 240. Определение Парето-оптимального варианта разбиения графа на подграфы [108] Результаты, полученные на Шаге 230 (наборы значений «Точность» и «Расход ресурсов» для каждого варианта), используются для построения множества Парето-оптимальных решений (Парето-фронта). Из этого множества выбирается один итоговый вариант разбиения графа, который наилучшим образом соответствует заранее определенным инженерным или эксплуатационным требованиям конечного продукта. Таким требованием может быть, например, достижение максимальной точности при условии, что время выполнения модели при решении практической задачи (время инференса) не превышает заданного порогового значения, например, 40 мс. Выбор именно Парето-оптимального варианта гарантирует, что не существует другой конфигурации, которая была бы лучше одновременно по обоим критериям. Это исключает конфигурации с неоправданно высоким и нестабильным временем отклика из-за большого числа разрезов графа. [109] Шаг 250. Применение выбранной конфигурации смешанного квантования к нейросетевой модели [110] На заключительном шаге итоговая конфигурация, определенная на Шаге 240, применяется к исходной нейросетевой модели. Это включает в себя фактическое разбиение графа вычислений на подграфы и применение к каждому из них соответствующего режима квантования (базовой или повышенной точности). Полученная в результате модель со смешанным квантованием используется для последующего развертывания на целевой гетерогенной вычислительной платформе 120. [111] Конкретный пример осуществления изобретения [112] Для демонстрации практической реализации разработанного способа ниже представлен конкретный пример его применения для оптимизации нейросетевой модели, используемой в системе автопилотирования транспортного средства. Данный пример выбран, поскольку он наглядно иллюстрирует преимущества предлагаемого способа в условиях жестких ограничений на время реакции системы и критических требований к точности распознавания объектов на дороге. [113] Исходные данные: [114] В качестве исходной модели используется нейросеть семантической сегментации дорожной сцены, предназначенная для идентификации таких объектов, как дорожное полотно, разметка, пешеходы и другие транспортные средства. [115] Граф вычислений содержит 427 слоев (вершин). [116] При повышенной точности (FP32) модель демонстрирует целевую точность 0.951 (по метрике mIoU) при времени выполнения 74.22 мс на валидационном наборе данных. [117] При полном квантовании в базовую точность (INT8) точность модели снижается до 0.809 (падение на 14.2%), однако время выполнения на целевой платформе составляет 19.15 мс. Эта конфигурация является базовой для сравнения. [118] В качестве гетерогенной вычислительной платформы 120 используется бортовой вычислительный комплекс транспортного средства, включающий один центральный процессор (CPU) для общих задач и один специализированный нейропроцессорный ускоритель (NPU), предназначенный для выполнения операций нейросетевой модели. [119] Реализация способа: [120] Шаг 200-210. Анализ исходной модели и определение послойной деградации точности. [121] На этом шаге исходная FP32-модель квантуется в INT8. Затем для каждого из 427 слоев вычисляется метрика деградации точности. В данном примере в качестве метрики используется косинусное расстояние (Cosine Similarity) между тензорами выходных активаций FP32-слоя и его INT8-аналога. [122] Шаг 220. Формирование расширенного подмножества слоев-кандидатов, представляющего собой суженное пространство поиска вариантов разбиения графа. В качестве метрики используется косинусное расстояние и задается пороговое значение accSimilarityThreshold = 0.85. Отбору подлежат слои, для которых значение косинусного расстояния оказалось ниже данного порога. В результате анализа выявляется 28 слоев, метрика которых ниже данного порога. Эти 28 слоев формируют первичное подмножество. [123] Далее задается коэффициент расширения kexpandingNodesPart = 0.02, в соответствии с которым, для каждого из 28 слоев в первичном подмножестве к нему добавляются его графовые соседние слои. В результате формируется расширенное подмножество из 85 слоев-кандидатов. Таким образом, пространство поиска вариантов для последующей оценки сокращается с 427 до 85 слоев (на 80%), позволяя существенно ускорить дальнейший процесс. [124] Шаг 230. Оценка и выбор вариантов разбиения графа на подграфы в пределах сформированного суженного пространства поиска. В пределах суженного пространства из 85 слоев-кандидатов запускается процесс многокритериальной оценки, используя оптимизационный фреймворк Optuna. Цель данного этапа - найти Парето-фронт решений, балансирующих между итоговой точностью модели (mIoU) и временем ее выполнения (мс), которое зависит от расхода ресурсов на передачу данных. [125] Шаг 240. Определение Парето-оптимального варианта разбиения графа на подграфы. По результатам работы алгоритма получен набор Парето-оптимальных конфигураций. Для данной задачи, используемой в системе автопилотирования, установлено инженерное требование: время выполнения не должно превышать 30 мс для обеспечения реакции системы в реальном времени. [126] Результаты, включая базовые конфигурации смешанного квантования и несколько Парето-оптимальных конфигураций, представлены в Таблице 1. [127] Таблица 1 [128] Конфигурация Точность (mIoU) Время выполнения, мс Исходная FP32 0.951 74.22 Базовая INT8 0.809 19.15 Парето-оптимальная 1 0.906 26.33 Парето-оптимальная 2 0.908 27.25 Парето-оптимальная 3 0.909 28.76 Парето-оптимальная 4 0.910 29.46 [129] Среди всех конфигураций, удовлетворяющих требованию по времени выполнения (< 30 мс), выбирается Парето-оптимальная конфигурация 4, поскольку она обеспечивает наивысшую точность (0.910) в рамках заданного временного порога. Эта конфигурация и определяется как итоговая. [130] Шаг 250. Применение итоговой конфигурации. Выбранная на Шаге 240 конфигурация 4 применяется к исходной нейросетевой модели. Это включает фактическое разбиение графа вычислений на подграфы и назначение режима повышенной точности (INT16) для слоев, определенных в конфигурации, в то время как остальные слои остаются в базовой точности (INT8). [131] Результаты применения наиболее производительной конфигурации [132] Оптимальная конфигурация 4, полученная с помощью разработанного способа, обеспечила: [133] 1. Восстановление точности: [134] - исходная точность (INT8): 0.809; [135] - точность с оптимальной конфигурацией: 0.910; [136] - падение точности относительно FP32 (0.951) сократилось с 14.2% до 4.1%. [137] Таким образом, разработанный способ позволил восстановить более 70% утраченной при квантовании точности. [138] 2. Контролируемый расход ресурсов: [139] - исходное время (INT8): 19.15 мс; [140] - время с оптимальной конфигурацией: 29.46 мс; [141] - увеличение времени выполнения составило 10.31 мс (~54%) по сравнению с базовой INT8 моделью (19,15 мс), что является приемлемым допущением при условии существенного восстановления точности и полностью соответствует требованиям системы реального времени; [142] - при этом, по сравнению с исходной FP32 моделью (74.22 мс), итоговая конфигурация обеспечивает ускорение выполнения в 2.5 раза, демонстрируя значительный прирост в производительности. [143] Благодаря этому был достигнут основной технический результат, заключающийся в сокращении вычислительной сложности и времени, необходимых для определения Парето-оптимальной конфигурации смешанного квантования нейросетевой модели, при одновременном повышении качества полученной конфигурации, и в конкретном случае применения позволило повысить точность работы системы автопилотирования при сохранении требуемых характеристик времени отклика.
Формула 1. Способ определения конфигурации смешанного квантования нейросетевой модели, исполняемой на гетерогенной вычислительной платформе, включающий получение исходной нейросетевой модели с повышенной точностью, причем модель представлена в виде графа вычислений, отличающийся тем, что способ включает: - формирование суженного пространства поиска вариантов разбиения графа на подграфы, включающее: - выполнение квантования исходной нейросетевой модели с достижением базовой точности; - определение для каждого слоя модели метрики деградации точности путем сравнения его выходных данных с выходными данными соответствующего слоя исходной модели; - формирование первичного подмножества слоев путем отбора тех слоев, у которых значение метрики деградации точности ниже предварительно заданного порогового значения; - формирование расширенного подмножества слоев-кандидатов, подлежащих выделению в отдельные подграфы для квантования с повышенной точностью, путем добавления к первичному подмножеству соседних слоев для каждого слоя из указанного первичного подмножества в соответствии с графом вычислений модели; - оценку и выбор вариантов разбиения графа на подграфы из сформированного суженного пространства поиска, причем оценка каждого варианта разбиения осуществляется по меньшей мере по двум параметрам: итоговой точности модели и расхода ресурсов на передачу данных между вычислителями гетерогенной платформы, определяемым количеством полученных подграфов; - определение конфигурации смешанного квантования нейросетевой модели на основе одного из обнаруженных Парето-оптимальных вариантов разбиения графа. 2. Способ по п. 1, отличающийся тем, что в качестве метрики деградации точности слоя используют одну из группы, включающей: косинусное расстояние, среднеквадратичную ошибку (MSE), абсолютную или относительную разницу. 3. Способ по п. 1, отличающийся тем, что количество добавляемых к первичному подмножеству соседних слоев определяется на основе общего числа слоев модели и заданного пользователем коэффициента расширения. 4. Способ по п. 1, отличающийся тем, что в качестве базовой точности используют 8-битное целочисленное представление (INT8), а в качестве повышенной точности - 16-битное целочисленное представление (INT16) или 16-битное представление с плавающей запятой (FP16). 5. Способ по п. 1, отличающийся тем, что выполнение оценки и выбора вариантов разбиения графа осуществляют с использованием оптимизационного фреймворка. 6. Способ по п. 1, отличающийся тем, что оценка расхода ресурсов на передачу данных осуществляется путем прямого измерения временных задержек при выполнении варианта разбиения графа на целевой или эмулирующей ее вычислительной платформе. 7. Способ по п. 1, отличающийся тем, что оценка расхода ресурсов на передачу данных осуществляется путем моделирования, основанного на оценке объемов данных, передаваемых между подграфами, и известных параметрах пропускной способности каналов связи между вычислителями гетерогенной платформы. 8. Способ по п. 1, отличающийся тем, что для выбора варианта разбиения графа на подграфы применяют многоуровневый рекурсивный алгоритм. 9. Способ по п. 1, при выполнении которого в качестве вычислителей в гетерогенной вычислительной платформе используются различные типы процессоров, включая центральные процессоры (CPU), графические процессоры (GPU), нейропроцессорные ускорители (NPU), программируемые логические интегральные схемы (FPGA), а также специализированные ускорители обработки изображений (ISP), цифровые сигнальные процессоры (DSP) и микроконтроллеры (MCU).
Комментарии
Обсуждайте статью, отвечайте и оценивайте комментарии. Вход — через ваш Яндекс ID.
Загружаем обсуждение…