Forwarded from Big Data Science
🗣7 speech recognition tools
To develop your own ML speech recognition system, you can use the following frameworks and libraries:
• wav2letter - an open-course open source toolkit from Facebook AI Research merged with a larger library called Flashlight https://github.com/flashlight/wav2letter
• DeepSpeech powered by Baidu DeepSpeech, which will help you decode an audio file using pre-trained models or set up/train a custom dataset https://deepspeech.readthedocs.io/en/r0.9/?badge=latest
• TensorFlowASR - Open source package from Tensorflow implements some reference models trained using RNN with CTC https://github.com/TensorSpeech/TensorFlowASR
• OpenSeq2Seq - research project by NVIDIA on the problems of converting sequences to sequences https://github.com/NVIDIA/OpenSeq2Seq/blob/master/Streaming-ASR.ipynb
• SpeechRecognition - the project provides access to several automatic speech recognition models, including speech API wrappers from Google, Microsoft Azure and IBM https://github.com/Uberi/speech_recognition
We also note 2 ready-made services that provide an API for accessing the capabilities of services, from speech recognition to generating "natural" voice data:
• SmartSpeech by SberDevices https://sberdevices.ru/smartspeech/
• Yandex SpeechKit by Yandex https://cloud.yandex.ru/services/speechkit
To develop your own ML speech recognition system, you can use the following frameworks and libraries:
• wav2letter - an open-course open source toolkit from Facebook AI Research merged with a larger library called Flashlight https://github.com/flashlight/wav2letter
• DeepSpeech powered by Baidu DeepSpeech, which will help you decode an audio file using pre-trained models or set up/train a custom dataset https://deepspeech.readthedocs.io/en/r0.9/?badge=latest
• TensorFlowASR - Open source package from Tensorflow implements some reference models trained using RNN with CTC https://github.com/TensorSpeech/TensorFlowASR
• OpenSeq2Seq - research project by NVIDIA on the problems of converting sequences to sequences https://github.com/NVIDIA/OpenSeq2Seq/blob/master/Streaming-ASR.ipynb
• SpeechRecognition - the project provides access to several automatic speech recognition models, including speech API wrappers from Google, Microsoft Azure and IBM https://github.com/Uberi/speech_recognition
We also note 2 ready-made services that provide an API for accessing the capabilities of services, from speech recognition to generating "natural" voice data:
• SmartSpeech by SberDevices https://sberdevices.ru/smartspeech/
• Yandex SpeechKit by Yandex https://cloud.yandex.ru/services/speechkit
GitHub
GitHub - flashlight/wav2letter: Facebook AI Research's Automatic Speech Recognition Toolkit
Facebook AI Research's Automatic Speech Recognition Toolkit - flashlight/wav2letter
Forwarded from Denis Sexy IT 🤖
The-DALL·E-2-prompt-book-v1.01.pdf
21.5 MB
Умные люди стараются не делать публично предсказаний, поэтому вот мое:
— Dalle 2 / Imagen и многие другие нейронки «текст в картинку» станут повседневным инструментов для всех, кто работает с визуальным контентом.
— Те кто не будет противится прогрессу (а такие всегда будут), возьмут этот инструмент на вооружение и он будет им экономить время и деньги.
— Пройдет лет 5 и в требованиях к вакансиям всяких там дизайнеров, будут добавлять «Знание промпт инженеринга» (промпт — это текстовый запрос, что подается нейронке на вход, у Dalle 2 до 400 символов).
— Ну и люди знающие как это работает, будут добавлять себе «промпт инженеринг» как скилл в резюме.
Я явно не один так думаю, потому что вот вам PDF новой бесплатной книги, где все 80 страниц про — «Prompt engineering» и то, как получить разные клевые результаты от этих нейронок.
А вот ссылка на страницу запроса доступа к Dalle 2, вдруг вы еще не подались туда.
Буквально на наших глаза зарождается новый навык владения профессиональным инструментом, не часто такое встретишь.
— Dalle 2 / Imagen и многие другие нейронки «текст в картинку» станут повседневным инструментов для всех, кто работает с визуальным контентом.
— Те кто не будет противится прогрессу (а такие всегда будут), возьмут этот инструмент на вооружение и он будет им экономить время и деньги.
— Пройдет лет 5 и в требованиях к вакансиям всяких там дизайнеров, будут добавлять «Знание промпт инженеринга» (промпт — это текстовый запрос, что подается нейронке на вход, у Dalle 2 до 400 символов).
— Ну и люди знающие как это работает, будут добавлять себе «промпт инженеринг» как скилл в резюме.
Я явно не один так думаю, потому что вот вам PDF новой бесплатной книги, где все 80 страниц про — «Prompt engineering» и то, как получить разные клевые результаты от этих нейронок.
А вот ссылка на страницу запроса доступа к Dalle 2, вдруг вы еще не подались туда.
Буквально на наших глаза зарождается новый навык владения профессиональным инструментом, не часто такое встретишь.
👍1
Forwarded from Big Data Science
🙌🏼7 Platforms of Federated ML
Federated learning is also referred to as collaborative because ML models are trained on multiple decentralized edge devices or servers containing local data samples without exchanging them. This approach differs from traditional centralized ML methods, where all local datasets are uploaded to a single server, and from more classical decentralized approaches with the same distribution of local data. Today, federated learning is actively used in the defense industry, telecommunications, pharmaceuticals and IoT platforms.
Federated Machine Learning ideas were first introduced by Google in 2017 to improve mobile keyboard text prediction using machine learning models trained on data from multiple devices. In federated ML, models are trained on multiple local datasets on local nodes without explicit data exchange, but with periodic exchange of parameters, such as deep neural network weights and biases, between local nodes to create a common global model. Unlike distributed learning, which was originally aimed at parallelizing computations, federated learning is aimed at learning heterogeneous data sets. In federated ML, datasets are usually highly heterogeneous in size. And clients, i.e. end devices where local models are trained can be unreliable and more prone to failure than in distributed learning systems where the nodes are data centers with powerful computing capabilities. Therefore, in order to provide distributed computing and synchronization of its results, federated ML requires frequent data exchange between nodes.
Due to its architectural features, federated ML has a number of disadvantages:
• heterogeneity between different local datasets - each node has an error in relation to the general population, and sample sizes can vary significantly;
• temporal heterogeneity - the distribution of each local dataset changes over time;
• it is necessary to ensure the compatibility of the data set on all nodes;
• hiding training datasets is fraught with the risk of introducing vulnerabilities into the global model;
• lack of access to global training data makes it difficult to identify unwanted biases in training inputs;
• there is a risk of losing updates to local ML models due to failures at individual nodes, which may affect the global model.
Today, federated ML is supported by the following platforms:
• FATE (Federated AI Technology Enabler) https://fate.fedai.org/
• Substra https://www.substra.ai/
• Python libraries PySyft and PyGrid https://github.com/OpenMined/PySyft, https://github.com/OpenMined/PyGrid, https://github.com/OpenMined/pygrid-admin
• Open FL https://github.com/intel/openfl
• TensorFlow Federated (TFF) https://www.tensorflow.org/federated
• IBM Federated Learning https://ibmfl.mybluemix.net/
• NVIDIA CLARA https://developer.nvidia.com/clara
Federated learning is also referred to as collaborative because ML models are trained on multiple decentralized edge devices or servers containing local data samples without exchanging them. This approach differs from traditional centralized ML methods, where all local datasets are uploaded to a single server, and from more classical decentralized approaches with the same distribution of local data. Today, federated learning is actively used in the defense industry, telecommunications, pharmaceuticals and IoT platforms.
Federated Machine Learning ideas were first introduced by Google in 2017 to improve mobile keyboard text prediction using machine learning models trained on data from multiple devices. In federated ML, models are trained on multiple local datasets on local nodes without explicit data exchange, but with periodic exchange of parameters, such as deep neural network weights and biases, between local nodes to create a common global model. Unlike distributed learning, which was originally aimed at parallelizing computations, federated learning is aimed at learning heterogeneous data sets. In federated ML, datasets are usually highly heterogeneous in size. And clients, i.e. end devices where local models are trained can be unreliable and more prone to failure than in distributed learning systems where the nodes are data centers with powerful computing capabilities. Therefore, in order to provide distributed computing and synchronization of its results, federated ML requires frequent data exchange between nodes.
Due to its architectural features, federated ML has a number of disadvantages:
• heterogeneity between different local datasets - each node has an error in relation to the general population, and sample sizes can vary significantly;
• temporal heterogeneity - the distribution of each local dataset changes over time;
• it is necessary to ensure the compatibility of the data set on all nodes;
• hiding training datasets is fraught with the risk of introducing vulnerabilities into the global model;
• lack of access to global training data makes it difficult to identify unwanted biases in training inputs;
• there is a risk of losing updates to local ML models due to failures at individual nodes, which may affect the global model.
Today, federated ML is supported by the following platforms:
• FATE (Federated AI Technology Enabler) https://fate.fedai.org/
• Substra https://www.substra.ai/
• Python libraries PySyft and PyGrid https://github.com/OpenMined/PySyft, https://github.com/OpenMined/PyGrid, https://github.com/OpenMined/pygrid-admin
• Open FL https://github.com/intel/openfl
• TensorFlow Federated (TFF) https://www.tensorflow.org/federated
• IBM Federated Learning https://ibmfl.mybluemix.net/
• NVIDIA CLARA https://developer.nvidia.com/clara
Fate
HOME
An Industrial Grade
Federated Learning Framework
support federated learning architectures and secure computation of any machine learning algorithms
Federated Learning Framework
support federated learning architectures and secure computation of any machine learning algorithms
Forwarded from ̶с̶а̶м̶̶о̶изолента мёбиуса
На прошлой неделе меня дважды спрашивали, как восстановить текст предложения из его LaBSE эмбеддинга. Я дважды отвечал, что никак.
Но на самом деле, конечно, можно обучить декодер генерировать текст по его эмбеддингу. Я попробовал, и примерно получилось.
Зачем это делать? Например, чтобы:
- переводить со 100 разных языков на русский;
- суммаризовать много похожих предложений одним;
- реалистично заменять фразы в составе предложений;
- менять смысл предложений.
Модель для восстановления предложений из эмбеддингов опубликована как cointegrated/rut5-base-labse-decoder, а подробности – на Хабре.
Но на самом деле, конечно, можно обучить декодер генерировать текст по его эмбеддингу. Я попробовал, и примерно получилось.
Зачем это делать? Например, чтобы:
- переводить со 100 разных языков на русский;
- суммаризовать много похожих предложений одним;
- реалистично заменять фразы в составе предложений;
- менять смысл предложений.
Модель для восстановления предложений из эмбеддингов опубликована как cointegrated/rut5-base-labse-decoder, а подробности – на Хабре.
Forwarded from Habr For Dev
Forwarded from Big Data Science
🙌🏼Computational complexity of ML algorithms
When the amount of data is low, almost any ML algorithm gives acceptable accuracy and is suitable for solving the tasks. But when the volume and size of the data become large, it is necessary to choose an algorithm for training the ML model that does not require too many computing resources. It is better to choose a simple or less expensive algorithm in terms of computation than an algorithm that requires large computational resources, when the accuracy of prediction and evaluation of results is similar or even slightly worse.
The choice of algorithm depends on the following consequences:
• the order of time (complexity of time) required to calculate the algorithm - functions associated with the data of the algorithm itself, the volume and number of features
• set of computational space (spatial complexity) - the order of the space required during the calculation of the algorithm - a function associated with the algorithm, such as the number of features, coefficients, hidden layers of neural networks. Space complexity includes both the size of the input data and the ancillary space (auxiliary space) used by the algorithm during execution;
For example, Mergesort has an ancillary space 𝑂(𝑛) and volume complexity 𝑂(𝑛), while Quicksort has an ancillary space 𝑂(1) and volume complexity 𝑂(𝑛). As a result, both merge sort and quick sort have time stability 𝑂(𝑛log𝑛).
https://medium.com/datadailyread/computational-complexity-of-machine-learning-algorithms-16e7ffcafa7d
When the amount of data is low, almost any ML algorithm gives acceptable accuracy and is suitable for solving the tasks. But when the volume and size of the data become large, it is necessary to choose an algorithm for training the ML model that does not require too many computing resources. It is better to choose a simple or less expensive algorithm in terms of computation than an algorithm that requires large computational resources, when the accuracy of prediction and evaluation of results is similar or even slightly worse.
The choice of algorithm depends on the following consequences:
• the order of time (complexity of time) required to calculate the algorithm - functions associated with the data of the algorithm itself, the volume and number of features
• set of computational space (spatial complexity) - the order of the space required during the calculation of the algorithm - a function associated with the algorithm, such as the number of features, coefficients, hidden layers of neural networks. Space complexity includes both the size of the input data and the ancillary space (auxiliary space) used by the algorithm during execution;
For example, Mergesort has an ancillary space 𝑂(𝑛) and volume complexity 𝑂(𝑛), while Quicksort has an ancillary space 𝑂(1) and volume complexity 𝑂(𝑛). As a result, both merge sort and quick sort have time stability 𝑂(𝑛log𝑛).
https://medium.com/datadailyread/computational-complexity-of-machine-learning-algorithms-16e7ffcafa7d
Medium
Computational Complexity of Machine Learning Algorithms
Pick the right algorithm for your data
Forwarded from ̶с̶а̶м̶̶о̶изолента мёбиуса
Оказывается, есть проект https://panlex.org по сбору общего словаря для всех языков мира (сейчас там представлены 6 тысяч языков).
Так что (как советуют Artexte et al, 2020), не говорите, что для вашего малоресурсного языка совсем нет параллельных данных в открытом доступе. Скорее всего, хотя бы несколько сотен лексем с переводом на другие языки у вас найдётся.
Так что (как советуют Artexte et al, 2020), не говорите, что для вашего малоресурсного языка совсем нет параллельных данных в открытом доступе. Скорее всего, хотя бы несколько сотен лексем с переводом на другие языки у вас найдётся.
Forwarded from Pythonist.ru - образование по питону
Топ-5 книг по машинному обучению для питонистов
Уже даже на позицию Python-разработчика уровня Junior часто задают базовые вопросы по машинному обучению. Чтобы помочь вам войти в эту тему и разобраться с основами ML (Machine learning), мы собрали для вас подборку из пяти книг.
#книги #ml
Книги по ML - @maschinelearning
Уже даже на позицию Python-разработчика уровня Junior часто задают базовые вопросы по машинному обучению. Чтобы помочь вам войти в эту тему и разобраться с основами ML (Machine learning), мы собрали для вас подборку из пяти книг.
#книги #ml
Книги по ML - @maschinelearning
Forwarded from эйай ньюз
This media is not supported in your browser
VIEW IN TELEGRAM
NUWA-Infinity: новая авторегресионная модель для генерации картинок большого размера
Микромягкие выкатили новую модельку, улучшение NUWA. По сравнению с DALL·E, Imagen и Parti, микрософтовсккая модель генерит в высоком разрешении длинные картинки произвольного размера, да ещё в image-2-video умеет.
Модель авторегресионная, без диффузии. Результаты на видео. Кода пока нет,но, кажется, планируют выкатить.
📜 Статья
🌐 Сайт проекта (там есть интерактивные визуализации)
@ai_newz
Микромягкие выкатили новую модельку, улучшение NUWA. По сравнению с DALL·E, Imagen и Parti, микрософтовсккая модель генерит в высоком разрешении длинные картинки произвольного размера, да ещё в image-2-video умеет.
Модель авторегресионная, без диффузии. Результаты на видео. Кода пока нет,но, кажется, планируют выкатить.
📜 Статья
🌐 Сайт проекта (там есть интерактивные визуализации)
@ai_newz
Forwarded from Библиотека программиста
🔥 Вместо кофе — раскаленное железо, а вместо чашки — огромный ковш. Data Science на службе у сталеваров
Рассказ о том, как аналитическая подсистема, состоящая из двух математических моделей, снижает потребление электроэнергии и износ графитовых электродов, экономя сталеварам до полумиллиона рублей в месяц.
https://proglib.io/sh/ovNyI1LZGW
Рассказ о том, как аналитическая подсистема, состоящая из двух математических моделей, снижает потребление электроэнергии и износ графитовых электродов, экономя сталеварам до полумиллиона рублей в месяц.
https://proglib.io/sh/ovNyI1LZGW
Forwarded from Мишин Лернинг
😉 Stable Diffusion Beta Access
Помните писал про то, что скоро будет моделька (фото с огромным зайкой на улице)
Модель представляет из себя смесь Latent Diffusion Model и DALL•E 2 на CLIP векторах и в 'стабильном 'CLIP-Guided режиме. Отсюда и имя: Stable Diffusion
Подробнее в следующем посте
> заявка на бету
Помните писал про то, что скоро будет моделька (фото с огромным зайкой на улице)
Модель представляет из себя смесь Latent Diffusion Model и DALL•E 2 на CLIP векторах и в 'стабильном 'CLIP-Guided режиме. Отсюда и имя: Stable Diffusion
Подробнее в следующем посте
> заявка на бету
Forwarded from ̶с̶а̶м̶̶о̶изолента мёбиуса
Меня регулярно спрашивают, как я отношусь к проекту No Language Left Behind (машинный перевод для кучи языков; последний релиз покрыл 202).
Сразу оговорюсь, что скоро я буду относиться к нему непосредственно, поэтому моя позиция может быть не совсем объективной. Но я таки выскажусь.
Исследователи из Меты всерьёз заморочились с "продуктовым" подходом, проведя перед началом исследования кастдев носителей малоресурсных языков, потенциальных пользователей их машинного перевода. А для создания тестового датасета (FLORES) они наняли профессиональных переводчиков, чтобы метрики качества были более надёжными и осмысленными. Плюс, уже с готовой моделью, ещё раз сделали для всех языков человеческую оценку качества. По-моему, такая ориентация на полезный результат очень круто смотрится по сравнению с "делаем исследование, чтобы опубликоваться" или "инжинирим, чтобы обновить SOTA на 1%".
При этом, в отличие от Google, недавно замахнувшегося на 1000 языков, или от эпически неоткрытых OpenAI, Meta честно публикует свои наработки в открытый доступ. И код, и кучу параллельных корпусов, и модель для перевода, и модели для эмбеддингов предложений и идентификации языков. По-моему, ресёч таким и должен быть.
Модели для перевода уже доступны на HF, включая дистиллированную относительно небольшую (2.5 GB) версию. Я поигрался с ней чуть-чуть, оказалось, что для примерно 90% языков перевод с русского на другой язык и назад вполне сохраняет смысл и читабельно выглядит. То есть да, модель не просто что-то там генерирует, а в целом вполне себе всерьёз переводит. А ещё я потестировал модель на своей любимой задаче перефразирования, и с ней она тоже вроде вполне справляется, причём даже в один проход, без перевода на промежуточные языки.
Одна из проблем, которую разработчики постарались забороть – это разновидность катастрафических ошибок перевода, когда модель ни с того ни с сего генерирует токсичные тексты. Решить её попытались удалением из обучающих корпусов таких пар предложений, где во втором предложении больше токсичных фраз, чем в первом. Списки фраз для всех 200 языков составляли вручную. Я проглядел список для русского: там 1.5К слов; часть в разных склонениях, часть нет, и вперемешку разные виды "токсичности": однозначно грубая лексика, грубоватые выражения типа "офигенный", потенциальные оскорбления типа "глупый", связанные с сексом слова типа "голый" или "анус", "экстремальные" слова типа "нацист". И очень много слов с переносным значением типа "днище" или "петушок", или неоднозначных (без контекста) типа "попа", "сучки", или "фиговый". В общем, полнота списка довольно высокая, но интуитивно показалось, что и ложных срабатываний должно быть много. Проверил на датасете Одноклассников: токсичные слова нашлись в 53% токсичных комментариев, и в 1.7% нетоксичных комментариев (или в 66% и 2.9%, если сравнивать все леммы; что сопоставимо со Сколтеховским списком токсичных слов). Это вполне бьётся с результатами Меты, которые нашли 0.7% токсичных фраз в Библии. Но насколько вся эта фильтрация действительно решает проблемы токсичных переводов, ни мне, ни авторам NLLB до конца пока не понятно.
Сразу оговорюсь, что скоро я буду относиться к нему непосредственно, поэтому моя позиция может быть не совсем объективной. Но я таки выскажусь.
Исследователи из Меты всерьёз заморочились с "продуктовым" подходом, проведя перед началом исследования кастдев носителей малоресурсных языков, потенциальных пользователей их машинного перевода. А для создания тестового датасета (FLORES) они наняли профессиональных переводчиков, чтобы метрики качества были более надёжными и осмысленными. Плюс, уже с готовой моделью, ещё раз сделали для всех языков человеческую оценку качества. По-моему, такая ориентация на полезный результат очень круто смотрится по сравнению с "делаем исследование, чтобы опубликоваться" или "инжинирим, чтобы обновить SOTA на 1%".
При этом, в отличие от Google, недавно замахнувшегося на 1000 языков, или от эпически неоткрытых OpenAI, Meta честно публикует свои наработки в открытый доступ. И код, и кучу параллельных корпусов, и модель для перевода, и модели для эмбеддингов предложений и идентификации языков. По-моему, ресёч таким и должен быть.
Модели для перевода уже доступны на HF, включая дистиллированную относительно небольшую (2.5 GB) версию. Я поигрался с ней чуть-чуть, оказалось, что для примерно 90% языков перевод с русского на другой язык и назад вполне сохраняет смысл и читабельно выглядит. То есть да, модель не просто что-то там генерирует, а в целом вполне себе всерьёз переводит. А ещё я потестировал модель на своей любимой задаче перефразирования, и с ней она тоже вроде вполне справляется, причём даже в один проход, без перевода на промежуточные языки.
Одна из проблем, которую разработчики постарались забороть – это разновидность катастрафических ошибок перевода, когда модель ни с того ни с сего генерирует токсичные тексты. Решить её попытались удалением из обучающих корпусов таких пар предложений, где во втором предложении больше токсичных фраз, чем в первом. Списки фраз для всех 200 языков составляли вручную. Я проглядел список для русского: там 1.5К слов; часть в разных склонениях, часть нет, и вперемешку разные виды "токсичности": однозначно грубая лексика, грубоватые выражения типа "офигенный", потенциальные оскорбления типа "глупый", связанные с сексом слова типа "голый" или "анус", "экстремальные" слова типа "нацист". И очень много слов с переносным значением типа "днище" или "петушок", или неоднозначных (без контекста) типа "попа", "сучки", или "фиговый". В общем, полнота списка довольно высокая, но интуитивно показалось, что и ложных срабатываний должно быть много. Проверил на датасете Одноклассников: токсичные слова нашлись в 53% токсичных комментариев, и в 1.7% нетоксичных комментариев (или в 66% и 2.9%, если сравнивать все леммы; что сопоставимо со Сколтеховским списком токсичных слов). Это вполне бьётся с результатами Меты, которые нашли 0.7% токсичных фраз в Библии. Но насколько вся эта фильтрация действительно решает проблемы токсичных переводов, ни мне, ни авторам NLLB до конца пока не понятно.
Forwarded from ̶с̶а̶м̶̶о̶изолента мёбиуса
Теперь про политику. Мета, помимо прочего, дистиллировала на данных Википедии свою модель в ~30 моделек для отдельных языковых направлений (типа русский-башкирский, английский-исландский, франзцузский-окситанский) и отдали редакторам Википедии, чтобы упростить её наполнение на малоресурсных языках. @snakers4 подозревает, что благодаря этому теперь Википедия перестала быть свободной и стала оружием гибридной войны: теперь её будут наполнять фейками, переведёнными сразу на все языки. Мне эта логическая цепочка кажется надуманной, но если в неё кто-то верит, это может быть даже хорошо: это может мотивировать кого-нибудь ещё создавать свои переводчики, независимые от Меты. А в делах научных конкуренция – это здорово и относительно безопасно, так что если кому-то хочется заниматься гонкой вооружений, пусть занимаются этим на лингвистическом фронте. А то действительно чуть стыдно, что русско-башкирский переводчик разрабатывает французское подразделение американской компании 🤷♂️
А вообще, языков народов РФ в NLLB пока покрыто не очень много: русский, башкирский, татарский, да вроде и всё. Это даже меньше, чем в Helsinki-NLP/opus-mt-mul-en, где ещё есть чеченский (но она переводит только с или на английский), и сильно меньше, чем поддержано в Яндексе, хотя и он покрывает сильно меньше половины государственных языков субъектов РФ. Так что нам, обитателям северной Евразии, ещё есть над чем работать. Ну и вообще, в мире насчитывается около 7000 языков, так что работы ещё много. И Мета, судя по всему, на 200 языках останавливаться не собирается.
А вообще, языков народов РФ в NLLB пока покрыто не очень много: русский, башкирский, татарский, да вроде и всё. Это даже меньше, чем в Helsinki-NLP/opus-mt-mul-en, где ещё есть чеченский (но она переводит только с или на английский), и сильно меньше, чем поддержано в Яндексе, хотя и он покрывает сильно меньше половины государственных языков субъектов РФ. Так что нам, обитателям северной Евразии, ещё есть над чем работать. Ну и вообще, в мире насчитывается около 7000 языков, так что работы ещё много. И Мета, судя по всему, на 200 языках останавливаться не собирается.
Forwarded from ̶с̶а̶м̶̶о̶изолента мёбиуса
Ещё про энкодеры предложений.
FAIR в 2017 году (ещё до USE и BERT) опубликовал LASER, мультиязычный энкодер предложений. Дальше его активно использовали для майнинга параллельных предложений из Википедии и Common Crawl. В 2020 году появился LaBSE, который давал эмбеддинги получше, специально обученные именно на задаче подбора пар переводов. А в ходе проекта NLLB в LASER добавили энкодеры для сотни новых языков, дистиллировав их из имеющегося энкодера. Я их пока не успел попробовать, но судя по получившимся в итоге майнинга параллельных корпусам, качество там нормальное. Надеюсь, их скоро добавят в какую-нибудь удобную обёртку типа laserembeddings, или даже вообще на HF выложат.
Какие вообще выводы можно сделать из всей этой истории про энкодеры предложений? Я недавно их сравнивал на десятке задачи из русского языка, но ещё несколько обобщающих выводов хочу озвучить.
1) Мультиязычные энкодеры рулят: LASER, mUSE, LaBSE, и новые мультиязычные sentence-transformers на многих русских задачах обгоняют или дышат в спину моделям от Сбера и DeepPavlov, обученным специально для русского языка.
2) Обучать энкодер предложений можно по-разному:
- можно (как LASER) учить пару энкодер+декодер, заставляя декодер восстанавливать предложение из вектора;
- можно (как sentence-BERT) дообучать би-энкодер на задачах попарного сравнения предложений, типа NLI;
- можно (как LaBSE) сразу учить модель на задаче идентификации пар предложений с одинаковым смыслом;
- можно (как USE) обучаться сразу на массе разнообразных задач, чтобы создать максимально универсальную модель.
Есть ли среди этих подходов какой-то наилучший, неочевидно. Кажется, все четыре – вполне рабочие.
3) Если есть хороший энкодер предложений для одного языка, и есть параллельные датасеты, не очень сложно дистиллировать модель в мультиязычный энкодер (типа этого, см. статью) или в кучу энкодеров для отдельных новых языков (как, собственно, LASER-3, или как недавно сделали наши энтузиасты для башкирского и чувашского).
А поскольку энкодеры предложений – это основа для кучи полезных приложений (самое очевидное – классификация текстов, поиск, но вообще можно даже доучить к энкодеру декодер и использовать эту пару моделей для seq2seq задач), то доступность этих энкодеров для кучи малоресурсных языков означает, что разнообразное NLP с этими языками теперь стало более доступным.
FAIR в 2017 году (ещё до USE и BERT) опубликовал LASER, мультиязычный энкодер предложений. Дальше его активно использовали для майнинга параллельных предложений из Википедии и Common Crawl. В 2020 году появился LaBSE, который давал эмбеддинги получше, специально обученные именно на задаче подбора пар переводов. А в ходе проекта NLLB в LASER добавили энкодеры для сотни новых языков, дистиллировав их из имеющегося энкодера. Я их пока не успел попробовать, но судя по получившимся в итоге майнинга параллельных корпусам, качество там нормальное. Надеюсь, их скоро добавят в какую-нибудь удобную обёртку типа laserembeddings, или даже вообще на HF выложат.
Какие вообще выводы можно сделать из всей этой истории про энкодеры предложений? Я недавно их сравнивал на десятке задачи из русского языка, но ещё несколько обобщающих выводов хочу озвучить.
1) Мультиязычные энкодеры рулят: LASER, mUSE, LaBSE, и новые мультиязычные sentence-transformers на многих русских задачах обгоняют или дышат в спину моделям от Сбера и DeepPavlov, обученным специально для русского языка.
2) Обучать энкодер предложений можно по-разному:
- можно (как LASER) учить пару энкодер+декодер, заставляя декодер восстанавливать предложение из вектора;
- можно (как sentence-BERT) дообучать би-энкодер на задачах попарного сравнения предложений, типа NLI;
- можно (как LaBSE) сразу учить модель на задаче идентификации пар предложений с одинаковым смыслом;
- можно (как USE) обучаться сразу на массе разнообразных задач, чтобы создать максимально универсальную модель.
Есть ли среди этих подходов какой-то наилучший, неочевидно. Кажется, все четыре – вполне рабочие.
3) Если есть хороший энкодер предложений для одного языка, и есть параллельные датасеты, не очень сложно дистиллировать модель в мультиязычный энкодер (типа этого, см. статью) или в кучу энкодеров для отдельных новых языков (как, собственно, LASER-3, или как недавно сделали наши энтузиасты для башкирского и чувашского).
А поскольку энкодеры предложений – это основа для кучи полезных приложений (самое очевидное – классификация текстов, поиск, но вообще можно даже доучить к энкодеру декодер и использовать эту пару моделей для seq2seq задач), то доступность этих энкодеров для кучи малоресурсных языков означает, что разнообразное NLP с этими языками теперь стало более доступным.