Парное программирование: новая трактовка

Об авторе: Анатолий Шалыто, профессор, д.т.н., Университет ИТМО

Первый раз я попробовал использовать большую языковую модель в сентябре 2023 года. Впечатление от полученной от неё дури я описал в тексте «Алиса, расскажи о Шалыто». С ещё бо́льшим бредом на ту же тему я столкнулся больше, чем через год – в ноябре 2024 года. Этот текст я назвал «Ещё раз о языковых моделях».

Четвёртого мая 2025 года, увидев в сети фотографию Владимира Высоцкого и Марины Влади, датированную 1971 годом, я сделал запрос в «Яндекс. Нейро»: «Сколько лет было Высоцкому и Влади при женитьбе?» Ответ был такой: «К моменту свадьбы Владимира Высоцкого и Марины Влади, которая состоялась 1 декабря 1970 года, обоим было по 30 лет. Владимир Высоцкий родился 25 января 1938 года, Марина Влади – в 1943 году». На это я написал следующее: «При всем уважении к ИИ, это даже не галлюцинация, а полное отсутствие разума». Следовательно, это был уже мой третий шаг в бреду. Фильм с таким названием («Три шага в бреду») был снят ещё в 1968 году. Теперь я бы мог снять ремейк, но не по Эдгару По, как сделали до меня, а по своему сценарию :-)

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

Первый оппонент не согласился с моим мнением о полном отсутствии у модели разума: «Отчего же? Может, ИИ просто что-то напутал из доступных слухов. Оба родились в 1938 году, а свадьба состоялась в указанную ИИ дату. Так что обоим было по 30 лет». В этом ответе меня удивили два факта: неумение оппонента считать (если приведённые данные были достоверными, то им было не по 30 лет, а по 32 года!) и выражение «ИИ просто что-то напутал». В этом состоянии ошибку в их возрастах я не заметил, и поэтому написал: «Ясно, что он что-то напутал, но для меня это не просто, так как мне хотелось бы, чтобы ИИ проверял, что выдаёт, но это, похоже, в принципе для него невозможно, так как у него нет мозгов!».

Второй оппонент написал: «Как я понимаю, это YandexGPT 3 – очень устаревшая и сильно отставшая версия». На это я ответил: «Ну и что? Кто даст гарантии, что у того, кто не имеет мозгов, не будет таких же ошибок при использовании более совершенных его моделей, имеющих вероятностный характер?»

И это при том, что, например, Микеланжело Буанарроти (1475-1564), работая с мрамором, не мог ошибиться ни разу! Так же работал и другой выдающийся скульптор – Лоренцо Бертини (1598-1680). Для того, чтобы понять, почему ни одному, ни другому много веков назад ничего нельзя было «просто напутать», посмотрите фильм Андрея Кончаловского «Грех». Им тогда было нельзя напутать, а то, что ИИ путает сегодня – для многих в порядке вещей, видимо, потому что они сами часто что-либо путают.

В моём случае цена ошибки ничтожна, но известны значительно более серьёзные ошибки, которые на первый взгляд кажутся «просто» неточностью: в одной из резолюций ООН по Ближнему Востоку в англоязычном варианте перед словом «земли» отсутствует определённый артикль. То, что «прохлопали» наши дипломаты, уже несколько десятилетий приводит к большим проблемам в мире, так как резолюцию в этой организации нельзя переголосовать. Не знаю, какие санкции были применены к «прохлопавшим», но вряд ли к ним отнеслись с пониманием. Если бы этот документ писала, как модно делать сегодня, модель, и ошиблась бы также, то ей за это ничего бы не было, а вот дипломату, писавшему для неё промпт, вряд ли бы сказали, что он «просто напутал». Я недавно оказался в похожей ситуации, о чём написал текст «От общения с ИИ можно было сойти с ума».

После моего рассказа о необходимости безошибочной работы указанных гениальных скульпторов нашелся ещё один оппонент, который решил меня немного поучить: «Вы используете заведомо устаревший и низкокачественный инструмент, и при этом рассуждаете о мозгах». На это я предложил ему прежде, чем меня учить, сначала повнимательней прочесть мой ответ второму оппоненту, особенно фразу: «Кто даст гарантии, что у того, кто не имеет мозгов, не будет таких же ошибок при использовании более совершенных его моделей». Кстати, говорят, что лауреат премии Тьюринга Ян Лекун большие языковые модели назвал «Википедией на стероидах», что не подразумевает наличия мозгов у них.

Конечно, такую гарантию не даст никто. Если, обсуждая значительно более совершенную модель ChatGPT4, известный журналист Лекс Фридман сказал руководителю OpenAI Сэму Альтману: «Что меня особенно беспокоит в применении GPT для умственного труда, так это необходимость фактчекинга – постоянно проверять, не попался ли тебе фейк. Как понять, что GPT привёл убедительные, но не настоящие факты? Как обеспечить правдивость?» Альтман спокойно отвечает на этот вопрос (чувствуется, что он не знает, что с этим делать): «Это интересная для нас область. Думаю, что ИИ будет справляться с этой проблемой лучше, но предстоит много работы». Лекс: «Звучит жутковато, по мере того как IT будет становиться все лучше и лучше, ты будешь всё меньше и меньше его проверять?» Сэм (спокойно): «Важные вещи надо проверять». Лекс: «Но многие, например, журналисты, ленятся, тем более, что они работают в условиях постоянной спешки». И тут возникает главный вопрос: а кто и как способен этого «суперумника» проверить?

Но об этом чуть позже. А пока вот что написал мне про убедительные, но не настоящие факты, мой знакомый – Игорь Куприенко: «Я задал тот же вопрос модели Grok от Илона Маска и получил ответ: «Владимир Высоцкий и Марина Влади поженились 1 декабря 1970 года. На момент свадьбы: Владимиру Высоцкому было 32 года (родился 25 января 1938 года), а Марине Влади было 32 года (родилась 10 мая 1938 года). Таким образом, обоим было по 32 года». Grok взял информацию из 15 источников и сформулировал ответ. Но это был очень простой вопрос (как показано выше, неправильный ответ на подобный простой вопрос может привести к серьезным международным конфликтам – А.Ш.). Хуже было, когда я сделал набросок статьи. Получился неплохой перечень источников. Однако все статьи оказались «выдуманными» с битыми ссылками. Вот это беда. От ИИ однозначно нельзя ожидать абсолютно правильных ответов – всё надо перепроверять. Но простые факты – это вполне ему под силу, если правильно формулировать вопрос». Это не отменяет необходимости проверять все выдаваемые моделями результаты, поэтому я и затеял весь этот сыр-бор, тем более что, как отмечено выше, и проверка человеком может быть связана с ошибками.

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

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

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

А вот ещё один пример того, для чего надо не просто уметь программировать, а хорошо это делать. Оказывается, что чем лучше Вами написан код, тем понятнее будут изменения, когда Вы попросите ИИ его улучшить. Такие изменения будут понятны человеку, так как они скорее всего будут локальными – связаны всего с несколькими строками кода. Если код написан плохо, то ИИ так его изменит, что Вы «концов не найдете». В этом случае также имеет место парное программирование, но проходящее в обратном порядке: сначала работает человек, а потом ИИ.

Итак, вопрос о получении достоверной информации требует «парного программирования», которое при наличии многих типов моделей особенно актуально. О том, что это должно быть эффективно (любимое слово Маска), поэт Василий Лебедев-Кумач написал в стихотворении «Весёлый ветер» в особо весёлое время – в 1937 году: «Кто хочет – тот добьется, / Кто ищет – тот всегда найдёт!» На эти стихи в 1936 году композитор Исаак Дунаевский написал одноименную песню.

Вы думаете, что я наконец-то сошёл с ума. Нет. Просто я вновь воспользовался «Яндекс.Нейро», а там вновь отказали «мозги», но с помощью парного «программирования» мы узнали, что и стих, и песня были созданы в 1936 году.

Государство в лице Минцифры и Аналитического центра при правительстве РФ озабочено развитием ИИ в мире, и поэтому провело конкурс, в рамках которого 29 апреля 2025 года было отобрано более 20 российских вузов для подготовки топ специалистов в сфере ИИ к 2030 году. При этом вузы отбирались для подготовки специалистов двух уровней: Top Data Science и Data Science. Для высшего уровня было отобрано шесть вузов (включая ИТМО), а для подготовки остальных специалистов – 19 вузов, среди которых есть вузы из указанных шести, например, снова ИТМО.

Видимо, для успешного проведения «парного программирования» в моей трактовке :-) тем же составом (Минцифры и Аналитический центр при правительстве РФ) государство также провело конкурс на получение грантовой поддержки не менее 25 вузов, которые разработают и внедрят новые образовательные программы для подготовки высококлассных IT-специалистов. ИТМО и здесь вошёл в состав победителей.

Чтобы не пропустить самое интересное, читайте нас в Телеграм

Поделиться:

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь

четыре × четыре =