Давид Дале
@cointegrated
Разработчик / Аналитик / Data Scientist / NLPшник
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность
Разработчик / Аналитик / Data Scientist / NLPшник
Ваш аккаунт
А опенсорс будет?
Ну, или рекомендации, как самостоятельно такое собрать :)
Варианты:
Обучить отдельный декодер для английского, отдельный - для русского. А когда понадобится, скажем, башкирский, то отдельный для башкирского.
Вместо Т5 взять декодер от какой-нибудь мультиязычной модели (например, NLLB-200), где можно управлять языком аутпута, меняя первый токен в декодере. И дообучить его соответственно мультиязычно.
Тупо сделать каскад: переводить эмбеддинги на русский, а их каким-нибудь переводчиком уже на английский.
Под MUSE-3 я имел в виду не мультиязычные эмбеддинги слов от Меты, а мультиязычный энкодер предложений от Гугла: USE-multilingual-large.
Прошу прощения за использование этой не совсем понятной аббревиатуры.
О, интересно! А ты наблюдаешь какие-то параллели между венгерским и эрзянским языками? Они из одной Уральской семьи, но, насколько я себе представляю, очень далёкие. Интересно, как для носителя обоих языков это ощущается.
Да, я знаю парочку человек из Яндекса, которые там занимаются машинным переводом. Если они возьмут мои наработки и доведут до продакшн-уровня, я буду только рад)
Спасибо! Да, с Сергеем мы общаемся)
Если честно, понятия не имею. Судя по моему бенчмарку, LaBSE для русского в среднем работает заметно лучше, чем rubert-tiny2, так что, не имея экспериментальных данных, я бы ставил на то, что декодер с rubert-tiny2 качество не улучшит.
Ну и ещё есть вопрос о том, как именно и на каких данных качество измерять. Думаю, что его надо решать исходя из конечной задачи, для которой вы эти модели собираетесь использовать.
Как сказано в теле поста, я брал эмбеддинги слов из модели geowac_tokens_none_fasttextskipgram_300_5_2020 с RusVectores. Усреднял я эти эмбеддинги вот таким кодом:
Да, придётся. Собственно, я дообучал только декодер, а энкодер заморозил, чтобы он продолжал работать со всеми языками, которые в LaBSE есть. Но если дообучать и энкодер, то я бы их сразу дообучал вдвоём как пару (пропуская loss от декодера через обе модели). Не исключено, что общее качество в результате сильно вырастет.
Мне не кажется правдоподобным, что Мета (или, например, Яндекс, где я прежде работал) занимаются такими вещами.
Но если вас эта проблема беспокоит, можно попробовать сделать свою систему перевода, альтернативную фейсбучной и контролируемую сообществом, чтобы Википедия меньше зависела от Меты. Я сам готов в таком поучаствовать в волонтёрском порядке (если, конечно, сотрудники экстремистской организации могут быть для вас рукопожатными).
Понимаю и разделяю позицию о ценности каждой жизни!
Но разве мой призыв ей противоречит? Я же вроде не призываю бороться за мир в отдельном регионе и развязывать войны в остальных)
При желании могу и сюда написать) Все документы, которые читал пока что, были не страшными.
Если мне не изменяет память, Facebook никого ни к чему не призывал. А то, что они не забанили юзеров, призывающих бороться с российскими оккупантами в Украине, не является, на мой взгляд, достаточным поводом считать организацию экстремистской.
А в чём принципиальная разница, можете разъяснить?
Мне не очевидно, если честно.
Во-первых, конкретно коллегам из FAIR этим заниматься тупо ни к чему, они заняты обучением очередного трансформера и публикацией очередной статьи. Ну а остальные организации в составе Меты ни организационно, ни технически не имеют доступа к переводилке, так что если им зачем-то вдруг нужно влиять на контент в Википедии, у них не больше рычагов влияния на это, чем было прежде.
Во-вторых, сама Мета никаким образом не оказывает влияния на контент публикуемых статей или решение о публикации, она просто предоставляет инструмент для перевода. Так что я могу представить, что с приходом этого инструмента упадёт среднее качество статей на редких языках (потому что активисты будут штамповать их в больших количествах, не тратя очень много времени на ручной пост-процессинг переведённых текстов, или потому, что с ростом числа статей их будет сложнее вовремя обновлять), но не ожидаю, что контент этих статей как-то систематически поменяется (потому что решение о публикации статьи остаётся за редактором Википедии).
Или я в вашей логической цепочке что-то упустил?
Не знаю, кто такие "мы" (или "вы"), но с Хабром я не вижу проблем совсем. Я писал сюда, работая и в Яндексе, и в Сколтехе, и просто на фрилансе, и не вижу причин покидать русскоязычное NLP-сообщество, работая в Мете.
У меня противоречия в голове вызывает масса разной х**ни, которая происходит с нами уже давно, а с момента полномасштабного вторжения в Украину эскалировалась. Но с трудоустройством проблем нет, ведь кто сказал, что я в России буду работать?
Вообще не вижу проблемы в том, чтобы уложить в RL 50K action'ов. Если у нас модель и так уже предобучена выдавать связные и разнообразные тексты (а у GPT с этим всё в порядке), то нам не надо все 50К действий генерировать и награждать. Достаточно, например, насэмплить несколько наиболее вероятных текстов из распределения ответов модели, а потом сделать такой градиентный шаг, который бы увеличивал вероятности для хороших текстов и уменьшал – для плохих. А ещё можно разделить сгенерированные тексты на группы и обусловить модель генерировать самую лучшую группу, как в статье про Quark.
В общем, мне кажется, что с RL для текстов серьёзная проблема другая: сложно придумать такой reward, максимизация которого действительно приводила бы к генерации текстов с нужными свойствами, а не заставляла бы модель-генератор переобучаться под модель-критика.
Я считаю, что и инженерно, и по-человечески проект NLLB – это здорово. И более того, через пару недель я и сам к нему присоединяюсь.
А что касается полит-экономической части, мне кажется, для сообществ малоресурсных языков лучше иметь переводчик от Меты (тем более, что там всё сделано относительно прозрачно), чем не иметь никакого.
А вас что беспокоит? Что Мета, раз сделала перевод для Википедии, начнёт подминать её под себя?
А зачем для диалогов генератор "вектор в текст" вообще? Кажется, RL можно повесить на ту же самую GPT, предобученную на диалоговом корпусе?
Да, всё верно. Большой словарь => больше процент слов, которые токенизировались одним токеном, а не несколькими => входные последовательности стали в среднем короче (если измерять в токенах) => нейросеть стала быстрее их обрабатывать.
Время от времени вижу этот подход в статьях про NER и другой sequence tagging, когда нужно ставить метки именно на слова или словосочетания, а не отдельные токены. Кажется вполне оправданным и очень простым. Можно рассматривать его в аналогии с FastText, где эмбеддинг слова вычисляется как среднее из эмбеддингов его n-грамм.
Не знаю, не сравнивал. Думаю, большой разницы не будет; и то, и другое – два средних арифметических просто с разными весами. Если соберётесь сравнивать эти два подхода, сравните ещё с третьим, где веса для усреднения веса – обучаемые.
Смотрел, конечно, как и на её трансформерные аналоги типа bertscore. На тех задачах, на которых я сравнивал, они проигрывали косинусной близости из USE и LaBSE.