Как посчитать КПД нейросети-трансформера?

Статья рассматривает традиционные метрики оценки эффективности ИИ, и предлагает инновацию — формулу расчета «КПД ИИ» — коэффициент полезного действия искусственного интеллекта, включая нейросети с архитектурой трансформер.

Общие соображения

Оценка эффективности ИИ — не самая простая задача. В литературе предлагают оценивать эффективность ИИ по различным метрикам. Перечислим основные: точность, полнота, обобщающая способность, сложность, время обработки запроса, время обучения, время внесения изменений, энергозатраты на обучение, энергозатраты на внесение изменений, энергозатраты на обработку запросов, и риск. Однако, в некоторых случаях, может пригодиться «проверенная временем» метрика «КПД» (коэффициент полезного действия). Можно ли сделать расчет КПД для большой нейросети, например, для такой, как трансформер типа ChatGPT? Короткий ответ: сделать можно, но надо разбираться.

Оценка эффективности

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

Точность

Точность — это метрика, используемая для оценки способности ИИ правильно делать прогнозы или классифицировать данные запросов. Она показывает, какой процент предсказаний или классификаций является правильным.

Простая формула для рассчета точности:
Точность = (Количество правильных предсказаний / Общее количество предсказаний) * 100%

Например, если ИИ предсказывает, что 10 из 12 запросов принадлежат к определенной категории, то его точность будет равна (10 / 12) * 100% = 83.33%.

Вместе с тем, следует понимать, что в некоторых случаях, особенно когда данные имеют асимметричное распределение, для расчета точности могут быть использованы другие формулы расчета метрики, такие как «F-мера», или «ROC-AUC».

Полнота

Полнота – способность ИИ точно идентифицировать все релевантные объекты или события в наборе данных. Это означает, что модель должна быть способна обнаружить все положительные случаи, которые действительно существуют в данных. Полнота (также известная как Recall) измеряется как отношение количества истинно положительных результатов (TP) к общему количеству положительных результатов (TP + FN), где FN обозначает количество ложных отрицательных результатов. Полнота показывает, насколько хорошо ИИ может найти все положительные примеры среди всех существующих.

Обобщающая способность

Обобщающая способность – это способность ИИ корректно работать с данными, которые не были включены в обучающий набор. Это критически важно для практического применения, поскольку гарантирует, что ИИ сможет адаптироваться к новым ситуациям и условиям, с которыми она ранее не сталкивалась. Модель с хорошей обобщающей способностью способна эффективно экстраполировать знания, полученные на обучающих данных, на новые данные, обеспечивая тем самым высокую точность предсказаний и решений.

Чтобы оценить обобщающую способность ИИ, необходимо использовать тестовое множество, которое формируется из примеров обучающей выборки, не участвовавших в процессе обучения. Если модель показывает низкую ошибку как на обучающем, так и на тестовом множестве, это указывает на хорошую обобщающую способность. В случае, если ошибка высока на тестовом множестве, вероятно, модель подвержена переобучению и по этому имеет плохую обобщающую способность. Для более точной оценки обобщающей способности используют «AUC-ROC», или «F1-меру», которые учитывают как точность, так и полноту модели.

Сложность

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

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

Время обработки запроса

Время обработки запроса — это время, необходимое системе ИИ на получение и обработку запроса, а также подготовку и передачу потребителю результатов запроса. Как правило, время обработки запроса измеряется в миллисекундах.

Время обработки запроса зависит от мощности аппаратного обеспечения и полосы пропускания канала связи между потребителем и системой ИИ. Когда публикуют эту метрику без указания спецификации ИТ-оборудования, предполагается, что система ИИ доступна из облака через Интернет.

Время обучения

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

Время внесения изменений

Время внесения изменений – период времени, в течение которого модель ИИ дообучается (fine tuning) на основе новых данных или переобучается на основе изменений в обучающем корпусе данных. Переобучение также может включать добавление новых примеров для обучения, корректировку параметров модели или изменение алгоритмов обучения. Метрика особенно важна, когда автоматизируемые процессы носят переменный (сезонный) характер, и для обеспечения актуальности и точности модели, особенно в условиях быстро меняющихся данных или требований, нужно оперативно переобучать модели.

Энергозатраты на обучение

Энергозатраты на обучение ИИ зависят от сложности алгоритмов, объема данных обучающего корпуса и мощности вычислительных ресурсов. Для примера, обучение модели GPT-3 от OpenAI в 2021 году потребовала 1,287 ГВт·ч энергии.

Чтобы посчитать энергозатраты на обучение конкретной модели ИИ, необходимо учесть следующие параметры:

  1. Вычислительные мощности серверов, графических процессоров и других устройств, используемых для обучения.
  2. Время обучения — оценить диапазон времени, который требуется для обучения модели.
  3. Сложность алгоритма — оценить количество параметров модели, объем объем обучающего корпуса и сложность вычислений.
  4. Энергозатраты — оценить по формуле «энергопотребление оборудования» умножить на время его работы. Например, если сервер потребляет 1000 Вт, а обучение длится 10 часов, то энергозатраты составят 10 кВт·ч.

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

Энергозатраты на внесение изменений

Энергозатраты на внесение изменений в ИИ, так же как энергозатраты на обучение, зависят от объема новых примеров и условий обучения, а также мощности вычислительных ресурсов. Для примера, по открытым данным, общие энергозатраты Google на обучение и внесение изменений в ИИ составили от 10 до 15% общего потребления энергии центрами обработки данных, которое в 2021 году составило 18,3 ТВт·ч. Важно отметить, что эта оценка может быть устаревшей, так как изменения происходят довольно быстро.

Энергозатраты на обработку запросов

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

Посчитать энергозатраты на обработку запросов ИИ можно следующим образом:

  1. Определение типа запроса. Запросы к ИИ могут быть разными по сложности и объему обрабатываемых данных. Например, простые запросы, такие как поиск информации, требуют меньше энергии, чем сложные задачи, связанные с обучением или анализом больших объемов данных.
  2. Учет энергопотребления оборудования. Энергопотребление зависит от характеристик используемого оборудования, таких как мощность процессоров, эффективность охлаждения и скорость сетевого соединения.
  3. Расчет времени обработки. Время, затрачиваемое на обработку одного запроса, также влияет на энергозатраты. Чем дольше обрабатывается запрос, тем больше энергии расходуется.
  4. Расчет по формуле. Для расчета энергозатрат можно использовать формулу: E = P * t, где E – искомые энергозатраты, P – потребляемая мощность оборудования, t – время обработки запроса.
  5. Учет дополнительных факторов. В зависимости от специфики задачи и используемого оборудования, могут потребоваться дополнительные расчеты, учитывающие особенности работы конкретной системы.

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

Риск

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

Оценка риска ИИ является важной частью процесса принятия решений в области ИИ и позволяет минимизировать потенциальные риски и убытки.

Расчет КПД

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

Почему на роль прототипа нейросетевого классификатора выбрана формула расчета КПД трансформатор электрической энергии? Приведем цепочку рассуждений.

Формула КПД трансформатора: η = (P1 / P2) * 100%, где P1 — потребляемая из сети мощность, P2 — отдаваемая во время нагрузки мощность. Трансформатор является моделью фильтра (пусть и самой простой), выполняющего работу по разделению входящего сигнала на шум и полезный сигнал. В этом случае формула КПД трансформатора как фильтра приобретает следующий вид: η = (P1 / P2) * 100%, где P1 — мощность полезного сигнала на выходе фильтра, P2 — мощность входного сигнала.

Нейросетевой классификатор допустимо интерпретировать как фильтр, следовательно, к нему так же применима формула расчета КПД фильтра, но с оговорками.

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

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

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

Для расчета информационной плотности можно использовать следующую формулу: H(X) = -∑(p(Xi) * log2(p(Xi))), где H(X) — это энтропия случайной величины X, p(Xi) — вероятность появления i-го значения Xi, а log2(p(Xi)) — это логарифм по основанию 2 вероятности появления i-го значения Xi.

В-четвертых, подставив расчетные значения мощности сигнала на входе и на выходе фильтра по формуле информационной плотности, в формулу КПД фильтра, получаем КПД нейросетевого классификатора.

В заключении хотелось бы сказать, что у нейросетевого классификатора с архитектурой трансформера, как у любого механизма, имеется так называемое «рабоче тело». Им является механизм внимания и нейронная сеть с прямой связью, которые составляют слои кодировщика и декодировщика. Эти слои последовательно передают результаты друг другу, обеспечивая обработку последовательностей без необходимости обработки их по порядку.