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

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

Отличная работа, то что такие модельки можно дообучать за 1.5 дня коллаба - прекрасно.

Отличная работа, то что такие модельки можно дообучать за 1.5 дня коллаба - прекрасно.

Круто! Вот я давно ждал такой модели. Была у меня задумка взять (ну то есть сначала кхм сделать) такой генератор "вектор в текст", повесить на него RL и пусть этот франкенштейн учится выдавать диалоги. Думал начать с чего-то совсем простого, типа Deep Deterministic Policy Gradient, который умеет в continuous actions, и пусть он рулит компонентами эмбеддинга. 768 это конечно многовато, но надо попробовать. А уж reward'ы мы накрутим, начиная с хоть с https://huggingface.co/tinkoff-ai/response-quality-classifier-base. Ну или даже брать перплексию на гэпэтэхе, натрененной на куче диалогов (детских, смешных и т.д.). Спасибо, моя мечта стала ближе :)

А зачем для диалогов генератор "вектор в текст" вообще? Кажется, RL можно повесить на ту же самую GPT, предобученную на диалоговом корпусе?

>А зачем для диалогов генератор "вектор в текст" вообще?

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

>Кажется, RL можно повесить на ту же самую GPT, предобученную на диалоговом корпусе?

Я пока не нашел хорошего способа управлять генерацией в GPT с помощью RL/whatever. Он наверняка есть, но я пока не наткнулся на такой :(

Что у нас есть. Некая моделька, которая на вход получает текст и выдает вектор длиной 50,527 чисел - вероятности следующего токена. Как я могу систематически изменить выдачу этой модели, чтобы например получить реплику чатбота с повышенной восторженностью?

1) манипулировать с входным текстом, например добавлять туда спецтокены эмоций, предварительно отфайнтюнив модель на корпусе, который размечен чем-то типа cointegrated/rubert-tiny2-cedr-emotion-detection.

2) лезть руками в вектор на выходе модели, гася вероятности ненужных токенов и повышая вероятности нужных. Тут все сложно, так как русский текст часто при bpe-токенизации разваливается на малобуквенные кусочки, и надо филигранно рулить вероятностями служебных частей речи типа предлогов, окончаниями и т.д.:

У Лу ком ор ья дуб зелё ный , З ла тая цепь на ду бе том : И днём и ночью кот учёный Всё ходит по цепи кругом

Первый способ понятно как сформулировать в терминах rl: эмоции это action'ы, мы будем учиться динамически переключать эмоциональную окраску каждой новой реплики для оптимизации цели диалога. Второй способ уложить в RL я не знаю как, 50k action'ов это слишком.

Вообще не вижу проблемы в том, чтобы уложить в RL 50K action'ов. Если у нас модель и так уже предобучена выдавать связные и разнообразные тексты (а у GPT с этим всё в порядке), то нам не надо все 50К действий генерировать и награждать. Достаточно, например, насэмплить несколько наиболее вероятных текстов из распределения ответов модели, а потом сделать такой градиентный шаг, который бы увеличивал вероятности для хороших текстов и уменьшал – для плохих. А ещё можно разделить сгенерированные тексты на группы и обусловить модель генерировать самую лучшую группу, как в статье про Quark.

В общем, мне кажется, что с RL для текстов серьёзная проблема другая: сложно придумать такой reward, максимизация которого действительно приводила бы к генерации текстов с нужными свойствами, а не заставляла бы модель-генератор переобучаться под модель-критика.

Занятно, что можно соединять две разные модели и indictive bias про энкодер-декодер прямо работает.

Одновременно с этим вышла статья про No Language Left Behind (NLLB) и расширение LASER до 100+ языков, интересно, что вы думаете на эту тему. Я вот с инженерной точки зрения ими восхищаюсь, а с полит-экономической, очень грущу, потому что понятно зачем это делается.

А так очень прикольно, что по бичу можно делать такие вещи.

Я считаю, что и инженерно, и по-человечески проект NLLB – это здорово. И более того, через пару недель я и сам к нему присоединяюсь.

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

А вас что беспокоит? Что Мета, раз сделала перевод для Википедии, начнёт подминать её под себя?

Очевидно, что они начнут диктовать какие статьи и какое наполнение там должно быть.

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

И при обновлении оригинальных статей вряд ли кто-то будет обновлять дочерние. Остальная логическая цепочка строится легко.

И более того, через пару недель я и сам к нему присоединяюсь.

Жалко, что мы и Хабр потеряли ещё одного специалиста. На всякий случай, вы же знаете за что Facebook был признан экстремистской организацией в РФ? У вас это не вызывает у вас в голове противоречия при трудоустройстве?

Жалко, что мы и Хабр потеряли ещё одного специалиста.

Не знаю, кто такие "мы" (или "вы"), но с Хабром я не вижу проблем совсем. Я писал сюда, работая и в Яндексе, и в Сколтехе, и просто на фрилансе, и не вижу причин покидать русскоязычное NLP-сообщество, работая в Мете.

На всякий случай, вы же знаете за что Facebook был признан экстремистской организацией в РФ? У вас это не вызывает у вас в голове противоречия при трудоустройстве?

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

Не вижу причин покидать русскоязычное NLP-сообщество, работая в Мету.

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

кто такие "мы" (или "вы")

Но с трудоустройством проблем нет, ведь кто сказал, что я в России буду работать?

В принципе я и не ожидал иного ответа. Как говорится, кому война, что подтверждает мой тезис про "некоторые животные более равны чем другие".

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

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

При желании могу и сюда написать) Все документы, которые читал пока что, были не страшными.

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

Если мне не изменяет память, Facebook никого ни к чему не призывал. А то, что они не забанили юзеров, призывающих бороться с российскими оккупантами в Украине, не является, на мой взгляд, достаточным поводом считать организацию экстремистской.

Очевидно, что они начнут диктовать какие статьи и какое наполнение там должно быть.

Мне не очевидно, если честно.

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

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

Или я в вашей логической цепочке что-то упустил?

потому что решение о публикации статьи остаётся за редактором Википедии)

Вы так наивны.

В этой же логике, не надо публиковать призывы сасамостоятельно, это прошлый век, если публично объявляется о партнёрке - это значит бабло.

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

Но вот на повороте резком спалились.

Мне не кажется правдоподобным, что Мета (или, например, Яндекс, где я прежде работал) занимаются такими вещами.

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

Понятно, что имея готовые инструменты и датасеты путь пройти в 10 раз проще, чем с нуля.

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

Также интересно какое будет правоприменение закона об иноагентах.

А к Яндексу вопросов в 10 раз больше,чем к Фейсбуку.

Я хотя бы могу рационально понять, почему они призывают, вместе со всей Западной пропагандой (давайте сэкономим время на полемику) убить всех русских / разделить / деколонозировать / разделить итд ИТП

Но позиция Яндекса мне совсем не ясна.

Я хз как повлияет их политика, но то что для 15 языков народов РФ и СНГ они создали оффлайн переводчик, причем очень высокого качества, заслуживает уважения.

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

Как говорится ждём массового появления контента на этих языках нужной направленности.

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

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

А по факту получаем ситуацию в которой очередные "индейцы" получают бусы от господина, а сам господин уже строит планы на Манхеттен.

боритесь за мир!

Вы забыли добавить за мир во всем мире.

А то в голову сразу приходит вот такая вот цитата:

Все животные равны, но некоторые животные более равны чем другие.

А в чём принципиальная разница, можете разъяснить?

Принципиально иной базис ценностей.

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

Понимаю и разделяю позицию о ценности каждой жизни!

Но разве мой призыв ей противоречит? Я же вроде не призываю бороться за мир в отдельном регионе и развязывать войны в остальных)

Спасибо, за интересные статьи! Данный декодер будет без дообучения работать с моделью cointegrated/LaBSE-en-ru ? или все же он только для основной LaBSE

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

"LaBSE понимает смысл грубых текстов на русском языке не очень хорошо – видимо, в его обучающей выборке таких было немного". А если я захочу дообучить LaBSE на токсических текстах. То потом decoder тоже заново придется переобучать?

Да, придётся. Собственно, я дообучал только декодер, а энкодер заморозил, чтобы он продолжал работать со всеми языками, которые в LaBSE есть. Но если дообучать и энкодер, то я бы их сразу дообучал вдвоём как пару (пропуская loss от декодера через обе модели). Не исключено, что общее качество в результате сильно вырастет.

Вопрос, а если этот декодер обучить на модели rubert-tiny2? То субъективно на ваш взгляд он должен работать лучше или хуже чем на LaBSE по качеству? Почему? если брать например только представление русского языка?

Если честно, понятия не имею. Судя по моему бенчмарку, LaBSE для русского в среднем работает заметно лучше, чем rubert-tiny2, так что, не имея экспериментальных данных, я бы ставил на то, что декодер с rubert-tiny2 качество не улучшит.
Ну и ещё есть вопрос о том, как именно и на каких данных качество измерять. Думаю, что его надо решать исходя из конечной задачи, для которой вы эти модели собираетесь использовать.

Спасибо.

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

Варианты:

  1. Обучить отдельный декодер для английского, отдельный - для русского. А когда понадобится, скажем, башкирский, то отдельный для башкирского.

  2. Вместо Т5 взять декодер от какой-нибудь мультиязычной модели (например, NLLB-200), где можно управлять языком аутпута, меняя первый токен в декодере. И дообучить его соответственно мультиязычно.

  3. Тупо сделать каскад: переводить эмбеддинги на русский, а их каким-нибудь переводчиком уже на английский.

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

Публикации

Истории