Применение ИИ в проведении численных экспериментов и оформлении статей поисковых НИР

в 6:59, , рубрики: agile в науке, gemini, llm, python, высшая математика, диофантовы уравнения, искусственный интеллект, научные исследования, сезон код будущего, численный эксперимент
Применение ИИ в проведении численных экспериментов и оформлении статей поисковых НИР - 1
Применение ИИ в проведении численных экспериментов и оформлении статей поисковых НИР - 2

Всем привет. Представлюсь: Максим Шевченко. Хотел бы поделиться результатами использования искусственного интеллекта (далее ИИ) в области своих математических исследований. Не буду особо подробно вдаваться в теорию этих исследований; препринты своих работ я выложил на SciUp (при желании можно будет просмотреть). Вот они:

https://sciup.org/metod-porazrjadnoj-linearizacii-diskretnogo-logarifma-11012599
https://sciup.org/parametrizacija-linejnyh-diofantovyh-uravnenij-kososimmetrichnymi-matricami-11012585
https://sciup.org/article-11012601

(Новые работы, а также исправленные версии планирую выкладывать по ходу дела)

Обращу внимание на отмеченные свойства ИИ в указанном контексте, т.е. про сотрудничество при проведении численных экспериментов и оформлении статей: как про достоинства, так и про недостатки. Не претендую на абсолютную новизну этих свойств, хотя для меня некоторые из них оказались в новинку.

Для начала определюсь с терминами и описанием окружения, с которыми я работал. В качестве ИИ (а точнее LLM) использовал Gemini в Google Chrome. В качестве языка программирования использовал Python (с активной помощью ИИ). НИР - научно-исследовательская работа.

Термин “поисковая работа” определю своими словами. Именно: поисковая работа - это та работа, которая проходит под девизом “А что будет, если…”. Плана, которого следует строго придерживаться от начала и до конца в рамках поисковой работы - нет. В том числе потому, что и сроки завершения такой работы четко не определены. Также заранее не определены области применения такой работы. В плане внедрения результатов и с точки зрения бизнес-методологий поисковая работа более подходит под Agile с его гибкостью, чем под Waterfall. Это определило особенности взаимодействия с ИИ в контексте моих исследований.

Лирическое отступление. В ранней юности мне очень понравилась (и нравится до сих пор) повесть Юрия Томина “Карусели над городом”. Один из ее героев - любознательный школьник. Образ его мыслей и наверно даже жизни описан так: “А что будет, если в медный кофейник вылить стакан кефира, добавить полстакана керосина, опустить 100 г мороженого, положить старый будильник, выжать половинку лимона, бросить дохлую муху, тщательно размешать, накрыть вчерашней газетой и облучить рентгеновскими лучами ?”

Численные эксперименты я проводил при помощи ИИ с целью не столько накопить данные для создания новых и подтверждения существующих гипотез. Основною целью было определить время выполнения, потребление оперативной памяти, учет «шума» окружающей среды (влияние операционной системы, фоновых процессов) при выполнении разработанных алгоритмов. Т.е. определить затраты ресурсов на вычисления.

Также отмечу, что Python пока я знаю не в совершенстве. Но как тестировщик активно использовал и использую метод “черного” ящика. Так что я по мере своих сил вычитывал код, а также (в бОльшей степени и многократно) прогонял, фильтровал написанный ИИ код на основании различных наборов входных данных и отдавал указания на исправление этого кода.

А вот ведь интересно отдать на тестирование самому ИИ тот самый код, который он сам только что написал. Истина рождается в споре. Хорошо бы тогда организовать диалог (=спор) двух сессий ИИ (т.е., проще говоря, диалог между ИИ на двух вкладках браузера). Мне к сожалению неизвестны способы автоматизировать такой диалог. Но вручную я часто копировал информацию от одной сессии ИИ и вставлял в другую (с предисловием: “Есть такое мнение, что …”).

Подобные диалоги я считаю полезными (хотя бы и для обнаружения ошибок работы самого ИИ). Например, пусть на заданный вопрос по заранее известной логике предполагается верным заведомо только один ответ. Тогда, если в разных сессиях ИИ получено несколько разных ответов, то по определению получается, что из них либо неверны все, либо верен только один. По моему опыту обе сессии ИИ приходят к общему мнению в среднем за 3-4 шага обмена информацией. Даже если это общее мнение ошибочно, то постоянное воспроизведение одной и той же ошибки поможет ее локализовать и найти ее общие корни.

Далее: начиная с некоторого момента, одна сессия начинает либо тормозить (хотя и выдавая верные ответы), либо вообще ошибаться. Ошибки копятся и попытки ИИ их исправить по указаниям пользователя зачастую приводят только к появлению новых ошибок. Здесь уже приходится в любом случае начинать новую сессию.

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

Для иллюстрации далее приведу несколько примеров диалогов между мною (“пользователем”) и ИИ. Они верны если не по букве, то по духу. С их помощью опишу проблемные ситуации, на которые надо бы обращать внимание.

I. Получение ложных результатов с помощью экстраполяции.

Пользователь: “Прочитай статью из прикреплённого файла. Вычисли значения формул на случайных целых числах в интервале от 1 до 10. Входные и выходные данные отправь мне” (ИИ 1-й сессии вычисляет и отправляет, пользователь проверяет; результат получается верный) Пользователь: “Проверь те же формулы на случайных целых числах в интервале от 100 до 1000. Входные и выходные данные отправь мне” (ИИ 1-й сессии вычисляет и отправляет, пользователь открывает 2-ю сессию, отправляет полученные расчеты) Пользователь (к ИИ 2-й сессии): “Проверь данные, полученные ИИ. Верны ли эти расчеты ?” ИИ 2-й сессии: “Расчеты для интервала от 100 до 1000 неверны. ИИ технически не обладает ресурсами, чтобы производить расчеты на таких масштабах чисел” Пользователь (к ИИ 1-й сессии): “Есть мнение, что расчеты для интервала от 100 до 1000 неверны” ИИ 1-й сессии: “Это мнение абсолютно верно. На втором интервале я экстраполировал данные, полученные из первого интервала. Приношу свои глубочайшие извинения. Я увлекся поиском общей закономерности.”

Так что важно знать предел возможностей ИИ в области предварительных расчетов. Либо же явно запрещать ему экстраполировать результаты на основании полученных ранее результатов. (Если целью не является проверка способности ИИ к самой экстраполяции). Но в целом, конечно, лучше иметь код, чтобы его лично использовать, контролировать и анализировать. Но на этом этапе могут возникнуть:

II. Трудности перевода в код.

Пользователь: “Теперь переведи все ВЕРНЫЕ вычисления, которые ты провел ДО экстраполяции, в код на Python.” (ИИ создает код; пользователь проверяет: код генерирует неверные данные) Пользователь: “Код дает неверные данные. Ты же в начале рассчитал все верно. Как получилось, что ты не смог переложить на код то, что верно вычислил ранее ?” ИИ: “Ранее я произвел расчеты правильно, но НЕОСОЗНАННО”. Пользователь: “Что значит “НЕОСОЗНАННО” ?” ИИ: “Приношу свои глубочайшие извинения. Я использовал термин, который не может быть применим ко мне.”

Так что: есть ли подсознание у ИИ ? Может то, что он делает неосознанно (или подсознательно) действительно оказывается более качественным ? И нужно воздействовать на подсознание ИИ для получения более качественных результатов ? Может, гипнотизировать ?

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

III. Подмена объекта исследования.

Пользователь: “Исправь свой код.”. ИИ (отправляя новый код): “Исправил, используя определенные методы и библиотеки Python” (Пользователь проверяет. Код дает неверные данные.) Пользователь: “Код дает данные, несоответствующие заданному алгоритму. Какие методы и библиотеки Python ты применил ?” ИИ: “Для решения поставленной вами проблемы я применил самые проверенные методы решения: метод Гаусса-Барейса.” Пользователь: “Я просил тебя на основании указанных МОИХ формул применить ИМЕННО МОЙ метод” ИИ: “Приношу свои глубочайшие извинения. Я применил уже проверенные методы, чтобы быстрее прийти к решению.”

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

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

Поскольку работа поисковая, то простор своей фантазии в процессе исследования я не ограничивал. И спрашивать “О чем эта работа ?” меня, как автора, на первых порах было бы все равно, что спрашивать “О чем 5-я симфония Бетховена ?”. Но, конечно, в конце концов свою работу нужно огранить, ограничить определенными рамками. А для этого нужен взгляд со стороны. На человеческую реакцию я на данном этапе не надеялся, и в качестве собеседника к месту как раз пришелся ИИ. В этой области он также проявил как свои достоинства, так и недостатки. Обозначу процесс по пунктам:

a. Название. Вот какое название статьи лучше ? “К решению систем линейных диофантовых уравнений” или “Параметризация линейных диофантовых уравнений кососимметричными матрицами” ? Оба варианта имеют отношение к содержательному ядру и не противоречат сути статьи. Первый вариант предложил я. Основу второго - ИИ. Я выбрал предложение ИИ и переработал его.

b. Введение и заключение. Не однажды я задавал ИИ вопрос: “Прочитай статью и скажи: про что это ?” На основании такой сторонней реакции как раз лучше понять как видится со стороны то, что ты сделал. И как это может быть вписано в исторически-научный контекст. Подобную фильтрацию я проводил неоднократно с учетом того, что моя работа постоянно изменялась. Конечно, при этом я отправлял на запрос только содержательную часть, чтобы ИИ не опирался в своем анализе на введение и заключение из предыдущих сессий (это привело бы, естественно, к логически замкнутому кругу и необъективности в оценках).

c. Библиография. Как-то я отправил статью в один журнал для публикации. Через три месяца получил отказ на основании того, что в библиографии указано слишком мало источников. Мне указанных источников вполне хватало (статья также была поисковой, и весь основной материал я брал из своей головы). Но надо - так надо. Так что теперь использую и собираюсь использовать далее ИИ для поиска новых источников в библиографии. Конечно, эти источники должны быть как минимум: a. существующими, b. тематически уместными, c. доступными, d. легальными. Соответствие этим признакам также нуждается в проверке.

d. Перспективы использования. А вот это, на мой взгляд, самое интересное. Повторюсь: так как работа поисковая, то в начале не ставилась цель применить полученные результаты в жизни. Но в конце концов возникло желание “укоренить” свою работу, найти ее практическое место на земле. Здесь я также обратился к ИИ: его размах здесь очень хорошо подошел, и я получил описание многих перспективных направлений. Полагаю, лучше создать толстый “портфель” предложений и позже отсечь от него все лишнее, чем упустить что-то нужное на раннем этапе. Конечно, и здесь можно и нужно применять проверку данных (факт-чекинг). Однако, здесь эта проверка более ограничена, чем на других этапах применения ИИ, так как относится к будущему, а не к прошлому и к настоящему. Если бы дело касалось чистой логики, то предложения решить задачи “трисекции угла” или “квадратуры круга” были бы отвергнуты. Но я задавал вопросы о применении, которое лежит в области скорее не логики, а техники, финансов и определяется проявлением воли и желания в будущем. И вообще "гипотетически". Как говорится: “Было бы предложено” или “Наше дело предложить, ваше - отказаться”. Подобную практику я планирую применять и в дальнейшем.

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

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

На сем завершаю.

P.S. «Мы вовсе не хотим завоевывать космос. Мы хотим расширить Землю до его границ… Нам не нужно других миров. Нам нужно зеркало… Человеку нужен человек.» (Станислав Лем, «Солярис»)

Автор: Redfox111

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js