Как нейросеть видит слова

0
7

Как нейросеть видит слова

Почему у нейросетей плохо выходят надписи

Если вам мало возможностей huggingface.co , советую обратиться к оригинальному коду авторства Katherine Crowson. Заходите сюда под гугл-аккаунтом, нажимайте «Подключиться» в правом верхнем углу и надейтесь, что вам не выпадет сообщение о том, что доступен только центральный процессор. Если же вам предоставили GPU, самое время заглянуть в зубы дарёному коню. Для этого поставьте курсор на первый блок кода и нажмите Ctrl+Enter, чтобы выполнить его. На экране появится информация о графическом ускорителе виртуальной машины.

Примечательно, что CLIP Guided Diffusion HQ была обучена не на заранее размеченных наборах данных, а на 400 миллионах пар «картинка-текст», взятых просто из интернета. Да, мемы с котиками, рисунки фурей с Deviantart и предвыборные плакаты Трампа — всё это сеть впитала в себя, словно дух реки из «Унесённых призраками». Причём алгоритм сам определял, какой текст к какой картинке относится, что привело к некоторым любопытным особенностям. Чтобы хоть немножко «окультурить» нейронку, авторы вручную добавили в датасет ещё 500 тысяч изображений, которые ищутся по словам из заголовков статей английской Википедии.

В целом, правила формулирования промта (запроса) для Ideogram точно такие же, как и для Stable Diffusion и MidJourney — о них мы рассказывали в отдельной статье. Но так как тут мы имеем дело с надписями, стоит отметить еще одну важную вещь: при вводе запроса текст надписи, которую вы хотите увидеть на картинке, лучше всего вводить внутри кавычек — так нейросеть лучше поймет, какой текст должен быть на рисунке.

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

«Мы разбиваем слова на популярные части, например „велотренажёр“ → „вело“, „трен“, „ажёр“», — рассказывает Владимир Морозов. Такой формат удобен тем, что токены получаются более осмысленными, чем если бы текст делился на буквы, но занимают меньше памяти в сравнении со словарями, которые состоят из слов.

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

Если вы хотите работать только с текстом, ничего кроме prompts вам не нужно. Если же требуется стартовая картинка, вставьте её URL в одинарных кавычках вместо None вот сюда:
init_image = None. Также рекомендую для начала skip_timesteps = 300 и init_scale = 1000.

Нейросети стали обыденностью: студенты пишут курсовые с помощью ChatGPT, иллюстраторы рисуют в Midjourney, а Т9 регулярно предлагает неловкие автозамены. Технологиями заинтересовались и корпорации: например, РЖД провели конкурс цифрового искусства. Но что мы знаем о том, как нейросети работают с языком? Как видят слова и изображают их? Спросили у Владимира Морозова — разработчика машинного обучения в отделе обработки естественного языка «‎Яндекса».

Нейросеть, создающая надписи

Нейросети стали обыденностью: студенты пишут курсовые с помощью ChatGPT, иллюстраторы рисуют в Midjourney, а Т9 регулярно предлагает неловкие автозамены. Технологиями заинтересовались и корпорации: например, РЖД провели конкурс цифрового искусства. Но что мы знаем о том, как нейросети работают с языком? Как видят слова и изображают их? Спросили у Владимира Морозова — разработчика машинного обучения в отделе обработки естественного языка «‎Яндекса».

Понимания культурного контекста кремниевым мозгам, конечно, не хватает. Я предложил сетке сгенерировать обложку для книги «Снятся ли андроидам электроовцы?». В результате получилось изображение с двумя подключёнными к электросети смартфонами (видимо, на Android), на экране которых изображены овцы.

ЧИТАТЬ ТАКЖЕ:  Как общаться с нейросетями

Принципы работы языковой модели зависят от её типа. До того как разработчики стали использовать нейросети, в ходу были более простые статистические алгоритмы. Языковые модели на их основе называют классическими. Простейшая модель такого рода, например, выдаёт одно и то же слово вне зависимости от того, что получает на входе. Более сложные учитывают вероятности. Например, могут подсчитать, что после «привет» люди часто пишут «как дела», а после «хлеб» — «белый». В качестве предсказания модель может предложить самое частотное слово или слово, которое встречается с определённой вероятностью. Логика работы зависит от того, какая стратегия предсказания заложена в модель.

Любопытные картинки получаются, когда сети попадаются слова с множественными значениями. Скажем, «Red Square» — и «Красная площадь», и «красный квадрат». Нейросеть не могла знать, что именно от неё хотят, поэтому на всякий случай сгенерировала картинку «и нашим, и вашим» — красный квадрат, но со структурой брусчатки.

Если модель смотрит на один последний токен, это униграммная модель: она предсказывает следующее слово по последнему во фразе. Биграммные модели смотрят на два слова назад. Но технически количество слов, которые будут учитываться в предсказании, не ограничено. Поэтому модели могут быть n-граммными, где n — любое число. В сравнении с другими модели такого типа быстро работают и мало весят, особенно если значение n небольшое, а токен — буква или часть слова. Поэтому n-граммные модели активно используют в клавиатурах, чтобы персонализировать подсказки.

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

Как вводить запрос в Ideogram

За последние полтора года (примерно тогда в свет вышла первая версия MidJourney) нейросети для генерации изображений прошли огромный путь улучшений и стали создавать качественные работы. Тем не менее, все еще встречаются «изъяны» — неправильное количество пальцев на руках (или ногах), косые лица, неразборчивые надписи.

В обучающей выборке алгоритма могли быть изображения с такими надписями, но никто не говорил ему, что единственно правильный вариант написания этой фразы именно «I love you», поэтому нейросеть просто смешивает все буквы, как смешивает моделей в Баленсиага и фото Папы Римского.

В итоге, даже если в обучающей выборке есть достаточно изображений с правильным числом пальцев на руках или красивыми и понятными надписями, нейросеть просто не понимает, какая конкретная деталь на изображении — надпись, а какая — палец. Поэтому, когда в запросе алгоритм видит фразу, например, «табличка с текстом I love you», он может выдать что-то вроде «IIu lvooo Youuu».

Как языковые модели видят тексты

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

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

Как объясняет разработчик машинного обучения Владимир Морозов, на входе модель получает текст. Например, если пользователь набирает слова на клавиатуре, первой их прочитает именно языковая модель. За распознавание высказывания отвечает энкодер. Чтобы понять смысл, модель делит входной текст на мелкие кусочки, такие как слова или фразы.

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь