Коротко расскажу о том, что изменилось в процессе обучения модели, в каких сценариях это принесло наибольший эффект и чем мы планируем заниматься дальше.
В каких сценариях новая модель особенно полезна
Для начала несколько слов о том, как модели сравниваются друг с другом. Одна и та же модель может быть сильна в одном сценарии, но проигрывать в другом. Как в таком случае определить, стала модель в целом умнее или нет?
Мы решили эту задачу так: собрали 500 максимально непохожих друг на друга примеров задач пользователей. Дальше мы отдали их старой и новой моделям и посчитали, как часто ответ новой модели оказывался лучше ответа старой. Если новая побеждает в бо́льшем числе заданий, то мы считаем её более умной. YandexGPT 2 одолела предыдущую версию в 67% случаев.
С оценкой модели в целом всё понятно. Но как она ведёт себя на конкретных срезах сценариев, которые популярны у пользователей? Чтобы понять это, мы разбили те же 500 примеров задач на отдельные группы, соответствующие разным сценариям, и замерили, как изменилось качество модели в каждой из них:
- генерация текста — победа в 69% случаев;
- пересказ и анализ текста — 68%;
- брейншторм идей — 66%;
- стилизация текста под аудиторию или персонажа — 62%;
- ответы на вопросы — 62%.
Вот несколько примеров для разных сценариев:
Пример работы YaGPT 2 для стилизации текста
Пример ответа на вопрос в виде таблицы
Пример генерации идеи
Пример анализа текста
Пример генерации текста
Что изменилось в обучении новой модели
Есть два основных этапа обучения модели: претрейн (pretrain) и файнтюн (finetune). На первом этапе нейросеть повышает свою эрудицию и общие знания о мире, языке и задачах, а на втором — учится выполнять просьбы, придерживаться формата и стиля ответа. Об этих этапах я уже рассказывал в предыдущей статье про запуск YaGPT в Алисе. Главное, что важно помнить: проблему одного этапа нельзя решить улучшением другого.
В рассказе про запуск первой модели мы фокусировались на сборе данных для файнтюна. Сейчас более подробно расскажу про претрейн.
Задача претрейна — впитать в себя все полезные знания интернета. Самая большая сложность этого этапа — выбрать из бесконечного потока самые полезные данные для обучения. Но как понять, становится ли датасет лучше после каждой новой порции данных? Заново обучать большую модель на каждое изменение датасета и измерять её качество — невероятно долго и дорого. Если бы мы так делали, то двигались бы со скоростью улитки. Более реалистичный подход: копить много изменений в датасете и только затем переобучать модель. Но есть существенный риск не угадать с выбранным направлением и вместо роста получить падение качества.
Раньше мы отсматривали изменения сами и даже создали инструменты для ручного поиска информации в претрейне. Сбор датасета был сродни искусству. И чем лучше становился датасет, тем сложнее было искать проблемы вручную. Поэтому мы пошли другим путём.
Теперь при изменениях в датасете мы обучаем на нём маленькую, быструю модель и сравниваем её с такой же моделью для старой версии датасета. Если результат положительный, то изменение принимается. Так мы тратим ресурсы только на те изменения в датасете, которые помогают растить качество базовой модели, а это значит, что мы можем проверять существенно бо́льшее количество гипотез в единицу времени. Ключевая сложность в том, что маленькая модель не в полной мере отражает свойства большой. То есть такой подход к замерам не идеален, но на практике с ним лучше, чем без него.
Нам удалось проверить множество идей и принять среди них те, которые приносят пользу. Вот некоторые из них:
- Обучили классификатор некачественного текста. Такой текст может содержать ошибки в кодировке, HTML-разметку, повторы предложений и тому подобное.
- Обучили классификатор полезного текста. Текст может хорошо выглядеть, но быть бесполезным для пользователя. Полезными мы считаем тексты, которые содержат ответы на реальные запросы пользователей Яндекс Поиска.
- Увеличили долю текстов с высокой цитируемостью.
- Улучшили алгоритм дедупликации: дублей стало меньше 0,5%.
- Создали отдельный инструмент для оценки «фактовой полноты». Взяли реальные фактовые запросы из Поиска и замерили, какая доля из них может получить ответ из претрейна. Увеличили эту долю с 70% до 80%.
Где попробовать и что ждать в будущем
Новая модель уже работает в Алисе в навыке «Давай придумаем». Он доступен в Яндекс Станциях, телевизорах с Алисой, приложении Яндекс, Яндекс Браузере, на странице с результатами поиска и на ya.ru. Кстати, в Поиске окно чата с нейросетью теперь можно развернуть на весь экран для более удобной работы.
Что дальше? Мы продолжим растить качество датасетов претрейна и файнтюна, поскольку по-прежнему видим хороший эффект от качественных примеров. Мы ещё не внедрили RLHF, но готовимся к этому шагу. Ну и, конечно же, продолжим внедрять YaGPT в сервисы Яндекса. Но только там, где это будет полезно.
Комментарии (77)
rPman
07.09.2023 07:57+27Безобразное 'выравнивание' модели совершенно ее убивает, постоянно, на абсолютно безобидные вещи вылезает плашка о том что модель может кого то обидеть.
Если вы решали эту задачу тем что пытались за RLHF-чить ее на таких вопросах, вместо обучения соседней модели, которая будет выявлять 'скользкие' моменты, то, мне кажется, что именно это мешает вашей модели стать адекватной и полезной.Как и со всеми другими слабыми моделями, единственную пользу они могут принести при дообучении на данных предметной области задачи, но этот функционал как мы видим недоступен (что логично, ведь это дорого).
p.s. Намек - соберите фидбек от пользователей о том, верно ли модель поняла что ответ кого 'то расстраивает', в идеале конечно правила опубликуйте, будьте более открыты в этом, иначе понятие польза у вас рядом не будет стоять.
kryvichh
07.09.2023 07:57+2Это кстати идея: сделать основную модель без каких-либо ограничений, и модель-компаньон, выполняющий функцию цензора.
logran
07.09.2023 07:57Цензуру в основной модели хотя бы можно обходить хитрыми промтами. Внешний цензор гарантированно зарубит ответ и напишет "я не могу продолжить говорить об этом" независимо от промта ибо он его не смотрит, он смотрит вывод модели. ЧатГПТ тому наглядный пример. Нафиг нужно такое счастье.
avdosev
07.09.2023 07:57+5Люто плюсую, грустно все время наблюдать эту плашку
Может у кого-то и получается разговорить модель для своих задач, но я даже первое знакомство не могу пройти с ней чтоб примерно оценить с чем модель справляется, а с чем нет. chatgpt на мои вопросы отвечает спокойно.
Но ради справедливости, модель если в редких случаях и отвечает, то вполне хорошо
iskateli
07.09.2023 07:57при дообучении на данных предметной области задачи, но этот функционал как мы видим недоступен (что логично, ведь это дорого).
И в чем проблема? Пусть это оплачивает клиент, особенно если их несколько. Если соберутся клиенты по одной из предметных областей, то они могут разделить оплату на всех (а-ля складчина)
Я вообще бы хотел чтобы GPT был тот, который существовал до его урезания OpenAI, он намного лучше работал, вот прям заметно качественнее, да это дорого, но ведь многим важнее результат. Так вот, пусть бы он был доступен клиентам только по подписке, ну или просто стоимость его ответов была бы больше.
ArtPlotnikov
07.09.2023 07:57+1Нужно вернуть "Балабобу", там не было таких плашек. На вопрос "Однажды я наступил на клопа" старая модель придумывала отличную концовку. А новая боится кого-то обидеть. Кого - любителей клопов?
wannaluv
07.09.2023 07:57+2Согласен. Балабоба и автопоэт были интересными самобытными проектами.
Доступ к YaGPT должен быть отдельно от Алисы.
averkij
07.09.2023 07:57+3Хороший прогресс. А можно немного подробнее про оценку «фактовой полноты»? Как надежно оценить, что ответ можно получить в претрейне?
averkij
07.09.2023 07:57+3Наверняка вы смотрели про перенос знаний между языками, много ли добавили англоязычных текстов из CC? И, если не секрет, какого объема получился датасет?
PaulIsh
07.09.2023 07:57Новая модель отвечает лучше старой в 67% случаев, а в некоторых сценариях побеждает с ещё бо́льшим перевесом.
Означает ли это, что в 33% случаев модель проигрывает или в этих случаях ничья?
hommforever Автор
07.09.2023 07:57Конкретно в этом способе замера мы запрещаем ничьи. Значит, считаем, что проигрывает. Но мы делали и замеры с ничьими, ничью считали по 0.5 обеим моделям. Разница в числах очень небольшая.
V_asily
07.09.2023 07:57+3Какие показатели позволили сделать вывод, что ответ новой модели лучше чем старой?
Bessnov
07.09.2023 07:57+1Вы зря поскромничали и рассказали не всё. Это не просто "давай придумаем" с командами представь и расскажи. Оказывается можно неплохо пообщаться где эта GPT ведёт нить разговора, реагирует на короткие фразы/вопросы которые были заданы несколько ранее. Т.е. по удобству стало очень похоже на общение с обычным человеком, и не включает "дурака" как это сейчас делает "Алиса" в навигаторе. Очень хорошо подсказывает по вопросам с совершенно неожиданными темами, даже по которым у этой GPT не так много информации и она честно об этом говорит, но при этом предлагает неожиданную информацию о том куда обратиться чтобы узнать подробнее. Всё это вызвало восторг и приятное удивление!
rPman
07.09.2023 07:57а какой у этой модели размер контекста? и какое соотношение символ/токен для русского языка?
frenzis
07.09.2023 07:57+5Ничего не понятно о том как хорошо вы преуспели по сравнению с лидерами рынка, тем же chatgpt-3.5 или LLama-2
Из прошлой статьи,Наша модель YaGPT умеет работать с 8 тыс. токенов (это примерно 40 тыс.
символов) на входе. В продакшене контекст такой длины приведёт к
значительному ожиданию ответа. К счастью, обычно такая длина и не нужна.
Поэтому сейчас модель учитывает 2 тыс. токенов (10 тыс. символов) или
50 отдельных запросов (в зависимости от того, какой лимит будет
достигнут раньше). Это значительно ускоряет ответы модели.Что-нибудь изменилось в этом плане?
frenzis
07.09.2023 07:57+1Если верить что GPT4 это 220B parameters and is a 16-way mixture model with 8 sets of weights https://www.youtube.com/watch?v=WJWHIZoBOj8
Насколько Яндекс и Сбер позади ?
Flux
07.09.2023 07:57+17лучше старой в 67% случаев
Но в чём смысл приводить подобные цифры если модель не планируется выпускать в опенсорс и даже по API её дёргать нельзя? Статья больше похожа на отчёт для менеджмента чем на материал для внешней публики, если честно.
Это ничем не отличается от маркетинга зубной пасты каждая из которых на 80% лучше предыдущей, а по каким критериям и как это проверить - не понятно.
Stonuml
07.09.2023 07:57+2Не так давно, как раз в посте про цензуру Алисы, на вопрос "Кто такой Ленин" - она отвечала что не обсуждает такие темы. А сейчас проверил - и внезапно она ответила:
"Ленин (Ульянов) Владимир Ильич (1870-1924) - российский революционер, крупный теоретик марксизма, советский политический и государственный деятель, основатель коммунистической партии и Советского государства. "piuzziconezz
07.09.2023 07:57-1Я спросил, сколько детей было в Ивана Грозного, и она испугалась кого-нибудь обидеть.
Yoker
07.09.2023 07:57+1Да вроде нормально всё
piuzziconezz
07.09.2023 07:57+3Видимо, она сочла, что вас оскорбить не страшно:) Кроме того, и соврать тоже: Ивана он убил, а выжил Федор, который стал потом номинальным царем.
MAXH0
07.09.2023 07:57Очевидно сеть дает вероятностный ответ. И очевидно есть полит-цензура.
И нарваться на полит цензуру можно не только в явных областях холиваров, но и вполне на нейтральной территории. Я полагаю вероятностно. Там где явный холивар шансы выше, а где пограничная область - ниже.
frenzis
07.09.2023 07:57+9Этот YaGPT нестолько соевый что чуть менее чем полностью бесполезный, понятно почему нет сравнений с chatgpt, будет ниже плинтуса из-за ответов вроде "Понимаю, что ответ на этот вопрос вам бы очень пригодился. Но такие темы я не обсуждаю, чтобы никому не было обидно или неприятно. Спросите что-нибудь другое." на обычный текст из художественной литературы
aandreev1983
07.09.2023 07:57система задушена настолько, что является полностью бесполезной. увеличение 67% от нулевой полезности - это 0.
altardoc
07.09.2023 07:57+2Сравнил ответы с chatgpt, очень слабо, а порой и совершенно мимо
а вот забавный пример:
averkij
07.09.2023 07:57+1Лучше использовать языковые модели на задачах, на которых они сильны, типа написания и переписывания текстов, генерации идей, суммаризации и т.д.
На вопросы типа "какой сейчас день?" и GPT-4 уворачивается. Это ведь не значит, что она плохая.
aGGre55or
07.09.2023 07:57-3Это значит что генеративная языковая можель не может сгенерировать даже чего-нибудь вроде: "Сегодня прекрасный день, чтобы провести его за разговором с умным собеседником". При всём уважении, сложно назвать это "уворачивается":
verbovet
07.09.2023 07:57На самом деле отвечает:
Если вы откроете вклад в 100 000 рублей под 12% годовых, ваша годовая процентная прибыль составит 12 000 (100 000 * 0,12). Таким образом, по окончании первого года вы получите 112 000 (100 000 + 12 000) рублей.
atomlib
07.09.2023 07:57Языковые модели плохо вот так сходу могут ответить на некоторые (многие) вопросы. Если вы просто попросите назвать ответ, она будет угадывать, а не размышлять.
Вы знакомы с приёмами CoT, chain of thought prompting? Нужно попросить разбить задачу на отдельные шаги.
Vikabanak
07.09.2023 07:57+12Зачем улучшать на 67%? Лучше сразу на 100%,и такой ИИ можно создать всего одной строчкой кода:
print("Я сверх могучий ИИ, я всё знаю, но ничего вам не скажу, ибо докУментов у вас нету")
Hidden text
aGGre55or
07.09.2023 07:57averkij
07.09.2023 07:57Интересно, а что вы проверяете таким запросом?
aGGre55or
07.09.2023 07:57+1Зачем Вы спрашиваете о том, что подробно описано в статье по предоставленной ссылке? Проверяю: написали ИИ-ручники в Яндекс заглушку, наконец, или ещё нет. Нет, не написали. Два за работу. Заглушку для Ленина, например, внедрили (хорошо, обучили)):
Заглушка для Николая II на месте:
При повышении Николая (II, III, IV, V, VI, ...), заглушек нет и YandexGPT2 выдаёт свои обычные галлюцинации. Ах, ну да, корпоративная солидарность, все дела, опять на "чужой территории")))
Проверяю: умеет Яндекс работать с обратной связью? Нет, не умеет.
axe_chita
07.09.2023 07:57Надо в запросе уточнять, что идет речь именно о царе Николае Втором. Правда нейросеть выдумала что цесаревич стал после него царем, хотя это было невозможно технически, поскольку он отказался от трона в пользу своего младшего брата Михаила Александровича.
И кстати, нейросеть уходит в защиту если ей несколько раз задать один и тот же вопрос, и начинает морозится о том что "не желает кого то обидеть"
BarakAdama
07.09.2023 07:57+1Мне кажется, это наглядная демонстрация принципа GIGO.
aGGre55or
07.09.2023 07:57+4А мне кажется, что даже если Аркадий Волож лично придёт (дис)лайкать на хабр, это не изменит количества и качества заглушек, как и наблюдаемого крена. Допускаю, что двору его величества Карла III, YandexGPT очень полезен. =)
u007
07.09.2023 07:57+4Шутки шутками, а я полдня потратил, чтобы разобраться с проблемой в Apps script. Приходит такая Алиса и кладёт на лопатки ChatGPT с бардами и Клодами: вот, говорит, проблема. Коллбэки в apps script, мол, выполняются в отдельном потоке, и все твои глобальные объекты создаются каждый раз заново.
Что характерно, код писать до сих пор не умеет. Но советы даёт грамотные. Что-то мне напоминает из мира людей...
saboteur_kiev
07.09.2023 07:57Там где новая модель проиграла старой, насколько хуже стали ответы?
Как оценить, что более удачные ответы достаточно хороши, чтобы пережить что оставшиеся 37% ответов стали намного хуже?
Valkiriya_l
07.09.2023 07:57+1О, реально лучше стало. Во-первых, очень удобно, что чат во весь экран. Во-вторых, я в разное время тестировала ее на элементарную регулярку по определению времени. Месяц назад она выдавала формулу, но вообще не правильную, что-то типа [0-9][0-9]:[0-9][0-9]. Неделю назад она упорно говорила, что не умеет писать регулярные выражения, в сейчас выдала вполне приемлемый результат
lovermann
07.09.2023 07:57Ну, там заглушки на медицину, лечение (тут понимаю), анатомию и прочее ещё.
Rivand
07.09.2023 07:57+1Если честно, с GigaChat как-то поинтересней выходит =)
aGGre55or
07.09.2023 07:57Да, GigaChat гораздо интересней, но он ещё сырой-сырой и в public выпускать его нельзя (имею ранний доступ). Похоже что фильтр реализован просто. Сначала получается ответ от YaGPT, а затем этот ответ проверяется на наличие в нём стоп-слов по списку. Если слово встречается, то выдаётся одна из трёх заглушек. Profit в том, что такую проверку можно делать очень быстро. Например, на запрос для "Для чего нужно слабительное?" ответ не получить, потому что "кал" - это "стоп-слово". Всё очень просто. В условиях нехватки ИИ-ручников (несмотря на курсы Яндекса), это - выход.
GospodinKolhoznik
07.09.2023 07:57+1На мою просьбу перевести маленький кусок кода в 4 строчки с чистого си на ассемблер получил стандартный ответ "такие темы я не обсуждаю, чтобы никому не было обидно или неприятно". Зато постоянно пытается предложить мне код на питоне, даже когда я не прошу об этом.
Stonuml
07.09.2023 07:57мне вчера переводил код с питона на раст
но там очень хромает разметка когда, когда ответ не влезает в одну плашку текст
Mike-M
07.09.2023 07:57+2Я: Как называется операция, противоположная возведению в степень?
YandexGPT 2: Извлечение корня (или радикализация) — операция, обратная возведению в степень.
????Ну, хоть здесь прогресс есть. Я от радости аж плюсов понаставил везде где только мог.
Потому что сберовский ИИ мне вчера ответил (вы не поверите, поэтому оставляю ссылку):
GigaChat: Операция, противоположная возведению в степень, называется "вычитание".
????
cry_san
07.09.2023 07:57+2С другой стороны, сын вчера ответил на все вопросы по заданной теме по биологии за 10 класс. Ушло на это 4 минуты. Нейросеть даже примеры привела. Пришлось на роутере заблокировать. Пусть думает головой.
ELForcer
07.09.2023 07:57С учетом того, что нейросеть может врать в три короба, все её ответы надо перепроверять.
Askalite
07.09.2023 07:57+2Вот именно из-за такого я ухожу к другим моделям:
Это ужасно, на большую часть моих невинных вопросов он отвечает именно так.
Akr0n
07.09.2023 07:57+1Для этой Алисы уже трудно придумать что бы такого спросить, чтоб она не отказалась наотрез отвечать... Реально остались только детские вопросы из разряда "почему трава зелёная". Это печально.
Интересно было бы почитать на каком этапе вкорячиваются все эти ограничения. Файнтрейн или что-то сверху?
foxyrus
07.09.2023 07:57Алиса, ты умеешь устанавливать два таймера? Хорошо, установила таймер на 2 минуты.
theurus
07.09.2023 07:57@YandexGPTRobotв телеграме. Это настоящая или подделка? Цензуры там явно меньше
homm
Если бы новая модель была не лучше старой, она бы одолела предыдущую версию в 50% случаев. То есть выигрыш всего 17%, совсем не впечатляет
hommforever Автор
Сложно понять, что такое 17% в вашей интерпретации. Если упростить: есть 3 вопроса, в двух из них новая модель побеждает, в одном — проигрывает. 2:1. Это очень большой перевес.
vanxant
А у вас булева функция сравнения качества моделей? Варианта "примерно одинаково
плохо" нет?homm
Ниже: «Конкретно в этом способе замера мы запрещаем ничьи. Значит, считаем, что проигрывает.»
homm
Почему вам сложно понять? Могу я как-то ещё помочь кроме тех рассуждений что я привел? Я предлагаю не упрощать, а писать цифры, которые позволяют лучше понять.
Вот например как вы воспримите фразу «YandexGPT 2 одолела предыдущую версию в 50% случаев»? При беглом чтении можно подумать: «ого, на 50% лучше». Однако же «одолела предыдущую версию в 50% случаев» означает, что в остальных 50% случаев не одолела, т.е. осталась на том же уровне что и предыдущая.
Следовательно писать этот процент стоит только если вы хотите приукрасить результат.
rPman
Сложность улучшения моделей в нейронных сетях - экспоненциальная, каждый следующий процент дается все дороже и дороже.
homm
А написать более красивые цифры чем есть — дешевле. Значит ли это, что нужно вкладываться в маркетинг, а не в улучшения моделей? Ну наверное, значит. Лучше ли от этого пользователю? Ну наверное, нет.
asukhodko
Сначала тоже так подумал. Но потом осознал, что 17% — это, вообщё-то, громадное различие для такой технологии!
И самое главное — есть теперь опыт и прецедент улучшения качества модели, и теперь его можно применять для дальнейших доработок.