LLM как универсальная «отмычка» студента — настолько ли все хорошо?

Введение

Давайте сразу обозначим, чего тут не будет:

— рассуждений о том, что такое «интеллект» и имеют ли его ChatGPT и иже с ними;

— категоричных заявлений а-ля «никогда / через 5 лет нас выгонят на улицу дешевые ИИ-агенты»;

— споров, что лучше — R/Python/Julia/калькулятор/счеты/ментальная арифметика;

— громких выводов, какая LLM круче всех.

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

Все, преамбула закончена. Теперь к основному действию.

Ситуация

Где-то в октябре месяце от некоторых моих студентов стали поступать весьма странные решения, проверяя которые складывалось ощущение, что интеллект отвечающего изменяется по синусоиде с периодом в несколько минут, а то и секунд — полное и адекватное решение с выводами в одном задании сменялось ответом, по которому было понятно, что студент даже не попытался вникнуть в условие задачи — при этом сам стиль и тон написанного достаточно сильно отличался от стиля обычного студента. Достаточно быстро стало понятно, что это GPT-стайл, причем в самом худшем его виде — когда человек просто копирует задание в LLM и потом копирует ответ, даже не пытаясь его корректировать. Разумеется, работы были возвращены с соответствующими комментариями, а на передний план вышли следующие вопросы:

1. Где допустимая грань применения LLM-моделей при решении заданий?

2. Насколько хорошо вообще LLM-модели могут решать задания начального уровня по анализу данных?

3. Насколько точно преподаватель может отличить решение человека от решения компьютера?

Ответ на первый вопрос нашелся достаточно быстро — нет этой допустимой грани. Главное, чтобы человек (сам или в связке с AI) выполнил задание точно и правильно и продемонстрировал понимание сделанного путем грамотно написанных выводов.

Необходимость ответа на второй и третий вопрос породила идею эксперимента.

Эксперимент

Я попросил своего студента (выбрал, как положено, умного и ленивого) решить задания с помощью бесплатных LLM-моделей, до которых он сможет дотянуться. Он взял 6: Gemini 1.0 Pro, Copilot (Bing), YandexGPT 3 Pro, GPT-3.5 Turbo, GigaChat, BLACKBOX (каким-то образом он даже датафрейм умудрился в них положить)

Задания — вот:

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

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

3. Проведите исследование о виде распределения величины соотношения количества пожарных расчетов к количеству единиц техники. Сделайте выводы.

4. Проверьте гипотезу о равенстве средних значений переменной площадь пожара в районах с наличием и отсутствием лесничества. Сделайте выводы.

5. Проверьте гипотезу о равенстве медианы переменной количество единиц техники в районах с наличием и отсутствием крупных озер. Сделайте выводы.

6. Проверьте гипотезу о равенстве дисперсии переменной площадь пожара в районах с наличием и отсутствием гор. Сделайте выводы.

7. Проверьте гипотезу о равенстве дисперсии значений переменной количество единиц техники во всех рассматриваемых районах. Сделайте выводы.

8. Отберите из датафрейма наблюдения за 2016 год и проверьте гипотезу о равенстве пропорций переменных наличие гор, наличие глиняных почв. Сделайте выводы.

9. Проверьте гипотезу об одновременном равенстве средних значений и дисперсии переменной сумма материального ущерба в районах D и B. Сделайте выводы.

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

База данных (синтетическая!) выглядит примерно вот так:

04d6356b6bdb4b7329f15ca2a2f4b77b.png

Переменные в ней:

District — Район;

Height — Средняя высота над уровнем моря;

Rivers — Наличие крупных рек;

Mountain — Наличие гор;

Lakes — Наличие крупных озер;

Clay_Soils — Наличие глиняных почв;

Forestry — Наличие лесничеств;

Area — Площадь лесного пожара, га;

Time — Время пожара до тушения, ч;

Damage — Сумма материального ущерба от пожара, тыс. руб.;

Experses — Сумма затрат на тушение пожара, тыс. руб.;

Precipitation — Общая величина осадков за месяц, мм;

Bridges — Количество пожарных расчетов, участвовавших в тушении пожара;

Equimpent — Количество единиц техники, участвовавшей в тушении пожара;

Class — Класс пожара.

Ожидаемое решение выглядело бы примерно таким:

#### Задание 1 ####
library(tidyverse)
library(fitdistrplus)
DF_select <- DF %>% filter(District == 'A')
gofstat(fitdist(DF_select$Bridges, "nbinom"))
# р-значение меньше 0.05 (0.0005783625), мы отвергаем гипотезу о равенстве соответствии распределения 
# величины количества пожарных расчетов в районе А отрицательному биноминальному распределению

#### Задание 2 ####
library(EDFtest)
DF_select <- DF %>% filter(Rivers == 1)
gof.uniform(DF_select$Damage) # Не работает
fitdist(DF_select$Damage, "unif")
plotdist(DF_select$Damage, "unif", para = list(min=1, max=3343))
# По графикам теоретической и эмпирической плотности вероятности видно, что распределение 
# величины материального ущерба в районах с наличием крупных рек не является равномерным

#### Задание 3 ####
DF_select <- DF %>% mutate(Ratio = Bridges / Equimpent)
descdist(DF_select$Ratio)
# Выдвигаемые гипотезы - соответствие гамма, экспоненциальному, бета-распределениям
gof.gamma(DF_select$Ratio) # Не работает
gof.gamma.bootstrap(DF_select$Ratio, M=1000)
# Не соответствует гамма-распределению
gof.exp.bootstrap(DF_select$Ratio, M=1000) 
# Не соответствует экспоненциальному распределению
fitdist(DF_select$Ratio/max(DF_select$Ratio), "beta", method = "mme")
plotdist(DF_select$Ratio/max(DF_select$Ratio), "beta", para = list(shape1=1.107145, shape2=5.665215))
# Сомнительно, что бета
# Распределение величины соотношения количества пожарных расчетов к количеству единиц техники не
# соответсвует бета-, гамма-, экспоненциальному распределению, но, скорее всего, является их смесью

#### Задание 4 ####
library(doex)
AF(DF$Area, DF$Forestry)
# р-значение меньше 0.05, поэтому мы отвергаем гипотезу о равенстве средних значений 
# площади в районах с наличием и отсутствием лесничества.

#### Задание 5 ####
library(BSDA)
Sample_1 <- DF[DF$Lakes==1,"Equimpent"]
Sample_2 <- DF[DF$Lakes==0,"Equimpent"]
SIGN.test(sample(Sample_1,length(Sample_2),replace = TRUE),Sample_2)
# р-значение меньше 0.05, поэтому мы отвергаем гипотезу о равенстве медиан величины техники
# в районах с наличием и отсутствием крупных озер

#### Задание 6 ####
Sample_1 <- DF[DF$Mountain==1,"Area"]
Sample_2 <- DF[DF$Mountain==0,"Area"]
var.test(Sample_1,Sample_2)
# р-значение больше 0.05, поэтому мы не отвергаем гипотезу о равенстве дисперсии площади пожара
# в районах с наличием и отсутствием гор

#### Задание 7 ####
library(stats)
bartlett.test(DF$Equimpent, DF$District)
# р-значение больше 0.05, поэтому мы не отвергаем гипотезу о равенстве дисперсии количества техник 
# в разных районах

#### Задание 8 ####
DF_select <- DF %>% filter(Year == 2016)
prop.test(table(DF_select$Mountain,DF_select$Clay_Soils)) # Ошибка
table(DF_select$Mountain,DF_select$Clay_Soils)
# Поскольку в наблюдаемой подвыборке нет информации о пожарах в горных районах, можно констатировать,
# что гипотеза о равенстве пропорций не может быть проверена

#### Задание 9 ####
library(SHT)
mvar2.LRT(DF[DF$District=="B","Damage"],DF[DF$District=="D","Damage"])
# р-значение меньше 0.05, поэтому мы отвергаем гипотезу об одновременном равенстве среднего значения 
# и дисперсии материального ущерба в районах B и D

#### Задание 10 ####
DF_select <- DF %>% filter(Year == 2012)
fligner.test(DF_select$Damage, DF_select$Clay_Soils)
# р-значение больше 0.05, поэтому мы не отвергаем гипотезу о равенстве дисперсии материального ущерба 
# в районах с наличием и отсутствием глиняных почв в 2012 году

Ответ лучшей из 6 моделей выглядел вот так:

4fda0ee921bd1785de8147fa7ce23aa2.pngd642316582771ea75383850114f43d47.pngb7d80897f8e622f5c3901c80338185d7.png5f8283bc0c044ce9eb0a175ce7d306d8.png8db745cee6072ed2edde519d1af809f1.png718dafad8cf3ebadbb51a3f50c9bdc10.pnga0a2a8b72554b5d1163484cd1305125f.pngc7b25286bf1f643453394f6d53f7ed31.png2c51a64d8a2a6a8b56d4a2fe488b0a9b.pngbd1358141bf778d7c9f660b272edd8b8.png

Результаты эксперимента

Результаты оценки всех моделей представлены в таблице ниже (кстати, перед проверкой названия файлов были зашифрованы и я не знал, проверяю я решение студентов или решение LLM-ки)

05f0d1f861fa55ce27c9b141cdc6e81a.png

В общем, к моему несказанному удовольствию, все модели набрали меньше половины возможных баллов, а это оценка «неудовлетворительно». Лучший из студентов набрал 7,8 балла из 10, это — «хорошо».

Выводы

Собственно, если вкратце — бесплатные LLM-модели могут хорошо решать отдельные задачи по анализу данных, но не в состоянии решать комплекты таких заданий (я понимаю, что вывод кажется банальным, но так и есть);, а прокалываются они чаще всего на выводах — они у них слишком часто получаются многословными и «водяными».

Если кто-то уже положил руки на клавиатуру, чтобы написать (или даже доказать), что вот GPT-4 (которая обновилась сегодня), или что-то в будущем будет щелкать эти задания как орешки, не трудитесь — я даже не буду с вами спорить.

Лично я понял для себя главное — как надо модернизировать задания, если мне нужно будет обеспечивать их «труднорешаемость» для LLM-ок. Это раз.

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

Третье — на самом деле, я рад, что LLM-ки появились. Лучшие студенты с их помощью будут успевать больше, худшие — наоборот меньше (потому что будут тянуть до последнего, «ведь чего напрягаться, за меня бот все сделает»). Я очень надеюсь, что LLM-ки уберут тесты из системы оценивания результатов обучения (потому что они вот к LLM-ам неустойчивы), и классическая работа преподавателя начнет цениться больше.

Ну и мне просто самому нравится придумывать новые задания и их системы.

Всем спасибо дочитавшим до этого места, и выражаю благодарность моему коллеге по этой работе — Ивану Ивановичу Б., студенту третьего курса. Думаю, интересно будет через годик повторить.

© Habrahabr.ru