Считается, что уже в недалёком будущем во во многих областях машинный труд заменит ручной, и останутся только «креативные» профессии. В последнее время методы машинного обучения прогрессируют настолько быстро, что этот тезис кажется уже не таким незыблемым. Я решил проверить, может ли робот написать симфонию, сделать шедевр сделать что-то такое, что до сих пор считалось неподвластным машине. Например, написать детскую книжку. Совсем недавно вышла ChatGPT от Open AI и сразу взорвала интернет — появилось много статей, как люди задают сети разные задачи, а она довольно качественно генерирует ответы. Примеры: Я попросил ChatGPT написать требования, и вот что получилось, Копирайтерам на выход с вещами? и еще несколько статей про успехи ChatGPT. Я и сам попросил ChatGPT написать посты для канала нашей компании. И пост на тему развития NoCode-платформ у ChatGPT получился примерно такой же, как у меня самого. Ну и конечно, я попросил написать код большого куска функционала, на что ChatGPT ответил, что код написать не может, но решение по шагам расписал. Это очень впечатляет. Еще одним впечатляющим открытием последнего времени стали Midjourney и DALL-E от того же OpenAI. Это сети, создающие картинки по описанию. Интернет сейчас переполнен результатами их работы. Например, недавно я увидел пост о том, как мог бы выглядеть iPhone, изобретенный в СССР: Получается, дизайнеры могут вдохновляться картинками, сгенерированными сетью, а потом дополнять их. С другой стороны, можно сгенерировать текст по запросу. Я решил попробовать попросить ChatGPT написать короткую детскую книжку, затем к каждому абзацу сделать иллюстрацию с помощью Midjourney / DALL-E, а потом перевёл с английского с помощью Google-переводчика. Вот, что из этого вышло. Для начала нужно сгенерировать текст. Я выбрал именно детскую книжку для совсем маленьких детей, потому что обычно в таких книжках нет глубокого смысла и они рассказывают о каком-то небольшом событии из жизни главного героя. Как правило, книжки совсем короткие и красочно иллюстрированые. Иллюстрации, кажется, даже важнее текста. Отличная задачка для ChatGPT. Выбираем главного героя. Пусть это будет зайчик, дети их любят. На этом креатив заканчивается и к работе приступает ChatGPT. С третьего раза по запросу вида “Generate a short story about bunny for children” я получил рассказ, который взял для дальнейшей работы. На самом деле можно было брать хоть первый сгенерированный текст, они все были примерно одинаковы. Вот, что получилось: Once upon a time, in a green meadow surrounded by tall trees, there lived a little rabbit named Binky. Binky was a curious and energetic rabbit, and he loved nothing more than exploring the meadow and all the nooks and crannies of the forest. One day, Binky decided to go on an adventure. He packed a small bag with some carrots and set off into the forest. As he hopped through the underbrush, he saw all sorts of amazing sights - birds singing in the trees, a babbling brook, and even a family of deer grazing in a clearing. As he wandered further and further into the forest, Binky started to get a little bit tired. He had been hopping for hours, and his feet were starting to feel sore. Just when he was thinking about turning back, he saw a bright, shiny object glinting in the sunlight. Binky couldn't resist the temptation to investigate, and he hopped over to the object to see what it was. As he got closer, he realized it was a beautiful golden carrot, shining brightly in the sun. Binky couldn't believe his luck - he had never seen a carrot like this before! He knew he had to take it home with him, so he carefully picked it up and placed it in his bag. As he hopped home, Binky couldn't stop thinking about the golden carrot. He knew it would make the perfect gift for his friends and family, and he couldn't wait to show it off. When Binky arrived home, his friends and family were amazed by the golden carrot. They had never seen anything like it before, and they all wanted to know where Binky had found it. Binky told them all about his adventure in the forest, and how he had found the carrot shining in the sun. His friends and family were so impressed by his bravery and curiosity that they decided to throw him a big celebration. And so, Binky the rabbit became known as the bravest and most adventurous rabbit in the meadow, and he lived happily ever after, always ready for his next great adventure. Если коротко, то сеть сгенерировала рассказ о зайчике, который отправился в путешествие и, когда уже собирался идти обратно, наконец наткнулся на невиданную раньше золотую морковку. Он забрал ее с собой и вернулся к своей семье и друзьям. Они были шокированы и устроили праздник, а сам зайчик стал считаться самым храбрым и предприимчивым на своей полянке. Вполне неплохо для детского рассказа. Остается «нарисовать» красивые иллюстрации. Эта задачка оказалась чуть сложнее, чем я думал сначала. Я решил отгружать сети текст по абзацам, как это делается в детских книжках: короткий текст и большая иллюстрация. Но, видимо, абзацы были слишком большими, поэтому картинки получались не очень. Например, если просто скормить первый абзац сети DALL-E, можно получить такую картинку: Поэтому я решил сокращать текст абзацев, оставляя только самую суть. Получалось уже лучше: Но на многих картинках «лицо» кролика получалось искаженным или возникали разные артефакты, например, отсутствовали глаза или рука. Такое детям лучше не показывать. Благо в DALL-E есть возможность сгенерировать другие варианты на основе картинки. Например, по картинке выше с ..-го раза у меня создался вполне качественный вариант: Но когда я начал делать картинки для следующих абзацев, понял, что очень сложно связать их в единый стиль. Сеть постоянно генерировала разные варианты. Кролик был то одного цвета, то другого, стиль картинки часто отличался: Поэтому я решил немного уточнять запросы, приписывая стиль “digital art” в конце запроса и делая всякие заметки типа цвета кролика. Также я пошел на небольшие хитрости. Например, в абзаце про то, как кролик находит золотую морковку, совсем не обязательно показывать его самого. А на картинках, где кролик идет в лес, можно показывать его со спины, чтобы исключить искажения мордочки. Еще я генерировал много вариантов каждого абзаца, чтобы находить наиболее «синхронизированные» между собой картинки. Но в итоге мне понадобилось около 100 картинок, чтобы получить приемлемый результат. Впрочем, я пользовался этой штукой в первый раз и уверен, что, уточняя запросы, можно сделать картинки более качественно и быстро. Кстати, для генерации некоторых картинок я использовал Summarizer от самого OpenAI. А еще можно попросить ChatGPT сформировать запрос для DALL-E: После совмещения всех картинок я получил такой текст: Once upon a time, in a green meadow surrounded by tall trees, there lived a little rabbit named Binky. Binky was a curious and energetic rabbit, and he loved nothing more than exploring the meadow and all the nooks and crannies of the forest. One day, Binky decided to go on an adventure. He packed a small bag with some carrots and set off into the forest. As he hopped through the underbrush, he saw all sorts of amazing sights - birds singing in the trees, a babbling brook, and even a family of deer grazing in a clearing.  As he wandered further and further into the forest, Binky started to get a little bit tired. He had been hopping for hours, and his feet were starting to feel sore. Just when he was thinking about turning back, he saw a bright, shiny object glinting in the sunlight. Binky couldn't resist the temptation to investigate, and he hopped over to the object to see what it was. As he got closer, he realized it was a beautiful golden carrot, shining brightly in the sun.  Binky couldn't believe his luck - he had never seen a carrot like this before! He knew he had to take it home with him, so he carefully picked it up and placed it in his bag.  As he hopped home, Binky couldn't stop thinking about the golden carrot. He knew it would make the perfect gift for his friends and family, and he couldn't wait to show it off.When Binky arrived home, his friends and family were amazed by the golden carrot. They had never seen anything like it before, and they all wanted to know where Binky had found it.  Binky told them all about his adventure in the forest, and how he had found the carrot shining in the sun. His friends and family were so impressed by his bravery and curiosity that they decided to throw him a big celebration.And so, Binky the rabbit became known as the bravest and most adventurous rabbit in the meadow, and he lived happily ever after, always ready for his next great adventure. Осталось только прогнать этот текст через Google-переводчик. Получилось довольно качественно, если не учитывать некоторые расхождения с родом зайчика (то «он», то «она») и некоторых неказистых оборотах речи типа «заняться расследованием» вместо «разузнать». Хочется завершить статью рассуждением о будущем машинного обучения и творчества. Надо сразу сказать, что я считаю искусственный интеллект недосягаемым на данный момент. И неоднократно спорил на эту тему со своим товарищем (мы оба «технари» и защищали дипломы по темам, связанным с машинным обучением и автоматизированной обработкой данных). Искусственный интеллект (по Википедии) — свойство искусственных интеллектуальных систем выполнять творческие функции, которые традиционно считаются прерогативой человека. Ключевое здесь — творческие функции. То есть, в моем понимании, такой интеллект должен осознать сам себя, уметь учиться решать задачи, которых он никогда раньше не видел, как ребенок, выполнять креативную работу, творить — создавать новое. При этом то, что существует сейчас — методы машинного обучения, которые «обучены» решать (пусть и очень качественно) конкретные задачи. И даже впечатляющие результаты того же ChatGPT и DALL-E — всего лишь решения конкретных задач, а модели обучены на огромном массиве данных. Хотя, я уже не уверен… Мой товарищ, с другой стороны, считает, что это и есть путь к повторению интеллекта. Его аргумент в том, что человек также обучается и формирует свои нейронные связи, которые в конечном счете создают ассоциации и в том числе возможность производить что-то новое из этих ассоциаций. Человек ведь тоже, по распространенному мнению, творит через синергию своего опыта в разных сферах деятельности и ощущений. То есть комбинирует то, что уже где-то видел (испытывал в более общем смысле), или по крайней мере что-то из ранее испытанного наталкивает или вдохновляет его на собственное творчество. Ну а раз работу мозга можно упрощенно представить, как перемещение электрических импульсов, проходящих по выстроенным нейронным связям, то получается, что достаточно большого количества данных и времени, а также механизм построения системы импульсов, схожий с человеческим, чтобы воспроизвести человеческое мышление — и мы, получим настоящий искусственный интеллект. Ведь именно на этом базируются все предположения о нейронных сетях с прошлого века, а теперь появляются достаточные мощности чтобы обучать сети на огромных данных достаточно быстро. А как вы считаете, ведет ли текущий курс развития машинного обучения к искусственному интеллекту? PS Всех с Новым Годом! Присылайте в комментарии свои сгенерированные сказки с иллюстрациями.  Фронтендер