Я снова подсел на машинное обучение и искусственный интеллект! Не только потому, что в последние пол года стрельнули и ChatGPT, и Midjourney, и прочие умные слова, но и… Нет, в основном поэтому. Но я и до этого ИИ ковырял года четыре с разной степенью интенсивности, так что дело тут не только в голоде до хайпа.
Аниме и Я
Так вот, из последних личных достижений, моя собственноручно набранная генеративно-состязательная (звучит-то как!) машинная модель научилась генерировать исключительно уродливые анимешные лица! Считай, из ниоткуда. Из чистого космоса и сотен ватт энергопотребления видеокарты.
Да, просвещённый читатель может, конечно, возразить, что в современном мире генерацию физиономий проходят на первом курсе любого церковноприходского ИИ колледжа. Но на это у меня найдётся короткий и ёмкий ответ — иди и сделай лучше, зануда.
Правда, на фоне современных машинных моделей мои сгенерированные уродцы действительно меркнут, как болезненные светлячки на фоне атомной бомбы. Из самых свежих взрослых ИИ продуктов ChatGPT — это просто космос. Когда Артур Кларк говорил, что any sufficiently advanced technology is indistinguishable from magic, он имел в виду именно эту магию. За последние полтора десятка лет так меня ничто не впечатляло.
ChatGPT и мы
Для тех, кто в наше суровое военное время проводит свои будни в бункере, я напомню, что ChatGPT — это диалоговый бот. Мы задаём ему вопрос, а он внушительно отвечает. Насколько внушительно, что вот пара примеров.
Во-первых, как-то у ChatGPT попросили написать, как выйти из Вима (легендарного текстового редактора с зубодробительной кривой обучения) в стиле библии короля Джеймса. Если вы хоть немного представляете, в каком стиле та библия написана, а так же что скрывается за фразой «как выйти из Vim», то следующий текст вас должен серьёзно впечатлить:
Блин, это просто магия. Народ завёл целый сайт таких шедевральных вопросов и ответов, и один другого краше. Чего только стоит «Пожалуйста, напишите текст срочной новости про лист, который упал с дерева». Народ сейчас натравливает ChatGPT и на психотерапию, и на вступительные экзамены на юрфак, и всё у них замечательно получается.
Для программерских вопросов ChatGPT особенно чудесен. Ведь как последнее десятилетие программисты пользуются гуглом — зашёл, задал вопрос, и начал надеяться, что ответ всплывёт где-нибудь на Stack Overflow. А с ChatGPT надеятся не надо — он на любой вопрос ответит на месте, и на каждый уточняющий вопрос будет реагировать соответственно.
Например, надо было мне по-быстрому посмотреть, как развернуть AWS Batch с подключённой к нему EFS через Terraform. И не важно, что именно эти слова значат. Важно, как проходил диалог с ботом. Начиналось всё стандартно:
Да, ответ почти бесполезный, его надо читать. Но я и сам лошара — не уточнил ведь, что интересуюсь конкретным примером на терраформе. Поэтому исправляюсь, и уточняю.
А вот это уже практически прекрасно. Потому что даже если пример в чём-то не точен, он уже сэкономил мне кучу времени. Теперь я знаю названия ресурсов, их основных параметров, и общей схемой, как это всё приклеить друг к другу.
Единственная претензия к ответу была, правда, в том, в конце скрипта бот вставил вызов batch_job
модуля, о котором я никогда не слышал, и который, честно говоря, мне нафик не упал. Так что просим от него избавиться.
Вот так вот, всё исправил!
Для стареющих программистов вроде меня ChatGPT — это просто сказка. Ведь самая большая боль моей текущей стадии карьеры — это читать документацию к очередному, без сомнения гениальному колесу от очередного, без сомнения гениального третьекурсника. А ведь мне всего-то надо пара слов, описывающих, чем это колесо отличается от предыдущего.
Вот бы этот GPT к себе на локальный комп поставить, да общаться с ним до скончания времён, то ничего от жизни больше не нужно. Проблема, правда, в том, что по слухам ChatGPT обходится родительскому open.ai примерно в 100К USD в день, в то время как я все свои деньги на дом потратил 🙁 Видимо, не судьба.
Но знаете, что судьба? Поставить себе на комп другую ИИ модель! Малоизвестного родственника генератора картинок Midjourney — Stable Diffusion.
Stable Diffusion и малолетние извращенцы
Midjourney отгремел где-то пол года назад и поменял аватарки примерно половины пользователей социальных сетей, позволяя сгенерировать картинку по текстовому описанию. Midjourney — коммерческий проект, а вот Stable Diffusion — вполне себе оупен-сорс. Я его установил себе на комп где-то неделю назад, и с тех пор сплю плохо и мало, потому что генерация картинок затягивает не хуже, чем лента новостей нашего военного времени.
Требования к компу там, конечно, ненулевые. Дискретная видеокарта, запас видеопамяти, и какие-то программистские представления о том, куда и что надавливать. Для счастливых обладателей M1-M2 макбуков можно скачать сразу готовое приложение — diffusionbee. Оно хоть и работает медленнее, чем на PC с вменяемой видеокартой (примерно 25 секунд на среднюю картинку вместо четырёх), но зато намного дружелюбнее относится к домохозяйцам.
Так вот, генерировать картинки — это допаминовый оргазмус. Можно вводить всякую рандомную фигню, жать кнопку «сгенерировать», и смотреть, что вышло. Лучше всего у меня пока получаются пост-апокалиптические пейзажи. Чтобы генерировать что-то посложнее, нужно понимать, под какой язык заточена Stable Diffusion модель, и, как и с качественными запросами к Гуглу 15 лет назад, это требует какой-то подготовки и экспериментов.
Чтобы выяснить, как выглядят грамотные запросы, можно сходить на arthub.ai — место, куда выкладывают свои шедевры другие обладатели Stable Diffusion моделей (или Midjourney подписки). Взяв за основу один из тамошних запросов, я сделал пару модификаций, и получил себе вполне симпатичную физиономию в индианском костюме.
Что забавно, большинство картинок и запросов на arthub.ai касаются именно девушек в различных их проявлениях. И хотя всё вроде цивильно и в нужных местах прикрыто одеждой, в текстах запросов регулярно встречаются слова nude, sensual pose и прочие проявления подросткового любопытства. Мы же, взрослые люди, в своём интересе, разумеется, сдержаны и интересуемся генераторами картинок исключительно в научных целях.
Сфокусированные на девушках запросы, кстати, сильно подсвечивают огромный косяк Stable Diffusion модели, которого пока не видно в ChatGPT. SD обучен хотя и на огромном, но всё-таки ограниченном количестве современных картинок. А это значит, что если в каком-нибудь скопированном из arthub.ai запросе заменить современную Ану Де Армас на более милую временам нашей юности Памелу Андерсон, то SD автоматически добавит в результат и её сегодняшний возраст, что иногда принимает ну очень страшные очертания. Даже если пытаться уточнить, мол, «да нет, электронный долбоклюй, покажи, как она выглядела в 84м, на Славянском Базаре в Витебске», на выходе всё равно получится незабываемый ужас. Stable Diffusion — это слепок современности, а не знаний.
Но всё-таки, мы живём в будущем. Не самом мирном, но тем не менее. Если Stable Diffusion даже в своей ограниченности замечательно предлагает идеи стилей и концепт-артов, то ChatGPT — это лучшая форма советской энциклопедии и генератора идей, что ходила по земле.
Так что быть нам всем без работы. Если не сегодня, то лет через пять.