Как посмотреть на текст в виде графика?
Есть датасет статей и их топиков: статьи про природу, статьи про политику, статьи про гачимучи....Так как статьи имеют большое количество предложений, я использовал SBERT модели. (Они нужны для создания эмбеддингов предложения). Сравниваем SBERTы с FastText и Glove.
1️⃣ Взяв, все статьи и превратив их в эмбеддинги с помощью моделей.
2️⃣ Я сжал их с помощью UMAP до векторного двумерного пространства, чтобы изобразить на графике.
3️⃣ Матерясь и крехтя, я нарисовал получившиеся графики, где разные цвета - топики статей.
Первые две картинки - это распределение SBERTовых моделей, последние - это Glove, FastText
Вывод
SBERT-модели лучше различают топики, что говорит об более-менее адекватной разметки и хорошей аппроксимации текста. А вот остальные модели не очень справляются со своими задачами, на графиках всё в кучу
Если у вас есть мощности, то используйте SBERT-модели, если вы на калькуляторе, то купите комп и используйте предобученный Word2Vec, Glove, FastText 🤡
❤8
Предобработка данных - г#&%о!Сегодня поговорим об языковых моделях, их токенизации и том нужно ли для них предобработывать текстовые данные или нет ? 🥸
Модели 🤖
В word2vec, glove используется токенизация по словам, то есть каждому слову даётся айдишник ,и на инференсе выдаются эмбеддинги слов.
В FastText используются n-grams, слово делится на кусочки, и на инференсе эмбеддинги кусочков агрегируются в один эмбеддинг.
В BERT моделях используются BPE - это алгоритм сжатия данных, который заменяет наиболее часто встречающиеся пары байтов на новый байт, который не встречается в последовательности - очень круто сжимает данные.
Например: крышесноснящий при токенизации превратиться в примерно что-то такое: крыш###, ###снос###, ###ящий
Предобработка данных в языковых моделях 🧮
Под предобработкой я подразумеваю следующие операции над текстом: стемминг, лемматизация, удаление стоп слов, очистка от пунктуации.
В word2vec, glove, FastText - предобработка очень важна, так как их токенизация и архитектура не может запомнить зависимость прошедшего времени в слове от какой-нибудь другой сущности в тексте, а в BERT моделях лучше не предобработывать данные, так как их токенизация и механизм внимания позволяет запомнить связи между грамматикой. Но стоит отметить, что любой мусорный (без информации) текст всё таки стоит удалить.
Например 🙌
Я брал текста из статей, которые разделены на темы: спорт, война, инициация, Путин...
На первой картинке с обработкой, на второй - без. Модель: miniLM (Это SBERTовая модель). Каждый цвет - это топик статьи.
Как видно из распределений на первой картинке (с обработкой) - всё в кучу по сравнению со второй (без обработки). Это означает, что эмбеддинги статей получились лучше для текста без предобработки, так как распределения стали лучше различимы, они не смешиваются в кашу, как на первой картинке. Стоить заметить, что мы сделали такой вывод, только исходя из разметки статей.
👍2🔥2❤1
Десять Сталинских ударов NVIDIA по соревнованию по RecSys 🪖
Booking.com, сервис который занимается туризмом, помогая пользователям в планировании путешествий, решил устроить соревнование по RecSys.Данные 🗂
Если кратко, то когда, где и какой пользователь путешествовал
Модель 🤖
Страшная нейросеть (1 картинка), которая состоит из трёх нейронок. На вход нейронкам фичи, а на выходе вероятности, что город будет последним в путешествии.
На вершине каждой находится Matrix Factorization Layer - обычное умножение матриц, а именно умножение матрицы эмбеддингов пользователей, на каждый эмбеддинг сессии, а на выходе получившийся эмбеддинг проходит через softmax.
r = softmax(s * I). s – эмбеддинг сессии, I – эмбеддинг пользователей. Каждое s пробегается по все множеству I.
1️⃣ Первая модель - Обычные FC слои
Фичи входят перемножаются через FC слои, по итогу получается эмбеддинг, который умножается с фичами, а именно эмбеддингами последних пяти городов
2️⃣ Вторая модель - GRU
Эмбеддинги последних пяти городов проходят через GRU, они же конкатятся с фичами и проходят FC слои, затем используется MultiStage Session-based Matrix Factorization head, которая состоит из двух стадий:
a) На первой стадии используется softmax head для того, чтобы выбрать топ 50 городов для следующей стадии
б) На второй стадии конкатим выходы с FC и с первой стадии и перемножаем с эмбеддингами прошлых городов
3️⃣ Третья модель - XLNet
За основу взята модель XLNet, которая обучалась на предсказании пропущенного слова на основе соседних слов, которых мы знаем. Также и здесь, мы знаем соседние города и предсказываем город между ними.
На вход XLNet`у эмбеддинг, который получился из конкатенированных данных пропущенных через FC, на выходе также эмбеддинг, который идёт в Matrix Factorization Head с эмбеддингом последнего города.
Именно так NVIDIA нанесла 13 сталинских ударов по booking.com и вынесла трон, заняв первое место 🦾
👍3❤🔥1🤯1
Десять Сталинских ударов NVIDIA по соревнованию по RecSys 🪖❤🔥4💯1👀1
HuggingChat - конкурент ChatGPT с открытым исходным кодом 🤗HuggingFace выпустила свой аналог ChatGPT, в основе которого лежит модель 30B параметров, когда в ChatGPT 170B.
(HuggingChat имеет под собой oasst-sft-6-llama-30b)
Интерфейс похож на ChatGPT, но на деле может порой выдавать странные вещи особенно на русском языке, но на английском более менее адекватно 🔥
HuggingChat, Модель
🔥4👍2👀1
Как мы чуть не уничтожили хакатон по МТСЗадача
Нужно сделать сервис для людей с проблемами зрения, который помогал бы им смотреть фильм.
Решение:
У каждого фильма есть свои сцены
1 сцена: ♂️ Американец и Азиат стоят в раздевалке и смотрят на друг друга ♂️
2 сцена: ♂️ Они начинают бороться ♂️
3 сцена: ....
И к каждой сцене я могу сделать текстовое описание, смотря на картинку. Получается задача Scene2Text (Visual Language) и здесь нам помогла модель VinVL, которая и отдаёт описание сцены 🦾
Отделив сцены и дав им описание, мы отправляем всё это дело на фронт, где и склеивается наш ролик 🤖
Решение крутилось на nginx, Flask в Docker-контейнерах
Итог:
Мы заняли никакое место, хоть и постарались учесть и продуктовую и техническую часть. Поэтому запомните, что красивая презентация и внешняя картинка вашего продукта может сыграть ключевую роль 🏆
GitHub, YouTube
🔥8👍4❤2
Уничтожение АлгоритмовЧтобы попасть в tier-one компанию вы должны лайкодить, а для этого нужно уничтожать алгоритмы и структуры данных
Вот ресурсы для низведения до нуля алгоритмов и структур данных:
1️⃣ NeetCode - работник гугла, очень много рассказывает про алгоритмы
2️⃣ RoadMap от NeedCode`a - необходимая и нерушимая база каждого лайвкодера, необходимо убить все эти задачи
3️⃣ Для закрепления ваших знаний и ещё большего погружения в мир алгосов
а) Тренировки по алгоритмам от Яндекса 1.0
б) Тренировки по алгоритмам от Яндекса 2.0
в) Тренировки по алгоритмам от Яндекса 3.0
4️⃣ Алгоритмы, Часть I
5️⃣ Специализация Data Structures and Algorithms
6️⃣ LeetCode - святило всех алгоритмов
7️⃣ Сложность алгоритмов
🔥12❤2🐳2👍1🥰1
Глобальное уничтожение ML/AI & ML System Design Здесь собрано огромное количество открытых курсов по ML / AI & ML System Design, чтобы уничтожать на собеседованиях, на работе, в соревнованиях.
Torch:
Classic ML:
Deep Learning:
NLP:
CV:
RL:
RecSys:
Примеры вопросов по ML:
ML System Design:
Тренировки:
Основу для материалов брал здесь, здесь и на основе собственного опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21❤9🥰4👍1👀1
Ebout Data Science | Дима Савелко pinned «Уничтожение Алгоритмов Чтобы попасть в tier-one компанию вы должны лайкодить, а для этого нужно уничтожать алгоритмы и структуры данных Вот ресурсы для низведения до нуля алгоритмов и структур данных: 1️⃣ NeetCode - работник гугла, очень много рассказывает…»
Ebout Data Science | Дима Савелко pinned «💥 Глобальное уничтожение ML/AI & ML System Design 💥 Здесь собрано огромное количество открытых курсов по ML / AI & ML System Design, чтобы уничтожать на собеседованиях, на работе, в соревнованиях. Torch: 1️⃣ Доклад инженера из Facebook AI Research Эдварда…»
Как GPT-4 только бесплатно 💸MiniGPT-4 - это модель разработанная ребятами из Саудовской Аравии. Модель выполняет такую же функцию, как и GPT-4, она понимает диалоги и принимает на вход картинки, также с ней можно общаться в форме диалога. Формулирует она предложения порой лучше, чем я, поэтому рекомендую к использованию 🤪. Такие функции на таком уровне ранее не встречались в языковых моделях и моделях визуального восприятия.
Она состоит из LLM модели Vicuna (отвечает за входящий/выходящий текст), а также Vision Transformer (отвечает за картинки).
Обучение MiniGPT-4 происходило в два этапа. Первый, этап предварительной подготовки, проводился на ~5 миллионах пар изображение-текст в течении 10 часов с использованием 4xA100. После первого этапа Vicuna стала способна понимать изображение. На втором этапе модель дообучилась на полученным в результате предыдущего шага наборе данных в виде диалоговых инструкций. В результате значительно улучшилось качество генерации ответов.
YouTube
🔥8❤🔥3⚡1❤1👍1🐳1💅1