Как стать автором
Обновить

Сбер выложил русскоязычную модель GPT-3 Large с 760 миллионами параметров в открытый доступ

Время на прочтение10 мин
Количество просмотров172K
Всего голосов 165: ↑160 и ↓5+155
Комментарии241

Комментарии 241

Здравствуйте!
Пока вижу, что предлагает скачать GPT-2.
Т.е. если с github.com/sberbank-ai/ru-gpts
пробовать скачать ruGPT3Large с GDrive — скачивается gpt2_large_bbpe_v50.tar.gz
Это GPT-3, просто файл так называется, поскольку наша имплементация основана на коде GPT-2.
А где можно посмотреть код модели? Чтобы узнать — в чём отличия вашей модели от GPT-2?
В тексте поста написана суть отличий. Например, контекст в 2 раза шире у GPT-3, чем у GPT2 — 2048 против 1024. В принципе, вы всё можете сами посмотреть в репе.
Коллеги, большое спасибо за такой большой претрейн. Еще не тестил, но мало кто в России этим занимается и выкладывает результаты.

Однако не нашел в репозитарии ничего похожего на лицензию. Не туда смотрел, или там этого нет? Можно как-то обозначить, на каких условиях можно использовать данные модели?
Спасибо за замечание! Выложили (MIT).
>Это GPT-3, просто файл так называется
Давайте назовем корову собакой и будем говорить о ней как о свинье, так понятнее будет ;))
Поправили все названия.
Так, поправили путаницу в репе.

ruGPT2Large: это GPT-2 Large (контекст 1024)
ruGPT3Medium2048: это GPT-3 Medium (контекст 2048)
ruGPT2048: это GPT-3 Large (контекст 2048)
Я конечно понимаю что Английский международный язык для программистов, но почему описание для сугубо специфической софтины для русского языка, которую будут использовать только русскоязычные программисты на английском?
И ещё т.к. для многих программистов это будет первый профессиональный софт, если можно добавьте хотя бы небольшую теоретическую часть (или ссылки на неё) на которой основана GPT-2/3 — ибо «нет ничего практичнее чем хорошая теория» ©
НЛО прилетело и опубликовало эту надпись здесь
для многих программистов это будет первый профессиональный софт

GPT-3? Первый профессиональный софт для человека?

для многих программистов это будет первый профессиональный софт

Не будет. Умный человек не будет брать GPT-3 как свою первую модель. И уж тем более — не зная, что это и зачем.

Замечательно, но абсолютно непонятно как ей пользоваться.
У вас там код:

from transformers import AutoTokenizer, AutoModelWithLMHead
tokenizer = AutoTokenizer.from_pretrained("sberbank-ai/rugpt3large_based_on_gpt2")
model = AutoModelWithLMHead.from_pretrained("sberbank-ai/rugpt3large_based_on_gpt2")


И как этим пользоваться дальше?
Отбой, разобрался вроде
НЛО прилетело и опубликовало эту надпись здесь
А что яндекс интересно думает по этому поводу — сейчас же набегут «оптимизаторы» и «оптимизируют» кучу сайтов
Ну тут же вечное соревнование снаряда и брони :) Эту же модель можно использовать и с противоположной стороны.
Профессионалы говорят, что классическое СЕО мертво уже несколько лет. Сейчас проще и дешевле купить контекстную рекламу в том же поисковике, чем пытаться его обмануть с непредсказуемым результатом и риском бана.
Так это не для классического СЕО, это для дорвеев. Генерить тысячи сайтов в день и продавать трафик. Забанят один такой сайт — на его место придут десять новых.
Подозреваю, что «крутость» этой модели определяется главным образом объёмом обучающей выборки. Вполне возможно, что на 600 Гб даже марковские цепи покажут вполне приемлемые результаты.
Примерно такие
— А… га. Хорошо, что у вас чудесный мир, а к хорошему привыкаешь быстро. Да, восходы у вас ярче, торты вкуснее.
— Торты всегда особенные, — проворковала Селестия. — Идём.
Повернувшись к нему боком, рядом прошла принцесса. В её глазах горели искры всепоглощающего знания. Струящийся утренней авророй хвост мазнул вдоль носа единорога в нематериальном пространстве. В воздухе были слабые магнитные импульсы, однако чувства реагировали так же, как и на Винил.
— Селестия? — я пристально вглядываюсь в её воспоминания… Особенно, если учесть, что их не хватает. Покончив с осмотром, я, наконец, понял, как телекинезом работать с магией, летать, освоиться с тысячами бытовых мелочей…
Я аккуратно собрал гриву аликорны в два раза ярче, и её рог вспыхнул, а лежавшая на соседней полке Луна нервно закусила губу. Тия действительно любит сестру, я проверял. И даже достигла в этом немалых результатов.

Вы наверное удивитесь, но для генерации этого текста использовалась каскадная марковская цепь (модель, полученная линейной комбинацией нескольких марковских цепей, построенных на разных группах текстов). Для построения модели использовалось что-то около 1.5 Гб текста тематических фанфиков, сграбленных с фикшн-ресурсов.
Единственное, что потребовалось сделать с текстом — самостоятельно расставить знаки препинания (марковские цепи расставляют их несколько невпопад) и отформатировать, добавив абзацы и разрывы строк. Кстати, GPT-3, судя по скринам, тоже выдаёт сплошную стену текста, которая нуждается в форматировании.
Это же легко проверяется, путём измерения перплексии на обучающей и тестовой выборках. У любой модели на n-граммах или HMM перплексия гораздо выше, чем у современных моделей на трансформерах.
Соглашусь. Я попробовал Марковскую цепь на 160 Мб из сообщений в переписке, этого уже оказалось достаточно для генерации коротких забавных сообщений :)
Кстати, а Вы сколько предыдущих слов учитывали в цепочке? И как бороться с несогласованностью в предложении?
Например
А какого-нибудь бритого и кососмотрящего незнакомого чувака около входа в конференцию распространялись через почты групп (то есть, мне хватает

Тут глагол «распространялись» ни к селу ни к городу. Всякие нейропереводчики и GPT не страдают таким
«Кососмотрящего»?
Даже если это слово и где то было в обучающих данных, то встречалось исчезающе мало.
Или модель сама слова способна генерить?
Да, это слово было в обучающих данных, но с генерацией слов было бы интересно построить обобщение цепочки :)
4 слова длина цепочки. Уменьшить несогласованность слов можно либо увеличением длины этой самой цепочки (но тогда сразу сильно растёт требуемый минимальный объём обучающей выборки), либо линейной комбинацией цепочек.
Для этого разбиваем наши тексты на группы по какому-либо признаку — например, в одной группе тексты, богатые на диалоги, в другой — где много пространных описаний и т.д.
Далее для каждой группы строим цепочку и комбинируем цепочки с какими-либо весами. Такая функция есть в большинстве библиотек для работы с марковскими моделями. Например, в Python'овом markovify это делается примерно так:
model_a = markovify.Text(text_a,state_size=4)
model_b = markovify.Text(text_b,state_size=4)

model_combo = markovify.combine([ model_a, model_b ], [ 1.5, 1 ])
text_model = model_combo.compile()

Групп нужно больше двух, конечно. Веса позволяют до некоторой степени управлять содержанием текста (количеством диалогов, к примеру, если в одной группе тексты, богатые на диалоги), а также их подбором можно снизить включение «левых» слов, выбивающихся из контекста. Впрочем, до конца проблема всё равно не уйдёт. Даже в вышеприведённом тексте есть «собрал гриву аликорны в два раза ярче», где слово «ярче» явно не в тему.
Ну и плюс размер генерируемого текста влияет. Чем он меньше, тем лучше. Сгенерировать всего одно вменяемое предложение — легко, но чем больше текста выдаётся за раз, тем выше шансы получить бред. Настроить модель так, чтоб за раз выдавалось 3-4 вменяемых абзаца, не так-то просто. Сгенерировать целую книгу на 300 килосимволов связного осмысленного текста — подозреваю, что невозможно.
Да, проблема с копированием кусков текста и заменой там характеристических слов она есть — («единорог» в примерах со скринов это и есть такое слово, подставленное во вполне логичный новостной сюжет-обзор, который во многом копирует типовые обороты).

Мы тоже выпускали своего чатбота Ньютона на трансформере кастомной архитектуры с 3млрд параметров(правда не хайповали пока тк там много еще задач) — он затюнен именно на диалогах из интернета и знаниях из википедии, миллионы диалогов. Генерация в нем очень хорошая, логичная, эмпатичная и бот проактивный, одна из фишек это помимо генерации делать refine полученного куска текста, а еще мы используем другой encoder, который внимание чуть иначе, более эффективно применяет.
Так вот такая модель может хоститься на обычной 1080ti в облаке и ведет очень разнообразный разговор и стоит это все намного дешевле, чем gpt-3. Правда и артефакты есть — тк модель на английском, стиль разговора у нее более западный и жаргонизмы плохо понимает.
Так что огроменный датасет ruGPT3 это круто — но если кто статью читал, там видно, что меньший размер моделей начинает уступать текущим решениям по качеству решения задач NLU. И лучше брать архитектуру под задачу
Вполне возможно, что на 600 Гб даже марковские цепи

Нет, невозможно. Верхняя планка качества у марковских цепей заметно ниже.

НЛО прилетело и опубликовало эту надпись здесь
Наша модель полностью повторяет архитектуру GPT-3, описанную в соответствующей публикации OpenAI. Модель называется ruGPT-3. Конечно, мы могли бы дать ей какое-нибудь другие название, Sberique-3 или ещё какую-нибудь чепуху придумать, но мы решили назвать модель так, чтобы любому было понятно, что в принципе ничего нового с точки архитектуры мы не сделали.
НЛО прилетело и опубликовало эту надпись здесь
У них половинчатая позиция. С одной стороны, они шарят архитектуру моделей, довольно подробно всё описывают, но при этом сами веса обученных моделей либо публикуют с большой задержкой, либо не публикуют вовсе. Это приводит к тому, что воспроизвести их работу могут только крупные компании, обладающие штатом сильных специалистов по ML и серьёзными вычислительными ресурсами.
НЛО прилетело и опубликовало эту надпись здесь
Спасибо за добрые слова. Но, конечно, если бы нам не выделило руководство под это дело ресурсы, то никакой заслуги бы и не было)
НЛО прилетело и опубликовало эту надпись здесь
… публичные разделы Pikabu ...

Да уж, еще бы архив двача с удаффкомом подтянули
Хорошая идея) Учтём на будущее)
НЛО прилетело и опубликовало эту надпись здесь
Хабр вполне реально, с ODS всё сложнее — надо посмотреть, как можно из слака стянуть историю…
НЛО прилетело и опубликовало эту надпись здесь
Спасибо. Заюзаем.
Тогда ещё и народные шедевры с лурка надо добавить
НЛО прилетело и опубликовало эту надпись здесь
Open Data Science (https://ods.ai/)
НЛО прилетело и опубликовало эту надпись здесь
Ну на скриншотах это не школьные сочинения, никто и не говорил, что это они :)
НЛО прилетело и опубликовало эту надпись здесь
Вот такой код заработает с использованием ruGPT-3?
Код
from transformers import pipeline, set_seed
generator = pipeline('text-generation', model='gpt2')
set_seed(42)
generator(«Hello, I'm a language model,», max_length=30, num_return_sequences=5)
Вот такой прокатит
# GPT-3 example
from transformers import AutoTokenizer, AutoModelWithLMHead
from multiprocessing import Pool
from transformers import pipeline, set_seed
from pprint import pprint


def do(text):
	print("doing: ", text)
	generator = pipeline('text-generation', model='sberbank-ai/rugpt3large_based_on_gpt2')
	set_seed(42)
	# x = generator("Грозный Генька генератор грубо грыз горох горстями,", max_length=130, num_return_sequences=1)
	x = generator(text,  # max_length=30, num_return_sequences=2,
				  max_length=30,
				  # min_length=30,
				  length_penalty=5,
				  num_beams=4,
				  num_return_sequences=2,
				  early_stopping=True
				  )
	return x

if __name__ == '__main__':
	# ----------GPT-3--------------		
	chunksize = 1
	dataset = ['Грозный Генька-генератор грубо грыз горох горстями,',
			   'Нам нужна одна победа,',
			   'Давайте говорить друг другу комплименты,',
			   ]
	with Pool(processes=10) as pool:
		result = pool.map(do, dataset, chunksize)		
	pprint(result)

# Грозный Генька генератор грубо грыз горох горстями,
# а я, как всегда, сидел на корточках и смотрел на него


вести диалоги и даже (ВНЕЗАПНО!) писать более-менее осмысленный программный код

Не дай бог, но скорее всего это неизбежно, а учиться эта штука будет сами-знаете-на-каком-коде. Будем индусов вспоминать как «гениев чистой красоты».
Ну, к счастью, синтез при помощи генеративных трансформерных моделей — штука более-менее управляемая, можно до некоторой степени управлять стилем генерируемого текста.
Коллеги прочитав, переписку Бота я даже не поленился зарегистрироваться!
Я напомню, что есть такой термин Олигофренизм и одна из стадий это Дебилизм. Это не оскорбление, это термин медицинский! Так вот Дебил это сущность которая понимает слова, но не понимает их сути! Так вот прочитав переписку Бота я вижу клинический диагноз. А теперь представьте, что свершится мечта Банка и такие Боты будут доступны всем, и что будет? — будет клиника у всех! Поэтому вы можете хвастаться искусственным интеллектом, но по факту это бесполезная, даже опасная вещь!
Первые поезда были предназначены для перевозки грузов и развивали скорость, уступающую скорости пешехода. Когда на смену зубчатым рельсам, предназначенным для увеличения тяги паровоза, пришли гладкие, скорость составов выросла, что неизбежно вызвало к жизни идею пассажирских составов. Газеты немедленно начали писать о том, что в результате запуска таких поездов куры перестанут нестись, коровы — давать молоко, а сами пассажиры сойдут с ума от сумасшедшей скорости в 30 км/ч.
Давайте без окон Овертона. Не стоит уводить в сторону. Если вы хотите про паровозы то можем и о них поговорить. Задайте вопрос своему искусственному интеллекту — как в кузнях молотками ковали такие объёмные и сложно трубчатые структуры, как например испаритель?

Вопрос в другом: Верна ли ваша модель и если не верна готовы ли вы это признать?
«Верна ли ваша модель» — о какой именно модели идёт речь?
Модель построения речевой конструкции основанной лишь на выстраивании логических связей искусственного интеллекта
Я, к сожалению, не очень понимаю, что вы имеете в виду. Во-первых, это модель не наша, её архитектура разработана OpenAI, мы лишь обучили модель на русскоязычном корпусе.

Во-вторых, эта модель не основана на «выстраивании логических связей искусственного интеллекта» — это не символьная, а коннекционистская модель, искусственная нейронная сеть.

И, в третьих, эта модель не может быть «верна» или «не верна». Такие модели оцениваются при помощи объективных метрик, например, перплексии. Вы берёте тестовый набор данных и оцениваете по нему точность работы модели, и результат не зависит от чьего-либо мнения. Не нравится подход, заложенный в основу GPT-3, предлагайте альтернативную модель, измеряйте её перплексию на тестовой выборке, и если в итоге у вас значение получится меньше — отлично, наука и технологии от этого только выиграют.

По поводу "верна" "не верна": в теории бот на вопрос "чем мне заняться?" может ответить что то вроде "выйди в окно"?
Всегда это интересовало: можно ли хоть как-то гарантировать, что подобная система не посоветует что-то противозаконное? И за счёт чего этого можно достигнуть?
И если такое случится, может ли кто то понести ответственность?
Я не пытаюсь жути нагнать, правда интересно.

Если коротко — нейросеть обычно следует тем примерам, которые в ней заложены.

Гарантировать отсутствие «противозаконности» очень сложно хотя бы по той причине, что законы и нормы постоянно меняются.

И да, проблема «ответственности» по отношению к нейросетям стоит остро — особенно если надо найти виноватого. Если задачи искать виноватого нет, то можно просто сказать, что согласно метрикам нейросеть на разных задачах выдает N% точности или других попугаев.

Кстати, к людям все сказанное также относится. Никто, в общем, не может гарантировать, что вот тот самый Вася не совершит что-нибудь противозаконное. Просто будут карать Васю. А в кого возложить ответственность в нейросетке — ещё тот вопрос.
Почему-то вспомнилось, как Microsoft сделали самобучающегося бота и он почему-то научился расистким высказываниям(пользователи научили плохому) и его отключили.
Правая публика разразилась криками, что «евреи умучали ИИ-младенца» ;0)
Если не читали «Сумму технологии» Лема — прочтите. Книжке скоро стукнет 60 лет, но то, над чем размышлял автор во времена, когда тысячи «петафлопсо-дней» (необходимые для обучения GPT-3 175B) было трудно вообразить даже людям с безграничной фантазией, становится всё актуальней и актуальней… В частности, там Лем смоделировал ситуацию, когда «добрый AI» станет уничтожать людей из самых благородных побуждений, с помощью таких банальных компонентов, как зубная паста и средство от облысения (если я ничего не путаю по забывчивости...).
Короче, с ответственностью и моралью люди пока и сами не разобрались окончательно, чего уж тут ожидать от AI…

Для общего расширения начитанности полезно, но понять будет ли опасным какой-нибудь deep Q-learning, использующий experience replay, это не поможет.

На мой взгляд — поможет. Но не столько в техническом, сколько в филосовском плане. Посылка Лема была (как я её понял) в том, что общество или, шире, человечество, создало мораль и законы в ходе/в результате всей своей истории, и только оно может проверять на соответствие и оценивать их применимость для каждого конкретного случая. То есть (в моей вольной интерпретации), только нейронной сети, соответствующей по мощности и структуре такому эфемерному образованию, как «коллективный разум человечества», и обученной на всём корпусе данных, человечеству доступном, можно попробовать доверить решение вопросов законности и моральности. Причём, и в этом случае не будет абсолютной «верности» суждений, но можно предположить, что ошибки, которые будет допускать такая нейронка, будут соответствовать по уровню ошибкам человечества (т.е. они, по крайней мере, не будут «глупыми»).

Если я правильно уловил суть, то ruGPT-3, прожевав "большой корпус русской литературы" может создавать тексты, очень похожие на те, что создаёт человеческий интеллект. Допускаю, что в этих текстах может быть что-то полезное для человечества с точки зрения науки, культуры или даже программирования. Но способна ли ruGPT-3 самостоятельно понять, что из нагенерённого ею есть мусор, а что "код (… не лишённый весьма глубокого смысла)"?


Другими словами, насколько сильно эта штука отличается от генератора случайных чисел в оценке результата своей деятельности? Сможет ли ruGPT-3 из 10 созданных ею эссе выбрать наиболее высокохудожественное с литературной точки зрения? Сколько времени ей понадобится, чтобы родить Хэмингуэевское "Продаются детские ботиночки. Неношеные."?

Что такое «самостоятельно понять» знает только Джон Сёрл, хотя на самом деле, я подозреваю, что не знает и он :) Что такое шедевр — здесь тоже нет единства мнений. Что можно сделать более-менее объективно — это в слепом тесте попросить людей сравнивать результаты творчества модели с результатами творчества людей. Самая большая версия GPT-3 со 175 млрд весов (она в 230 раз больше, чем та, которую обучили мы) может писать тексты статей, которые в слепом тесте не отличают от статей, написанных журналистами новостных сайтов. Примерно таковы пределы возможностей генеративных трансформерных моделей на сегодняшний день.
НЛО прилетело и опубликовало эту надпись здесь
Ну пока модели на 175 ярдов весов у нас нет, чтобы перепроверить это. Но через какое-то время будет, тогда и проверим)
НЛО прилетело и опубликовало эту надпись здесь
> Gpt-3 вроде умеет складывать 3х значные числа(на 4х значных ломается).

Извините, но это совершенно нерелевантная задача для нейросети, обрабатывающей текст на основе схожести (*картинка_про_буханку_и_троллейбус*) Не удивлюсь, если разработчики это не проверяли.

Конечно, если кто-нибудь знает ответ на этот вопрос, то мне он тоже из чистого любопытства интересен; но вообще говоря, учитывая открытость нейросети, можно скачать и проверить.

UPD:
> Для тестов можно использовать в телеге бота @******** (убрано по просьбе, ждем официальной демки)
Протестил — у меня не складывает, хотя, возможно, я давал маловато примеров.
Будьте добры, замените, пожалуйста, в комменте название бота на звёздочки, а то там уже он перегружен. Мы выложим скоро официальную демку, в которой инференс будет не одна карточка обслуживать.

Но у вас на скриншотах в посте название написано...

Не, это другой) В посте на скринах, где имя бота видно, это ботик на GPT-2.
НЛО прилетело и опубликовало эту надпись здесь
В арифметику она не особо хорошо умеет; самая большая английская тоже, кстати.
Поздравляю с этим огромным достижением, сбербанк начинает удивлять. Если не секрет, имеются ли дальнейшие планы с обучением более крупных моделей gpt?
Планы такие имеются)

Нет. Компиляция — это журналистский эксперимент. В научной статье использовались неотобранные тексты длиной, по-моему, до 200 токенов.

ИИ начитавшийся Достоевского пойдет убивать старушек!
(На самом деле нет)
Вот Лимонов написал статью "Трупный яд русской литературы", где показал что "эта вся писанина" убивает в людях желание действовать и является причиной всех русских бед ;0))

Так что ИИ воспитанный на русской литературе наверняка обретет черты Обломова и просто будет ныть дипфейками

Погуглите — есть уже задача распознавания фейков и даже у нас в РФ выделено финансирование на этот проект.
Верно автор говорит — это война Всепробивающего ядра и Непробиваемой брони.
То же самое касается и adversarial attacs на нейросети, хотя мое мнение, что скоро эта проблема будет решена.
У людей миллиардные бюджеты… Вы им в жизнь ничего не докажите((. А так никто и не утверждает что их нейронка «понимает» написанное. Это лишь «продвинутые» марковские цепи. Но вслух об этом говорить не принято…
Если вы ставите модели диагноз… значит она достигла успехов! Чтобы вам был понятен принцип, изложу его так.

Да, смысл текстов — то есть сопоставление фактов из объектов, модель не делает. Она, будучи языковой, делает что-то такое:

Представьте себе человека, которому дали огромный объём текста на незнакомом ему языке. Он видит повторяющиеся конструкции из слов. Он ищет систему, которая позволяет, условно, восстанавливать наиболее вероятные пропущенные конструкции.

В итоге такая система начинает выдавать конструкции, которые имеют некоторое выравнивание с реальностью (физической, художественной или иной, заложенной в языке и корпусе текстов), если тексты реальные и осмысляются человеком: то есть человек в состоянии такое представить.

Под капотом основной ингредиент такой: способ учета контекста употребления слова.

Теперь о клинике. Клиническая картина обычно ставится как раз по (не)соответствию реально объективного и словесного описания. Поскольку корпус не состоит на 100% «здоровых» с точки зрения психиатрии текстов — нет гарантий «не бреда».

Но это не значит, что исследования в этой области надо закрыть)
Посмотрел на вашу реакцию и оценки моих комментариев… Понятно почему мы(мир) так деградируем на глазах, а из прогресса только красивые фантики. Вы сплоченные и сконцентрированные на своих «фантиках», а кто идет в разрез вы сразу накидываетесь дизлайками и со «смешками» в коментах — типа как можно отрицать прогресс? При этом не замечаете позора, который виден всем, достаточно пообщаться с роботом по номеру 900 или поговорить Siri/Алисой. Может уже стоит признаться и с гордостью признания начать думать как развиваться, а не убеждать мир, что «фантики» это прогресс? Это я про дизлайки моего комментария. Как правильно написал Сергей Марков — они только адаптировали к русскому языку. Поэтому я пишу о общей концепции, без претензий к данному посту.
Здесь мы обсуждаем конкретную модель, а по номеру 900 — целая другая система. Если у вас претензии к системе, то данная модель здесь ни при чём. В системе 900 она вообще не используется.
У вас претензия к DL в целом? Или претензия к инженерам, которые нейросети суют везде для практического использования? Или к маркетологам, которые продают системы с нейросетями как ИИ?
В любом случае, вам не сюда. Мир в интернете деградирует именно из-за того, что люди всё подряд обкладывают руганью, не желая ни в чём разбираться и правильно формулировать свои мысли.
Я описал как результат конкретной модели выглядит с человеческой стороны, которую другие почему то не заметили. А еще, Вы здесь лайкаете и дизлайкаете. Значит эта тема тоже есть, я о ней и писал. Я не в коем случае не бранился, просто объявил психологически портрет ИИ. Возможно это выглядит не так безоблачно как хотелось бы, извините, но если это негатив?, что замалчивать? — Нужно всё разумно обсуждать. А в итоге, удивился реакции народа на известный факт и получил дизлайки, вместо доводов.

PS у меня нет претензий, скорее раздражение, как нелепые вещи выдают за инновации, а люди в коих верится, что они разумные, слепо хлопают в ладоши от радости, не замечая фактов и яростно накидываются на тех кто озвучивает реальные факты, превращающие инновации в пустые фантики. И позвольте закончить на этом.
mknrucom, без шуток и с настороженностью прошу Вас обратить внимание на возможность развития у Вас F21.4

Нет, не позволю.
Я вас понимаю, что именно вы имели в виду, и это взгляд на проблему не "с высока", как некоторым (минусаторам) показалось, но "с высоты", когда не видно мелкого, но видна общая картина: ИИ, ещё не вылупившись, не "материализовавшись", — уже вызывает кучу проблем у человека, но почему-то все наперегонки спешат и торопятся открыть этот ящик П.
Так что поддерживаю ваш взгляд на проблему ИИ.

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

Вам скорей всего знаком проект Ai-dungeon, который может с gpt-2 запущен на потребительских картах вроде 2080 Ti и radeon VII. Можете пояснить сколько нужно видео памяти на видеокартах что бы запустить ваши ruGPT-3?

На 1080, вроде, запускается. Если при инференсе контекст подрезать вдвое, то Large вместится даже в 5 гигов, то есть можно даже младшие карточки использовать.
Поправили путаницу в репе.

ruGPT2Large: это GPT-2 Large (контекст 1024)
ruGPT3Medium2048: это GPT-3 Medium (контекст 2048)
ruGPT2048: это GPT-3 Large (контекст 2048)
Кому лень искать пример кода.
Попробовал, не сильно впечатлился.

import torch
from transformers import AutoTokenizer, AutoModel, AutoModelWithLMHead, AutoModelForCausalLM, AutoModelForSeq2SeqLM, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained(«artemsnegirev/ru_gpt3_large»)
#AutoModelForCausalLM AutoModelForSeq2SeqLM AutoModelForMaskedLM
model = AutoModelForCausalLM.from_pretrained(«artemsnegirev/ru_gpt3_large»)
model.eval()
model.to('cuda')

def generate(text):
# encode context the generation is conditioned on
input_ids = tokenizer.encode(text, return_tensors='pt')
input_ids = input_ids.to('cuda')
# generate text until the output length (which includes the context length) reaches 50
greedy_output = model.generate(input_ids, max_length=100)
return tokenizer.decode(greedy_output[0], skip_special_tokens=True)

generate(«Маньяк читает книгу про глубокое обучение»)
Попробуйте подлиннее задать затравку, тогда и результаты поинтереснее получаются.
Что-то не работает, возмжно код неверный. Для коротких выражений дает диалоги и более менее осмысленные продолжения. Но в диалогох зацикливается. Для длинных предложений выдает кучу new line символов.
Подтверждаю такое поведение. Код я использую generate_transformers.py из репозитория.
Я начал стрипать новые символы перед возвратом сгенеренного контекста назад в модель. Что-то типа prompt_text = total_sequence.replace('\n\n', '\n'). Стало работать лучше.
Так, поправили путаницу в репе.

ruGPT2Large: это GPT-2 Large (контекст 1024)
ruGPT3Medium2048: это GPT-3 Medium (контекст 2048)
ruGPT2048: это GPT-3 Large (контекст 2048)
Для тестов можно использовать в телеге бота [пока скрыл имя] — там GPT-3 Large модель (эх, надеюсь, он не умрёт от хаброэффекта :)
Будет официальная демка скоро, я тогда тут дам ссылки на днях.
Не ищется почему-то (((
Что не ищется?
Для диалогов нужен другой encoder — polyencoder, тут архитектура не подходит
Не обязательно, кстати.
Поправили путаницу в репе.

ruGPT2Large: это GPT-2 Large (контекст 1024)
ruGPT3Medium2048: это GPT-3 Medium (контекст 2048)
ruGPT2048: это GPT-3 Large (контекст 2048)
Добрались руки попробовать. По ссылкам из github.com/sberbank-ai/ru-gpts скачал с GDrive файл rugpt3large_based_on_gpt2.tar размером 3144929280 байт. Сергей oulenspiegel, уточните, пожалуйста, это как раз ruGPT2048? Потому как на примере hodzanassredin оно, после длительных размышлений, выдаёт на выход входящую строку, дополненную кучей переводов строк…

P.S. Win10+python3.8+установка по инструкции+(поставил transformers==3.4.0 torch==1.6.0+cpu torchvision==0.7.0+cpu), ну и в примере поменял 'cuda' на 'cpu'
P.P.S. При запуске выводит в stderr загадочное «Setting `pad_token_id` to 50256 (first `eos_token_id`) to generate sequence»…
Добрый день.

Ошибка вылезает

File "<ipython-input-8-916c7531c9f1>", line 11
input_ids = tokenizer.encode(text, return_tensors='pt')
^
IndentationError: expected an indented block
Что-то с отступом у вас.
Так вот откуда берутся новости на яндекс дзен)
НЛО прилетело и опубликовало эту надпись здесь

Интересно, можно ли с помощью GPT-3 решить такую задачу: есть несколько слегка изменённых предложений, с заменёнными-переставленными некоторыми словами. Нужно сказать, какое из предложений составлено более естественно, и больше соответствует тому как пишут люди.

Нужно пробовать. Теоретически, да.
НЛО прилетело и опубликовало эту надпись здесь
А что вы понимаете под термином «искусственный интеллект»?
НЛО прилетело и опубликовало эту надпись здесь
Опубликованная модель не имеет никакого отношения к тому роботу, который отвечает на 900.
НЛО прилетело и опубликовало эту надпись здесь
Вас кто-то обидел из сотрудников Сбербанка?
НЛО прилетело и опубликовало эту надпись здесь
Вот кстати да, не получится ли так, что какой-нибудь SberGPT-4, специально натренированный на диалогах колл-центров, заменит большую часть работников техподдержки, и множество людей останется без работы? Ведь явно же не просто так коммерческая организация выделяет деньги на подобные исследования, а из расчёта сэкономить в результате гораздо больше затраченного.
Для решения таких задач достаточно и более простых моделей. Вот тут я рассказываю про робота-оператора КЦ: www.youtube.com/watch?v=p_6kP9uKEdo
Вы так пишете, как будто там уже все ботами не обмазано.
Попытался добраться до человека, чтобы узнать что-то в сбербанке, с теплотой вспомнил тиньковского «олега».
Попытался добраться до человека, чтобы узнать что-то в сбербанке

Фразу "соединить с оператором" не пробовали? Говорят, помогает.

Сергей, большое вам спасибо!
Днем увидел новость и прямо руки чесались начать экспериментировать и вот наступило 18:01… :)
Спасибо вам) Желаю удачных экспериментов!
А у бота есть какое-то ограниченное время работы?
У меня в 18:20 он работал, а теперь не работает.
Кстати интересный диалог вышел)
Да упал, небось, от хаброэффекта) На днях будет демка официальная.

Хабраэффект — штука одноразовая

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

Сжатие контекста — это же, практически, отжимание из текста воды? Вот это, ИМХО, самая актуальная задача для ИИ из всех существующих!

Ну вообще актуальных задач много :) Отжимать текст от воды, в принципе, так или иначе умеют давно. Более того, есть даже реализованные продукты на эту тему, вроде таких: en.wikipedia.org/wiki/Nick_D%27Aloisio#Summly
Запустил все модели на 2070Super. С ruGPT2048 намучался больше всего. На CUDA 10.1 остановился на следующем:

Сначала по инструкции

python -m pip install virtualenv
virtualenv gpt_env
source gpt_env/bin/activate
pip install -r requirements.txt

Затем возникли проблемы с torch/apex/torch-blocksparse которых в requirements.txt нет. С этими версиями работает:

pip install torch==1.6.0+cu101 torchvision==0.7.0+cu101 -f download.pytorch.org/whl/torch_stable.html

sudo apt install llvm-9

git clone github.com/NVIDIA/apex #8a1ed9e
cd apex
pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext".

pip install torch-blocksparse #1.1.1

В таком порядке. Затем в scripts/generate_ruGPT2048.sh заменить load и tokenizer-path на путь к распакованной модели (rugpt2048.tar.gz )

Затем запустить scripts/generate_ruGPT2048.sh
Вот с таким черновиком Dockerfile запускаю ruGPT2048

FROM pytorch/pytorch:1.4-cuda10.1-cudnn7-runtime
USER root

# installing full CUDA toolkit
RUN apt update
RUN pip install --upgrade pip
RUN apt install -y build-essential g++ llvm-8-dev git cmake wget
RUN conda install -y -c conda-forge cudatoolkit-dev
# setting environment variables
ENV CUDA_HOME "/opt/conda/pkgs/cuda-toolkit"
ENV CUDA_TOOLKIT_ROOT_DIR $CUDA_HOME
ENV LIBRARY_PATH "$CUDA_HOME/lib64:$LIBRARY_PATH"
ENV LD_LIBRARY_PATH "$CUDA_HOME/lib64:$CUDA_HOME/extras/CUPTI/lib64:$LD_LIBRARY_PATH"
ENV CFLAGS "-I$CUDA_HOME/include $CFLAGS"
# installing triton
WORKDIR /workspace
RUN apt install -y llvm-9-dev
RUN pip install triton==0.2.1
RUN pip install torch-blocksparse
ENV PYTHONPATH "${PYTHONPATH}:/workspace/src/triton/python:/workspace/torch-blocksparse"

RUN git clone https://github.com/NVIDIA/apex && cd apex && pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./
COPY requirements.txt /tmp/requirements.txt # requirements из репы с ru-gpts
RUN pip install -r /tmp/requirements.txt
ENTRYPOINT [ "/bin/bash", "-l", "-c" ]

Возможно завести обучение на windows 10?
llvm-9 поставляется без llvm-config который нужен для сборки triton
Попытки скомпилировать llvm-9 не привели к результату, где-то глубоко в интернетах нашел бинарники llvm 11 с нужными бинарниками llvm-config.


При сборке triton перестал жаловится на отсутствие llvm-config, но он не компилится из-за кучи не понятных ошибок..


Кто смог запустить на win10 — pretrain_megatron.py?

В windows 10 на RTX 2080 спокойно завелось.

на каком минимально железе это можно запускать?

На 1080 должно влезть, medium-модель будет и на младших карточках работать.
На 1030?
Я не пробовал сам, но памяти должно хватить, по идее. Надо пробовать.
При недостатке видеопамяти, можно ли включить video-swap или эмуляцию (пусть и долгую) на CPU?

На 2080 Large модель работает нормально, отвечает с задержкой 1-2 сек.
Кушает 4.6-5.5гб видеопамяти, если указывать символов на вывод больше то 8гб может не хватить.
Также 5 гигабайт оперативной памяти, при старте на секунд 5-10 грузит проц 3900xt на 80%
Сам графический процессор при генерации текста сильно не нагружает, в целом у кого 1060 6GB, Large модель должна работать спокойно. Все карточки ценового сегмента ниже уже нет.


Также пробывал на CPU, откушало 12 гигабайт оперативной памяти, загружало процессор на 50-60%. Работало все довольно медленно, ответа нужно было ждать около ~20 секунд.

На 2080 Large модель работает нормально, отвечает с задержкой 1-2 сек.
Кушает 4.6-5.5гб видеопамяти, если указывать символов на вывод больше то 8гб может не хватить.
Также 5 гигабайт оперативной памяти, при старте на секунд 5-10 грузит проц 3900xt на 80%
Сам графический процессор при генерации текста сильно не нагружает, в целом у кого 1060 6GB, Large модель должна работать спокойно. Все карточки ценового сегмента ниже уже нет.

Также пробывал на CPU, откушало 12 гигабайт оперативной памяти, загружало процессор на 50-60%. Работало все довольно медленно, ответа нужно было ждать около ~20 секунд.

Интересно, можно ли с ее помощью выиграть в конкурсе Про//чтение, где решается задача, обратная написанию эссе — его проверка, но не только на грамматические ошибки, но и на семантику?
https://ai.upgreat.one/

Возможно. Надо пробовать.
я правильно понимаю, что поддержки only-cpu нет?
Да можно на CPU, конечно, но это будет адски медленно.
ну, работаем в тех условиях, которые есть)
сейчас пробую поставить anaconda3+tensorflow+ruGPT-3 на ЦП, но попахивает множественными косяками в зависимостях
Можно запустить на Colab.
Интересно, доживём ли мы до появления продвинутого ИИ, способного для любого произвольно взятого кода обнаружить, подтянуть и настроить/собрать весь набор зависимостей для сборки на данной конкретной системе?
А то работа с зависимостями в современном программировании (за редкими исключениями вроде Rust, Go и JS) — всё ещё кромешный ад. И в отсутствие доброго дяди-майнтейнера иногда может оказаться проще написать код заново, чем заставить собраться и запуститься уже написанный.
Слушайте, ну объясните мне, кто-то реально видит хотя бы в одном из продемонстрированных примеров что-то полезное? Все эти сгенерированные тексты могут для чего-то пригодиться? Произведённый код может пойти в продакшн? Китайская комната остаётся китайской комнатой, результат работы всё такой же бред, как и 5 лет назад, и 15, и 25. Это становится видно уже и в выборках новостей, и в результатах поиска — везде, куда этот мрак проникает. В мире всё больше ценятся компании которые НЕ предоставляют своим клиентам машинное обучение, а решают их задачи силами живых сотрудников. Выбирая банк или провайдера с чатботом в поддержке или с живым сотрудником — никто в здравом уме не выберет чатбота (и они уже начинают пропадать у адекватных компаний).
Я в чём-то ошибаюсь?
Все эти сгенерированные тексты могут для чего-то пригодиться

Да, например: Общение с NPC в играх, чтобы он мог не просто выдавать набор реплик, но и подерживать более-менее осмысленный диалог.
Да пробовал это геймдев уже сто тысяч раз, ни у кого не получилось.
НЛО прилетело и опубликовало эту надпись здесь
Я даже представляю себе будущее игровой индустрии:
Задонать $100, чтобы на месяц подключить всех NPC к GPT-3-medium
Задонать $200, чтобы подключить всех к GPT-3-large
Задонать $400, чтобы подключить всех к GPT-3-huge
Задонать $800, чтобы подключить всех NPC к GPT-4
Задонать $1600, чтобы целый месяц все ваши NPC управлялись живым DM'ом…

Главное, чтобы оно было для получения положительных эмоций, а не какой-то новой информации.

У пабмеда/медлайна весьма четко структурированные базы и абстракты по биологиям медицинам в ней, 30М+ публикаций несколько сот гиг XML. Но фултекст только в Либгене, 80М+ публикаций причём по всем наукам. Проблемка что размерчик Либгена думаю тер 70-80 тк PDF. Но в принципе закраудсорсив можно навалиться и за 1-2 месяца качнуть.

Эх, когда ж эти PDF на TeX заменят, где всё содержимое чистыми текстом?..


Хотя, небось раньше появится движок распознавания текстов с формулами и иллюстрациями прямо из видео потока в семантические сети...

Добрый день! Спасибо за материал! Я прочитал его просто как новость, но стало очень интересна эта область. Может быть что нибудь посоветуете прочитать для хотя бы поверхностного ознакомления?


Можно ли данную сеть применять для распознавания машинного текста?

Книга «Грокаем глубокое обучение» — Траск Эндрю.
Эта сеть не для распознавания машинного текста, а для его машинной генерации.
Может кто-нибудь запустить эту модель через веб-интерфейс или API и дать ссылку, чтобы просто поиграться?
Через несколько дней будет официальная демка.
А есть какой-нибудь официальный блог, твиттер или канал в телеграме, кроме блога на хабре? Очень не хотелось бы пропустить демку
Вот демка: 37.18.121.13:3000/ru/warp/gpt-3
Прошу извинить, что так долго.

В качестве неофициальной демки поднял модель как бота в Telegram, если ему написать текст, допишет продолжение: @gpt3_rus_bot


На случай хабраэффекта вот исходник бота: https://colab.research.google.com/drive/1-GWqrITKBuS9RtZx9yGXttzkZnX0tvKM?usp=sharing. Ему надо только токен прописать от @BotFather.

Спасибо, очень долго ждал релиз от Сбера. Теперь понятно, почему они не слишком торопятся ) Мне кажется, модель пока сырая, возможностями официального gpt от open ai пока и не пахнет
Я запускал на Colab.
Разрешите разбавить обсуждение критикой.

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

Это парадоксальное заявление, поэтому позвольте объяснить, в чем я вижу проблему.

Контент, созданный моделью, сложно либо невозможно отличить от контента, созданного человеком. Такой контент, попадая в интернет будет обеднять общий контекст. Если N лет спустя исследователь захочет обучить GPT-10, где он возьмет входные данные — чистый антропогенный контент?

Будучи общедоступной, модель может генерировать колоссальное количество контента. Весьма вероятно, что очень скоро интернет будет завален статьями и комментариями, прошедшими редакторскую правку ИИ, парафразами, либо полностью сгенерированными данными. Они не будут особым образом помечены — никто не узнает, кто автор, можно будет только догадываться.

Сейчас вы набрали данных из Википедии, Github и откуда-то еще. Возможно этого датасета достаточно для текущих задач. А для будущих?

Я надеюсь, что до публикации специалисты Сбера прикинули, будут ли в будущем проблемы с обучением, если, скажем, 50% входного датасета — результат работы предыдущих моделей. А если 10% или все 90%? Я надеюсь что они посчитали, насколько быстро произойдет загрязнение и какими будут последствия.
Я также надеюсь, что специалисты Сбера сделали осознанный выбор и опубликовали модель, руководствуясь не желанием попиариться, а желанием принести пользу индустрии. Если так, пожалуйста, аргументируйте, почему пользы от публикации по вашему мнению будет больше, чем вреда, и почему сейчас бесконтрольное распространение лучше контролируемого.

Думаю что ML в начале своего развития. Сейчас существует естественная преграда в создании сложных моделей — требуются огромные вычислительные ресурсы. Это хорошо или плохо? Я вижу аналогию с радиоактивными элементами. Уран и плутоний прекрасны и удивительны. Но надо ли бросать урановые слитки в толпу в начале атомной эры? Рассылать по школьным лабораториям?

Мне видится 2030-й год. ML-специалист выбивает крупный бюджет, чтобы купить «снимок» русскоязычного интернета за 2020-й год, потому что начиная с 2021-го года значительная часть рунета «оптимизирована» GPT-n. В снимке не будет современной повестки, новых терминов и понятий, но с этим придётся смириться, потому что альтернативы нет.

ML — не моя сфера, поэтому разубедите меня, это должно быть просто.
НЛО прилетело и опубликовало эту надпись здесь
Просто нужно будет ответственнее подходить к выбору текстов для обучения. Потому что если будет трэш на входе — трэш и на выходе. Если вы хотите, чтобы ваша сеть писала как в художественных произведениях — кормите её прозой и стихами. Если же кормить автоматически сгенерированными текстами, то и на выходе будет подражание таким текстам.

Тут всё просто, как с обучением детей. Если ребёнок не читает литературу, а смотрит только Ютуб — он и разговаривать будет, как эти ваши видеоблохеры.
НЛО прилетело и опубликовало эту надпись здесь
вы предполагаете, что если сейчас нельзя отличить сгенерированный текст от реального, то так будет и впредь. а ведь в будущем может быть два варианта: 1) их действительно нельзя будет отличить — но это значит, что искусственные тексты будут очень хорошими, и на них тоже можно тренироваться, и 2) их можно будет отличить — тогда их можно будет просто распознать и выкинуть.
Ждём новый вариант капчи — прочитайте шесть абзацев текста и отметьте те из них, которые написаны живыми людьми.

Напиши шесть абзацев текста так, чтобы они не были похожи на текст, написанный машиной.

Не прокатит, потому что уже написанных человеком текстов столько, что даже Google не в состоянии держать их полную базу. Боты просто будут копировать куски какого-нибудь малоизвестного текста.
Шикарный комментарий :) Мне кажется, в 2030 у нас будет больше возможностей забирать контент из более качественных и специализированных «антропогенных» источников, чем сейчас + методы фильтрации откровенно некачественной ерунды, которой и сейчас забиты форумы (по аналогии с методами добычи нефти из все более сложных источников или методов очистки руды из карьеров).

А с чего вы взяли, что антропогенные источники надежные? :)


Думаю через 10 лет появятся движки, которые смогут не просто проглатывать тонну текста и использовать это для генерации, а символьно ананализировать информацию, искать противоречия, запрашивать дополнительные данные для анализа, использовать не только текст. Так что отделить зерна от плевел они вполне смогут.


Возможно получится по аналогии с AlphaGo от DeepMind — сначала этот ИИ учился на человеческих партиях, а потом обучился с нуля играя только сам с собой, при этом по рейтингу обошел прежнюю версию. С реальной базой знаний о мире конечно все сложнее, но не исключено, что можно собрать таковую с минимальным количеством противоречий, проверяя входную информацию по нескольким источникам.

> А с чего вы взяли, что антропогенные источники надежные? :)
Вопрос в точку. Только наверное речь не о «надежности» а отличиях вообще. И впрямь, чем это антропогенный контент такой особенный? Ведь машина может писать эссе, писать код и стихи на достаточном уровне, и не отличишь…

А разница вот в чём.

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

Пример:
Некий ИИ, создающий субтитры для видео, услышав «Это жеребёнок! А где кобыла?» напишет «Это же ребёнок! А где кобыла?» потому что ему плевать на контекст и семантику. И создаст текст, содержащий очевидную чушь. Затем продвинутый ИИ следующего поколения проиндексирует этот текст и построит связь «нашёл ребёнка — ищи кобылу». Чушь на входе — чушь на выходе.

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

Для ИИ наш человеческий контент — сырьё для обучения. Я думал какую бы метафору подобрать и решил что подойдёт сравнение с продуктами.

Я бы сказал, что антропогенный контент — это «высококалорийный» продукт (новые смыслы, результаты размышлений и реального опыта). ИИ может на его базе создать что-то похожее, много похожего, но калорийность не изменится, потому что на выходе — комбинирование и симуляция, пусть и правдоподобная. Если бы ваша голова могла вместить весь объём датасета, то на любой output ИИ вы бы сказали «я это уже где-то видел».

В статье есть пример текста про «Коровку-коровку». ИИ удачно собрал новую сказку, но по сути это одна из миллардов комбинаций кусочков старых сказок. Новых смысловых калорий не прибавилось. Если попросить сгенерировать миллиард новых сказок ИИ это сделает, и что мы получим? Вырастет энтропия, а «смысловая калорийность» останется прежней. Даже чтобы узнать, какая из созданных сказок удачная, а какая нет, ИИ всё равно потребуется внешний оценщик — человек, тот самый источник антропогенных данных.

Помнится, что я сам работал в качестве GPT-3 — писал в институте рефераты без единой собственной мысли. Переваривал чужой контент. На выходе, после переваривания, сами понимаете что получается. Дерьмо получается. Но выглядело офигеть правдоподобно, прямо труд века. Если на базе моего реферата и тысяч таких же псевдоработ слепить новый реферат, а на его базе новый — уровень качественно не повысится. С каждой новой итерацией мы лишь будем наращивать энтропию всей системы и снизим качество рефератов в целом.

buriy написал, что если действительно нельзя будет отличить — это значит, что искусственные тексты будут очень хорошими. Правдоподобность — не единственный критерий качества. Для меня лично так вообще последний. Я с содроганием представляю себе Интернет, в котором и тексты и комментарии к текстам написаны роботами, которым пофиг что писать. Каждая секунда моей жизни, потраченная на чтение высеров ИИ будет потрачена впустую. Я не хочу выискивать сертифицированные страницы с лейблом «genuine content, made by humans». Я вообще не хочу гадать, что я только что прочитал — продукт размышлений живого человека, или трижды переваренные испражнения GPT-n. Я не хочу чтобы в html-формах ввода пришлось проверять, реальный человек печатает или прилетел готовый текст от GPT-спамера. Но к тому всё идёт. Мы, земляне, скоро будем сжигать миллиарды человекочасов, читая сказки мертвых роботов.

KvanTTT привёл пример AlphaGo от DeepMind, который поднял мастерство, играя сам с собой. Это некорректный пример. В игре всегда бинарный исход — выигрыш или проигрыш. ИИ может сам ранжировать эффективность любой стратегии — если выигрыш чаще, значит стратегия лучше. Оценить качество собственных идей в тексте ИИ не в состоянии, ему нужен кто-то внешний, с мозгами. Если на вход подать тексты другого ИИ в качестве эталонных, — будет деградация.
Вы заблуждаетесь принципиально. Как там, «может ли робот написать симфонию?»
Заголовок спойлера
image

Пока вы будете пребывать в парадигме «робот не производит новых смыслов», ваши выводы будут казаться логичными. Хотя доказательств того, что робот эти смыслы не производит, у вас нет. Более того, роботы уже давно производят эти новые смыслы, Николай Иронов подтвердит. Да, не все смыслы, и не всегда. Но лиха беда начало!
Давайте рассмотрим такую аналогию. Предположим, есть какой-то более общий способ измерить IQ, «калорийность», в задачах написания текстов. Хотели бы мы, чтобы тексты писали только существа с IQ<50? Неважно, люди или роботы. Да нет, нам их будет неинтересно читать! А хотели ли бы вы почитать умные полезные для вас мысли от существа с IQ>150? Да, хотели бы! Понимаете? Ответ на этот вопрос не зависит от того, человек написал текст или робот. А значит, вы просто роботошовинист и зря ругаете роботов. Запрограммируйте тест на IQ, работающий по тексту, фильтруйте — и вуаля, получите только интересные тексты.
Теперь второй связанный с этим вопрос. «Правдоподобность — не единственный критерий качества.» Я нигде не говорил про правдоподобность. Я говорил про «отличить». Если работы роботов будут ниже качеством, то эти тексты можно будет отличить по качеству. Это я имел в виду. Отличить по правильному или неправильному использованию фактов, по уровню логики, по наличию новых интересных выводов, по тому, заставил ли вас текст задуматься — в общем, берите любую нужную вам характеристику хороших текстов. Щит улучшается быстрее меча в более крупных текстах (начиная с текстов новостей), и нет никаких причин, что будет наоборот — до появления настоящего AGI (Общего ИИ), конечно.
Авторы GPT-2 писали, что испугались публикации самой крупной модели именно потому, что полученные тексты невозможно было отличить существовавшими на тот момент методами, и тем более человеком. Но быстро были найдены способы автоматически отличать такие тексты, так же как современными технологиями легко отличить тексты, сгенерированные марковскими цепочками (которых боялся мой оппонент в 2011м году примерно по тем же основаниям, что и вы: он утверждал, что борьба со спамом станет намного сложнее). Cейчас, в конце 2020го года, ограничения на публикацию моделей GPT-2 и GPT-3 уже не выдерживают никакой критики.
Но это всё не относится к коротким текстам, типа отзывов о ресторанах и продуктах, там человеку уже недостаточно данных для отличения робота и человека. Потому что люди ленятся и часто пишут шаблонные тексты, да и спамят, кстати, тоже сейчас люди. Половина прочитанных вами отзывов наверняка была спамом, созданным человеком за копейки. И половина прочитанных вами статей в интернете кстати тоже реврайтинг, сделанный людьми. А уж сколько почтового спама, сделанного по шаблонам, написанными людьми, вы прочитали… Теперь будут спамить ещё и роботы, но что от этого принципиально поменяется в этих коротких текстах?

Генерация текста — это ещё только самое начало написания хорошего материала. Текст начинается с определения главной мысли, которую хочет передать автор. Составляется план, определяются главные герои. Создаётся скелет текста, и только потом идёт "буквогенерация". GPT-3 только начинает учиться делать последнее из перечисленного, а ведь детей учат этим вещам в младших классах. Но, конечно, всему этому можно научить и ИИ, со временем.


Мы слышали истории про то, как известные писатели формируют канву нового произведения, а "литературные рабы" наполняют его мясом. Вот такие ниши и будут в первую очередь заполнятся ИИ. Также и в других профессиях, первыми роботизации поддаются малоинтелектуальные занятия.

"букварь для благородных девиц" все ближе к реальности

GPT-3 чрезвычайно проста, хорошо изучена и прекрасно масштабируется (что показано в экспериментах).
Нужна иерархия и память (вообще, структура трансформера может обеспечить иерархию в представлении данных, но это не гарантировано).
Для трансформеров уже есть набор вариаций архитектур с такими дополнениями.
Есть также другие вариации обучения, которые позволяют добиться того же качества в разы быстрее.
Но все это требует больших и дорогих экспериментов.
К тому же сейчас активно развивается направления графовых нейронных сетей. Для генерирующих моделей это сделает возможным применение графовых баз знаний (очень больших и хорошо структурированных, замечу) для построения модели мира и рассуждений.
GPT-4 скорее всего еще пойдет по экстенсивному пути (больше данных, больше модель), вероятно подправят задачу при обучении на более оптимальную и еще несколько дополнительных добавят.
А вот модели, подобные ей, и следующие поколения будут уже в разы мощнее и «умнее».
GPT-3 же уже дала большой толчок в решении многих частных задач NLP.
ruGPT-3, надеюсь, немного подбодрит ру-сообщество.
Если работы роботов будут ниже качеством, то эти тексты можно будет отличить по качеству. Это я имел в виду. Отличить по правильному или неправильному использованию фактов, по уровню логики, по наличию новых интересных выводов, по тому, заставил ли вас текст задуматься — в общем, берите любую нужную вам характеристику хороших текстов.




Это — реальный отзыв реального человека. Я честно затрудняюсь сформулировать условия, по которым вы сможете ЭТО отличить от результатов работы нейросети
для коротких текстов — не смогу, о чём и написал выше, а для длинных текстов — смогу.
но, в любом случае, вы как раз отлично проиллюстрировали сейчас мою мысль: Greenback жалуется на то, что именно на основе таких отзывов возможно строить качественные модели языка, но вот придёт GPT-3 и обязательно всё испортит!!!
Ну я все-таки согласен больше с Greenback. Ну просто если у нас уже сейчас люди пишут так, что тексты от нейросетей выглядят лучше и понятнее, то когда вам спам-боты начнут массово эти тексты слать на все сайты — текстовую информацию в принципе читать нельзя будет. Ну т.е. без какого-то шильдика «written by human» информации действительно доверять будет нельзя. Причем, учитывая современные достижения нейросетей — и с видео, и с картинками та же проблема уже прям рядом.

И ладно, если нейросети как-то еще смогут свои результаты туда-сюда распознавать при обучении и игнорировать. Живым людям-то как?
Тут варианта всего два:
1) нейросеть будет распознавать и убирать нейро-спам
2) действительно будет подтверждение «написано человеком» (на основе проверки по IP, по паспорту, по капче...). И на основании отсутствии такого подтверждения будет чиститься нейро-спам.
И так же как с обычным спамом, те сайты, что не будут принимать меры для борьбы со спамом, быстро растеряют посетителей.
Ну просто если у нас уже сейчас люди пишут так, что тексты от нейросетей выглядят лучше и понятнее

То есть знаменитое советское «буду сказать без бумажки» вы уже забыли?))

Прекрасный вариант — когда такой текст просто не пройдёт проверку :) С каким-нибудь корректным, но обидным для автора сообщением, типа «Ваш текст бессвязный и похож на бота».
ИМХО всё гораздо проще: человеки станут коверкать свой язык, чтобы тот как можно больше отличался по грамматике и стилю от источников обучения нейросетей.
Какие из перечисленных моделей ruGPT-3 полетят на Nvidia 1650 c 4Gb памяти на борту? Не умею в machine learning, но хочется попробовать :)
Я тоже в теме совсем не разбираюсь, но:
gpt3medium_based_on_gpt2 влезает на мою 1050ti (4gb)
На генерацию текста с max_length=100 уходит 3-5 секунд

В принципе любая из этих моделей спокойно запускается на CPU (i5-6400 4x2.7ghz), но на аналогичную генерацию уходит уже 7-10 секунд
Спасибо за цифры! Не знал, что на CPU можно запустить со сравнимым быстродействием
> публичные разделы Pikabu

Только посты или и комментарии тоже?
А сгенерить аннотацию к книге можно с помощью это модели?
— Они развлекались тем, что подсовывали искусственному интеллекту разные сборники информации с смотрели что из этого получится.
— Главное чтоб не давали ему посмотреть «Матрицу»!
А есть может ссылки на корпус текста? Было-бы здорово его посмотреть. Особенно подготовленный;-)
Ай молодцы! Круто. Давно ждал.
Теперь будем файнтюнить на свои задачки.
Будет много новых и интересных проектиков.
Как у вас лицензией? Можно использовать модель в коммерческих целях?
Пока выложено с MIT, но вопрос обсуждается в сторону менее ограничивающей лицензии.

У Пелевина в iPhuck10 показан подобный говорящий алгоритм. Полицейский алгоритм)

Человек может импровизировать на одну и ту же тему, и в зависимости от состояния сочинять разные истории. Интересно, если повторить этому ИИ запрос про «коровку-коровку», он выдаст тот же текст? Кто нибудь проверял это? Конечно после дообучения вывод может измениться.

Переводчики, тот же Гугл, часто спотыкаются на омонимах при переводах. Можно задать текст, кот. проверяю «разумность» переводчиков — Девушка с косой косила на косе траву косой. Переводчики путают косы при переводах. Интересно какой текст сгенерит этот «умник», когда столько неоднозначностей) Понятно, что будет зависеть от статистики встречаемости кос в разных контекстах в обучающей выборке. Внутреннюю модель мира они пока не способны создавать, и строить правильные отношения в семантической сети.
Можете попробовать «Порфирьевича» на gpt-2. Спойлер: текст выдаёт разный (хоть и связанный темой затравки).

А можно ли, и если можно то как, в данной модели использовать режим few-shot learning, как в оригинальной статье? Например написать "Q: 2x2 A: 4 Q: 3x3 A:" и получить ответ "9"? Я написал и получил следующее продолжение " 2 B: 3 C:2 E: 3" :|

До некоторой степени можно. Например, в диалоги она умеет. Но надо понимать, конечно, что это 760M, а не 175B, поэтому тут возможности поскромнее.
А может кто объяснить?
1. Почему не производится очистка текстов от простейших спецсимволов (&nbsp &mdash)
2. Почему не проверяются повторы предложений.
3. Обрывы на полуслове в конце часто проскакивают. Сложно завершить знаком препинания или закончить на пробеле?
результат
Context >>> laquo
10/24/2020 10:45:32 — WARNING — transformers.modeling_utils — Setting `pad_token_id` to 50256 (first `eos_token_id`) to generate sequence
ruGPT:
laquo; Памятник» в центре Екатеринбурга (напротив цирка на Цветном бульваре).«Памятник жертвам политических репрессий» в Екатеринбурге, возле памятника жертвам политических репрессий.«Памятник жертвам политических репрессий» в Екатеринбурге, на пересечении улиц Куйбышева, Куйбышева и Народной (бывшая ул. Куйбышева)  — памятник жертвам политических репресси
Скоро будет обновление модели, где html entities заменены будут + будет добавлен . Повторы проверяет не модель — проверку повторов вы можете добавить свою кастомную, какую хотите (как и логику для завершения генерации). В целом, я бы рекомендовал, чтобы было меньше повторов, просто использовать немного другие параметры генератора:

--temperature=0.9 \
--k=0 \
--p=0.95
Отлично генерирует новости. Уже все болит от смеха. Модель 175B будет в свободном доступе? Я правильно понял, что на данный момент у вас самая лучшая модель это GPT3-Large 760M?
Вот пример генерации.
Официальный представитель NASA заявил, что Гагарин не был в космосе. Однако его фотография, опубликованная в Интернете, подтверждает, что он действительно был в космосе. Об этом сообщает РИА Новости.
«На фотографии запечатлен момент, когда Гагарин выходил из кабины космического корабля „Восток-2“, чтобы поприветствовать советских космонавтов, — говорится в заявлении официального представителя NASA. — Он был одет в темно-синий комбинезон и шлем космического корабля „Восток-2“. Его фотографии были опубликованы в интернете. На ней отчетливо видно, что Гагарин вышел из кабины космического корабля „Восток-2“ в шлеме космического корабля „Восток-3“.
По мнению NASA, Гагарин был единственным человеком, который видел запуск ракеты „Восток-3“, который был осуществлен в СССР в 1961 году. Однако, как отмечается в заявлении, фотографии сделаны на борту корабля, который совершил свой первый полет в космос в 1961 году. В NASA заявили, что фотография не может быть подтверждена документально.
В начале апреля агентство NASA сообщило, что на снимках, сделанных космическим аппаратом „Кьюриосити“, запечатлен запуск ракеты „Сатурн-5“, которая стартовала из космического центра Кеннеди. На фотографиях видно, что в кабине находится не один космонавт, а несколько человек, в том числе космонавт Юрий Гагарин и астронавт Уильям Андерс. На сайте НАСА эти фотографии были опубликованы с комментарием, что они не могут быть идентифицированы как фотографии Гагарина.
В марте NASA опубликовало новые снимки „Кьюриосити“. Они были сделаны в момент, когда аппарат был уже на орбите. На них можно увидеть, что в кабине космического корабля находится не один космонавт, а несколько человек, в том числе астронавт Уилья
Пока большой вопрос, будет ли 175B модель в принципе, всё-таки её очень дорого учить. Но, возможно, всё-таки будет — думаем. На данный момент да, 760M самая большая модель, и ещё одна учится на ступеньку больше.
Спасибо Вам за материал!

Интересно посмотреть на какой стадии развития находятся современные нейросети:
image

Надеюсь мы когда-то увидим действительно осмысленные результаты :)
Нейросеть же предупредила — не очень. Зачем сразу валить-то?
Кто-нибудь может пояснить что такое эти параметры/гиперпараметры у модели, это аналог нейрона/синапса? В интернетах очень размыто пишут.

Понятно, что чем больше их, тем «умнее» модель. Интересует в контексте сравнения модели с человеческим мозгом.

Это количество связей между нейронами. Аналог синапса. Так как оптимизация при обучении делается по связям между нейронами, то число гиперпараметров показывает размер и сложность нейросети.


Для перевода в аналог количества нейронов в мозге, число гиперпараметров нейросети можно делить на 1000. Так как в мозге каждый нейрон имеет в среднем по 1000 связей.

Параметры сети — это числовые значения в составе сети. Над входными значениями сети и теми самыми миллионами значений параметров производятся некоторые арифметические операции — так вычисляются выходные значения сети.
Число параметров — грубый аналог числа связей между нейронами. С человеческим мозгом количественно это адекватно не сравнивается, архитектура сильно другая. Можно подсчитать, что число параметров в n млрд. раз меньше, чем связей в мозге, но сейчас всё ещё непонятно, много это или мало, т.к. ещё неизвестно, сколько параметров необходимо для работы подобия мозга.


Гиперпараметры — это параметры алгоритмов обучения сети и/или параметры структуры сети. Они описывают то, как сеть была создана. Например, количество слоёв, типы слоёв, размеры ядер свёртки, типы функций активации, размер обучающей выборки, алгоритм обучения, коэффициенты скорости обучения и т.д.

«Всё круто!», сберу — «респект и уважуха», «дорогу осилит идущий», я обоими руками за публикацию подобных моделей в открытый доступ, но меня не покидает ощущение, что GPT модели per se — это попытка «перехитрить» «теорему о бесконечных обезьянах», прикладывая к случайным данным экспоненциально растущие вычислительные мощности… Та история про миллион мартышек, которые пишут «Войну и Мир». Только здесь в роли мартышек выступает NDs-series или «Кристофари» (не важно), «проворачивающий назад» фарш из гигабайтов когда-то осмысленных текстов…
Со временем можно будет прикрутить что-то подобное к предсказателю слов для экранной клавиатуры в смартфонах, в чатах и т.д. Вплоть до функции «разговаривай вместо меня». :)
Сбер ведь уже запустил голосового помощника, которому можно делегировать звонки (запись в парикмахерскую и т.п.)
Когда примерно бот на gpt-3 появится в свободном доступе?
Как понимаю, нейронные сети, включая рекурентные или даже «Seq2seq с фокусами внимания», требуют для классификации гладкости и непрерывности классифицируемого объекта. Т.е. например, на картинке можно изменить достаточно большое количество пикселей и на ней все равно будет классифицироваться «кошка», и при увеличении шума мы получим плавное снижения вероятности узнавания.
Соотвественно, чем более проявляется свойство «малые изменения входных данных приводят большим изменениям классификации» тем менее применимы глубокие нейронные сети во всех их проявлениях.
Именно по этому проблема NLP гораздо сложнее распознавания образов, т.к. существуют описанные выше особенности натурального языка.
Но(!) в любых ЯП самые малые (!) изменения, например, работающего алгоритма сортировки, приведут не к малым изменениям качества работы алгоритма (чуть хуже / лучше сортирует), а он просто перестанет компилироваться и работать.
Соотвественно, у исследователей не должно быть ожиданий что нейронные сети и другие подходы в решении NLP позволят решить задачу автоматического программирования.

Всем привет!
Может кто-нибудь помочь (на возмездной основе разумеется!) прикрутить данную технологию?
ДатаСет есть
Пожалуйста напишите на drtoller@gmail.com — обсудим условия.

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


  1. Узкоспециализированные модели малой выборки (научно-прикладные: математика, физика, сельхоз, анатомия; гуманитарные; и так далее каждая со своей классификацией)
  2. Промежуточные, имеющие метки пересечений квалификаций узкоспециализированных.
    Модели-шины, работающие по принципу роутер-диспатчер, направляющие инпут по цепочке вниз в нужные кластеры моделей. А также обеспечивающие коммуникацию между моделями, (запрашивающими?) уточнения вне своей классификации в случаях со сложносоставным инпутом.
  3. Мастер модель, та самая 'всеполная', отвечающая на неклассифицируемые инпуты (не попавшие в кластеры).
Похоже дальнейшая тема выкладывания бота в сеть развития не получит, скорее всего его сразу прикрутят как технологию «болталки» к одному из ассистентов серии «салют». А жаль, от бота был бы хороший фидбэк
А что там по поводу демки с ботом?
Вот демка: 37.18.121.13:3000/ru/warp/gpt-3
Прошу извинить, что так долго.
Вот внешняя «красивая» ссылка) sbercloud.ru/warp/gpt-3
Попробовал и какое-то разочарование. Я ждал, что будут выдаваться диалоги как на скриншотах — квази-осмысленная беседа в русле одной темы, а выдаёт просто куски диалогов из каких-то текстов…

image

GPT-3 нужно специально "готовить" и на вход передавать некую затравку, структуру диалога, которую она будет поддерживать. Вывод модели тоже надо обрабатывать и отрезать лишние предсказания вопросов. Кроме того, чтобы у бота была краткосрочная память, в затравку нужно на каждом шаге добавлять последние N вопросов и ответов из истории переписки.


Вот пример инициализации сессии вопросов-ответов на английском:


Q: What is human life expectancy in the United States?
A: Human life expectancy in the United States is 78 years.

Q: Who was president of the United States in 1955?
A: Dwight D. Eisenhower was president of the United States in 1955.

Q: What party did he belong to?
A: He belonged to the Republican Party.

Q: Who was president of the United States before George W. Bush?
A: Bill Clinton was president of the United States before George W. Bush.

Q: Who won the World Series in 1995?
A: The Atlanta Braves won the World Series in 1995.
Подскажите пожалуйста, как запустить сеть в режиме чата?
Разобрался с режимами эссе и генерации текста, хотелось бы попробовать теперь чат. Заранее спасибо.
Вот демка: 37.18.121.13:3000/ru/warp/gpt-3
Прошу извинить, что так долго.

Чтобы получился диалог, надо дать соответствующую затравку на вход модели. Например,

«Петя: привет! как дела?
Маша: привет) дела нормально. а у тебя как?
Петя: у меня просто отлично :) как провела лето?»
Два часа назад была попытка списать с вашей карты четыре тысячи рублей. Вы подтверждаете этот платеж?

Нет, не подтверждаю. Я ничего не переводил.

Вы уверены?

Да.

Результат работы:
Странно, не похоже, чтобы вы что-то переводили… А кто вам помог снять с карты четыре тысячи рублей?


Я вижу у этой системы явный потенциал…

Спасибо за интересную разработку!
Остался небольшой вопросик: как сохранять модель локально? Я долго ждал ее загрузки (3.14 ГБ) после чего несколько раз пользовался моделью. Но после перезагрузки компьютера модель приходится опять скачивать. Как избежать постоянного скачивания модели из сети?

Попробовал еще раз- теперь модель сохраняется :)
Возможно это было связано с тем, что я переустанавливал библиотеки (Pytorch и TensorFlow).

Зарегистрируйтесь на Хабре, чтобы оставить комментарий