Использование ChatGPT для анализа ваших тестовых данных

Ari Mahpour
|  Создано: 18 Октября, 2023  |  Обновлено: 1 Июля, 2024
Использование ChatGPT для анализа ваших тестовых данных

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

Предыстория

Недавно я провел некоторые тесты для профилирования умного аккумулятора и хотел узнать, насколько точны некоторые регистры отчетов, а именно:

  1. Температура
  2. Напряжение
  3. Ток

 

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

С ИИ и его моделью обработки естественного языка я могу задавать вопросы на простом английском о моих данных и получать нужные результаты. Что еще лучше, так это недавнее добавление плагина Advanced Data Analysis (ранее известного как «Интерпретатор кода») на GPT-4. Он не только показывает мне код Python, который он пишет, обрабатывая мои инструкции, но также может строить графики для меня, используя библиотеку Matplotlib в Python. Заметьте, я говорю о платной версии ChatGPT, но вы все равно можете получить большую часть того, что ищете, в бесплатной версии ChatGPT (или других систем генеративного ИИ).

Испытание на воде

Прежде чем начать, я хотел понять, что мой ИИ может и не может делать для меня. Я загрузил свои тестовые данные в формате CSV в ChatGPT и задал простые вопросы о данных, такие как «Какая средняя температура, зарегистрированная от аккумулятора?» Я очень быстро обнаружил, что набор данных, который я дал, был слишком большим. У меня было два варианта: уменьшить мои данные или попросить его предоставить мне команды для работы с моими данными локально. Я решил сделать и то, и другое. С плагином Advanced Data Analysis он предоставит вам фрагмент кода (на Python), который он запускает на своих машинах. Как только я предоставил GPT-4 мой уменьшенный файл, он смог начать анализ данных.

В этой статье вы увидите фрагменты кода, которые он предоставляет и которые также могут быть выполнены локально против большего набора данных. Предварительное выполнение кода GPT-4 является ключевым компонентом, которого не хватало, когда они впервые выпустили ChatGPT. Часто я получал сгенерированный код, который не работал. С Advanced Data Analysis это перестало происходить (поскольку он пытался исправить себя после неудачи).

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

Начальная загрузка данных

Рисунок 1: Начальная загрузка данных

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

Предложение анализа

Рисунок 2: Предложения анализа

Меня интересует матрица корреляции. Мне интересно, как температура коррелирует с напряжением и током, поэтому я спрошу:
Покажи мне корреляцию между температурой, напряжением/током питания и напряжением/током нагрузки.

Он дает мне хорошее представление о том, как все переменные коррелируют:

Матрица корреляции

Рисунок 3: Матрица корреляции

И если я попрошу ChatGPT построить ее для меня, я получу:

График матрицы корреляции

Рисунок 4: График матрицы корреляции

Он дает мне некоторые дополнительные корреляции, которые мне действительно не интересны, но я готов их игнорировать.

Проверка данных

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

Хотя модель естественного языка, которую предоставляет ChatGPT, очень хороша, она определенно не идеальна. Есть определенные концепции, которые она может не полностью понимать. Если вы просите его выполнить статистический анализ, он обычно понимает, что делать, но может не всегда понимать простые инженерные термины. Чтобы учесть это, я стараюсь делать мои запросы как можно проще, чтобы предотвратить проблемы в дальнейшем. Я прошу ChatGPT создать три новых столбца:

Давайте создадим три новых столбца данных:

  1. Мощность питания: Напряжение питания * Ток питания
  2. Мощность нагрузки: Напряжение нагрузки * Ток нагрузки
  3. Мощность батареи: abs(Напряжение * Ток)/1000/1000

Мне также нужно указать, что когда мощность моей нагрузки = 0 (то есть электронная нагрузка постоянного тока не потребляет ток от испытуемого устройства), это означает, что мы заряжаемся. Когда мощность нагрузки отлична от нуля, это указывает на то, что мы разряжаем батарею. Опять же, чтобы не сбить с толку GPT-4, я упоминаю это в запросе следующим образом:

Построить график мощности нагрузки и мощности батареи в зависимости от временных меток, но только когда мощность нагрузки отлична от нуля

В результате я получаю красивый график:

График мощности нагрузки и батареи

Рисунок 5: График мощности нагрузки и батареи

Теперь, когда данные выглядят хорошо, я могу запросить корреляцию и другие анализы:
Покажите мне корреляцию между двумя (только в ненулевом состоянии)

Расчет корреляции

Рисунок 6: Расчет корреляции

И когда я запрашиваю другие статистические данные:
Каково среднее отклонение, стандартное отклонение и дисперсия между двумя (только ненулевые) [в процентах]

Статистика по мощности нагрузки и батареи

Рисунок 7: Статистика по мощности нагрузки и батареи

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

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

График мощности источника питания и батареи

Рисунок 8: График мощности источника питания и батареи

Как вы можете видеть, у меня есть некоторые сбои. Это связано с тем, что телеметрия умной батареи не синхронизирована с моими приборами. В идеале я должен перейти в режим зарядки (то есть выключить электронную нагрузку и включить источник питания), а затем подождать еще несколько секунд перед сбором телеметрии. Причина этого в том, что между батареей и зарядным устройством отправляется серия команд для «договоренности» о том, сколько мощности поставлять батарее. Подумайте об этом как о упрощенной версии USB-C Power Delivery (если вы знакомы с концепцией).

К сожалению, я не включил это в свой скрипт сбора телеметрии, поэтому теперь у меня есть аномалии, которые нужно отфильтровать. Но не волнуйтесь, ChatGPT тоже может с этим справиться. После нескольких итераций я "обучаю" мой ИИ "понимать", что считается сбоем, а что нет (например, что считается выбросом, который не учитывается в стандартных функциях статистического анализа), и затем он применяет эти знания:

Отфильтрованный график питания от источника и батареи

Рисунок 9: Отфильтрованный график питания от источника и батареи

Когда я запрашиваю те же статистические данные, я получаю полный отчет:

Статистика по отфильтрованному графику питания от источника и батареи Статистика по отфильтрованному графику питания от источника и батареи1


Рисунок 10: Статистика по отфильтрованному графику питания от источника и батареи

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

Очистка данных

ChatGPT также может выступать в роли очистителя ваших данных, искать аномалии. В прошлом я сталкивался с некоторыми сбоями, когда регистр температуры вел себя неадекватно. Я прошу ChatGPT "сообщить мне, если ты увидишь какие-либо сбои в моих данных", и он отвечает:

Поиск аномалий в данных о температуре

Рисунок 11: Поиск аномалий в данных о температуре

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

Построение графика эффективности питания

Рисунок 12: Построение графика эффективности питания

Очевидно, что в моих данных есть некоторые аномалии. Определенно невозможно иметь эффективность > 100%, и GPT-4 это тоже знает:

Мнение ChatGpt о аномалии

Рисунок 13: Мнение ChatGPT об аномалии

После моего исследования я обнаружил, что действительно был сбой в шине связи. Я прошу ChatGPT отфильтровать все точки данных, где эффективность > 100%. На этом этапе я могу запросить ссылку для скачивания, чтобы получить отфильтрованные данные, снова их построить или дополнительно отфильтровать.

Заключение

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

Об авторе

Об авторе

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

Связанные ресурсы

Связанная техническая документация

Вернуться на главную
Thank you, you are now subscribed to updates.