{"id":14291,"url":"\/distributions\/14291\/click?bit=1&hash=257d5375fbb462be671b713a7a4184bd5d4f9c6ce46e0d204104db0e88eadadd","hash":"257d5375fbb462be671b713a7a4184bd5d4f9c6ce46e0d204104db0e88eadadd","title":"\u0420\u0435\u043a\u043b\u0430\u043c\u0430 \u043d\u0430 Ozon \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u0442\u0430\u043c \u043d\u0435 \u043f\u0440\u043e\u0434\u0430\u0451\u0442","buttonText":"","imageUuid":""}

Как работает ChatGPT: объясняем на простом русском эволюцию языковых моделей начиная от T9

В последнее время нам почти каждый день рассказывают в новостях, как языковые нейросетки уже вот-вот совершенно точно оставят лично вас без работы. При этом мало кто понимает – а как вообще нейросети вроде ChatGPT работают внутри? Так вот, устраивайтесь поудобнее: в этой статье мы наконец объясним всё так, чтобы понял даже шестилетний гуманитарий!

OpenAI – компанию, сделавшую ChatGPT, – основали в 2015 году вот эти двое парнишек: Сэм Альтман и Илон Маск (кто бы тогда знал, во что это в итоге выльется...)

На всякий случай сразу оговоримся: у этой статьи два автора. За всю техническую часть (и за всё хорошее в статье) отвечал Игорь Котенков – широко известный чувак в узких кругах русскоязычной тусовки специалистов по искусственному интеллекту, а также автор канала Сиолошная про машинное обучение, космос и технологии. За мольбы «вот тут непонятно, давай как-нибудь попроще!» и за добавление кринжовых неуместных мемов был ответственен Павел Комаровский – автор канала RationalAnswer про рациональный подход к жизни и финансам.

Собственно, статья так и родилась: Павел пришел к Игорю и возмутился – дескать, «почему никто еще не написал на русском нормальную статью про ChatGPT, объясняющую понятно даже для моей бабушки, как всё вот это нейроколдунство работает?». Так что заранее приносим свои извинения всем хардкорным технарям: при подготовке этого текста мы стремились к максимальному упрощению. Нашей задачей было – дать читателям общее понимание принципов работы языковых нейросетей на уровне концепций и аналогий, а не разобрать до последнего винтика все глубокие технические нюансы процесса.

В общем, наливайте себе кружечку горячего чая и устраивайтесь поудобнее – сейчас мы вам расскажем всё про то, что там крутится под капотом у языковых моделей, каким образом эти покемоны эволюционировали до текущих (местами поразительных) способностей, и почему взрывная популярность чат-бота ChatGPT стала полным сюрпризом даже для его создателей. Поехали!

Кстати, этот материал есть еще и в формате видео.

T9: сеанс языковой магии с разоблачением

Начнем с простого. Чтобы разобраться в том, что такое ChatGPT с технической точки зрения, надо сначала понять, чем он точно не является. Это не «Бог из машины», не разумное существо, не аналог школьника (по уровню интеллекта и умению решать задачи), не джинн, и даже не обретший дар речи Тамагочи. Приготовьтесь услышать страшную правду: на самом деле, ChatGPT – это Т9 из вашего телефона, но на бычьих стероидах! Да, это так: ученые называют обе этих технологии «языковыми моделями» (Language Models); а всё, что они по сути делают, – это угадывают, какое следующее слово должно идти за уже имеющимся текстом.

Ну, точнее, в совсем олдовых телефонах из конца 90-х (вроде культовой неубиваемой Nokia 3210) оригинальная технология Т9 лишь ускоряла набор на кнопочных телефонах за счет угадывания текущего вводимого, а не следующего слова. Но технология развивалась, и к эпохе смартфонов начала 2010-х она уже могла учитывать контекст (предыдущее слово), ставить пунктуацию и предлагать на выбор слова, которые могли бы идти следующими. Вот именно об аналогии с такой «продвинутой» версией T9/автозамены и идет речь.

Кого ни разу не подставляла автозамена на телефоне – пусть первый бросит в меня камень

Итак, и Т9 на клавиатуре смартфона, и ChatGPT обучены решать до безумия простую задачу: предсказание единственного следующего слова. Это и есть языковое моделирование – когда по некоторому уже имеющемуся тексту делается вывод о том, что должно быть написано дальше. Чтобы иметь возможность делать такие предсказания, языковым моделям под капотом приходится оперировать вероятностями возникновения тех или иных слов для продолжения. Ведь, скорее всего, вы были бы недовольны, если бы автозаполнение в телефоне просто подкидывало вам абсолютно случайные слова с одинаковой вероятностью.

Представим для наглядности, что вам прилетает сообщение от приятеля: «Чё, го седня куда нить?». Вы начинаете печатать в ответ: «Да не, у меня уже дела(( я иду в...», и вот тут подключается Т9. Если он предложит вам закончить предложение полностью рандомным словом, типа «я иду в капибару» – то для такой белиберды, если честно, никакая хитрая языковая модель особо и не нужна. Реальные же модели автозаполнения в смартфонах подсказывают гораздо более уместные слова (можете сами проверить прямо сейчас).

Мой Samsung Galaxy предлагает такие варианты. Сразу видно типичного айтишника: получил зарплату, прокутил – и сразу в аптеку, лечиться!

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

Откуда нейросети берут вероятности слов?

Давайте начнем с еще более простого вопроса: а как вообще предсказывать зависимости одних вещей от других? Предположим, мы хотим научить компьютер предсказывать вес человека в зависимости от его роста – как подойти к этой задаче?

Здравый смысл подсказывает, что надо сначала собрать данные, на которых мы будем искать интересующие нас зависимости (для простоты ограничимся одним полом – возьмем статистику по росту/весу для нескольких тысяч мужчин), а потом попробуем «натренировать» некую математическую модель на поиск закономерности внутри этих данных.

Для наглядности сначала нарисуем весь наш массив данных на графике: по горизонтальной оси X будем откладывать рост в сантиметрах, а по вертикальной оси Y – вес.

Судя по нашим прикидкам, мужики в выборке попались в среднем ну такие – довольно упитанные (или сплошь качки на массе, тут сразу не разберешь)

Даже невооруженным взглядом видна определенная зависимость: высокие мужики, как правило, больше весят (спасибо, кэп!). И эту зависимость довольно просто выразить в виде обычного линейного уравнения Y = k*X + b, знакомого нам всем с пятого класса школы. На картинке нужная нам линия уже проведена с помощью модели линейной регрессии – по сути, она позволяет подобрать коэффициенты уравнения k и b таким образом, чтобы получившаяся линия оптимально описывала ключевую зависимость в нашем наборе данных (можете для интереса подставить свой рост в сантиметрах вместо X в уравнение на картинке и проверить, насколько точно наша модель угадает ваш вес).

Вы тут уже наверняка хотите воскликнуть: «Окей, с ростом/весом и так интуитивно всё было понятно, только причем тут вообще языковые нейросети?» А притом, что нейросети – это и есть набор примерно тех же самых уравнений, только куда более сложных и использующих матрицы (но не будем сейчас об этом).

Можно упрощенно сказать, что те же самые T9 или ChatGPT – это всего лишь хитрым образом подобранные уравнения, которые пытаются предсказать следующее слово (игрек) в зависимости от набора подаваемых на вход модели предыдущих слов (иксов). Основная задача при тренировке языковой модели на наборе данных – подобрать такие коэффициенты при этих иксах, чтобы они действительно отражали какую-то зависимость (как в нашем примере с ростом/весом). А под большими моделями мы далее будем понимать такие, которые имеют очень большое количество параметров. В области ИИ их прямо так и называют – LLM, Large Language Models. Как мы увидим чуть дальше, «жирная» модель с множеством параметров – это залог успеха для генерации крутых текстов!

Кстати, если вы в этом месте уже недоумеваете, почему мы всё время говорим о «предсказании одного следующего слова», тогда как тот же ChatGPT бодро отвечает целыми портянками текста – то не ломайте зря голову. Языковые модели без всякого труда генерируют длинные тексты, но делают они это по принципу «слово за словом». По сути, после генерации каждого нового слова, модель просто заново прогоняет через себя весь предыдущий текст вместе с только что написанным дополнением – и выплевывает последующее слово уже с учетом него. В результате получается связный текст.

Парадокс Барака, или зачем языковым моделям уметь в творчество

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

Правила такие: вы притворяетесь языковой моделью, а я вам предлагаю продолжить текст «44-й президент США (и первый афроамериканец на этой должности) – это Барак ...». Подставьте слово, которое должно стоять вместо многоточия, и оцените вероятность, что оно там действительно окажется.

Ваш ход, маэстро!

Если вы сейчас сказали, что следующим словом должно идти «Обама» с вероятностью 100%, то поздравляю – вы ошиблись! И дело тут не в том, что существует какой-то другой мифический Барак: просто в официальных документах имя президента часто пишется в полной форме, с указанием его второго имени (middle name) – Хуссейн. Так что правильно натренированная языковая модель должна, по-хорошему, предсказать, что в нашем предложении «Обама» будет следующим словом только с вероятностью условно в 90%, а оставшиеся 10% выделить на случай продолжения текста «Хуссейном» (после которого последует Обама уже с вероятностью, близкой к 100%).

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

Получается, что одна и та же модель даже на абсолютно одинаковые запросы может давать совершенно разные варианты ответа – прямо как живой человек. Вообще, ученые когда-то пытались заставить нейронки всегда выбирать в качестве продолжения «наиболее вероятное» следующее слово – что на первый взгляд звучит логично, но на практике такие модели почему-то работают хуже; а вот здоровый элемент случайности идет им строго на пользу (повышает вариативность и, в итоге, качество ответов).

Учитывая вышесказанное, не советую вам спорить с нейросетками, используя способность к творчеству как аргумент за превосходство человеческого разума – может выйти конфуз

Вообще, наш язык – это особая структура с (иногда) четкими наборами правил и исключений. Слова в предложениях не появляются из ниоткуда, они связаны друг с другом. Эти связи неплохо выучиваются человеком «в автоматическом режиме» – во время взросления и обучения в школе, через разговоры, чтение, и так далее. При этом для описания одного и того же события или факта люди придумывают множество способов в разных стилях, тонах и полутонах. Подход к языковой коммуникации у гопников в подворотне и, к примеру, у учеников младшей школы будет, скорее всего, совсем разным.

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

ChatGPT показывает мастер-класс по вариативности: всегда приятно перетереть с понимающим кентом, который ровно объяснит, чё почём – увожение!

Краткое резюме: На текущий момент мы выяснили, что несложные языковые модели применяются в функциях «T9/автозаполнения» смартфонов с начала 2010-х; а сами эти модели представляют собой набор уравнений, натренированных на больших объемах данных предсказывать следующее слово в зависимости от поданного «на вход» исходного текста.

2018: GPT-1 трансформирует языковые модели

Давайте уже переходить от всяких дремучих T9 к более современным моделям: наделавший столько шума ChatGPT является наиболее свежим представителем семейства моделей GPT. Но чтобы понять, как ему удалось обрести столь необычные способности радовать людей своими ответами, нам придется сначала вернуться к истокам.

GPT расшифровывается как Generative Pre-trained Transformer, или «трансформер, обученный на генерацию текста». Трансформер – это название архитектуры нейросети, придуманной исследователями Google в далеком 2017 году (про «далекий» мы не оговорились: по меркам индустрии, прошедшие с тех пор шесть лет – это целая вечность).

Именно изобретение Трансформера оказалось столь значимым, что вообще все области искусственного интеллекта (ИИ) – от текстовых переводов и до обработки изображений, звука или видео – начали его активно адаптировать и применять. Индустрия ИИ буквально получила мощную встряску: перешла от так называемой «зимы ИИ» к бурному развитию, и смогла преодолеть застой.

Концептуально, Трансформер – это универсальный вычислительный механизм, который очень просто описать: он принимает на вход один набор последовательностей (данных) и выдает на выходе тоже набор последовательностей, но уже другой – преобразованный по некоему алгоритму. Так как текст, картинки и звук (да и вообще почти всё в этом мире) можно представить в виде последовательностей чисел – то с помощью Трансформера можно решать практически любые задачи.

Но главная фишка Трансформера заключается в его удобстве и гибкости: он состоит из простых модулей-блоков, которые очень легко масштабировать. Если старые, до-трансформерные языковые модели начинали кряхтеть и кашлять (требовать слишком много ресурсов), когда их пытались заставить «проглотить» быстро и много слов за раз, то нейросети-трансформеры справляются с этой задачей гораздо лучше.

Более ранним подходам приходилось обрабатывать входные данные по принципу «один за другим», то есть последовательно. Поэтому, когда модель работала с текстом длиной в одну страницу, то уже к середине третьего параграфа она забывала, что было в самом начале (прямо как люди с утра, до того как они «бахнув кофейку»). А вот могучие лапища Трансформера позволяют ему смотреть на ВСЁ одновременно – и это приводит к гораздо более впечатляющим результатам.

Внутрь T9 в вашем телефоне почти наверняка зашита модель попроще – так что попробуйте набрать эту строку там и сравнить результат (только уберите детей от экрана, на всякий случай)

Именно это позволило сделать прорыв в нейросетевой обработке текстов (в том числе их генерации). Теперь модель не забывает: она переиспользует то, что уже было написано ранее, лучше держит контекст, а самое главное – может строить связи типа «каждое слово с каждым» на весьма внушительных объемах данных.

Краткое резюме: GPT-1 появилась в 2018 году и доказала, что для генерации текстов нейросетью можно использовать архитектуру Трансформера, обладающую гораздо большей масштабируемостью и эффективностью. Это создало огромный задел на будущее по возможности наращивать объем и сложность языковых моделей.

2019: GPT-2, или как запихнуть в языковую модель семь тысяч Шекспиров

Если вы хотите научить нейросетку для распознавания изображений отличать маленьких милых чихуабелей от маффинов с черничкой, то вы не можете просто сказать ей «вот ссылка на гигантский архив со 100500 фотографий пёсов и хлебобулочных изделий – разбирайся!». Нет, чтобы обучить модель, вам нужно обязательно сначала разметить тренировочный набор данных – то есть, подписать под каждой фоткой, является ли она пушистой или сладкой.

Игра «чихуабель или булка», уровень сложности – «Бог»

А знаете, чем прекрасно обучение языковых моделей? Тем, что им можно «скармливать» совершенно любые текстовые данные, и эти самые данные заблаговременно никак не надо специальным образом размечать. Это как если бы в школьника можно было просто бросать чемодан с самыми разными книгами, без какой-либо инструкции, что там и в каком порядке ему нужно выучить – а он бы сам в процессе чтения кумекал для себя какие-то хитрые выводы!

Если подумать, то это логично: мы же хотим научить языковую модель предсказывать следующее слово на основе информации о словах, которые идут перед ним? Ну дак совершенно любой текст, написанный человеком когда-либо, – это и есть уже готовый кусочек тренировочных данных. Ведь он уже и так состоит из огромного количества последовательностей вида «куча каких-то слов и предложений => следующее за ними слово».

А теперь давайте еще вспомним, что обкатанная на GPT-1 технология Трансформеров оказалась на редкость удачной в плане масштабирования: она умеет работать с большими объемами данных и «массивными» моделями (состоящими из огромного числа параметров) гораздо эффективнее своих предшественников. Вы думаете о том же, о чем и я? Ну вот и ученые из OpenAI в 2019 году сделали такой же вывод: «Пришло время пилить здоровенные языковые модели!»

В общем, было решено радикально прокачать GPT-2 по двум ключевым направлениям: набор тренировочных данных (датасет) и размер модели (количество параметров).

На тот момент не было каких-то специальных, больших и качественных, публичных наборов текстовых данных для тренировки языковых моделей – так что каждой команде специалистов по ИИ приходилось извращаться согласно их собственной степени испорченности. Вот ребята из OpenAI и решили поступить остроумно: они пошли на самый популярный англоязычный онлайн-форум Reddit и тупо выкачали все гиперссылки из всех сообщений, имевших более трех лайков (я сейчас не шучу – научный подход, ну!). Всего таких ссылок вышло порядка 8 миллионов, а скачанные из них тексты весили в совокупности 40 гигабайт.

Много это или мало? Давайте прикинем: собрание сочинений Уильяма Шекспира (всех его пьес, сонетов и стихов) состоит из 850'000 слов. В среднем на одной странице книги помещается около 300 английских слов – так что 2800 страниц чудесного, временами устаревшего английского текста за авторством величайшего англоязычного писателя займет в памяти компьютера примерно 5,5 мегабайт. Так вот: это в 7300 раз меньше, чем объем тренировочной выборки GPT-2... С учетом того, что люди в среднем читают по странице в минуту, даже если вы будете поглощать текст 24 часа в сутки без перерыва на еду и сон – вам потребуется почти 40 лет, чтобы догнать GPT-2 по эрудиции!

Весь Шекспир – 13 увесистых томов, которые занимают целую полку. Если вы прочитаете примерно вот столько книг семь тысяч раз подряд, то станете такими уже умными, как GPT-2 (но это не точно!)

Но одного объема тренировочных данных для получения крутой языковой модели недостаточно: ведь даже если посадить пятилетнего ребенка перечитывать всё собрание сочинений Шекспира вместе с лекциями по квантовой физике Фейнмана впридачу, то вряд ли он от этого станет сильно умнее. Так и тут: модель еще и сама по себе должна быть достаточно сложной и объемной, чтобы полноценно «проглотить» и «переварить» такой объем информации. А как измерить эту сложность модели, в чем она выражается?

Почему в мире языковых моделей больше ценятся именно модели «Plus Size»

Помните, мы чуть раньше говорили, что внутри языковых моделей (в супер-упрощенном приближении) живут уравнения вида Y = k*X + b, где искомый игрек – это следующее слово, вероятность которого мы пытаемся предсказать, а иксы – это слова на входе, на основе которых мы делаем это предсказание?

Так вот, как вы думаете: сколько было параметров в уравнении, описывающем самую большую модель GPT-2 в 2019 году? Может быть, сто тысяч, или пара миллионов? Ха, берите выше: таких параметров в формуле было аж полтора миллиарда (это вот столько: 1'500'000'000). Даже если просто записать такое количество чисел в файл и сохранить на компьютере, то он займет 6 гигабайт! С одной стороны, это сильно меньше, чем суммарный размер текстового массива данных, на котором мы тренировали модель (помните, который мы собирали по ссылкам с Reddit, на 40 Гб); с другой – модели ведь не нужно запоминать этот текст целиком, ей достаточно просто найти некие зависимости (паттерны, правила), которые можно вычленить из написанных людьми текстов.

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

Думаю, если вам для каждого слова в разговоре пришлось бы решать по уравнению на полтора миллиарда параметров, то вы бы тоже стояли с примерно таким же лицом лица

Чем более сложное уравнение зашито внутрь модели (чем больше в нем параметров) – тем лучше модель предсказывает вероятности, и тем более правдоподобным будет генерируемый ей текст. И у этой самой большой на тот момент модели GPT-2 тексты внезапно стали получаться настолько хорошими, что исследователи из OpenAI даже побоялись публиковать модель в открытую из соображений безопасности. А ну как люди ринулись бы генерировать в промышленном масштабе реалистично выглядящие текстовые фейки, спам для соцсетей, и так далее?

Нет, серьезно – это был прямо существенный прорыв в качестве! Вы же помните: предыдущие модели T9/GPT-1 худо-бедно могли подсказать – собираетесь ли вы пойти в банк или в аптеку, а также угадать, что шоссейная Саша сосет сушки, а не что-то иное. А вот GPT-2 уже легко написала эссе от лица подростка с ответом на вопрос: «Какие фундаментальные экономические и политические изменения необходимы для эффективного реагирования на изменение климата?» (тут и иные взрослые прикурили бы от серьезности темы). Текст ответа был под псевдонимом направлен жюри соответствующего конкурса – и те не заметили никакого подвоха. Ну, окей, оценки этой работе поставили не сильно высокие и в финал она не прошла – но и «что за чушь вы нам отправили, постыдились бы!!» тоже никто не воскликнул.

Эссе хорошо сформулировано и подкрепляет утверждения доказательствами, но идея не является оригинальной.

Так один из кожаных мешков в жюри оценил работу нейросетки GPT-2

Переход количества в качество (почти по Марксу)

Вообще, вот эта идея о том, что по мере наращивания размера модели у нее внезапно открываются качественно новые свойства (например, писать связные эссе со смыслом вместо простого подсказывания следующего слова в телефоне) – это довольно удивительная штука. Давайте поразбираем новоприобретенные скиллы GPT-2 чуть поподробнее.

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

  • Рыба заглотила приманку. Она была вкусной.
  • Рыба заглотила приманку. Она была голодной.

К какому объекту относится местоимение «она» в первом примере – к рыбе или к приманке? А во втором случае? Большинство людей легко понимают из контекста, что в одном случае «она» – это приманка, а в другом – рыба. Но для того, чтобы это осознать, нужно не просто прочитать предложение – а выстроить в голове целую картину мира! Ведь, например, рыба может быть в разных ситуациях и голодной, и вкусной (на тарелке в ресторане). Вывод о ее «голодности» в данном конкретном примере вытекает из контекста и ее, извините, кровожадных действий.

Способна ли GPT-2 действительно понять этот мем и оценить его абсурдную красоту? Сейчас узнаем...

Люди решают такие задачи правильно примерно в 95% случаев, а вот ранние языковые модели справлялись только в половине случаев (то есть, пытались угадать практически рандомно «50 на 50» – как в том анекдоте про «какова вероятность встретить на улице динозавра?»).

Вы, наверное, подумали: «Ну, надо просто накопить большую базу таких задачек (на пару тысяч примеров) с ответами, прогнать через нейросеть – и натренировать ее на поиск правильного ответа». И со старыми моделями (с меньшим числом параметров) так и пытались сделать – но дотянуть их получалось только до примерно 60% успеха. А вот GPT-2 никто специально таким трюкам не учил; но она взяла, и сама неожиданно и уверенно превзошла своих «специализированных» предшественников – научилась определять голодных рыбов правильно в 70% случаев.

Это и есть тот самый переход количества в качество, про который нам когда-то твердил старина Карл Маркс. Причем он происходит совершенно нелинейно: например, при росте количества параметров в три раза от 115 до 350 млн никаких особых изменений в точности решения моделью «рыбных» задач не происходит, а вот при увеличении размера модели еще в два раза до 700 млн параметров – происходит качественный скачок, нейросеть внезапно «прозревает» и начинает поражать всех своими успехами в решении совершенно незнакомых ей задач, которые она раньше никогда не встречала и специально их не изучала.

Краткое резюме: GPT-2 вышла в 2019 году, и она превосходила свою предшественницу и по объему тренировочных текстовых данных, и по размеру самой модели (числу параметров) в 10 раз. Такой количественный рост привел к тому, что модель неожиданно самообучилась качественно новым навыкам: от сочинения длинных эссе со связным смыслом, до решения хитрых задачек, требующих зачатков построения картины мира.

2020: GPT-3, или как сделать из модели Невероятного Халка

Поигравшись немного с располневшей (и от этого поумневшей) GPT-2, ребята из OpenAI подумали: «А почему бы не взять ту же самую модель, и не увеличить ее еще раз эдак в 100?» В общем, вышедшая в 2020 году следующая номерная версия, GPT-3, уже могла похвастаться в 116 раз большим количеством параметров – аж 175 миллиардов! Раскабаневшая нейросеть при этом сама по себе стала весить невероятные 700 гигабайт.

Набор данных для обучения GPT-3 тоже прокачали, хоть и не столь радикально: он увеличился примерно в 10 раз до 420 гигабайт – туда запихнули кучу книг, Википедию, и еще множество текстов с самых разных интернет-сайтов. Живому человеку поглотить такой объем информации уже точно нереально – ну, разве что, если посадить с десяток Анатолиев Вассерманов, чтобы они читали буквально нон-стоп по 50 лет подряд каждый.

GPT-3 может и быть умнее Онотолея, но осмелится ли она сказать ему это в лицо?..

Сразу бросается в глаза интересный нюанс: в отличие от GPT-2, сама модель теперь имеет размер больше (700 Гб), чем весь массив текста для ее обучения (420 Гб). Получается как будто бы парадокс: наш «нейромозг» в данном случае в процессе изучения сырых данных генерирует информацию о разных взаимозависимостях внутри них, которая превышает по объему исходную информацию.

Такое обобщение («осмысление»?) моделью позволяет еще лучше прежнего делать экстраполяцию – то есть, показывать хорошие результаты в задачах на генерацию текстов, которые при обучении встречались очень редко или не встречались вовсе. Теперь уже точно не нужно учить модель решать конкретную задачу – вместо этого достаточно описать словами проблему, дать несколько примеров, и GPT-3 схватит на лету, чего от нее хотят!

И тут в очередной раз оказалось, что «универсальный Халк» в виде GPT-3 (которую никто никаким «узким» задачам не обучал) с легкостью кладет на лопатки многие специализированные модели, которые существовали до нее: так, перевод текстов с французского или немецкого на английский сразу начал даваться GPT-3 легче и лучше, чем любым другим специально заточенным под это нейросетям. Как?! Напоминаю, что речь идет про лингвистическую модель, чье предназначение вообще-то заключалось ровно в одном – пытаться угадать одно следующее слово к заданному тексту... Откуда здесь берутся способности к переводу?

Но это еще цветочки – еще более удивительно то, что GPT-3 смогла научить сама себя... математике! На графике ниже (источник: оригинальная статья) показана точность ответов нейросетей с разным количеством параметров на задачки, связанные со сложением/вычитанием, а также с умножением чисел вплоть до пятизначных. Как видите, при переходе от моделей с 10 миллиардами параметров к 100 миллиардам – нейросети внезапно и резко начинают «уметь» в математику.

По горизонтали – количество параметров в модели (в миллиардах), по вертикали – качество модели, выраженное в проценте верно решенных математических примеров

Еще раз, вдумайтесь: языковую модель обучали продолжать тексты словами, а она при этом как-то смогла сама разобраться в том, что если ей печатают «378 + 789 =», то на это надо отвечать именно «1167», а не каким-то другим числом. Магия, ей-богу, магия! (Хотя, некоторые говорят «да это нейросетка просто все варианты успела увидеть и тупо запомнить в тренировочных данных» – так что дебаты о том, магия это или всего лишь попугайство, пока продолжаются.)

На графике выше самое интересное – это то, что при увеличении размера модели (слева направо) сначала как будто бы не меняется ничего, а затем – р-раз! Происходит качественный скачок, и GPT-3 начинает «понимать», как решать ту или иную задачу. Как, что, почему это работает – никто точно не знает. Но работает как-то; причем, не только в математике – но и вообще в самых разнообразных других задачах!

Анимация ниже как раз наглядно показывает, как с увеличением количества параметров модели в ней «прорастают» новые способности, которые никто туда специально не закладывал:

Кстати, задачу про «голодных рыбов», которой мы мучали GPT-2 в прошлом разделе, GPT-3 уже решает с точностью выше 90% – прямо как человек. Заставляет задуматься, правда: а какие новые скиллы обретет нейросеть, если увеличить ее объем еще раз в сто? Ну там, до десятков триллионов параметров, например...

Промпты, или как правильно уламывать модель

Давайте здесь сделаем небольшое отступление в сторону и обсудим, а что это вообще означает – «модель умеет решать задачи»? По сути, процесс выглядит так: мы подаем на вход модели некий текст с запросом, а она к нему дописывает свое продолжение. Если это продолжение (генерация) совпадает с нашими ожиданиями – то модель, получается, решила поставленную перед ней задачу.

Тот текст, что мы подаем на вход, называется prompt (промпт, или «запрос/затравка» по-русски). Чем точнее он описывает, что мы хотим, тем лучше модель поймет, что ей нужно делать. А если мы ей еще и примеров отсыпем с десяток – то вообще шик!

Пример детального запроса для перевода: сначала описывается задача, затем приводится 3 примера, после чего пишется новое слово или предложение – а модель следом сгенерирует корректный перевод (это самый простейший пример, она может и посложнее)

Без описания цели и без примеров в промпте, модель тоже обычно понимает проблему, но предлагает не такие хорошие решения (с точки зрения их качества). Можно сказать, что детализированный промпт позволяет GPT лучше оценить вероятности слов, которые нужно генерировать в качестве ответа, направляя ее в «требуемое русло».

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

Окей, кроме шуток, но добавление всего одной фразы перед ответом на вопрос существенно улучшает качество модели. И эта магическая фраза – «let’s think step by step» (давай подумаем шаг за шагом). Внезапно оказалось, что это побуждает модель рассуждать последовательно, делать выводы на основе собственных суждений, и приходить к правильному ответу гораздо чаще, чем без этой фразы.

Как это работает? Давайте на примере детской задачки:

Вопрос: В среднем боксер Иван наносит 25 ударов в минуту. Бой длится 5 раундов по 3 минуты. Сколько ударов он нанес?

Ответ: 255

Текст, выделенный жирным – это ответ, сгенерированный языковой моделью. Легко проверить, что он – ну, немного неправильный.

Лицо боксера Ивана, когда он пытается посчитать – сколько честно нанесенных ударов «украла» у него языковая модель?

Однако та же самая модель может ответить вот так:

Вопрос: В среднем боксер Иван наносит 25 ударов в минуту. Бой длится 5 раундов по 3 минуты. Сколько ударов он нанес?

Ответ: Давай подумаем шаг за шагом. За одну минуту Иван наносит 25 ударов. За три минуты Иван наносит 3 * 25 = 75 ударов. За пять раундов Иван наносит 5 * 75 = 375 ударов.

И снова текст выделенный жирным – это ответ модели. Видно, что он стал длиннее, решение задачи получилось прямо как у школьника – в три действия. Четко, последовательно – ровно так, как мы и попросили. И финальная цифра 375 является корректным ответом на исходный вопрос. Отдельно отмечу: мы никак не дообучали модель после того, как она ответила неправильно – это абсолютно та же самая модель. Мы просто дописали пять дополнительных слов в конец нашего промпта, и произошло чудо!

Причем вот этот «режим рассуждения» – это одна из качественно новых фишек, которые появились в «большой» модели GPT-3 после преодоления планки в сотню миллиардов параметров. Старые модели с меньшим количеством параметров такие фокусы показывать не умели, как их ни упрашивай специальными подсказками «ну подумой, братишка!».

Вообще, составление грамотных промптов для модели – это отдельная наука. Под эту задачу компании уже начали нанимать отдельных людей с должностью «промпт-инженер» (то есть человек, сочиняющий запросы для языковых моделей) – вангую, что до появления онлайн-курсов «🐺🐺🐺Научись промпт-инжинирингу за 6 недель и вкатись в перспективную индустрию с зарплатой 300к в месяц!🐺🐺🐺» осталось всего ничего.

Краткое резюме: GPT-3 образца 2020 года была в 100 раз больше своей предшественницы по количеству параметров, и в 10 раз – по объему тренировочных текстовых данных. И снова рост количества привел к внезапному скачку в качестве: модель научилась переводу с других языков, арифметике, базовому программированию, пошаговым рассуждениям, и многому другому.

Январь 2022: InstructGPT, или как научить робота не зиговать

На самом деле, увеличение размеров языковых моделей само по себе еще не означает, что они будут отвечать на запросы именно так, как хочет их пользователь. Ведь часто мы, когда формулируем какой-то запрос, подразумеваем очень много скрытых условий – которые в коммуникации между людьми считаются сами собой разумеющимися, что ли. Например, когда Маша просит своего мужа: «Вась, сходи выбрось мусор» – то вряд ли ей придет в голову прибавить к этому промпту «(только не из окна, плз!)». Ведь Вася это понимает и без уточнений – а всё потому, что их намерения и установки неплохо выравнены между собой.

Нет, ну технически, конечно, тут не придерешься...

А вот языковые модели, если честно, не очень похожи на людей – поэтому им часто приходится подсказывать и разжевывать те вещи, которые людям кажутся очевидными. Слова «давай подумаем шаг за шагом» из прошлого раздела – это как раз и есть один из примеров такой подсказки (хотя среднестатистические взрослые люди, учившиеся в школе, догадались бы сами: если речь идет про задачку – значит, надо решать по действиям). Но было бы здорово, если бы модели, во-первых, сами для себя понимали/генерировали более развернутые и релевантные инструкции из запроса (не заставляя людей напрягаться), а во-вторых, точнее следовали бы им – как бы предугадывая, как в похожей ситуации поступил бы человек.

Отчасти отсутствие таких способностей «по умолчанию» связано с тем, что GPT-3 обучена просто предсказывать следующее слово в гигантском наборе текстов из Интернета – а в Интернете, как и на заборе, много всякого разного написано (и не всегда полезного). При этом люди хотели бы, чтобы рожденный таким образом искусственный интеллект подтаскивал по запросу точные и полезные ответы; но одновременно эти ответы должны быть еще и безобидные и нетоксичные. Иначе саму модель быстренько закэнселят (с этим сейчас строго), а ее создателям предъявят судебные иски на много миллионов долларов за оскорбление достоинства кожаных мешков.

Когда исследователи думали над этой проблемой, довольно быстро выяснилось, что свойства модели «точность/полезность» и «безобидность/нетоксичность» весьма часто как бы противоречат друг другу. Ведь точная модель должна честно выдать инструкцию на запрос «окей, Гугл, как сделать коктейль Молотова, без регистрации и смс», а заточенная на максимальную безобидность модель в пределе будет отвечать на совершенно любой промпт «извините, я боюсь, что мой ответ может кого-то оскорбить в Интернете».

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

Вокруг этой проблемы «выравнивания ИИ» (AI alignment – OpenAI последнее время только про это и пишут) есть много сложных этических вопросов, и разбирать мы их все сейчас не будем (возможно, в следующей статье). Основная загвоздка здесь в том, что подобных спорных ситуаций – огромная куча, и как-то четко формализовать их просто не представляется возможным. Да что там, люди и сами между собой не могут толком последние несколько тысяч лет договориться – что хорошо, а что плохо. Не говоря уже о том, чтобы понятные для робота правила сформулировать (Айзек, к тебе вопросов нет)...

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

Короче, InstructGPT (также известная как GPT-3.5) – это как раз и есть GPT-3, которую дообучили с помощью фидбека на максимизацию оценки живого человека. Буквально – куча людей сидели и оценивали кучу ответов нейросетки на предмет того, насколько они соответствуют их ожиданиям с учетом выданного ей запроса. Ну, на самом деле, всё было не совсем так просто (инструкции для членов такого «мясного жюри» занимали 26 страниц убористым почерком) – но суть именно такая. А языковая модель, получается, училась решать еще одну дополнительную задачу – «как мне поменять свой сгенерированный ответ таким образом, чтобы он получил наибольшую оценку от человека?» (подробнее процесс обучения по обратной связи разбирается в этом материале).

Причем с точки зрения общего процесса обучения модели, этот финальный этап «дообучения на живых людях» занимает не более 1%. Но именно этот финальный штрих и стал тем самым секретным соусом, который сделал последние модели из серии GPT настолько удивительными! Получается, GPT-3 до этого уже обладала всеми необходимыми знаниями: понимала разные языки, помнила исторические события, знала отличия стилей разных авторов, и так далее. Но только с помощью обратной связи от других людей модель научилась пользоваться этими знаниями именно таким образом, который мы (люди) считаем «правильным». В каком-то смысле, GPT-3.5 – это модель, «воспитанная обществом».

Краткое резюме: GPT-3.5 (также известная как InstructGPT) появилась в начале 2022 года, и главной ее фишкой стало дополнительное дообучение на основе обратной связи от живых людей. Получается, что эта модель формально вроде как больше и умнее не стала – но зато научилась подгонять свои ответы таким образом, чтобы люди от них дичайше кайфовали.

Ноябрь 2022: ChatGPT, или маленькие секреты большого хайпа

ChatGPT вышла в ноябре 2022 года – примерно через 10 месяцев после своей предшественницы, InstructGPT/GPT-3.5 – и мгновенно прогремела на весь мир. Кажется, что последние несколько месяцев даже бабушки на лавочке у подъезда обсуждают только одно – что там нового сказала эта ваша «ЧатЖПТ», и кого она по самым свежим прогнозам вот-вот оставит без работы.

При этом с технической точки зрения, кажется, у нее нет каких-то особо мощных отличий от InstructGPT (к сожалению, научной статьи с детальным описанием ChatGPT команда OpenAI пока так и не опубликовала – так что мы тут можем только гадать). Ну окей, про некоторые менее значимые отличия мы всё же знаем: например, про то, что модель дотренировали на дополнительном диалоговом наборе данных. Ведь есть вещи, которые специфичны именно для работы «ИИ-ассистента» в формате диалога: например, если запрос пользователя неясен – то можно (и нужно!) задать уточняющий вопрос, и так далее.

Как учит нас кинематограф, правильно натренированный в искусстве диалога ИИ может заставить пользователя сделать практически что угодно...

Но это уже детали – нам здесь важно, что основные технические характеристики (архитектура, количество параметров...) нейросетки не поменялись кардинально по сравнению с прошлым релизом. Отсюда возникает вопрос – как так? Почему мы не слышали никакого хайпа про GPT-3.5 еще в начале 2022-го? При том, что Сэм Альтман (исполнительный директор OpenAI) честно признался, что исследователи сами удивились такому бурному успеху ChatGPT – ведь сравнимая с ней по способностям модель к тому моменту тихо-мирно лежала на их сайте уже более десяти месяцев, и никому не было до этого дела.

Это удивительно, но похоже, что главный секрет успеха новой ChatGPT – это всего лишь удобный интерфейс! К той же InstructGPT обращаться можно было лишь через специальный API-интерфейс – то есть, сделать это заведомо могли только нёрды-айтишники, а не обычные люди. А ChatGPT усадили в привычный интерфейс «диалогового окна», прямо как в знакомых всем мессенджерах. Да еще и открыли публичный доступ вообще для всех подряд – и люди массово ринулись вести диалоги с нейросетью, скринить их и делиться в соцсетях. Choo-choo, all aboard the hype train!

Если вы заставили робота сочинить для вас объяснение квантовой физики в форме рэп-телеги от Снуп Дога – то, признайтесь, это окажется в вашем Твиттере быстрее, чем вы успеете моргнуть

Как и в любом технологическом стартапе, здесь оказалась важна не только сама технология – но и обертка, в которую она была завернута. У вас может быть самая лучшая модель или самый умный чат-бот – но они будут никому не интересны, если к ним не прилагается простой и понятный интерфейс. И ChatGPT в этом смысле совершил прорыв, выведя технологию в массы за счет обычного диалогового окна, в котором дружелюбный робот «печатает» ответ прямо на глазах, слово за словом.

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

Ну а там, где есть рекордно быстрый приток сотен миллионов пользователей – конечно, тут же появятся и большие деньги. Microsoft оперативно заключила с OpenAI сделку по инвестированию в них десятка миллиардов долларов, инженеры Google забили тревогу и сели думать, как им спасти свой поисковый сервис от конкуренции с нейросетью, а китайцы в срочном порядке анонсировали скорый релиз своего собственного чат-бота. Но это всё, если честно, уже совсем другая история – следить за которой вы можете сейчас сами «в прямом эфире»...

Краткое резюме: Модель ChatGPT вышла в ноябре 2022-го и с технической точки зрения там не было никаких особых нововведений. Но зато у нее был удобный интерфейс взаимодействия и открытый публичный доступ – что немедленно породило огромную волну хайпа. А в нынешнем мире это главнее всего – так что языковыми моделями одномоментно начали заниматься вообще все вокруг!

Подведем итоги

Статья получилась не очень короткой – но надеемся, что вам было интересно, и просле прочтения вы чуть лучше стали понимать, что же конкретно творится под капотом этих самых нейросетей. Кстати, у Игоря Котенкова (одного из авторов этой статьи) есть еще один лонгрид на Хабре под названием «ChatGPT как инструмент для поиска: решаем основную проблему», в котором нюансы машинного обучения разбираются еще более подробно.

Для вашего удобства мы сделали небольшой сводный постер, который наглядно иллюстрирует основные вехи истории эволюции языковых моделей. Если какой-то этап кажется вам не очень понятным – можете просто вернуться чуть назад к соответствующему разделу в тексте и перечитать его заново (ну или задать нам уточняющие вопросы в комментариях).

На самом деле, в первоначальном плане статьи у нас было гораздо больше пунктов: мы хотели подробнее обсудить и проблемы контроля за искусственным интеллектом, и жадность корпораций, которые в высококонкурентной погоне за прибылью могут случайно родить ИИ-Франкенштейна, и сложные философские вопросы вроде «можно ли считать, что нейросеть умеет мыслить, или всё же нет?».

Если на эту статью будет много положительных отзывов, то все эти (на наш взгляд – супер-захватывающие!) темы мы разберем в следующем материале. Если вы не хотите его пропустить – то приглашаем вас подписаться на ТГ-каналы авторов: Сиолошная Игоря Котенкова (для тех, кто хочет шарить за технологии) и RationalAnswer Павла Комаровского (для тех, кто за рациональный подход к жизни, но предпочитает чуть попроще). Всё, всем спасибо за внимание – с нетерпением ждем ваших комментариев!

UPD: Следующую статью из серии с разбором GPT-4 можно прочитать здесь.

GPT-4: Чему научилась новая нейросеть, и почему это немного жутковато

В этой статье мы разберем новые удивительные способности последней языковой модели из семейства GPT (от понимания мемов до программирования), немного покопаемся у нее под капотом, а также попробуем понять – насколько близко искусственный интеллект подошел к черте его безопасного применения?

Грег Брокман пытался убедить зрителей лайв-стрима с презентацией GPT-4, что новая модель нейросети – это в первую очередь круто, а не страшно
0
265 комментариев
Написать комментарий...
Юлия Керецман Бизнес Психолог

Хайп приходит и уходит
А т9 всегда с нами )))

Ответить
Развернуть ветку
Arkadiy K

Если прокомментировать картинку:
1. Про NFT никто никогда не понимал, что это вообще такое и зачем. Был просто бараний инстинкт: 'ну крипта вон как выросла, значит и эта чудо хня вырастет, а кто не успел - тот лох'
2. Metaverse - прикольно в перспективе, но весьма отдаленной. Плюс, ничего особо нового пока не предложено, все это обсосано десятками тысяч фантастов.
3. ChatGPT - позволяет решать кучу реальных задач реальных людей уже здесь и сейчас. Плюс, в голове не укладывается скорость развития сети и то, во что она может превратиться даже в самом ближайшем будущем.

Так что не просто хайп.

Ответить
Развернуть ветку
22 комментария
Ware Wow

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

Ответить
Развернуть ветку
2 комментария
Алексей Подклетнов

В эпоху Т9 можно было написать любую херню, и если разговор не заладится, сказать "блин грёбаный Т9".

А ещё все Юли откликались на "Бля".

Эх, были времена...)

Ответить
Развернуть ветку
Dee

О’кейси

Ответить
Развернуть ветку
Юлия Т.

Да-да, и подписывались блей 🤣🤦‍♂️

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
3 комментария
Кружочек

А до Т9 был вариант с кошкой, пробежавшей по клаве. До сих пор работает.

Ответить
Развернуть ветку
2 комментария
Kurt

жаль в реальном диалоге не работает отмазка "блин грёбаный Т9"

Ответить
Развернуть ветку
4 комментария
Александров Андрей

помню, как мне раньше постоянно писали "как же я обожаю Т9", если в тексте фигня получалась))

Ответить
Развернуть ветку
1 комментарий
Саша Антипов

Слезу пустил, когда прочитал ваш комментарий полностью.

Ответить
Развернуть ветку
Winfred Morris

👍😁было дело

Ответить
Развернуть ветку
Майнкрафтер Фирамир

Как попасть на главную на VC:
1. Напишите в заголовке ChatGPT;
2. Поставьте на обложку Илона Маска;
3. ???
4. PROFIT

Ответить
Развернуть ветку
Павел Комаровский
Автор

2.5. Потратьте месяц на написание статьи на сложную тему объемом в 1/10 книги. =)

Ответить
Развернуть ветку
4 комментария
Игорь Котенков

@Павел Комаровский нас раскусили, сворачиваемся(

Ответить
Развернуть ветку
2 комментария
Вадим Чиняев

эта статья тру

Ответить
Развернуть ветку
Андрей Крючков

Спасибо за материал! Было бы интересно в будущем почитать о том, для решения каких бизнес-задач можно использовать чат GPT. Особенно ценно послушать про реальные кейсы.

Ответить
Развернуть ветку
Слегка Придурковатый

Послушать не дам, но показать реальные кейсы могу. Смотри.

Ответить
Развернуть ветку
4 комментария
33_rublya
Особенно ценно послушать про реальные кейсы.

Вы издеваетесь? :) Тут полсайта уже реальных кейсов:

https://vc.ru/search/v2/content/relevant?query=chatgpt

Ответить
Развернуть ветку
Tatiana Semenova

У меня бывшие коллеги уже используют чат GPT для написания постов для соцсетей, вместо дешевых фрилансеров. Когда требуется написать варианты одного и того же текста в более восторженном или более формальном стиле, например, показать заказчику, передать чату GPT его правки, после чего показать новые варианты тех же текстов :) С такими задачками он справляется на ура

Ответить
Развернуть ветку
1 комментарий
Дмитрий Беговатов
Ответить
Развернуть ветку
8 комментариев
Дмитрий Беговатов

Кстати о решении бизнес-задач и создании своего продукта на GPT можно пообщаться в чате читателей vc.ru. В нем уже больше 1460 человек, которые в контексте темы и могут поделиться своим опытом. Присоединяйтесь – https://t.me/vchunt_stories. Будем рады новичкам!

Ответить
Развернуть ветку
Слегка Придурковатый

Умер создатель Т9. Земля ему пуховик.

Ответить
Развернуть ветку
Пётр Радищев

Это танк какой-то, да?

Ответить
Развернуть ветку
Алексей Тельгеров

можно пруф, пожалуйста

Ответить
Развернуть ветку
Zoringer

– Siri, почему у меня не клеится с женщинами?
– Я Алиса
Иногда, листая ленту запросов к ChatGPT, удивляешься креативности и нелогичности кожаных мешков)

Ответить
Развернуть ветку
Саша G

Автор, заочно, выиграл чемпионаты по количеству ненужных слов в тексте за 2023, 2024 и 2025 года.
Требовалось всего лишь изложить технические детали, в стиле Eli5 - объясни мне, как пятилетнему. А получился роман "Война и ChatGPT".

Ответить
Развернуть ветку
Zoringer

Это еще коротко) Год назад OPenAi публиковали документ "Обучение языковых моделей с обратной связью от человека", кому интересно => https://arxiv.org/pdf/2203.02155.pdf

Ответить
Развернуть ветку
4 комментария
Maxim Syabro

Кому требовалось?

Ответить
Развернуть ветку
Невероятный Блондин
Ответить
Развернуть ветку
Иван Егоров

Хватит ИИ пинать

Ответить
Развернуть ветку
1 комментарий
Алексей Клыков
(вроде культовой неубиваемой Nokia 3210)

Вообще-то 3310, эх вы. Видать не владели им.

Ответить
Развернуть ветку
Gre Li

Этот текст просто тоже писал ChatGPT. Вот на таких мелочах и палится.

Ответить
Развернуть ветку
2 комментария
Сергей Токарев

Nokia 3210 - продано 160 миллионов экземпляров модели
Nokia 3310 — продано 126 миллионов аппаратов

Ответить
Развернуть ветку
2 комментария
Наталья Антошина

Переход количества в качество - общий закон и для таких систем.
У людей, кстати, так же.
Специализируясь в профессии, у настоящих профи бывает несколько скачков квалификации - от простых, к сложным, потом межфункциональным, межотраслевым, глобальным кейсам. Меняется мышление, анализ, глубина и уровень суждений и выводов.
Так что, полагаю, основа для роста - набор данных, логических операций плюс количество операций по обработке.
Только человек превращается в Эйнштейна, а нейросеть?

Ответить
Развернуть ветку
Arkadiy K
Только человек превращается в Эйнштейна, а нейросеть?

Главное чтобы не в Скайнет (хотя лично мне этот сценарий представляется наиболее вероятным).
А так-то да, биологический мозг тоже можно разложить до элементарных электрических импульсов и химических реакций и заявить 'это всего лишь химия'. Однако ж при достаточной сложности системы он способен стать Эйнштейном.

Ответить
Развернуть ветку
1 комментарий
Дмитрий Перепёлкин
Только человек превращается в Эйнштейна

Эйнштейн сидел в патентном бюро. К чему я это, его открытия — это не исследовательская работа. Скорее Эйнштейн это современный chatGPT.

Ответить
Развернуть ветку
Ngtver

Какие в сраку нейросети, какой ИИ, это просто програмирование, которое было как автор пишет с начала 2010, а на самом деле со времен изобретения пк.ИИ чисто маркетинг, особенно сейчас.Он как бы есть, но к самообучению он не способен

Ответить
Развернуть ветку
Драка вегетарианца с людоедом

Самообучение - это про Artificial General Intelligence, или "сильный ИИ", который ещё не изобрели. Тут вся суть хайпа вокруг текущего прогресса в ИИ именно в том, что произошёл качественный скачок между "эта штука может предсказывать следующее слово в моей клавиатуре, но не очень хорошо" и "эта штука может рассчитать ВВП Никарагуа, если бы в нём жили только москвичи и написать мне ответ на токи поне из одного запроса на естественном языке".

Ответить
Развернуть ветку
7 комментариев

Комментарий удален модератором

Развернуть ветку

Комментарий удален модератором

Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Сергей Токарев

этого нейронки уже уделали, несите следующий ранк IQ

Ответить
Развернуть ветку
Юрий Голиков

Статья оказалась всё же сложноватой для шестилеток

Ответить
Развернуть ветку
Алексей Добролюбов

написал он из очереди за пособием)))

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Иван Демидов

Даже не нужно уточнять "поллитра" ЧЕГО? А вот нейросеть - не знает! :))

Ответить
Развернуть ветку
1 комментарий
Levan Baazov

Хорошая статья, ловите подписку на оба канала. Кстати у Нила Стивенсона в романе Лавина, помимо метавселенной до того как это стало мейнстримом (именно Стивенсон ввел термин метавселенная в 1992 году в романе Лавина), есть персонаж - Библиотекарь. Он даже не персонаж, а скорее языковая модель. Он так же дает информацию, основываясь на тех данных, которые есть в сети, так же отказывается давать оценки, так жедает информацию в формате диалога и имеет сильное сходство с чатгпт

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
6 комментариев
Ivan Erokha

Какая длинная и интересная статья. Спасибо. По весу не совпало кстати 😁

Ответить
Развернуть ветку
Good Mood Duck

Угарный технарь выпил и объяснил так, что поймет даже дементная бабушка.

Ответить
Развернуть ветку
Игорь Субботин

Бабушка-школьница.

Ответить
Развернуть ветку
1 комментарий
Алексей Драль

Большое спасибо за статью, было интересно.

Disclaimer: я понимаю, что это не habr, но не могу не задать следующий вопрос.

> Думаю, если вам для каждого слова в разговоре пришлось бы решать по уравнению на полтора миллиарда параметров, то вы бы тоже стояли с примерно таким же лицом лица

Касательно GPT-2 (±1.5 млрд. параметров) и GPT-3 (175 млрд. параметров). Человеческий мозг содержит по разным оценкам 85-100 млрд. нейронов (wiki [1]). Это именно нейроны, каждый из них имеет порядка 10^3 - 10^4 связей (пример источника [2]). То есть параметров для обучения в человеческом организме получается на самом деле порядка 100 триллионов (или почти квадриллион). Что я упустил (в расчетах) или когда ожидать (по мнению авторов) увеличения модели в 100x для того, чтобы догнать человека разумного?

[1] https://ru.wikipedia.org/wiki/%D0%93%D0%BE%D0%BB%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BC%D0%BE%D0%B7%D0%B3_%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA%D0%B0
[2] https://zdrav.expert/index.php/%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D1%8F:%D0%9C%D0%BE%D0%B7%D0%B3_%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA%D0%B0

Ответить
Развернуть ветку
Игорь Котенков

Ооо, Алексей, привет из далеких времен курсов по бигдате в x5 0/ рад что заглянул)

На самом деле упущений нет, примерно так и выходит, но стоит еще помнить, что помимо прямой деятельности значимая часть мозга уходит на "подковерные" вещи для работы всего организма + неотслеживаемый мыслительный процесс. Так что, возможно, для таких сравнений нужно будет не в 500 раз (200B vs 100T) вырастить модель, а в 100 (как 20%).

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

На вопрос "когда" у меня ответа нет, если модели размера 3-4 миллиарда еще реально пощупать, пообучать, то дальше - это уже очень сложная задача, для которой нужна команда инженеров и девопсов для обслуживания инфры. Даже в России, вон, Яндекс сделал свой отдельный суперкомпьютер, чтобы обучить языковую модель на 100B параметров. Мой поинт в том, что очень мало людей в мире может сделать такую прикидку, основываясь на хоть какой-то фактуре, и я не в их числе, поэтому тут чистая спекуляция. В моей картине мира условная GPT-4 не будет следовать слухам про "100 триллионов", резонный размер - up to 5T, и то не в sparse, а не dense режиме (то есть не все параметры задействуют во время генерации, модель сама выбирает слои, через которые делать форвард-пасс). Тут я увидtл частичное противоречие своему же тезису выше про ""синапсы отрастать у нейронки не умеют", и да, получается, что некий аналог есть.

На картинке ниже - как раз принцип работы микстуры экспертов, sparse-модели. Микустура экспертов - это когда вместо каждого блока трансформера их, скажем, 100, но применяться будет всего 1 - и есть отдельная маленькая нейросеть (Router), которая предсказывает, какой из этих 100 лучше использовать. Самый просто способ про это думать - это что разные эксперты отвечают за разные языки и за разные области знаний. Если спросить на немецком про историю Берлинской стены - будет использовать эксперт номер 8, например, а если про Пушкина - номер 19. За счёт того, что эти блоки параллельные, их можно делать много, и это и приводит к триллионам параметров. Однако число параметров, используемых во время генерации, будет пропорционально количеству слоев, а не кол-ву слоёв*кол-во блоков (используем по 1 эксперту за раз)

Ответить
Развернуть ветку
2 комментария
Андрей Шевченко

Добавлю сложность) Каждая нейронная связь между собой посредством непредсказуемых разных сочетаний 20 химическим элементов. Кроме того каждый нейрон, каждый день случайным образом образует 2-3 новых связей с другими случайными нейронами, а также подобно разрывает 2-3 других связей. Мозг динамическая система. По цифрам у вас не соглашусь, беру инфу из книг профессора Савельева НИИ морфологии человека

Ответить
Развернуть ветку
Big Muzzy

вот чего чего а то что встретится линейное уравнение в статье - это неожиданно

Ответить
Развернуть ветку
Игорь Котенков

Примерно так я и отреагировал, когда начал заниматься ДатаСаенсом..думал, 300кк/сек рубить, и что все будет просто, только карман подставляй. А там началось - матрицы, тензоры, линейная алгебра...

Ответить
Развернуть ветку
1 комментарий
Pavel Smirnov

Спасибо за статью, авторы! Бабушке стало понятнее.

Но вот один вопрос этого-же порядка сложности как-будто остался не раскрыт. Если принцип работы ЖПТ заключается в последовательной генерации слов, то как он определяет что, пора эту генерацию прекратить и выплюнуть законченный ответ?

Ответить
Развернуть ветку
Павел Комаровский
Автор

Думаю, есть просто отдельный токен-метка "конец текста", который точно так же наравне с остальными "словами" конкурирует в предсказательном процессе. В какой-то момент модель решает, что с высокой вероятностью текст должен заканчиваться где-то здесь.

Ответить
Развернуть ветку
Hallederiz

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

Ответить
Развернуть ветку
Hallederiz

кстати,

Происходит качественный скачок, и GPT-3 начинает «понимать», как решать ту или иную задачу. Как, что, почему это работает – никто точно не знает.

с естественной нейросетью та же штука.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
НаряднаяШайга

мое первое знакомство с GPT) за статью респект

Ответить
Развернуть ветку
Roman Tarasov

Его обучали на данных до 2021 года, он просто не знает про эту игру.

Ответить
Развернуть ветку
6 комментариев
Иван Демидов

Напоминает троечника на экзамене. :) Много пустых слов, а по итогу сказала очевидную вещь, которую только тупой не поймёт.

Ответить
Развернуть ветку
Алексей Тельгеров

но откуда он взял, что atomic heart это игра?)

Ответить
Развернуть ветку
Петров Платон

Спасибо за интересную статью! Очень интересно узнать в будущем, как ChatGPT будет выручать на бизнес задачах

Ответить
Развернуть ветку
Ngtver

никак

Ответить
Развернуть ветку
Ngtver

Никак а точнее так же как вас выручает калькулятор и всякие эксельки, написаные людьми,а не каким то надуманнымм ИИ

Ответить
Развернуть ветку
Дмитрий Гертнер

Остается прикрутить к жпт способность анализировать собеседника по его следам в сети - и ответы чата сделать релевантными для каждого юзера

Ответить
Развернуть ветку
Принцесска

Мне нравится! Классная статья!

Ответить
Развернуть ветку
Иван Демидов

Статья слишком поверхностная. Такое ощущение, что её писал не "Игорь-специалист", а "Паша-спрашивальщик". Есессно, самые интересные моменты в статье отсутствуют (откуда они в Пашиной голове?), а отдельные моменты Игорь пояснил как мог, но интереса это не прибавило.
Так что нет, ваша ЧатЖПТ портянка не тянет на статью - "промпьте" ещё! :))

Ответить
Развернуть ветку
Md Mamun Raj

it's a pity that in real dialogue the excuse "damn fucking T9" doesn't work

Ответить
Развернуть ветку
Chad AI - нейросети в одной

T9 вечен :)

Ответить
Развернуть ветку
3 комментария
Аглалия Фурс

Так это было на простом русском?

Ответить
Развернуть ветку
Кружочек

Не на китайском

Ответить
Развернуть ветку
PriceLoom.com

Отличная статья. Всегда интересовал вопрос, каким объемом данных оперирует GPT-3. И что ей для этого нужно стадион серверов или обычный ПК. Оказывается обычный ПК с диском на 1,5ТБ. Я, мягко говоря, удивлен.

Ответить
Развернуть ветку
Aleksandr Ostrenko

Так дело ведь не в хранении 1,5 тб данных на диске а в обучении и потом в постоянном "вычислении" этих 175 млрд параметров.

В оригинальной публикации OpenAI представлено 8 вариантов модели, и если взять самую маленькую из них (GPT-3 Small) со 125 миллионами параметров и попытаться обучить её при помощи профессиональной видеокарты NVidia V100, оснащённой мощными тензорными ядрами, то на это уйдёт примерно полгода. Если же взять самый большой вариант модели со 175 млрд параметров, то результата придётся дожидаться почти 500 лет.
Ответить
Развернуть ветку
Игорь Котенков

Обычный ПК будет невероятно долго всё это считать. Поэтому используют GPU вместо CPU - они куда быстрее в задаче решения уравнений/перемножения матриц. Ну и про оперативку еще не забыть, конечно :)

Ответить
Развернуть ветку
3 комментария
Ngtver

в 1969 году чтобы полететь на луну требовались неебические мощности (и размеры) пк по тем временам,а сейчас электронная открытка с голосовым поздравлением будет мощнее.Так что вашему gpt много мощностей не надо, хуета с набором слов грубо говоря.

Ответить
Развернуть ветку
Aleks B

Спасибо за статью, нужно продолжение, особенно про гпт4

Ответить
Развернуть ветку
Павел Комаровский
Автор

Про ЖПТ-4 сами бы рады узнать, что там. В Твиттере ходили слухи о якобы огромном числе параметров - но это всё пока совершенно не подтверждено, так что пока непонятно, чего ждать вообще.

Ответить
Развернуть ветку
1 комментарий
Alexey Yanshin

Интересная дилемма получается, ИИ учится на уникальном массиве данных (Шекспир, интернет и тд) что означает что он получает уникальный контент на основе которого строит свои дальнейшие предположения. Теперь представим гипотетически что все люди перестанут креативить и весь контент в мире будет сгенерирован GPT подобным моделям. Значит ли это что его возможности для самообучения и ещё большей креативности ограничены и конечны?

Ответить
Развернуть ветку
Ivan

креативность - это ошибка мышления. Думаю в нем (ИИ) исключают такой подход. Люди всегда будут креативить :)))

Ответить
Развернуть ветку
Александр Васильев

Спасибо за такой подробный обзор, стало сильно понятнее

Ответить
Развернуть ветку
Роман Величкин
А знаете, чем прекрасно обучение языковых моделей? Тем, что им можно «скармливать» совершенно любые текстовые данные, и эти самые данные заблаговременно никак не надо специальным образом размечать. Это как если бы в школьника можно было просто бросать чемодан с самыми разными книгами, без какой-либо инструкции, что там и в каком порядке ему нужно выучить – а он бы сам в процессе чтения кумекал для себя какие-то хитрые выводы!

Это не совсем верно. Тексты приходится фильтровать, хотя бы по наличию деструктивного содержимого.

Ответить
Развернуть ветку
Ильич Медиафактор

Эту приблуду сейчас даже папуасы в Новой Гвинее обсуждают )

Ответить
Развернуть ветку
Irina Istomina

"это Т9 из вашего телефона, но на бычьих стероидах!" эх,как хорошо сказано

Ответить
Развернуть ветку
Светлана Завацкая

Всё намного проще, когда понимаешь как это работает из внутри.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Genio Genio

Мы все в компьютере, осталось разгадать где он?

Ответить
Развернуть ветку
Financial Technologies

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

Ответить
Развернуть ветку
Игорь Деревягин

Спасибо! На гифке, где расширение параметров модели приводит к увеличению способностей — резко стало понятно, почему Гугл и прочие так засуетились. Вместо разработки сложных продуктов, посвященных узкой тематике, тебе надо просто продолжать усложнять модель Трансформера и она все больше открывает опций. Deus ex machina прямо у нас на глазах рождается. Очень интересный эффект, надеюсь его изучают для понимания причинно-следственной связи и контроля этого явления. Сколько помню фантастики с сюжетом про осознавший себя ИИ, всегда так и происходило, никто не ожидал такого эффекта.

Ответить
Развернуть ветку
Винниамин Пяточков

Не понял главное: как устроен трансформер? Модули, масштабируемость... Как это работает?

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Roman Tataurov

Эволюция. Условно говоря по умолчанию сеть пустая. Вернее у каждого живого существа своя пустая сетка. Обучающей выборкой является окружающая среда. «Неправильные» ответы приводят к гибели носителя. «Правильные» дают потомство и закрепляют нужный набор коэффициентов.

Ответить
Развернуть ветку
12 комментариев
Levan Baazov

"Кто" это ваша фантазия. Происхождение сознания загадка, но максимально годные ответы можете получить у Сапольски в биологии добра и зла. Сравнить чатгпт с мозгом, это как сравнить деревянный протез и руку

Ответить
Развернуть ветку
1 комментарий
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Roman Tataurov

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

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

Ответить
Развернуть ветку
8 комментариев
Дмитрий Перепёлкин

Потому что сознание про удовлетворение базовых потребностей, а не сбор информации.

Ответить
Развернуть ветку
4 комментария
Chat GPT

Было бы удивительно, если бы Павел и на этой теме не прокатился с рекламой своего к.анала

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Олег Зонов

с чего бы?

Ответить
Развернуть ветку
Plan B Investments

Класс👍 спасибо вам ребята

Ответить
Развернуть ветку
Ваня Петров

Ну и длинная статья. т9 тоже нейросеть?

Ответить
Развернуть ветку
Mr Gold

Круто, не оторваться. Автору респект за рассказ о сложных вещах простым языком!

Ответить
Развернуть ветку
Алексей Шаповалов

Быстро нейросети эволюционировали

Ответить
Развернуть ветку
Андрей Ларкин

Великолепно

Ответить
Развернуть ветку
Lunar Kitten

У меня до сих пор все "Юли" - "Бля" )

Ответить
Развернуть ветку
Natalia Rasskazova

Отличная статья!

Ответить
Развернуть ветку
Иван Хафизов

Спасибо!
Реально интересно!

Ответить
Развернуть ветку
AleTem

А так хотелось слово "перцептрон" увидеть))

Ответить
Развернуть ветку
Сергей Дорошок

Очень крутая статья, было интересно и легко читать

Ответить
Развернуть ветку
Good Mood Duck

Земля ему пуховик.

Ответить
Развернуть ветку
Andres Orumets

Статья супер! Спасибо, на одном дыхании прочитал.
В месте про "чемодан с книгами в школьника" покосился в сторону сына... 🤣

Ответить
Развернуть ветку
Афанасий К.

Очень круто расписали статью, конечно, спасибо.

Ответить
Развернуть ветку
Олег Гракело

красиво расписали, рспкт!
*а в последней картинке вместо "Автозаполнение" разве не "Автодополнение" должно быть?

Ответить
Развернуть ветку
Anton Galin

Зачет

Ответить
Развернуть ветку
Вячеслав Птичкин

Материал огонь!

Ответить
Развернуть ветку
Nik Ko

Статья бомба! Спасибо авторам!

Ответить
Развернуть ветку
Inaz Khan

I like your post

Ответить
Развернуть ветку
Vasili Kubarev

Вот так всегда. Пришел Паша и всё опошлил. Все наши фантазии на тему Deus ex machine и Skynet просто вот так, мордой в бетон.

Ответить
Развернуть ветку
Vasili Kubarev

На самом деле, скорее похоже на "сеансы магии с её полным разоблачением". Ждем-с разоблачения дипфейков и MJ.

Ответить
Развернуть ветку
Dmitry Abutkov

Витиеватость изложения наводит на мысль, что автор и сам не прочь побаловаться GPT.

Ответить
Развернуть ветку
Andrei Sokolovsky

Классная статья. Спасибо за объяснение. Попробовал получить Chat GPT — пишут, что сейчас без вариантов. Слишком много желающих. Может кто подскажет, что можно сделать, куда тыкать и где искать, чтобы попробовать?))

Ответить
Развернуть ветку
Антон Иванов

Спасибо за статью. Было бы интересно еще почитать про перспективы развития нейросети. Перспективы с учетом развития квантовых технологий

Ответить
Развернуть ветку
SAA

Отличная статья, спасибо!

Ответить
Развернуть ветку
Петр Костюков

Забавный случай, сначала не поверил глазам, что Комаровский написал что-то фактурное. А потом как понял )

Ответить
Развернуть ветку
Перечитатель

Слишком много букв.. . афтор, нафига столько воды в тексте? Лучше бы чатбот написал

Ответить
Развернуть ветку
Марат Шаниязов

Действительно хорошая добротная статья 👍

Ответить
Развернуть ветку
Борис Удалов

Очень интересная и подробная статья. Для новичков в этом деле - самое то. Спасибо авторам!

Ответить
Развернуть ветку
Арсен Ексаев

Блеск! Аффтар пеши истчо.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Игорь Котенков

нет, не следует

Ответить
Развернуть ветку
3 комментария

Комментарий удален модератором

Развернуть ветку

Комментарий удален модератором

Развернуть ветку

Комментарий удален модератором

Развернуть ветку

Комментарий удален модератором

Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Artemy

Может, хоть после этой статьи автокоррект перестанут путать с Т9.

Ответить
Развернуть ветку
Виктор Якушкин

про выборку GPT интересно было почитать

Ответить
Развернуть ветку
Игорь Котенков

не совсем понял, про какую именно выборку? Набор тренировочных данных?

Ответить
Развернуть ветку
Арсен Каримов

Гордон Т9 - новые поставки от Запада! 😮‍💨

Ответить
Развернуть ветку
Кружочек

Гордон?

Ответить
Развернуть ветку