Последнее время только ленивый не пишет о великом прорыве человечества в области разработки искусственного интеллекта под общим названием "большая языковая модель" (LLM, large language model). И хотя у них остается еще много возможностей для совершенствования, но за последние несколько лет подобные приложения стали действительно востребованными. Большие языковые модели привлекают своей сверхъестественной способностью резюмировать текст, понимать естественный язык и создавать контент (и судя качеству некоторых статей, в том числе и тут на Хабре).


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


Томас Валадес (Thomas Valadez) воспользовался этим творческим потенциалом, чтобы создать интересное устройство под названием «Storybook». Его проект с открытым исходным кодом превращает Raspberry Pi в рассказчика на базе искусственного интеллекта, способного создавать иллюстрированные сказки. Это устройство использует LLM и генератор изображений для создания одной страницы книги из никогда не существовавшего сборника рассказов и выводит их на E-Ink дисплей.



Устройство состоит всего из нескольких обычных компонентов;



Программное обеспечение и инструкцию по его установке можно посмотреть на сайте проекта


или тут под спойлером
  • Image the SD card with RPi OS, then boot and update the OS
  • Enable I2C and SPI interfaces: sudo raspi-config
  • Install Ollama
  • Pull and serve an Ollama model. I find that Mistral and Gemma models work well. ollama run gemma:7b
  • Build/install XNNPACK and Onnxstream
  • Download an SD model. I find that Stable Diffusion XL Turbo 1.0 works well.
  • Clone this repository. git clone https://github.com/tvldz/storybook.git
  • Create a Python virtual environment: cd storybook && mkdir .venv && python -m venv .venv
  • Activate the environment: source .venv/bin/activate
  • Install the Inky libraries. Follow these instructions for RPi 5 compatibility: pimoroni/inky#182
  • Install requests and pillow: pip install requests pillow
  • Modify the constants (paths) at the top of main.py to match your own environment.
  • execute main.py: python main.py. Execution takes ~5 minutes.

Для генерации изображений использован Stable Diffusion XL Turbo 1.0, который является довольно "тяжелым" для выполнения на выбранной аппаратной платформы с ограниченными ресурсами. Однако с помощью Onnxstream требования к памяти можно значительно снизить.



Тщательно подобрав подсказки для LLM и генератора изображений, можно создавать иллюстрированные страницы из сборника детских рассказов и отображать ее на экране E Ink. Благодаря особенностям этих дисплеев, они могут работать в течение всего дня, не потребляя энергии, предлагая развлечения и вдохновение. Выполнение программы генерации на Raspberry Pi довольно медленный процессе. Так, создание новой страницы занимает около 5 минут.




З.Ы.
В комментариях на разных порталах при обсуждении проекта, постоянно предлагается заменить промпт, чтобы он генерировал не детский, а хардкорный 18+ контент, для целей более активного продвижения данного устройства.

Комментарии (8)


  1. rPman
    09.05.2024 16:07
    +4

    хардкорный 18+ контент

    и

    создание новой страницы занимает около 5 минут

    не взлетит.

    По своему небольшому опыту скажу что слабые gpt сетки не делают интересные сказки, они могут сделать что то короткое, с небольшим объемом смысла и истории (мини рассказ на пару-тройку абзацев).., да и у хорошей openai gpt4 чтобы добиться чего то интересного, нужно неплохо так работать с запросами.


    1. rsashka Автор
      09.05.2024 16:07

      Ну может быть по этому автор и остановился именно на коротких фрагментах детских сказок?
      Хотя с другой стороны, текст для контента 18+ не так уж и важен :-)


      1. rPman
        09.05.2024 16:07
        +3

        текст для контента 18+ не так уж и важен

        как знать, вокруг 18+ текстов достаточно большой бакграунд и интерес. Те образы, которые строит человек у себя в голове имеют гораздо больше значение и влияние на эмоции чем простое изображение, а уже если изображение тоже прикладывается... в общем тексты важны, но они должны быть 'правильными'.

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

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


  1. NutsUnderline
    09.05.2024 16:07
    +2

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


  1. Squoworode
    09.05.2024 16:07
    +2

    могут нарисовать лошадей с пятью ногами или семью пальцами на ладонях рук

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


    1. rsashka Автор
      09.05.2024 16:07

      Они еще и не то могут :-)


  1. vikarti
    09.05.2024 16:07
    +3

    Ждем-с полноценный Букварь?

    Нелл снова открывает Букварь; краткая история принцессы Нелл

    Жила-была маленькая принцесса по имени Нелл, и она томилась в темном замке посреди большого-пребольшого океана вместе с товарищем и защитником по имени Гарв. Еще с ней жили четыре друга: Динозавр, Уточка, Кролик Питер и Мальвина.

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

    Принцесса Нелл любила Гарва как брата и поклялась не оставлять его, поэтому вместе со своими друзьями Динозавром, Уточкой, Кроликом Питером и Мальвиной переплыла море на красной лодочке. Испытав множество приключений, они добрались до Страны-за-морями. Она делилась на двенадцать королевств, которыми правили волшебные короли и королевы. У каждого короля или королевы был чудесный дворец, а в каждом дворце – сокровищница с золотом и самоцветами, а в каждой сокровищнице – драгоценный ключ от одного из двенадцати запоров Темного замка.

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

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

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

    – Что такое приключение? – спросила Нелл.

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

    Который


  1. ABy
    09.05.2024 16:07
    +1

    Недавно слушал рассказ Азимова как раз на эту тему. Называется "Когда-нибудь" или "И вот однажды"

    У Никколо Мазеттти устаревший Бард, чего подросток стыдится. Старые модели способны генерировать звуковой ряд старых детских сказок. Новые модели способны создавать видеоряд и использовать более современные сюжеты. Но друг Никколо, Пол, предлагает сделать апгрейд этой старой развалюхе.