Metaprogramming
708 subscribers
107 photos
1 video
165 links
μετά- «между, после, через» (греч.)

Жизнь программиста за пределами программирования: алгоритмы, психология, инвестиции, иное.
Download Telegram
Вкратце о ИИ и программистах

Скинули видео об очередном ИИ для генерации кода, в этот раз от OpenAI – Codex. Напомню, аналогичную разработку ведёт GitHub под названием Copilot.

В целом "вспомогательный ИИ" для выполнения рутинных задач в текстовом редакторе – годная тема. Думаю, имеет смысл его затачивать именно в сторону облегчения повторных однородных правок, мелкого рефакторинга и т.д.

В некоторых СМИ акцент делают на хайповой теме "не закончится ли нужда в программистах". Я начал этот канал с тезиса о том, что программисты и так нужны не всякие. В целом кодогенерация, "рельсовики" вон об этом тоже представление имеют по всяким rails g, облегчает наполнение проекта и преодоления "страха чистого листа" для новичков, но едва ли значительно ускоряет создание реального проекта от начала до конца.

Я бы не отказался от ИИ-помощника типа того, что в первом видео, который по словам "сделай мне сцену, где была бы солнечная система с планетами, двигающимися в соответствии с законами небесной механики" набросала заготовку проекта в Godot. К сожалению, пока что ИИ может только на основе гораздо менее содержательных (по смыслу более простых) предложений накидать заготовку веб-сервиса на Питоне.

Проще ли это, чем скопировать готовый код, который будет на первой странице результатов запроса в Гугл? Конечно, намного проще: и понимает цель запроса такой ИИ лучше, пока что, чем поисковая строка Гугла; и ответ сразу вставляется в документ, не надо копировать. Это сильно снизит порог входа для новичков (и это прекрасно), вызовет интерес у школьников и студентов.

Станет ли это серьёзным инструментом "взрослых" разработчиков, в разы сокращающим требуемое на написание кода время? Думаю, в ближайшем будущем вряд ли. Кодогенерация – термин давно известный, минусы подхода тоже понятны: нагенерированный не понятно как код надо потом самому же и поддерживать.

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

Так что диссертацию по философии или теологии в каком-нибудь продвинутом ВУЗе какая-нибудь лямбда защитить, уверен, вскоре сможет. Создать язык программирования, написать увлекательный научно-фантастический роман, победить в чемпионате по Старкрафту с ограниченным APM – нет.

Кстати, о старкрафте. Люблю вспоминать старые темы. Помните, там какой-то очередной ИИ в Го победил чемпиона, и вот-вот должен был победить команду чемпионов в "Доту"? Так и как там дела у них?

#science #programming #neuronetworks
Нейросети для программирования: новая сводка новостей

Ранее уже писал на эту тему, но новости продолжают поступать: гугловскую нейросеть научили решать олимпиадные задачки по программированию.

Одновременно ChatGPT демонстрирует решение широкого круга диалоговых задач. Прогресс заметный. Проблема сохранения контекста, о которой немного писал ранее, решена. Представить себе общение с современными нейросетями можно примерно как общение с Гуглом или Википедией, который при этом накапливает опыт диалога, позволяет уточнять и редактировать запрос (и ответ) ссылаясь на ходу на предыдущие реплики и имеет базовый модуль "написания коротких эссе на заданную тему". О тесте Тьюринга говорить больше не серьёзно, все шероховатости, понятно, будут в самое ближайшее время дошлифованы.

Разработчики "программистской" нейросети сразу же остроумно сами себя критикуют: мол, электричества она ест как небольшой завод, код зачастую реализует неоптимальное решение, места в конкурсах занимает не первые. Короче, люди ещё могут на что-то надеяться, но недолго.

Ну, то есть, перечисляют "количественные" недоработки, но не качественные.

Кстати, примечательно, что тема ИИ для игры в StarCraft, о котором речь шла ещё когда там Alpha Go была на пике популярности, как-то постепенно была замылена. Может быть киберспортивные лоббисты вежливо попросили разработчиков ИИ не лезть своими грязными руками в эту важнейшую область народного хозяйства?

Какие-то частные мысли по "ИИ, пишущий программы" уже изложил в предыдущем посте, радикально нового добавить и нечего. Из текущих новостей, StackOverflow (сайт вопросов и ответов на тему программирования и смежные) запретил вон публиковать ответы на вопросы, сгенерированные нейросеткой.

Далее в нескольких постах ещё на эту тему напишу несколько ремарок общего характера. Может быть и постоянной темой сделаем.

В довесок. "Впечатляющей пример" "решения задач уровня колледжа" с эпитетами вроде "челюсть отвисла" (буквальная цитата) – решение ChatGPT на 95% "теста по микробиологии". Всяк может убедиться, что для решения теста на 100% требуется посмотреть несколько серий "Доктора Хауса" и доступ к первой странице поисковой выдачи Гугла по соответствующим запросам. Интересно, по поводу рассыпавшихся по полу челюстей это они прикалываются так или всерьёз?

#programming #neuronetworks
Вкратце про "угадай слово" и отличие ассоциативного аппарата "простого ИИ" от человека

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

Игра забавная и залипательная, но и в чём-то разочаровывающая. Далее некоторые наблюдения.

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

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

Он прыгает с одной ассоциации на другую.

Если целевое слово "линза", а на тринадцатом "объектив" (предположим, что так и у человека, почему нет - а сам пример из игры одного из предыдущих дней), то на двадцать каком-то у человека обязательно будет "фотоаппарат". Для компьютера в данном случае "фотоаппарат" оказался на 1112-м.

А почему? А потому что человек, перейдя на вторую ассоциацию, заново построил полный список связанных с ним слов (ранги в этом списке, несомненно, модулируются в значительной мере главной ассоциацией, но лишь модулируются, а не определяются вполне). А компьютер нет, он не строит новой цепочки/сети от каждого нового слова.

2.1. Кстати, эта игра является моделью того, как работает поисковая выдача. Только сделанная задом наперёд. В поиске вы сразу вводите "ответ", само загаданное слово, а полученные ссылки являются тем самым линейно упорядоченным списком "ассоциаций, приведших к отгадке". Что здесь радикально криво сделано? Да вот то что в предыдущем пункте изложено. Если вы купили недавно квартиру, выбрав через интернет, то контекстная реклама будет 90% бюджетов рекламодателя тратить на то, чтобы продать вам ещё одну (любому человеку сходу очевидно, что это почти наверняка бесполезно). Оставшиеся 10% пойдут на рекламу мебели, потому что самые ушлые операторы рекламных систем вручную сделали такую настройку. В то же время, если бы "ассоциативный аппарат" поисковиков работал по-человечески, то на 50% предлагал бы сопутствующие товары, на оставшиеся 25% сопутствующие товары к сопутствующим товарам, на 12% ассоциированные товары третьего порядка и так далее.

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

#psychology #neuronetworks
Контент-генерирующие нейросети как уничтожитель прав автора

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

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

Юридически у пользователей агрегаторов контента всё равно никаких прав не было (вкратце ранее об этом говорили), поэтому напирать на то что создатели нейросетей должны платить авторам контента для обучающей выборки уже, скорее всего, поздно.

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

#neuronetworks
"Нейросетевое" "творчество"

В обсуждении на Хабре последних новостей на данную тему интеллигенция проблему творчества справедливо сразу же подняла: классовое сознание сработало :) Однако далее как всегда в подобных вопросах высказывать свысока вечные истины из серии "нет никакой любви, только сиськи и письки, мне старшаки во дворе рассказали, а вы дураки тёмные" взяли на себя бремя атеисты-материалисты самого примитивного толка, тем самым заспамив своими глубокомысленными откровениями обсуждение. (Вообще, про религиозные убеждения этой братии отдельно надо изложить пару мыслей.)

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

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

Проблемы в этом, однако, особой для стейкхолдеров нет: вот, например, за последние пять лет термин "искусственный интеллект" уработали до такой степени, что всё реже и реже кому-то приходит спрашивать определение "интеллекта" и заявлять "а король-то голый!" (в плане, что вот это вот всё и вовсе не интеллект, и даже не обучение, а нечто иное, для чего свой термин следует придумать).

Кстати, пользуясь случаем: а король-то голый! Все крупные игроки, продвигающие термин "ИИ", занимаются активным мошенничеством – буквально маркируют одну вещь другой, на банке с огурцами пишут "молоко". Ну да кто им запретит.

Точно также и словом "творчество" начнут обозначать не то, что под этим понимают люди, а то что получилось по факту.

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

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

Чему тут радоваться не понятно, ну да это тема отдельного разговора.

Короче говоря, здесь работает определённая философия, для которой требуется выработать определённую контр-философию (конечно, не трендовую, потому что направление основного дискурса задано жёстко), о чём вкратце писал ранее.

#psychology #neuronetworks
Модельный субъект

ИИ сейчас как какая-то коробка конфет, всем интересно посмотреть, всем интересно попробовать.

Полное определение ИИ даже его создатели не дают, но с чего-то надо начать. Искусственный интеллект, как его сейчас понимают, является сортом "статистического интеллекта". Некоторые ИИ-продукты прямо и являются в сути своей статистическими моделями некоей предметной области (ИИ-врач, ИИ-судья, ...), другие представляют собой более сложные лингвистические модели (варианты GPT общего назначения и специализированные на конкретной области), но сделанные, снова, на стереотипном материале.

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

Глаза, однако, у судьи (а тем более у присяжных) в реальности открыты. Подразумевается, что судья может в глазах преступника, у которого и данные профиля однозначные (начал воровать в школе, получил отсидку по малолетству), и преступление понятное (украл велосипед), углядеть что-то этакое, выходящее за рамки, и дать срок поменьше или заменить условным. Впрочем, может и не во взгляде увидеть, а во второстепенных обстоятельствах дела, которые по существу и рассматривать не стоило бы (додумать можно известно как).

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

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

Создатели ИИ – аутисты, которые всё человеческое (по сути своей) ненавидят. Не как индивидуальные личности (хотя и это, кстати, тоже), но как социальные структуры. Сами эти структуры и есть в каком-то смысле первые на планете искусственные интеллекты – мыслящие машины.

И в таком контексте множество странноватых вещей становятся простыми и понятными.

Зачем Википедии формулировать всю систему внутренних правил исходя единственно из императива "убрать всё творчество"? На первый взгляд разумно, энциклопедичность, объективность и т.д. Но потом сама Википедия уже становится не просто срезом текущих мнений, на который ориентироваться надо только обывателям (чтобы не тратить лишнее время на собственные изыскания), а зацементированным уложением по всем важным вопросам, диктующим всему миру и всем социальным группам правильную точку зрения.

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

Тоже самое и в системе образования. Сочинение на ЕГЭ должно содержать формулировку проблемы, пару цитат, что хотел сказать автор, выводы. А чего ещё можно требовать от школьника сверх того? А не надо и этого требовать.

Формат упаковки данных для удобства передачи информации подменяет собой содержание знания.

Это и есть идеальный мир ИИ. Мир, где конфеты судят строго по упаковке, а содержание и вкус обсуждать неприлично.

Мир без творчества.

Мир паукообразных, которые решили, что раз ничего придумывать они по-человечески не умеют, то надо сделать так, чтобы и никто уже не смог.

#philosophy #neuronetworks
👍4
Вкратце про применение ChatGPT

Думаю небезыинтересно будет прикинуть ближайшие полезные применения лингвистических моделей типа ChatGPT. Применения связаны с функциями, которые сейчас и распишем. Берём самое очевидное, но всё ещё не созданное, "зону ближнего развития".

1. Виртуальный ассистент-референт

Всё, что должны были делать все эти Сири, Алексы и Алисы – т.е. иметь возможность позвонить (или написать, или зайти на сайт) забронировать столик в ресторане, или договориться о встрече с приятелем, и всё такое прочее.

Несколько особняком, но из той же области, помощь в выполнении рутинных задач на своём компьютере: "а теперь в каждом третьем абзаце этого текста в Word выдели жирным первое слово" и т.п.

2. Интерактивная база данных

Лингвистические модели начинают играть роль своеобразных баз данных и одновременно языка запроса к ним. Пока что сам ChatGPT может играть роль интерактивной Вики, но это не слишком-то интересно. Интересно будет, когда можно будет достаточно большой объём своих документов скормить. К примеру:

а) Личную подборку научных статей. А затем попросить написать литературный обзор, суммировать точки зрения коллективов авторов, либо написать реферат на тему эволюции какого-нибудь понятия во времени.

б) Собственную переписку. А затем подготовить текст "в своём стиле" (или стиле кого-то из корреспондентов), или припомнить какой-то факт биографии, или выделить основные интересующие корреспондентов темы, или резюмировать диалог. Кстати, а куда подевались все эти яндексы и гуглы для домашних компьютеров, которые занимались индексацией личных документов, включая переписку?

в) Код группы связанных проектов. А затем попросить документировать некую фичу, или указать места связанные с определённым поведением системы, или провести аудит на наличие известных недоработок и уязвимостей.

г) Произведения любимого автора. К сожалению, написать текст в стиле данного автора у нейросетей не получится (разве что очень коротенький текст), а почему, надо бы сказать будет отдельно. Но вот резюмировать сюжет, или историю отдельного персонажа, или ещё что-нибудь такое – это пожалуйста. И это очень интересно было бы.

3. Тьюторинг

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

4. Универсальный переводчик

В каком-то смысле лингвистические модели нового поколения это универсальные переводчики с одного языка на другой, причём язык понимается в самом широком смысле слова. Написать код для тестов, тесты для кода, или объяснить что код делает – всё это в общем-то задача на перевод (перевести с одного искусственного языка на другой, или на естественный язык).

Напрашивается здесь какое-то особенное нетривиальное применение, но оставим идей для будущих постов :)

#neuronetworks
ИИ, смерть социологии и коллапс моделей

В "Истории гиперинформации" вышел пост (и следом ещё один, в явном виде артикулирующий некоторые идеи первого), посвящённый новым лингвистическим моделям (LLM) и их будущей роли эталонных социологов для высшего эшелона государственного управления.

Предполагается, что к президенту на стол придворный социолог будет класть мнение, основанное не на ряде опросов (или на результатах выборов – своеобразном "предельном опросе"), а мнение, основанное на общении с нейросеткой, которую настраивают на беседу запросами вида "представь, что ты 30-летний программист из Нью-Йорка с доходом $300000 в год". И дальше напрямую без всяких соцопросов, на основе мнения в твиттерах и фейсбуках, на которых нейросеть и обучали, выясняют нужные мнения.

В пределе и сам социолог не нужен, остаётся только диалоговое окно нейросети.

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

Нейросеть анализирует мнения в твиттере, потом пишет в него же, потом сама же повторно учится на написанном... В итоге каждая итерация будет приводить ко всё большему и большему вырождению порождаемого контента и "рекомендаций" вплоть до сведения к повторению примитивных штампов и даже буквально невнятному блеянию. Самой дорогой ценностью станет база данных текстов интернета за 2021 год, "чистые данные" :) Интересно, приведёт ли это в будущем к появлению странных артефактов, например станут ли исторически незначимые и пародийные Байден с Трампом персонажами уровня Марка Антония и Октавиана Августа :)

Несмотря на это частное замечание, оригинальная схема периодизации (нумерации) контр-культур, которую автор постепенно обрисовывает, чрезвычайно любопытная!

#neuronetworks #philosophy
10👍4