DS & ML
589 subscribers
1.17K photos
238 videos
240 files
1.41K links
Download Telegram
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
На прошлой неделе меня дважды спрашивали, как восстановить текст предложения из его LaBSE эмбеддинга. Я дважды отвечал, что никак.

Но на самом деле, конечно, можно обучить декодер генерировать текст по его эмбеддингу. Я попробовал, и примерно получилось.

Зачем это делать? Например, чтобы:
- переводить со 100 разных языков на русский;
- суммаризовать много похожих предложений одним;
- реалистично заменять фразы в составе предложений;
- менять смысл предложений.

Модель для восстановления предложений из эмбеддингов опубликована как cointegrated/rut5-base-labse-decoder, а подробности – на Хабре.
Forwarded from Habr For Dev
#data-science #feature-engineering

В Data Science не нужна математика (Почти)

Рейтинг: 119

Читать
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
Forwarded from Big Data Science
Computational Complexity of Machine Learning Algorithms
Оказывается, есть проект https://panlex.org по сбору общего словаря для всех языков мира (сейчас там представлены 6 тысяч языков).
Так что (как советуют Artexte et al, 2020), не говорите, что для вашего малоресурсного языка совсем нет параллельных данных в открытом доступе. Скорее всего, хотя бы несколько сотен лексем с переводом на другие языки у вас найдётся.
​Топ-5 книг по машинному обучению для питонистов

Уже даже на позицию 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
Forwarded from Библиотека программиста
​🔥 Вместо кофе — раскаленное железо, а вместо чашки — огромный ковш. Data Science на службе у сталеваров

Рассказ о том, как аналитическая подсистема, состоящая из двух математических моделей, снижает потребление электроэнергии и износ графитовых электродов, экономя сталеварам до полумиллиона рублей в месяц.

https://proglib.io/sh/ovNyI1LZGW
😉 Stable Diffusion Beta Access

Помните писал про то, что скоро будет моделька (фото с огромным зайкой на улице)

Модель представляет из себя смесь Latent Diffusion Model и DALL•E 2 на CLIP векторах и в 'стабильном 'CLIP-Guided режиме. Отсюда и имя: Stable Diffusion

Подробнее в следующем посте

> заявка на бету
Меня регулярно спрашивают, как я отношусь к проекту 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 до конца пока не понятно.
Теперь про политику. Мета, помимо прочего, дистиллировала на данных Википедии свою модель в ~30 моделек для отдельных языковых направлений (типа русский-башкирский, английский-исландский, франзцузский-окситанский) и отдали редакторам Википедии, чтобы упростить её наполнение на малоресурсных языках. @snakers4 подозревает, что благодаря этому теперь Википедия перестала быть свободной и стала оружием гибридной войны: теперь её будут наполнять фейками, переведёнными сразу на все языки. Мне эта логическая цепочка кажется надуманной, но если в неё кто-то верит, это может быть даже хорошо: это может мотивировать кого-нибудь ещё создавать свои переводчики, независимые от Меты. А в делах научных конкуренция – это здорово и относительно безопасно, так что если кому-то хочется заниматься гонкой вооружений, пусть занимаются этим на лингвистическом фронте. А то действительно чуть стыдно, что русско-башкирский переводчик разрабатывает французское подразделение американской компании 🤷‍♂️

А вообще, языков народов РФ в NLLB пока покрыто не очень много: русский, башкирский, татарский, да вроде и всё. Это даже меньше, чем в Helsinki-NLP/opus-mt-mul-en, где ещё есть чеченский (но она переводит только с или на английский), и сильно меньше, чем поддержано в Яндексе, хотя и он покрывает сильно меньше половины государственных языков субъектов РФ. Так что нам, обитателям северной Евразии, ещё есть над чем работать. Ну и вообще, в мире насчитывается около 7000 языков, так что работы ещё много. И Мета, судя по всему, на 200 языках останавливаться не собирается.
Ещё про энкодеры предложений.

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 с этими языками теперь стало более доступным.
Forwarded from эйай ньюз
Наткнулся на любопытную статью с MICCAI 2021 (это крупнейшая конференция по AI в медицине). Оказывается, нейросеть довольно точно (ошибка 4-6 лет, в зависимости от датасета) может предсказать возраст пациента по рентгеновскому снимку кисти.

@ai_newz
Forwarded from Kali Novskaya (Tatiana Shavrina)
Ситуация с LаMBA дошла до того, что журнал Scientific American выпустил научно-популярную статью, в которой рассказывает общественности о тесте Тьюринга и берет интервью у нейробиолога, чтобы он объяснил, что у нейросетей не может быть (пока) сознания.

В интересное время живём!
Forwarded from Big Data Science
👍🏻TOP 4 dbt tips for data analyst and data engineer
dbt (data build tool)
is an open source code framework for executing, testing and documenting SQL queries, which allows you to process data analysis machine, including structuring and description of arrivals, their search, nested calls, rule triggering, documentation and testing. For example, you can use the dbt CLI or dbt Cloud to work with data collection to consume, transform, and load data into storage by computing a dynamic database on a schedule. To increase the efficiency of using dbt for the selection of schemas, sources and models, it is possible to use data:
• The Schema.yml file can only be found in the dbt models folder. The tool allows you to create a unit test that counts the duration of a column for nulls.
• dbt data tests have a strict rule that they must return null rows in order to pass the test. Instead of looking for a value such as the number of a particular set of rows, the data test should be written to expect to find null rows if the results do not match the correct set of sums. Therefore, when developing test data, you need to think about how to return 0 rows in the expected key, but at the same time you need to check the number. You can use the != or <= operators to validate data.
• To increase the speed of testing increase the number of threads in the project profile, in the profiles.yml file. For example, if there are 30 tests, then there are 40 threads, indicate in the profiles.yml file. Probably 30 data and schema tests in 4 seconds.
• The history test needs a meaningful name. Although dbt automatically learns the test names, it is recommended that you label them yourself. dbt doesn't have much control over running small test suites, it needs to be able to see all running projects. In the same way that developers are encouraged to use functions and variables with semantic name definitions, testing should be given tests for meaningful names. Otherwise, it will be difficult to determine which test passes or fails during test execution. When a test error is found in dbt, all schema and data tests are run together. It's not easy to use a single directory in the data tests folder, but you can name them "dbt test - schema" or "dbt test - data" to quickly determine which tests to use.

https://corissa-haury.medium.com/4-quick-facts-about-dbt-testing-5c32b487b8cd
Forwarded from Open Source
This media is not supported in your browser
VIEW IN TELEGRAM
RePaint

Нейросетевая модель «RePaint: Inpainting с использованием вероятностных моделей диффузии с шумоподавлением»

Простыми словави, она может восстановить недостающую часть изображения или даже например снять с вас маску на фотографии.😷

https://github.com/andreas128/RePaint
Forwarded from эйай ньюз
This media is not supported in your browser
VIEW IN TELEGRAM
Тут челик в твиттере сделал просто божественный ролик с помощью DALLE-2. Делая интерполяцию и последовательно подавая 57 текстовых запросов в нейросеть, он производит зум-аут от масштаба протонов, до масштаба галактики.

И качество картинки поразительное. Обалденно!

Нейросети прогрессируют у нас на глазах.

@ai_newz