С момента появления в открытом доступе в ноябре прошлого года чат-бот ChatGPT — одна из самых обсуждаемых тем во всем мире. Он умеет не просто находить нужную информацию и отвечать на вопросы пользователя, но и поддерживать беседу, сдавать экзамены в вуз, складно писать эссе и простой код. Как устроены языковые модели и как их обучают, читайте в материале.
1311 просмотров
ChatGPT разработала американская компания OpenAI. За несколько месяцев чат-бот уже успешно сдал экзамены в нескольких вузах США, помог российскому студенту написать диплом и в ближайшем будущем может изменить наш подход к использованию поисковых систем. В его основе лежит языковая модель GPT-3.
Если совсем просто, то языковая модель — это алгоритм, который предсказывает следующее слово в тексте. Допустим, надо продолжить фразу «В школьной программе математики ученики изучают…». Машина понимает, что логично добавить слово «алгебру», а не, к примеру, «анатомию», и выбирает именно его. Но ведь история явно не закончена: математика в школе не ограничивается одной алгеброй!
Midjourney #3: как составить качественный Prompt с помощью promptomania, willwulfken, ymgenesis
Так что снова обращаемся к языковой модели и получаем следующий результат: «В школьной программе математики ученики изучают алгебру и…». Человек построил бы фразу именно так. Но предложение не закончено.
Продолжаем: «В школьной программе математики ученики изучают алгебру и геометрию». Кажется, теперь можно остановить генерацию текста: получилось законченное предложение. Но это будет не совсем честно, ведь мы сами решили ограничить модель. Вдруг она может его дополнить?
У языковой модели есть возможность явно сообщить нам, что, «по ее мнению», она написала достаточно. Об окончании генерации текста сигнализирует специальное слово. Например, «[КОНЕЦ]».
В итоге продолженный языковой моделью текст мог бы выглядеть следующим образом: «В школьной программе математики ученики изучают алгебру и геометрию, которая подразделяется на планиметрию и стереометрию[КОНЕЦ]». Обратите внимание, что знаки препинания тоже можно рассматривать как «слова», которые генерирует модель в процессе своей работы.
Обучение языковой модели
Чтобы языковая модель могла выдавать корректные и логично связанные между собой фразы, в нее нужно заложить огромное количество параметров: в GPT-3 их 175 миллиардов. Процесс настройки параметров подобной модели называется ее обучением.
Для того чтобы модель умела связывать слова в предложения подобно людям, нужно показать ей большое количество реальных текстов. Например, та же GPT-3 обучалась на сотнях миллионов примеров из интернета и книг.
Процесс обучения языковой модели выглядит следующим образом. Мы берем какой-то кусочек текста и делим его на две части: основную и слово-продолжение, которое должно идти после нее. Предложенный выше пример мы можем разделить на основную часть «В школьной программе математики ученики изучают…» и слово-продолжение «алгебру».
После этого мы можем показать модели основную часть текста и попросить дополнить его. Обратите внимание, что корректное продолжение — слово «алгебру» — знаем только мы, но не модель.
Что такое Prompt и как это связано с ChatGPT?
Необученная модель может генерировать некорректные продолжения фраз. Например, в нашем случае вместо слова «алгебру» она предложила бы, допустим, «литературу». В случае подобной ошибки мы можем настроить на конкретном примере параметры модели так, чтобы она предлагала более подходящее слово. В этом и заключается процесс обучения.
При таком объеме данных и количестве параметров обучение модели может занимать месяцы даже на мощнейших суперкомпьютерах. За это время она усваивает закономерности создания предложений из слов, запоминает факты об окружающем мире и приобретает «понимание» того, как формировать на их основе логичные тексты.
Как сделать из языковой модели чат-бот
Имея на руках языковую модель, которая умеет продолжать тексты, уже можно создать продвинутый чат-бот. Давайте посмотрим на то, как это работает.
Сначала человек задает боту вопрос. Например: «Кто является основателем Санкт-Петербурга?». Тот, в свою очередь, просто генерирует с помощью языковой модели продолжение этого текста согласно принципу, который мы рассмотрели ранее.
Для того чтобы машина «понимала», что ей задают вопрос и на него нужно ответить, в конце предложения добавляется специальное слово. Например, «[ОТВЕТ]». В процессе обучения она запомнила, что после него нужно сгенерировать фразу, раскрывающую суть предшествующего вопроса. Кроме того, машина уже знает, что Санкт-Петербург основал Петр I. Все это позволяет модели при генерации продолжения для подобного вопросительного текста корректно ответить на поставленный вопрос.
Однако чат-бот должен не только уметь отвечать на конкретный вопрос, но и поддерживать с собеседником полноценный диалог. Позволяя, например, уточнить информацию. Допустим, что в нашем примере собеседник продолжил диалог следующим образом:
[Человек] Кто является основателем Санкт-Петербурга?
[Чат-бот] Петр I Алексеевич — последний царь всея Руси и первый Император Всероссийский.
[Человек] А город называется в честь Петра I?
Для того чтобы правильно ответить, чат-боту необходим весь контекст диалога. Он должен понимать, что под словом «город» подразумевается «Санкт-Петербург», а для этого ему нужно «держать в уме» первый вопрос.
Однако можно взять весь текущий диалог человека и чат-бота и сгенерировать продолжение для него целиком. За счет этого мы сможем сообщить машине контекст, который необходим для ответа на последний вопрос:
[Человек] Кто является основателем Санкт-Петербурга?
[Чат-бот] Петр I Алексеевич — последний царь всея Руси и первый Император Всероссийский.
[Человек] А город называется в честь Петра I?
[Чат-бот] Не совсем так. Санкт-Петербург был назван в честь небесного покровителя Петра I — апостола Петра.
Получается, что самой по себе языковой модели уже достаточно для того, чтобы создать полноценный чат-бот. Однако ChatGPT использует усовершенствованную версию GPT-3, которая учитывает некоторые особенности общения человека с чат-ботом — ведь это в первую очередь диалог.
Работа с диалогами
Идея в том, чтобы взять готовую языковую модель, например GPT-3, и дополнительно обучить ее на диалогах, структурированных знакомым нам образом:
[Человек] Что-то спрашивает.
[Чат-бот] Отвечает на поставленный вопрос.
[Человек] Что-то уточняет.
[Чат-бот] Снова отвечает.
Интересно, что во время дообучения ChatGPT создатели выступали в роли и задающего вопросы человека, и отвечающего на них чат-бота. Такой подход позволяет показать модели, для чего именно она будет применять полученные знания. В нашем случае — для ответов на вопросы в форме диалога. Усовершенствованная таким способом версия справляется с этой задачей лучше оригинальной.
Качество ответов на запросы
Однако дообучения на примерах диалогов может быть недостаточно для того, чтобы языковая модель начала действительно хорошо обрабатывать запросы пользователей. Ведь далеко не всегда они сводятся к простому ответу на поставленный вопрос.
PROMT Professional 21 + Expert + Master + Freelance + Microsoft Office + Словари
Теперь и на нашем проекте появилась возможность скачать PROMT разных редакций бесплатно. Очень популярная программа, которой пользуется довольно много людей. И на это есть причины, она полностью оправдывает свою популярность, ведь теперь вы сможете спокойно переводить текст с разных языков и разной тематики.
Переводчик PROMT Professional является одним из самых лучших продуктов для перевода текста, сообщений или сайтов. Программа интегрируется в Microsoft Office, Adobe Professional; в интернет браузеры Internet Explorer и Mozilla Firefox; в программы для обмена сообещниями ICQ, Skype, QIP, MSN Messenger. Как видите, поддерживаются почти все самые популярные программы. Высокое качество перевода оценили многие, думаю будет излишним заострять на этом своё внимание. Благодаря множеству специализированнх словарей PROMT Professional позволяет переводить даже специфические тексты с обилием технических и узкоспециальных терминов, полнее передавая смысл.
У нас вы сможете скачать как обычную версию так и профессиональную или домашнюю, а также репаки от известных ребят, которые будут иметь только нужный набор словарей и прочих приятных плюшек.
Источник: rsload.net
На каком языке говорить с нейросетью? Что такое PROMPT
Русский, русский матерный, ломаный английский она не поймет.
Пользователей нужно учить не меньше, чем нейросети. В конце декабря я в первый раз заинтересовался нейросетями, которые рисуют рисунки. Раньше знал, что есть такое чудо, но никогда не пробовал. А тут пришлось рисовать обложку для первой книги, ну и я был вынужден погрузиться в этот чудесный мир.
Началось все с того, что мой знакомый художник на мою просьбу нарисовать обложку, весело рассказал, что «живые художники сейчас ничего на заказ не рисуют». Потому что получается хуже и гораздо дольше, чем генерирует искусственный интеллект. И если сначала я был с этим не согласен, то сейчас придерживаюсь такого же мнения.
Главная проблема, объяснить нейросети, что ты от неё хочешь. То есть важно постичь тайну языка, грамотно заполнить поле PROMPT. B запрос должен состоять из двух частей: описание того, что хочешь получить и модификаторы – в каком виде ты хочешь картинку получить. Нейросети, которые на мой взгляд не имеют достаточно настроек, чтобы получить именно то, что ты хочешь я отмел сразу.
Осталась единственная нейросеть, у которой сотни настроек и дополнений, именно они позволяют контролировать конечный результат – Stable Diffusion. Но, дьявол в деталях, все как всегда.
Лучший вариант, на мой взгляд, версия от «автоматик 1111». Много настроек, много контроля финального изображения. Для любителей программ, у которых одна кнопка «Пуск» она не подойдет. Два месяца я потратил на изучение и могу сказать, что не освоил и трети возможностей. Зато узнал множество специфических терминов и подходов в написании PROMPT.
И так первое, важнейшее правило. Качественно переведите свой текст с русского на английский. Используйте слова, которые действительно употребляются в смысловом поле вашего запроса. Для этого подойдет переводчик DeepL, он позволяет выбирать синонимы слов, если просто ткнуть в слово. Напишите больше чем ваш запрос, переводчик должен понять ваш контекст.
Некоторые слова нейросеть не понимает совсем, например, «цельнометаллическая броня», лучше написать «тяжелая броня». Потому что в контексте игр и персонажей, второе словосочетание употребляется в тысячи раз чаще. Наверное, можно перед написанием запроса еще и смотреть, какие слова используются в статьях на английском языке по данной теме.
Другим важным моментом для получения нужного результата, стоит задача правильно объяснить, что вы хотите: существующее в реальности или придуманное, изображение того, чего нет. Я долго пытался объяснить нейросетке, что хочу «бронированный космический скафандр», но он два дня выдавал мне текстильные (иногда с небольшими металлическими элементами). Помогло получить желаемое одно слово – футуристичный. Вот тогда он выдал уйму годных картинок.
Интересно работает и слово AND именно заглавными буквами, оно объединяет в нечто среднее два разных объекта. Главное, чтобы объекты были похожи, человека и танк не скрестить, а вот варвара и космонавта вполне, как и отлично получается корова-лошадь.
Для обложки в стиле фантастики – это очень важные моменты.
Вторая часть любого PROMPT, это модификаторы результата: стиль, освещение, техника рисования и прочее. Я увидел у некоторых блогеров, что они пишут, например, Intricate details и получают хорошие результаты и мне захотелось узнать весь список команд, влияющих на итоговое изображение. Я искал в интернете пару недель эти «волшебные слова», но так и не нашел. И просто начал писать те, что мне были известны: High Quality, detailed, intricate details, artstation, Epic realistic…
Но очень хотелось получить внятные ответы на вопрос: «огласите весь список пжлста!»
Список из более сотни команд и хренову тучу стилей художников нашел в дополнении к SD, которая называется StylePile. Там есть несколько выпадающих меню, в котором можно выбрать необходимые модификаторы из нескольких меню: концепция, тип изображения, направление, эмоция, параметры цвета, влияние стилистики (не полный список), список множества художников, список стилей типа «арт 60-х» или «Киберпанк».
Думаю, эти модификаторы будут работать не только с SD, но и другими нейросетями.
Так за два месяца изучения темы, из первой картинки, получилась вторая.
Источник: author.today