УДК 004.054
С. Ф. Якушева1, А. С. Хританков1'2
1 Московский физико-технический институт (национальный исследовательский университет)
2НИУ ВШЭ
О применении причинно-следственных моделей в тестировании систем машинного обучения
Верификация систем машинного обучения - это сложная задача, предполагающая анализ взаимозависимостей между частями системы. Для тестирования таких систем представляется перспективным применение метода тестирования инвариантами (мета-морфное тестирование, metamorphie testing). В данной работе предлагается использовать причинно-следственные модели для анализа причин невыполнения тестовых инвариантов (метаморфных соотношений, metamorphic relations), заданных для исследуемой системы машинного обучения. В результате расчета оценок влияния, рассчитанных на основе модели, могут быть определены компоненты, оказывающие наибольшее влияние на нарушения тестовых инвариантов. Приоритетное исправление ошибок в этих компонентах помогает уменьшить степень нарушения инвариантов. Применимость и полезность метода показана на примере многокомпонентной системы искусственного интеллекта для создания персонализированных стикеров.
Ключевые слова: тестирование инвариантами, причинно-следственные модели, тестирование сложных систем
S. F. Iakusheva1, A. S. Khritankov1'2
1 Moscow Institute of Physics and Technology 2HSE University
On the use of causal models for testing machine learning
systems
Verification of machine learning systems is a complex task that involves analyzing the dependencies between parts of the system. It seems promising to use the metamorphic testing method for verifying such systems. This paper proposes to apply causal models to root cause analysis of the defects identified during metamorphic testing of machine learning systems. Influence estimates are calculated based on the model. As a result, the components that have the most significant impact on violations of metamorphic relations can be identified. Prioritizing bug fixes for these components helps reduce the rate of violations of metamorphic relations. The applicability and usefulness of the method are shown using the example of a multi-component generative artificial intelligence system.
Key words: metamorphic testing, causal models, testing of complex systems
1. Введение
Многокомпонентные системы машинного обучения представляют собой сложные комплексы программ, предназначенные для вычисления необходимого результата для подаваемых на вход системе данных. Важным этапом разработки таких систем является верификация - проверка выполнения всех предъявленных к системе требований, определяющих
© Якушева С. Ф., Хританков А. С., 2024
(с) Федеральное государственное автономное образовательное учреждение высшего образования
«Московский физико-технический институт (национальный исследовательский университет)», 2024
необходимые для корректной работы свойства. Одним из методов верификации является тестирование.
Метод тестирования инвариантами (metamorphic testing, метаморфное тестирование, метаморфическое тестирование) [2] стремительно набирает популярность в области машинного обучения. Метод использует тестовые инварианты - булевы функций от нескольких наборов исходных данных и ответов программы. Одним из преимуществ метода является возможность использовать для тестирования любые подходящие исходные данные без предварительной разметки. Также метод применяется для проверки правильности моделей различной природы, например графовых [2], эпидемиологических [3], нейросетевых [4, 5]. Метод уже использовался для тестирования систем, например поисковых систем [6], геоинформационных систем [7], систем автоматического перевода [8] и других. В статье [9] используются инварианты для всей системы целиком, без выделения отдельных инвариантов для компонент.
Для многокомпонентных систем необходимо проведение интеграционного и системного тестирования, поскольку отсутствие ошибок в работе каждой компоненты еще не гарантирует достаточного качества работы всей системы. Кроме того, после проведения тестирования необходимо проводить поиск ошибок и определять компоненты с наибольшим отрицательным влиянием на качество системы. Доработка таких компонент может помочь повысить итоговое качество работы. Ранее в работе [10] авторами был предложен метод получения так называемых составных инвариантов для систем из отдельных инвариантов для компонент, позволяющий сокращать области поиска ошибок. Однако этот метод обладает рядом недостатков, например, не позволяет учитывать случайную природу ошибок и взаимовлияние компонент друг на друга.
Для оценки влияния компонент на нарушение инварианта возможно использование байесовского подхода и вычисление условных вероятностей появления нарушений инвариантов, однако такой подход не всегда будет учитывать именно причинное влияние отклонений в работе компонент на инварианты и друг на друга. Инвариант может нарушаться и по совокупности работы нескольких компонент системы. Для оценки такого взаимодействия необходима более сложная модель, учитывающая прямое и неявное влияние компонент друг на друга. Для создания подобной модели можно использовать метод причинно-следственного моделирования.
Таким образом, решается задача определения компонент системы, оказывающих наибольшее негативное влияние на нарушения тестовых инвариантов. В данной работе продолжены исследования применения тестирования инвариантами к сложным недетерминированным программным системам. Рассматриваются способы определения компонент, являющихся источниками нарушений тестовых инвариантов. Предлагается метод поиска таких компонент с применением причинно-следственного моделирования. Строится графовая модель, отражающая структуру системы и зависимости; затем по ней строится байесовская сеть и вычисляются оценки. В работе проводится сравнение оценок, получаемых при применении анализа причинно-следственных моделей, и оценок, получаемых методом SHAP [11]. Кроме того, демонстрируется возможность одновременного анализа нескольких инвариантов. Метод применяется для тестирования системы искусственного интеллекта, предназначенной для создания персонализированных стикеров, и помогает улучшить её работу.
Данная статья имеет следующую структуру. В разделе 2 приведены краткие сведения об используемых методах анализа систем. В разделе 3 изложен разработанный метод. В разделе 4 описаны тестируемая система, применение метода, вычислительный эксперимент, результаты эксперимента и их анализ. В разделе 5 подводятся итоги работы.
2. Предварительные сведения об использованных методах
2.1. Метод тестирования инвариантами
Тестирование инвариантами - один из перспективных методов тестирования. Ключевая идея метода состоит в проверке принадлежности нескольких наборов исходных данных и соответствующих им ответов программы некоторому соотношению, называемому тестовым инвариантом, (metamorphic relation):
R(x1} ...,хп, f (хг),f (хп)) ^ {0,1}, (1)
где Xi - исходные данные для г-го запуска в тестовом случае, f (xi) - соответствующий ответ программы. Таким образом, каждый тестовый случай состоит из нескольких независимых запусков программы. Тестирование инвариантами позволяет избежать проверок правильности каждого конкретного результата работы программы. Поэтому метод часто применяется для проверки программ с чрезвычайно затруднённой или невозможной оценкой правильности результатов.
Далее, введём понятие составного инварианта [10]. Рассмотрим системы, представимые в виде ациклических ориентированных графов. Вершины такого графа обозначают компоненты, рёбра - обмен данными в процессе вычисления. Назовём составным, тестовым, инвариантом, логическую функцию С от тестовых инвариантов Ri,j (1) отдельных компонентов системы:
) -^{0,1}, (2)
где г = 1,..., v - номер компоненты (вершины графа), j = 1,... ,m,i номера индивидуальных тестовых инвариантов вершин г, mi — номер выбранного индивидуального тестового инварианта для компоненты. При этом вычисление всех инвариантов происходит в рамках выполнения одного тестового случая. Для вычисления С (2) необходимо вычислить все инварианты для каждой вершины Ri,j-
Далее, введём понятие стохастического инварианта [12]. Инвариант (1) можно переписать в виде ~R(X,f (X)) —> {0,1} где X = (хг,х2,... ,хп) - входная матрица, Xi - единичный вход. Рассмотрим X как матрицу численных непрерывных случайных величин. Тогда стохастический тестовый инвариант (СТИ, stochastic metamorphic relation, SMR) -это процедура случайного выбора S (X, f (X)) и функция детерминирования Т(S):
K(X,f (X ))= T(S (X,f (X))). (3)
2.2. Причинно-следственные модели
Причинно-следственные модели [13] применяются для оценки влияния различных факторов на исследуемые события. Причинно-следственные м,одели, являются ориентированными графами, в качестве вершин графа рассматриваются выделенные случайные величины - факторы и исследуемые события, а рёбра между вершинами обозначают влияния одного фактора на другой. Отсутствие прямого ребра означает независимость факторов при отсутствии неизвестного общего влияющего фактора (англ. confounder).
Для уточнения наличия и направления связей, а также их непосредственной численной оценки, могут производиться вмешательства в граф (англ. interventions). Для обозначения таких вмешательств используется оператор do (см. [13]). При этом фиксируются значения выбранных наблюдаемых факторов. Например, бинарные факторы всегда принимают зна-10
набора. Применение оператора do позволяет исследовать гипотезы вида «что-если» и, как следствие, исключать из рассмотрения некоторые вершины или рёбра графа. При этом предполагается, что оператор do не влияет на взаимодействие остальных переменных.
В причинно-следственной модели, чтобы отделить прямые причины события от косвенных или неявных, нужно находить множество выделения зависимостей, или (¡-разделения (^separation). Два множества вершин X и Y называются & разделёнными, если существует множество вершин Z такое, что любой путь между X и Y «заблокирован» (blocked path [13]) этим множеством. Определив подходящие d-разделяющие множества вершин и применение оператор do, можно определить из причинно-следственной модели, какие величины необходимо зафиксировать, для каких использовать генератор данных, а по каким проводить усреднение в ходе вычислительного эксперимента при тестировании системы.
Причинно-следственные модели и получаемые из них более сложные модели применяются в генном анализе, социологии и экономике [14], а также в интеллектуальном анализе данных, поиске взаимосвязей между переменными, при представлении экспертных знаний и объединении экспертных знаний и эмпирических данных [15]. Подобные графовые модели используются для построения марковских и байесовских сетей.
3. Предлагаемый подход к анализу стохастических систем
3.1. Постановка задачи
Рассматриваются многокомпонентные системы машинного обучения, представимые в виде ациклических ориентированных графов. В таком графе вершины обозначают отдельные компоненты системы, а рёбра показывают обмен данными между ними. На вход системе подаются исходные данные, на выходе ожидается некоторый ответ - результат вычислений. Каждая компонента по сути представляет собой подпрограмму, о которой известны только её спецификации.
Кроме того, известен набор тестовых инвариантов для системы (и/или её компонент) и результаты тестирования инвариантами. Для каждого тестового случая известен протокол выполнения: какие компоненты участвовали, какие события происходили в процессе выполнения, каков итоговый результат. Также есть возможность повторного проведения эксперимента после уточнения набора проверяемых инвариантов и перечня необходимых сведений о каждом тестовом запуске.
Решаемая задача состоит в определении компонент, оказывающих наибольшее негативное влияние на выполнение тестовых инвариантов. Для этого необходимо оценить компоненты по абсолютному влиянию на возникновение нарушения инварианта.
3.2. Предлагаемый метод определения компонент с наибольшим влиянием на нарушения инвариантов
Метод состоит в выполнении следующих шагов для выявления причин нарушения инварианта.
1) Определить рассматриваемый набор тестовых инвариантов для системы и её компонент. Для стохастических инвариантов сформулировать проверяемые гипотезы и определить статистические критерии их проверки. При необходимости уточнить формулировки инвариантов.
2) Рассмотреть схему обмена данными между компонентами системы. Определить независимые исходные параметры и итоговые получаемые значения. В качестве скрытых переменных рассмотреть компоненты системы и результаты их работы (применялась компонента или не применялась, выполнялся ли для неё индивидуальный инвариант, произошло ли в процессе работы определённое событие, было ли принято определённое решение и так далее). Одной компоненте могут соответствовать несколько переменных.
3) Построить причинно-следственную модель в виде графа, используя структуру системы и зависимости, определяемые инвариантами; исключить вершины графа, для ко-
торых можно однозначно определить отсутствие влияния на исследуемый инвариант. При необходимости вернуться к шагам 1 и 2.
4) Для каждой вершины определить ^-разделяющее множество и применить оператор йо, получить байесовскую сеть. Спланировать вычислительный эксперимент. Если инварианты имеют пересечения ^-разделяющих множеств или общие исходные данные (например, как в формуле 2), то исследование нескольких инвариантов может быть проведено в одном вычислительном эксперименте.
5) Провести вычислительный эксперимент, собрать данные, проверить соответствие причинно-следственной модели и экспериментальных данных. В случае несоответствия доработать модель.
6) Вычислить значения инвариантов. Оценить степени влияния факторов на нарушение инварианта, определить наиболее сильно влияющие на нарушение факторы.
Стоит отметить, что метод может применяться и для анализа ранее предложенных составных инвариантов вида (2). В таком случае для построения причинно-следственной модели в качестве влияющих факторов необходимо рассматривать не только входные параметры, но и сами индивидуальные инварианты компонент. Выполнение инвариантов компонент, использующих результаты работы ранее отработавших компонент, может напрямую зависеть от выполнения инвариантов в этих компонентах, поэтому между факторами-инвариантами будут присутствовать причинно-следственные связи.
Инварианты могут быть как детерминированными, так и стохастическими (3). В случае использования стохастических инвариантов следует на шаге 1 или шаге 3 определить, какие из них необходимо рассматривать в первоначальном стохастическом виде, а какие — в более строгом детерминированном. Детерминирование инвариантов может помочь выявить более четкие зависимости между нарушениями и факторами.
4. Применение метода для системы генерации стикеров 4.1. Шаг 1. Тестируемая система и её свойства
В качестве объекта тестирования была выбрана многокомпонентная стохастическая система искусственного интеллекта [16]. Эта система предназначена для создания персонализированных стикеров по фотографии. Стикер - это тематическое изображение с лицом человека, содержащее хвалебные надписи и различные декоративные элементы. Такой стикер может создаваться для пользователя после успешного прохождения дистанционных обучающих курсов.
Сложностью в оценке качества рассматриваемой системы является принципиальная невозможность классификации стикеров на качественные и некачественные без участия человека, а также отсутствие других общепризнанных метрик качества подобных изображений. Ранее система оценивалась путём опроса пользователей [16], затем было проверено выполнение двух тестовых инвариантов [17]:
Н.1. Если по фотографии сгенерирован стикер, применение программы, к полученному стикеру всегда даёт, новый стикер (будем называть его повторным).
112. С зашумлением входных данных количество успешно генерируемых стикеров монотонно уменьшается.
Первый инвариант проверяет, что пользователь может узнать своё лицо на стикере. Иными словами, лицо на стикере должно хотя бы обнаруживаться системой. В случае, если на фотографии не было обнаружено лицо, система не создаёт стикер. Второе требование к системе основывалось на соображении, что модель сегментации в среднем работает хуже при зашумлении изображений. Если зашумлять изображение, можно добиться того, что система перестанет распознавать на нём лицо человека. При дальнейшем зашумлении система в среднем не должна распознавать на нём лицо.
Было выявлено, что в 16% случаев из стикера невозможно получить повторный стикер, а в 3% случаев качество изображений немонотонно влияет на количество генерируемых стикеров. Была поставлена задача выявить наиболее проблемные компоненты системы.
4.2. Шаг 2. Анализ архитектуры системы и выявление потенциальных влияющих факторов
Система генерации состоит из большого количества компонент. В системе присутствуют глубокие нейросетевые модели для детекции и сегментации (МесИаР1ре), языковая модель для определения тематики стикера по текстовому описанию (БраСу), генеративная состязательная сеть для мультификации изображения (АштеСА]М), а также алгоритмические компоненты для переноса стиля, вставки декоративных элементов и общей гармонизации. В процессе создания стикера происходит детекция и сегментация изображения человека. При этом на изображение с некоторой вероятностью могут добавляться очки, это происходит после детекции и до сегментации. Далее случайно происходят мультификация или перенос стиля фона на весь полученный стикер.
При анализе примеров нарушения инварианта К\ было замечено, что не прослеживается явная детерминированная зависимость между применением какого-либо преобразования и нарушением. Поэтому сегментация и все преобразования (добавление очков, мультификация, перенос стиля) были рассмотрены как факторы, потенциально влияющие на нарушение.
Тематика стикера также была рассмотрена в качестве фактора, потенциально влияющего на нарушение инварианта К\. Для каждой тематики предназначена отдельная коллекция тематических фонов, некоторые из которых могут быть очень тёмными или очень светлыми, содержать силуэты или лица людей. Это может отразиться на качестве работы модели сегментации.
На нарушение инварианта влияют только качество модели сегментации и процедура добавления очков. Это связано с архитектурными особенностями системы и отсутствием каких-либо других проверок при вычислении
Таким образом, исходным параметром является тематика. Выполнение инвариантов К\ и итоговые получаемые значения. На выполнение инвариантов могут влиять применения вышеперечисленных процедур. Для оценки влияния будем учитывать, применялось преобразование или нет.
4.3. Шаг 3. Моделирование системы. Построение причинно-следственного графа
Заметим, что для проверки К2 требуется последовательность зашумлённых картинок, а для проверки выполнения инварианта К\ подходит совершенно любое входное изображение. Поэтому можно использовать для К\ не только оригинальные, но и зашумлённые изображения. Таким образом, можно совместить два инварианта, а затем провести совместный анализ.
Обозначим через Р\ результат генерации стикера (создался или нет), Р2 - результат генерации повторного стикера, Рз - результат генерации стикера из зашумлённой картинки. Эти величины принимают значения 0 (не создался) или 1 (создался).
Обозначим выполнение инвариантов как К\ равно 1 тогда, когда Р\ = 1 и Р2 = 1. Если Р\ = 0, то Р2 = 0. Инвариант нарушается только в случае Р\ = 1 и Р2 = 0. Таким образом, К\ = Р\ —> Р2.
Поскольку инвариант И,2 является стохастическим и проверяется на последовательности изображений при помощи статистического критерия, зависимость от Р\ и Рз по сути полностью определяется сложной детерминированной функцией, в том числе зависящей от частоты появления события Р\ = 0 и Рз = 1. Вернёмся к шагу 1 предлагаемого
алгоритма 3.2. Для упрощения анализа воспользуемся возможностью использовать внутренние статистики стохастического инварианта. В этом случае R2 для соседних картинок последовательности равно 1 тогда, когда Р\ ^ Рз, то есть К2 = Рз ^ Р\- Будем рассматривать отдельно выполнение этого свойства для каждой пары последовательных картинок, чтобы точнее определить влияние факторов.
Тематику стикера будем обозначать х. Обозначим как событие С применение добавления очков, С - применение мультификации, 5 - применение переноса стиля, И - обнаружение на входном изображении человека. Таким образом, Иг - событие обнаружения человека, а О г - применение добавления очков в процессе со здания стикера Р.¿, г = 1,2,3. Эти величины также принимают значения 0 или 1.
На основании архитектуры системы и ранее произведенных наблюдений был составлен причинно-следственный граф, показанный на рис. 1.
Рис. 1. Полный граф причинно-следственных связей, построенный для рассматриваемой системы. С - применение мультификации, стикера, 5 - применение переноса стиля, Иг - событие
обнаружения человека, Pi - событие успешной сегментации (что эквивалентно созданию стикера), а Сг - применение добавления очков, г = 1, 2, 3 Дх и Д2 — проверяемые тестовые инварианты
4.4. Шаг 4. Анализ причинно-следственного графа
Для оценки влияния компонент на инвариант R рассчитаем величину ATE (average treatment effect, «средний эффект от лечения»), оценивающую изменение выхода системы при применении фактора («лечения»). Рассмотрим произвольную вершину графа Y. Для расчёта ATE(Y, R) необходимо определить d-разделяющее множество вершин Z, блокирующих нежелательные пути распространения зависимостей в графе, и вычислить условное математи ческое ожидание
ATE(Y, R) = Е(R\do(Y = 1)) - Е(R\do(Y = 0)) =
= ^(E(R = 1\Y = 1,Z = z) - E(R = 1\Y = 0,Z = z))P(z).
z
Все рассматриваемые величины, кроме категориальной переменной х, являются бинарными, и их математические ожидания численно равны вероятностям появления значения 1, поэтому для них Е(R = 1\Y = 1, Z = z) = Р(R = 1\Y = 1,Z = z).
Теперь рассмотрим вершину S в построенном графе. Для исключения всех нежелательных косвенных влияний (confounders) для этой вершины достаточно d-разделяющего множества {х, С, G\, Pi}, вершины которого блокируют все нежелательные пути распространения зависимостей в графе. Ни одна из этих вершин не является потомком S. Для неё формула вычисления ATE будет выглядеть следующим образом:
АТЕ(5, Ег) =
= Е (Р(Р2 = 1|^ = 1,С,х,С1,Р1) - Р(Р2 = 1|5 = 0,С,х,С1,Р1))Р(х,С,С1,Р1).
х,С,С1,Р1
Проделаем аналогичные операции для остальных вершин построенного графа. Рассмотрим влияние вершин С, С\ и ^2 на инвариант К\. Для исключения всех нежелательных косвенных влияний для вершины С достаточно ^-разделяющего множества {х, С\, Р\}, для вершины ^-разделяющего множества {х, Б, С, Р\}. Для вершины С2 достаточно выбрать ^-разделяющее множество вершин {С\,Р\,С,х,Б}.
Рассмотрим вершину х. Для блокировки всех нежелательных косвенных влияний на эту вершину достаточно ^-разделяющего множества {С, С\, Р\}. Ни одна из этих вершин не является потомком х. Тогда
АТЕ(ж, Кг) =
= ^ (Р(Кг = 11ж = Х,С,С1,Р1) - Р(Кг = Цх <> Х,С,Сг, Рг))Р(х,С,С1,Р1).
х,С,С1,Р1
Рассмотрим влияние вершин О г и Сз на инвари ант К2- Чтобы исключить все нежелательные косвенные влияния, для вершины Сг достаточно выбрать с1-разделяющее множество вершин {Ог, Из, а для вершины Сз {Ог, Из, Сг}. Формулы для вычисления получаются аналогично предыдущим.
В данном эксперименте распределения величин являются бинарными, поэтому можно приблизить их распределениями Бернулли. Тогда значение АТЕ можно интерпретировать как смещение параметра распределения Бернулли, которым приближено распределение тестового инварианта.
4.5. Шаг 5. Постановка вычислительного эксперимента
Для проведения эксперимента из открытых источников были отобраны 100 портретных изображений. Некоторые из них содержали по два лица, некоторые - ни одного. Эксперимент повторялся для трёх тематик - «химия», «математика» и «история».
В эксперименте попытались создать 30 стикеров из каждого изображения, а также стикер из каждого из 30 последовательно зашумлённых изображений, полученных из оригинала путём многократного наложения гауссовского шума. Затем предприняли попытки создать стикер из каждого полученного стикера. Далее производился подсчёт числа стикеров и вычисления вероятностей возникновения ошибок. Повторные стикеры из картинок с шумом и без шума анализировались отдельно, поскольку искусственно зашумленные картинки редко используются обычными пользователями системы.
В первоначальной системе ошибка в применении преобразования добавления очков никак не обрабатывается. Для уточнения причин нарушения инвариантов в код была добавлена обработки ошибки. Таким образом, анализ проводился на двух конфигурациях системы - а (с обработкой ошибки) и Ь (без обработки ошибки). При этом в данные записывались специальные значения -1, которое затем отдельно обрабатывались. Для эксперимента с обработкой ошибки производилась только замена на 1. Для расчёта величин при отсутствии обработки это значение заменялось на 1, а результаты дальнейших действий -на 0.
Для оценки степени влияния компонент также использовался метод Б НАР, применяемый для оценки значимости признаков в прогнозных моделях машинного обучения [11]. Метод использует понятия теории игр. Так, кооперативной игрой называется игра, в которой группа игроков (коалиция) действует совместно для достижения общих целей. Для
оценки вклада каждого игрока используются величины, называемые значениями Шапли (Shaplev values) и вычисляемые по формуле
<р = N ^ (reward(i U р)--reward(p)),
' ^еп
где N - общее число игр оков, П - множество игроков, р - множество игроков, участвующих в коалиции к до г-то. В контексте машинного обучения игроками будут признаки, а наградой - ответ на конкретном примере. Значения Шапли позволяют оценить вклад каждого признака в ответ модели.
Одной из проблем получения значений Шапли является необходимость многократного обучения модели с различными комбинациями признаков. Метод SHAP позволяет этого избежать. В процессе вычисления ответа прогнозная модель не меняется, в то время как значения признаков в данных заменяются на неопределённые. Перебираются всевозможные подмножества признаков, которые не будут изменены, а остальные признаки заменяются неопределёнными значениями, после чего вычисляемое математическое ожидание качества предсказания модели по той же формуле используется как оценка истинных значений значимости.
Эксперимент производился на базе библиотеки MLDev [18] с использованием расширения mldev-metamorphic.
4.6. Шаг 6. Результаты вычислительного эксперимента и анализ
В результате эксперимента вычислялись значения трёх инвариантов - R\, R2 и R\,n (инвариант Ri, рассчитанный при повторном использовании стикеров из зашумлённых изображений). Было установлено, что в конфигурации b инвариант Ri выполняется в 79.7% случаев, R2 - в 96.8%, а инвариант R1,n - в 74.8% случаев.
По значениям АТЕ^ можно заметить, что повторное добавление очков оказывает самое большое влияние на результат. Для сравнения рассмотрим систему с добавленной обработкой ошибки в преобразовании добавления очков. При добавлении обработчика инвариант Ri выполняется в 88% случаев, R2 - в 99.6%, а инвариант Ri,n - в 81.9% случаев. Таким образом, исправление работы преобразования улучшило результаты тестирования. После этого значения ATE для повторного добавления очков заметно изменились, что свидетельствует об изменении влияния преобразования на нарушение инварианта. Также сумма ATE для признаков уменьшилась. При этом о количественном сравнении влияния преобразований рассуждать затруднительно, поскольку распределение значений инварианта и степень влияния компонент друг на друга изменились.
Ri
вает преобразование G2, то есть добавление очков, применённое к стикеру для получения повторного. Далее, по величине влияния следуют мультификация и перенос стиля. Таким образом, определены компоненты, оказывающие наибольшее влияние на инварианты.
Величины ATE для тем стикеров по абсолютной величине составляют не более 0.025, а знак этой величины для каждой темы меняется от эксперимента к эксперименту. Значения SHAP для тем ведут себя точно таким же образом. Поэтому можно считать, что явной зависимости между нарушением инварианта и темой стикера не наблюдается.
Получаемые значения ATE заметно отличаются от оценок, получаемых при использовании метода SHAP. Можно заметить, например, что значения ATE^(Ri) и SHAPb(Ri) Для признаков распределены по-разному относительно друг друга. При анализе стикеров, сгенерированных по картинкам без добавленного шума, было обнаружено, что преобразование добавления очков заканчивается ошибкой в 8.9% случаев (266 из 2960), добавление очков на повторный стикер - в 35.1% случаев (885 из 2515), из них повторное добавление очков -в 36.9% (256 из 693), а добавление очков на стикер без очков (добавление не производилось или закончилось ошибкой) - в 34.5% (629 из 1822). Это говорит о серьёзных проблемах с
применением данного преобразования. По величинам SHAP^^) и SHAPb(Ri,N) обнаружить это достаточно сложно: SHAP для повторного добавления очков в разы меньше, чем для других признаков, а ATE у него самый большой.
Таблица 1
Оценки влияния компонент тестируемой системы на нарушение тестовых инвариантов. R1? R1,n и R2 - проверяемые тестовые инварианты, х - тематика стикера, С - применение мультификации, S - применение переноса стиля, Gi -применение добавления очков, i = 1, 2, 3. При анализе стикеров, сгенерированных при проверке R1, было обнаружено, что преобразование добавления очков G1 заканчивается ошибкой в 8.9% случаев, добавление очков на повторный стикер G2 — в 35.1% случаев, из них повторное добавление очков - в 36.9%, а добавление очков на стикер без очков - в 34.5%. Значения ATE лучше согласуются с этими наблюдениями, чем величины SHAP
5 С G1 G2 Gs X
АТЕь(Е1 ) -0.17 -0.177 -0.077 -0.28 - -0.009 - 0.014
АТЕа(Е1) -0.148 -0.147 -0.10 0.084 - -0.016 - 0.013
SHAPb(E1) 0.003 0.0055 0.0006 0.00088 - 4.6 ■ 10-5
SHAPa(E1) 0.001 0.0022 0.001 3.9 ■ 10-5 - 9.5 ■ 10-6
АТЕь(Е2 ) - - -0.053 - -0.057 -
ATEÄ) - - -0.053 - -0.057 -
SHAPb(E2) - - 0.012 - 0.0023 -
SHAPÄ) - - 1.03 ■ 10-17 - 0.00012 -
ATEb(E1,w) -0.137 -0.227 -0.152 -0.25 - -0.01 - 0.007
ATE0(^1,N) -0.111 -0.223 -0.166 0.088 - -0.022 - 0.01
SHAP b(RltN) 0.0038 0.0061 0.001 0.0012 - 0.0002
SHAP0(^1,N) 0.0013 0.0025 0.0016 0.0001 - 0.00011 ■10-5
Заметим, что и ATE, и SHAP меняются после исправления ошибок. При этом SHAP неверно определяет компоненту, оказывающую наибольшее влияние на нарушение инварианта.
В результате эксперимента была решена задача оценки степени влияния компонент системы на выполнение инварианта. Было установлено, что наибольшее влияние на нарушения оказывают добавление очков и мультификация. В результате проведённого анализа была произведена доработка системы: добавлен обработчик ошибки, возникающей при добавлении очков. Эффект от доработки хорошо заметен на измерениях: количество нарушений инвариантов сократилось. Успешно проведённый вычислительный эксперимент показывает применимость и полезность метода на практике для верификации.
Оценки, получаемые при использовании в анализе причинно-следственных моделей, оказываются точнее, чем оценки методом SHAP. Проведённый вычислительный эксперимент показывает, что использование причинно-следственной модели для анализа нарушения инвариантов не только позволяет оценить влияние компонент, но и представить инвариант в виде математической модели, формально описывающей требования к этим компонентам. Тем самым было показано, как можно перейти от нечетко заданных требований на естественном языке к вычислимым и измеримым в эксперименте характеристикам.
Повторяемость полученных результатов исследования обеспечивается использованием специализированных библиотек для проведения экспериментов. Среди факторов, влияющих на достоверность эксперимента, следует отметить случайный выбор исходных данных.
5. Заключение
В данном исследовании рассмотрена проблема поиска ошибок при тестировании систем тестовыми инвариантами. Был предложен подход к применению причинно-следственных моделей для оценки влияния компонент на выполнение тестовых инвариантов. Подход был продемонстрирован на примере системы генерации персонализированных стикеров, в результате тестирования выявлены наиболее проблемные компоненты системы и произведена доработка системы, позволившая уменьшить количество нарушений инвариантов. Тем самым были показаны применимость и полезность предложенного подхода.
Путём сравнения получаемых оценок с оценками методом SHAP, было продемонстрировано качественное преимущество предлагаемого подхода, в том числе возможность улучшать поведение системы путём исправления ошибок в наиболее проблематичных компонентах. Кроме того, была показана возможность одновременного анализа нескольких инвариантов. Предлагаемый подход позволяет более полно анализировать поведение систем и сократить вычислительную сложность анализа.
Подход может использоваться при верификации систем и в других предметных областях, если получается построить причинно-следственную модель влияния факторов. Кроме того, подход может дополнять разработанный ранее анализ составных инвариантов, но соответствующая экспериментальная проверка пока еще не проводилась.
К текущим недостаткам метода следует отнести низкую степень автоматизации и трудоемкость построения причинно-следственной модели, поэтому будущие исследования могут быть посвящены автоматизации процесса и разработке методик получения причинно-следственных графов для представления инвариантов.
Список литературы
1. Chen T.Y., Kuo F.-C., Liu H., Poon P.-L., Towey D., Tse Т.Н., Zhou Z.Q. Metamorphic Testing: A Review of Challenges and Opportunities // New York : Association for Computing Machinery. 2018. V. 51, N 1.
2. Zhang J., Zheng Z., Yin В., Qiu K., Liu Y. Testing graph searching based path planning algorithms by metamorphic testing // 2019 IEEE 24th Pacific Rim International Symposium on Dependable Computing (PRDC) 2019. P. 158-15809.
3. Pullum L.L., Ozmen O. Early results from metamorphic testing of epidemiological models // 2012 ASE/IEEE International Conference on BioMedical Computing (BioMedCom) 2012. P. 62-67.
4. Xie X., Zhang Z., Chen T.Y., Liu Y, Poon P.-L., Xu B. METTLE: a METamorphic testing approach to assessing and validating unsupervised machine LEarning systems // IEEE Transactions on Reliability. 2020. V. 69, N 4. P. 1293-1322.
5. Jia M., Wang X., Xu Y., Cut Z., Xie R. Testing machine learning classifiers based on compositional metamorphic relations // International Journal of Performabilitv Engineering. 2020. V. 16, N 1. P. 67.
6. Luo G., Zheng X., Liu H., Xu R., Nagumothu D., Janapareddi R., Zhuang E., Liu X. Verification of microservices using metamorphic testing // Algorithms and Architectures for Parallel Processing: 19th International Conference, ICA3PP 2019, Melbourne, VIC, Australia, December 9-11, 2019, Proceedings, Part I 19. 2020. P. 138-152.
7. Iqbal M. Metamorphic Testing of Advanced Driver-Assistance Systems: Implementing Euro NCAP Standards on OpenStreetMap // 2023 IEEE/ACM 8th International Workshop on Metamorphic Testing (MET). 2023. P. 1-8.
8. Gao W., He J., Pharn V.-T. Metamorphic Testing of Machine Translation Models using Back Translation // 2023 IEEE/ACM International Workshop on Deep Learning for Testing and Testing for Deep Learning (DeepTest). 2023. P. 1-8.
9. Troup М., Yang A., Kamali А.Н., Giannoulatou Е., Chen Т. Y., Но J. W.K. A Cloud-Based Framework for Applying Metamorphic Testing to a Bioinformatics Pipeline // Proceedings of the 1st International Workshop on Metamorphic Testing. 2016. P. 33-36.
10. Iakusheva S., Khritankov A. Composite metamorphic relations for integration testing // Proceedings of the 2022 8th International Conference on Computer Technology Applications. 2022. P. 98-105.
11. Strumbelj E., Kononenko I. An efficient explanation of individual classifications using game theory // Journal of Machine Learning Research. 2010. V. 11. P. 1 1.
12. Iakusheva S., Khritankov A. Metamorphic Testing for Recommender Systems // Analysis of Images, Social Networks and Texts. AIST 2023. Lecture Notes in Computer Science / ed. D.I. Ignatov et al. Springer, Cham, 2024. V. 14486. P.281-293.
13. Wright S. Correlation and causation // Journal of Agricultural Research. 1921. V. 20. P. 557-585.
14. Pearl J. [et al.}. Causality. Models, reasoning and inference. Cambridge, UK : Cambridge University Press, 2000.
15. Marcot B.C., Penman T.D. Advances in Bavesian network modelling: Integration of modelling technologies // Environmental modelling k, software. 2019. V. 111. P. 386-393.
16. Горбачёпок Д.И. Исследование методов машинного обучения для создания персонализированных стикеров. ВКР бакалавра. Москва : НИУ ВШЭ, 2023.
17. Якушева С.Ф., Хританков А.С., Горба,чёпок Д.И. Тестирование инвариантами в применении к генеративным системам искусственного интеллекта // Системная информатика. 2023. № 22. С. 37-44.
18. Khritankov A., Pershin N., Ukhov N., Ukhov A. MLDev: Data Science Experiment Automation and Reproducibility Software // International Conference on Data Analytics and Management in Data Intensive Domains. 2021. P. 3-18.
References
1. Chen T.Y., Kuo F.-C., Liu H., Poon P.-L., Towey D., Tse Т.Н., Zhou Z.Q. Metamorphic Testing: A Review of Challenges and Opportunities. New York : Association for Computing Machinery. 2018. V. 51, N 1.
2. Zhang J., Zheng Z., Yin В., Qiu K., Liu Y. Testing graph searching based path planning algorithms by metamorphic testing. 2019 IEEE 24th Pacific Rim International Symposium on Dependable Computing (PRDC) 2019. P. 158-15809.
3. Pullum L.L., Ozmen O. Early results from metamorphic testing of epidemiological models. 2012 ASE/IEEE International Conference on BioMedical Computing (BioMedCom) 2012. P. 62-67.
4. Xie X., Zhang Z., Chen T.Y., Liu Y, Poon P.-L., Xu B. METTLE: a METamorphic testing approach to assessing and validating unsupervised machine LEarning systems. IEEE Transactions on Reliability. 2020. V. 69, N 4. P. 1293-1322.
5. Jia M., Wang X., Xu Y., Сиг Z., Xie R. Testing machine learning classifiers based on compositional metamorphic relations. International Journal of Performabilitv Engineering. 2020. V. 16, N 1. P. 67.
6. Luo G., Zheng X., Liu H., Xu R., Nagumothu D., Janapareddi R., Zhuang E., Liu X. Verification of microservices using metamorphic testing.Algorithms and Architectures for Parallel Processing: 19th International Conference, ICA3PP 2019, Melbourne, VIC, Australia, December 9-11, 2019, Proceedings, Part I 19. 2020. P. 138-152.
7. Iqbal M. Metamorphic Testing of Advanced Driver-Assistance Systems: Implementing Euro NCAP Standards on OpenStreetMap. 2023 IEEE/ACM 8th International Workshop on Metamorphic Testing (MET). 2023. P. 1-8.
8. Gao W., He J., Pham V.-T. Metamorphic Testing of Machine Translation Models using Back Translation. 2023 IEEE/ACM International Workshop on Deep Learning for Testing and Testing for Deep Learning (DeepTest). 2023. P. 1-8.
9. Troup M., Yang A.; Kamali A.H., Giannoulatou E., Chen T. Y., Ho ,J. W.K. A Cloud-Based Framework for Applying Metamorphic Testing to a Bioinformatics Pipeline. Proceedings of the 1st International Workshop on Metamorphic Testing. 2016. P. 33-36.
10. Iakusheva S., Khritankov A. Composite metamorphic relations for integration testing. Proceedings of the 2022 8th International Conference on Computer Technology Applications. 2022. P. 98-105.
11. Strumbelj E., Kononenko L An efficient explanation of individual classifications using game theory. Journal of Machine Learning Research. 2010. V. 11. P. 1 1.
12. Iakusheva S., Khritankov A. Metamorphic Testing for Recommender Systems. Analysis of Images, Social Networks and Texts. AIST 2023. Lecture Notes in Computer Science, ed. D.I. Ignatov et al. Springer, Cham, 2024. V. 14486. P.281-293.
13. Wright S. Correlation and causation. Journal of Agricultural Research. 1921. V. 20. P. 557585.
14. Pearl ,J., et al., Causality. Models, reasoning and inference. Cambridge, UK : Cambridge University Press, 2000.
15. Marcot E.G., Penman T.D. Advances in Bavesian network modelling: Integration of modelling technologies. Environmental modelling k, software. 2019. V. 111. P. 386-393.
16. Harbachonak D.L Study of Machine Learning Methods for Personalized Stickers Creation. B.Sc. thesis. Moscow : HSE University, 2023. (in Russian).
17. Iakusheva S.F., Khritankov A.S., Harbachonak D.I. Metamorphic testing for generative artificial intelligence systems. System informatics. 2023. N 22. P. 37-44. (in Russian).
18. Khritankov A., Pershin N., Ukhov N., Ukhov A. MLDev: Data Science Experiment Automation and Reproducibility Software. International Conference on Data Analytics and Management in Data Intensive Domains. 2021. P. 3-18.
Поступим в редакцию 28.03.2024