любопытно

О себе

Я учился на мехмате МГУ, потом защитил кандидатскую диссертацию по специальности 05.13.11. В конце 2021 года живу в Москве, работаю в Яндексе, где руковожу отделом функциональности поиска. В отделе чуть больше сотни программистов, менеджеров и других классных профессионалов, поэтому со свободным временем у меня так себе.

В прошлой жизни я делал компьютерные игры в "Нивале" и других компаниях. В качестве хобби помогал астрономам искать инопланетян (и даже опубликовался в MNRAS), писал sci-fi, рисовал нейросетевые картины, жал штанги и занимался всякой другой интересной всячиной.

Соответственно, в ЖЖ я пишу обо всём на свете, но последние несколько лет редко. Только когда находится время написать содержательный текст, честно попытавшись внести собственный вклад в сумму знаний. То, что в "Википедии" называется орисс. Без скидок на уровень аудитории и без булшита, "для своих".

Да, а ещё в этом блоге одно из самых офигенных сообществ комментаторов ever.
любопытно

o1, тест Тьюринга, экономический эффект AI

12 сентября компания OpenAI выпустила новую флагманскую нейросеть под названием "о1". Смена схемы наименования с GPT-N, видимо, должна символизировать качественный скачок по сравнению с прошлой линейкой, и что-то похожее, действительно, происходит. Говоря максимально упрощенно, раньше даже самые умные нейросетки отвечали мгновенно, "из головы". Новая o1 сначала "думает", и может затратить на это вплоть до десятков минут, и только после раздумий генерирует финальный ответ.

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

Чтобы научить нейросеть рассуждать "в долгую", используются, в общем, известные и ранее методы. Но как именно они собрали данные для обучения, что за подвид RL использовали и с какими гиперпараметрами, сейчас, конечно, горячая тема. Да и вообще, как всегда, одно дело "примерно понимать, как это могло бы быть устроено", и совсем другое сделать первыми.

Результаты выглядят впечатляюще, одна и та же модель решает олимпиадные задачки по математике (настоящие, с отборочного тура национальной олимпиады США), отвечает на сложные вопросы по физике, биологии и химии (не сводящиеся к "заучиванию", а требующие рассуждений и вычислений) на уровне выше среднего выпускника ВУЗа, пишет и отлаживает "в уме" код, а также заодно делает всё то, что делали её предшественники. Интересно, что при этом она болтает с людьми и пишет художественные и деловые тексты не лучше "ни о чем не думающей" GPT-4, но это, в общем, не странно, хотя и жаль. То ли для RL такие задачи подходят хуже (непонятно, как в них разметить "целедостижение"), то ли просто думать в таких задачах особо и не нужно.

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

Collapse )
любопытно

Искусственный интеллект: состояние 2024

Многие мои френды, люди науки, периодически в своих постах разоблачают хайп вокруг AI.

Вчера вышла очередная сетка от OpenAI, GPT-4o. Если вы ещё не видели, посмотрите ролики с этой странички, оно того стоит. Без видео сложно объяснить, в чём ключевое достижение и чем хороша эта самая "мультимодальность".

В целом GPT-4o очень хорошо укладывается в тренд развития AI в наше время:

- при появлении нового флагмана специалисты могут предположить, "как это сделано", но лишь в общих чертах. На практике у всех конкурентов, включая Google и Facebook, получается чуть хуже и с опозданием на год. Microsoft оказался мудрее и OpenAI просто платит.

- те же специалисты систематически ошибаются в ответах на вопрос "когда такое будет возможно". e2e1 разговор с компьютерной программой, отвечающей без лага, комментирующей происходящее вокруг в realtime и отвечающей с эмоциями и интонациями, находящимися не в "зловещей долине"? Нууу 2030, наверное?

- практически мгновенно возникает хайп. Весь интернет в пересылаемых друг другу черрипиках2. Она только что дала мне секретный чит-код от Тиндера. Я подглядел в неё на собеседовании и устроился на работу с TC $700K. Это уже универсальный искусственный интеллект. Люди больше не нужны

- хайп длится несколько недель, затем все начинают чувствовать ограничения технологии и слегка успокаиваются

- ещё через месяц-два у неё возникают настоящие, полноценные применения; находятся полезные задачи, в которых она систематически успешна, и за которые люди готовы платить деньги. Если вы не специалист, вы, возможно, не знаете ни одной такой задачи для GPT-4, просто потому что никогда с ними не встречались, они для вас находятся глубоко под капотом привычных продуктов. Например, для какой-нибудь модерации рекламных объявлений в крупной соцсети появление LLMок это революция и повод уволить 200 человек радикально упростить все процессы. Пользователям и даже рекламодателям это не видно никак (в идеале).

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

На самом деле мы имеем воодушевляющую тенденцию, пока во многом похожую на рост числа персональных компьютеров в конце восьмидесятых - начале девяностых, рост интернета в конце девяностых - начале двухтысячных и рост смартфонов в районе 2010. Появился новый класс технологий, позволяющих строить какие-то штуки (продукты, бизнес-процессы, развлечения), совершенно не похожие на всё, что было до этого. Эти технологии пока не уперлись в свой потолок, а их бизнес-применения пока на очень ранней стадии. Нас ждет ещё какое-то количество pets.com3, но в итоге изменения в жизни, в том числе и повседневной, будут огромными, хотя и не обязательно заметными. Как аналогия, чтобы почувствовать масштабы и личное ощущение от предыдущих подобных изменений: насколько часто вы задумываетесь о том, как изменилась логистика в торговле за последние 15 лет или банковское дело за 20?

У меня есть смутное подозрение, что до технологической сингулярности мы всё же не доживём, но это, как говорится, уже совсем другая история.

---
1 e2e (жаргон MLщиков) - end to end, обозначение системы, которая не собрана как Лего из готовых компонентов, отвечающих за подзадачи, а сразу обучена решать задачу целиком, "от и до". Как пример обратного, все компьютерные собеседники раньше делались из блоков "speech to text", текстового диалогового движка и "text to speech". Понятно, что работу с интонациями (как считывание, так и генерация), напевание колыбельных и т.п. к такой системе можно прибить только сбоку гвоздиками
2 Черрипик (жаргон MLщиков) - яркий пример того, когда технология сработала хорошо. Ещё 99 примеров того, как она сработала не настолько хорошо, никто друг другу не пересылает и в твиттере они не расходятся.
3 Знаменитый пример ужасно переоцененного стартапа из эры dot com boom'а, просуществовавший два года, на пике стоивший где-то в районе 100 млн тех ещё долларов, покупавший рекламу на Суперкубке, и не зарабатывавший при этом практически ничего. Просто интернет-магазин товаров для животных без какой-либо уникальности. По меркам 2021 года звучит даже не очень и ужасно, но тогда они вошли в поговорку.
любопытно

Демон

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

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

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

И всё же я думаю, что Бога нет. Вся наша история лишена духовной причины и глубокого смысла. Вирус был обычной болезнью. Людоеды не попали в ад, а святые не обрели вечную жизнь. Моё сознание исчезнет. Тело, которое уже не будет мною, сожгут, а рано или поздно кто-то в последний раз назовёт моё имя, и от меня не останется совсем ничего. Я действительно так думаю. Иначе мне пришлось бы поверить в Бога Коллапса, Бога-тирана, молчаливого и мстительного истребителя человечества, каравшего невинных и возвышавшего мерзавцев. Такой Создатель не кажется мне правдоподобным: Вселенная слишком велика для него. Нет, смысл жизни как раз и состоит в том, чтобы наполнить реальность значением, которого она изначально лишена. Не знаю, по силам ли это человеку. Во всяком случае, я пытался, а не рассчитывал на то, что за меня это сделает некто невидимый.

Только что я перечитал то, что написал выше. Всё это звучит так самодовольно, так самоуверенно. Я всегда гордился тем, что в мире лжи, где большой, а где мелкой, я человек честный, но ведь настоящая честность не только в том, чтобы говорить правду, но и в том, чтобы не держать правду при себе. Так вот, настоящая правда-то в том, что ни в чём я до конца не уверен. Может, и есть на свете что-то, что не укладывается в привычные нам рамки; что-то, что действительно можно было бы назвать сверхъестественным.

Только раз в жизни, почти шестьдесят лет назад, я встретил что-то подобное, и совсем мельком, и так и не смог понять смысл увиденного. Ни тогда, ни позже. Мне было меньше трёх лет... А впрочем, нет, начать нужно не с этого, а с того, как через три десятилетия я работал на разборе многоэтажных зданий в Старом Городе. Все вещи к тому времени давно расхитили мародёры, но кроме камня и металла, который мы добывали из стен, в некоторых помещениях оставалось и кое-что более ценное: гибкое водонепроницаемое покрытие на полу, крупные осколки стекла, а где-то даже мебель, слишком тяжелая для того, чтобы на неё кто-то позарился во времена Коллапса, и каким-то чудом не поврежденная ни водой, ни огнём. Кровать, на которой я лежу сейчас, некогда стояла на двадцать втором этаже. Я нёс её вниз полдня. Пока я мог работать на разборе, у моей семьи всегда была хорошая мебель.

Так получилось, что однажды община получила благословение разобрать тот самый дом, в котором я давным-давно жил с отцом и матерью, там, в исчезнувшем прошлом. Мы вошли во двор, я увидел дом со старого ракурса, и я узнал его. Я точно его узнал. Это было странно, потому что если бы всего лишь за день до того меня попросили бы описать двор, в котором я гулял до Коллапса, я бы только рассмеялся: двухлетний ребенок живёт в мире цветных пятен и непонятных бликов; конечно же, я не мог ничего запомнить. Но я его узнал.

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

Мне повезло. Мама умерла, а в мире не осталось еды, но мы с отцом выжили, он не бросил меня, не продал и не съел. Но, конечно, в Старый Город мы с ним вместе после того уже не возвращались.

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

Зато именно там я вспомнил кое-что другое.

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

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

Могло ли это быть ложным воспоминанием? Наверное, могло. Наверное, никакого демона в двухлетнем возрасте я не видел. Много позже какой-то лубок Конгрегации, на котором святые изгоняют их очищающим огнем, борясь со Скверной, отложился у меня в голове, преломился причудливым образом и всплыл через много лет. Впрочем, нет, такое объяснение меня тоже не удовлетворяет: если не верить собственным воспоминаниям, чему вообще тогда верить?

Не знаю, что об этом думать. Допустим, я видел демона. Допустим, существуют ад и рай, и Бог, и Дьявол, и всё в мире не случайно, и Конгрегация во всём права. Тогда зачем мне был показан этот демон, почему именно тогда и именно так, и именно мне? Зачем было тратить сверхъестественное -- на меня? Я не стал демоноборцем, я не стал и людоедом; я не ходил с факелом по старым городам, но и не отравлял колодцы; большую часть жизни я вообще не помнил об этом чуде.

Я не понимаю, что всё это значит. И это мучительно, как долг, который никак не получается отдать.



Это бета-версия. Мне нужна обратная связь. По задумке и сеттинг, и что-то похожее на сюжет должны быть полностью понятны читателю (в отличие от рассказчика), но, возможно, не сразу, а момент понимания должен вызывать некие эмоции. Работает? Если нет, что мешает?
любопытно

Руководителя OpenAI Сэма Альтмана кикнули

Чума какая.

Я обычно не комментирую текущие новости впопыхах, но это что-то с чем-то, это вам не удалено самоцензурой.

Сэма Альтмана только что уволили с должности CEO компании OpenAI (создателя ChatGPT, GPT-4, Dall-E etc etc). При нём компания за не очень много лет выросла с нуля до одной из самых известных компаний в мире с оценкой в миллиарды.

Mr. Altman’s departure follows a deliberative review process by the board, which concluded that he was not consistently candid in his communications with the board, hindering its ability to exercise its responsibilities. The board no longer has confidence in his ability to continue leading OpenAI.
Несмотря на то, что написано английским по белому, понятно, что это не претензии совета директоров к его перформансу (как это по-русски), это какая-то крайне темная история, на уровне откровенной уголовщины или поклонения разным богам (что довольно близко).

Если посмотреть на состав этого самого совета директоров, всё становится еще более чудесно.

Who were on OpenAI's board?
"OpenAI is governed by the board of the OpenAI Nonprofit, comprised of OpenAI Global, LLC employees Greg Brockman (Chairman & President), Ilya Sutskever (Chief Scientist), and Sam Altman (CEO), and non-employees Adam D’Angelo, Tasha McCauley, Helen Toner."

Which is notable because Sam Altman is on said board, so he got outvoted.

So did Greg Brockman, what a weird turn of events
Переведём: из 6 членов совета директоров двоих уволили, причем третий, известный учёный (Илья Суцкевер), судя по всему, голосовал против Сэма и Грега.

А кто такая Tasha McCauley, кстати?

Who the heck is Tasha McCauley?

That's a fascinating question. I looked into this and haven't a clue, other than Joseph Gordon-Levitt's wife (?). If it's the same person, then she is a "tech-entrepreneur" with a surprising amount of liquidity and automatic privilege and titles despite no obvious achievement (unless you consider title-gathering an achievement).
А, ну всё понятно, это жена Джозефа Гордона-Левитта, больше ничем не знаменитая, логично же, что она в совете директоров OpenAI и может уволить Сэма Альтмана.
Collapse )
любопытно

Три загадки

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

Так вот, оглавление на сегодня:
1) почему люди, в отличие от других приматов, не занимаются (или, во всяком случае, очень мало занимаются) грумингом?
2) почему на современном телефоне с поддержкой GPS используются другие способы выставлять время или часовой пояс?
3) как одну и ту же работу в организации А может выполнять 20 человек, а в организации Б 300 человек? Можно ли как-то коротко сформулировать причину этого?

Collapse )
любопытно

Компьютерная модель эволюции

Эволюция это очень просто: изменчивость, наследственность и естественный отбор. Вот и всё.

Хм, нет, в этой записи дальше ещё какие-то буквы, интересно, зачем.

В чём загадка с точки зрения программиста?


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

Итого на Земле исполнялся некоторый генетический алгоритм (в том смысле, в котором это выражение понимается в computer science), единицами отбора в котором были программы на некотором экзотическом Тьюринг-полном языке в некоторой экзотической среде исполнения. Начиная с нуля, этот алгоритм за O(N) поколений ограниченного размера выдал на выходе набор программ длины N=1010, обладающих интеллектом (если точнее, интеллектом обладают результаты их экспрессии, но для Тьюринг-полных языков это достаточно эфемерная разница). Тем, кто на практике занимался генетическими алгоритмами или даже computer science вообще, я думаю, не нужно объяснять, почему этот факт выглядит загадочно. Мы так точно не умеем.

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

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

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

Эта запись -- черновик, коротко описывающий основные идеи; если она вызовет интерес, я постараюсь оформить их более строго, снабдить кодом референсной реализации и перевести на английский.

1. Клетка - непрерывный аналог конечного автомата


С интересующей нас точки зрения клетку можно представить себе как отделенный от внешнего мира мембраной "суп" веществ. Естественно, кроме цитоплазмы в клетке есть ещё много интересного, но наш конечный автомат (state machine) работает именно здесь. Как и у самого привычного программистам конечного автомата, у клетки есть набор состояний и набор правил переходов между этими состояниями. В отличие от простых конечных автоматов, клетка может одновременно находиться в нескольких состояниях в разной степени, а именно, "состоянию S" клетки соответствует концентрация некоторого вещества S внутри неё. "Правила перехода" реализуются за счет того, что различные вещества вступают в реакции друг с другом, а ферменты могут катализировать или ингибировать эти реакции. В зависимости от генетического кода клетки синтезируются разные ферменты, то есть исполняются различные конечные автоматы. В computer science подобные конструкции обычно называют "fuzzy finite state machines".

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

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

Итого, хороший аналог одной клетки - fuzzy finite state machine (нечёткий конечный автомат).

2. Однотипные клетки, собранные в "ткани", являются аналогом рекурсивных алгоритмов


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

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



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

Пока что примем как данность тот факт, что геометрия "гусеницы" такая, какая есть, так уж получилось, что она удачно приспособлена именно для данной конкретной задачи. Если среда настроена так, что таргет (то есть приспособленность "организма") зависит от того, насколько сильно результат его работы будет похож на сумму двух числе, то практически любой "генетический алгоритм" очень быстро выдаст нам популяцию "гусениц", отлично складывающих многозначные числа: конечный автомат, складывающий два бита, то есть пишущий их xor в "выход" и and в "бит переноса", очень прост. На рисунке выше "гусеница" складывает числа 10011 и 10110 и получает 101001.

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

Итак, хороший аналог тканей многоклеточных организмов, состоящих из однотипных клеток -- структуры данных и рекурсивные алгоритмы на них. Эволюция алгоритма, запускаемого над фиксированной структурой данных, не загадочней, чем эволюция нечеткого конечного автомата, и сводится к ней.

3. Онтогенез и "план тела" многоклеточных соответствуют высокоуровневой "архитектуре" программы


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

Ответ на этот вопрос показал Макс Гумин своими удивительно красивыми демками под названием MarkovJunior. Общая идея систем, которые он придумал, такая: возьмем регулярную решетку (например, квадратную сетку на двумерной плоскости). Будем считать, что каждый узел решетки может быть раскрашен в один из нескольких цветов, и что на каждом шаге мы случайным образом применяем одно из подходящих локальных "правил перезаписи" (rewrite rules). Каждое из rewrite rules заменяет соседние клетки, соответствующие определенному паттерну, на клетки другого цвета. Этот процесс аналогичен развитию организма из клетки-зародыша: в каждый момент времени каждая клетка "знает" только свою небольшую окрестность и только из этих данных "делает вывод", делиться ей или нет, и если да, то в какие специализированные клетки её потомкам дифференцироваться.

Удивительно простые наборы правил позволяют создавать удивительно сложные системы. Локальные особенности структуры порождают нетривиальную глобальную топологию. Например, 2d-лабиринты создаются "клетками" трёх цветов и такими двумя правилами:
RBB=GGR
RGG=WWR

Результат выглядит примерно так:


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


"Организмы", порожденные одной и той же программой, отличаются друг от друга, но, очевидно, принадлежат к одному "виду". У Гумина приоритет применения правил задан жестко, применяется правило с max(priority), но никто не мешает добавить непрерывности и применять правила с вероятностями, заданными как softmax(priority). Итого мы получаем формализм, позволяющий непрерывно переходить от одного распределения "планов тела" в популяции к другому; например, становится понятен план строения, промежуточный между списком и бинарным деревом -- это бинарное дерево, в котором почти у всех (но не у всех) вершин ровно один потомок.

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

В итоге мы получаем Тьюринг-полный (for all intents and purposes) формализм, допускающий непрерывное изменение поведения при небольших изменениях "исходного кода", а значит, способный к эволюции по очень простой схеме: изменчивость, наследственность и естественный отбор. Вот и всё.
любопытно

P=NP

Сегодня три человека, не сговариваясь, прислали мне ссылку на очередную статью, автор которой утверждает, что нашел алгоритм решения NP-трудных задач. Свое мнение по поводу P=NP статей я высказывал 13 лет назад, сейчас я, может быть, высказывал бы его не в таких жестких терминах, но по сути ничего не поменялось.

В статье, на которую все прислали ссылку, происходит долгое чисто комбинаторное перекладывание данных с места на место. Автор сортирует переменные по частоте встречаемости в формуле, объясняет читателю, что такое trie и тп.

Ранее не открытый алгоритм такого типа, решающий NP-трудные задачи, совершенно невероятен. Для NP-hard задач все мыслимые чисто комбинаторные алгоритмы типа "заменим все кусочки такого вида на кусочки сякого вида, выберем такой-то subset переменных, введем такое подразбиение, перепишем формулу в таком виде" итп человечество, по-моему, давно уже перебрало. Ещё есть отягчающее доп.соображение: поскольку большинство NP-complete задач сводятся друг к другу простыми заменами, алгоритм такого рода для одной из них означает существование аналогичного для любой из них.

Я верю, что если всё-таки Р=NP, то соответствующий алгоритм будет следовать из каких-то очень глубоких эквивалентностей, типа "давайте для SAT-формулы построим некий двойственный объект, потом вычислим корни его характеристического многочлена численным образом в каком-то хитром поле, потом кратность вычисленных корней как-то еще хитро скомбинируем и получим 0 или 1 в зависимости от того, четное или нечетное число решений у исходной формулы". Что-нибудь в таком духе. А то, что SAT нельзя решить локальными преобразованиями формулы конечного размера, я почти уверен, доказуемо даже без сверхчеловеческого интеллекта, в отличие от общего P!=NP (если Разборов или Валиант или студенты Ааронсона вообще не доказали, я не следил)

В моей старой записи ещё есть доказательство того факта, что если мы можем эффективно вычислять n-тую смешанную производную многочлена от n переменных, то Р=NP. Это звучит очень интересно, ведь чтобы вычислить n-ную производную многочлена по одной переменной, достаточно узнать его значение всего в n+1 точке. Но для смешанных производных и правда не умеем. Доказательство, по-моему, красивое, так что прочитайте лучше его, изинити за саморекламу.
любопытно

Из комментов где-то далеко отсюда

на тему "зачем учить какие-то факты, если есть интернет"; сохраню как запись, чтобы у этого аргумента появился URL

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

Не знать точную дату начала Великой французской революции можно по-разному. Можно её совсем не знать, а можно её забыть, но зато знать, что она была до 1812 года, но не слишком задолго до, так что где-то в конце 18 века. Потому что закончилась она с приходом к власти Наполеона Бонапарта, который потом завоевал пол-Европы, но в итоге обломался на России в том самом 1812. При незнании второго типа человек нормально пойдет в поисковик и ничего ужасного в этом нет. А специалист по истории Франции этого периода помнит эту дату вовсе не потому, что он её зазубрил, а потому что он хорошо помнит и другие опорные даты и события, в том числе биографии действующих лиц, кому сколько было лет, кто на своем посту был новичком, а кто всю жизнь и т.п. Шансов забыть главную из этих дат у него примерно столько же, сколько у тебя шансов забыть, что Вторая Мировая / Великая Отечественная закончились в 1945 году.
любопытно

Прекрасное далеко

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

Саундтрек к записи: https://www.youtube.com/watch?v=fVxEdVqWGuI (предупреждение: лучше не открывать, если у вас эпилепсия)

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

Последние несколько лет я относился к проблеме AI safety как к интересному мысленному эксперименту, не имеющему прямого отношения к действительности. Людей, всерьез рассматривающих вариант развития событий "AI нас всех убьет", а тем более посвящавших написанию текстов об этой проблеме значимый процент своей жизни, я воспринимал как увлеченных фантазеров и/или шарлатанов. Немного смущало, конечно, что Элон Маск, Билл Гейтс и Скотт Александер при таком подходе должны были относиться к одной из двух этих категорий.

Теперь я думаю, что был неправ. В данный момент я тоже считаю, что эта проблема совершенно серьезная: с весьма ненулевой вероятностью всё человечество в ближайшее время самоубьётся об созданный им же искусственный интеллект. Я, как и многие читатели блога, работаю в крупной IT-компании, обладающей огромными ресурсами, и этой темой всерьез занимающейся, так что многие из нас находятся в самой гуще событий. С другой стороны, я хорошо понимаю и тех, кто не видит в происходящих событиях ничего настолько уж опасного, рассматривая паникеров как обычный doomsday cult номер 16523, потому что сам к ним так относился совсем недавно. Более того, в социально-культурологической части это мое мнение не сильно изменилось: перед нами совершенно типичное культурное явление, секта свидетелей апокалипсиса, значительный процент участников которой обладает легкими психическими отклонениями, а лидеры принимают крупные пожертвования и занимаются мутными вещами во имя всеобщего блага человечества. Вот только проблема в том, что перспектива именно этого апокалипсиса реальна.

Collapse )