Data, Stories and Languages
2.98K subscribers
69 photos
8 videos
512 links
Канал о Data Science, изучении иностранных языков, книгах и жизни.
Контакт с автором https://t.iss.one/Erlemar
Download Telegram
A Visual Guide to Quantization

На днях Maarten Grootendorst опубликовал шикарный гайд по квантизации. В нём раскрывает темы:
• что такое квантизация и зачем она нужна
• symmetric vs asymmentric quantization
• post-training quantization
• quantization aware training

Всё это с качественными пояснениями и отличными визуализациями. Рекомендую почитать тем, кто давно хотел разобраться в квантизации, но не доходили руки. Или для того, чтобы обновить знания.

Link

#datascience
🔥10👍21
torchchat: Accelerating Local LLM Inference on Laptop, Desktop and Mobile

Новая библиотека от разработчиков PyTorch - на этот раз для запуска LLM на ноутах, телефонах и десктопах.
https://pytorch.org/blog/torchchat-local-llm-inference/

#datascience
🔥15👍1
Announcing the results of the inaugural AlgoPerf: Training Algorithms benchmark competition

Какое-то время назад объявили соревнование с целью найти алгоритмы тренировки, которые бы могли ускорять разные модели.
https://mlcommons.org/2024/08/mlc-algoperf-benchmark-competition/

"""The AlgoPerf: Training Algorithms benchmark evaluates the time training required for different training algorithms across multiple realistic deep learning workloads when running on a fixed hardware configuration.

Scoring involved over 4000 individual training runs across the 14 workloads used in the benchmark."""

Было два бенчмарка.

Первый - с возможностью external tuning. Победила команда с сабмитом "Distributed Shampoo" из Meta и Samsung AI.
Второй - чисто self-tuning. Из всех сабмитов только один побил бейзлайн - "Schedule Free AdamW" от Meta.

По факту это звучит довольно круто - оптимизатор, который можно успешно использовать без scheduler. [Код](https://github.com/facebookresearch/schedule_free) доступен. Дефолтная реализация на PyTorch, но есть и вариант на Jax.

#datascience
🔥62
​​Повседневные вещи в иностранных языках

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

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

А насколько хорошо вы знаете эти слова?

#languages
👍6😁2🫡1
​​Diffusion Feedback Helps CLIP See Better

CLIP, при всех его достоинствах, имеет некоторые недостатки, включающие в себя плохое различение ориентации, количеств, цвета и структуры. Эти недостатки ограничивают возможности мультимодальных моделей, построенных на нём. Основная причина этого - такая информация отсутствует в оригинальном датасете для тренировки.
Авторы предлагают метод DIVA, использующий модель диффузии для оптимизации представлений CLIP без использования текста. DIVA улучшает производительность CLIP на MMVP-VLM на 3-7% и повышает эффективность мультимодальных моделей и моделей зрения в задачах multimodal understanding и сегментации. При этом качество zero-shot не страдает.

Выглядит просто и эффективно.

Paper link

Code link

Мои обзоры:
Personal blog
Medium
Linkedin Pulse

#paperreview
👍3🔥1
BRAG: High Performance RAG Model Trained in $25

Авторы знают толк в названиях :) Взяли пару вариантов Qwen2 и Llama-3 (+3.1), аккуратно подбирали датасеты (походу просто выбрали те, тренировка на которых давала лучшее качество на бенчмарках), дальше тюнили. Тренировали на 4 H100 один час.

https://themaximalists.substack.com/p/brag

#datascience
😁4🔥2
​​Praise your GitHub vs Roast your GitHub

Люди делают прикольные вещи с помощью LLM-ок. Например, есть два противоположных сайта:
https://github-roast.pages.dev/ - спарсит инфу о юзере с GitHub и устроит полный roast
https://praise-me.fly.dev/ - тоже спарсит инфу, но похвалит. (работает намного медленнее)

Иногда получается вполне годно.
🔥4🤣4😁2
Ко мне тут обратились с просьбой - распространить информацию об новом опросе про текущее состояние ML/DS:

Ребята из DevCrowd впервые проводят большое исследование специалистов, работающих в направлениях DS/ML/AI:

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

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

👉Пройти опрос

Посмотреть другие исследования проекта
👍51
Karpathy: RLHF is just barely RL

Karpathy выкатил длинный твит с размышлениями о RLHF:
• RL - мощно, RLHF - не так мощно
• он приводит в пример AlphaGo - модель тренировалась с RL, и в итоге научилась обыгрывать людей. Если бы её тренировали на RLHF, то люди бы оценивали какое состояние доски или какая последовательность действий лучше - по факту модель, аппроксимировала бы среднее поведение людей. И это не смогло бы привести к модели, которая превосходила бы людей
• Причины две - "какой вариант тебе больше нравится" не всегда коррелирует с вариантом, который ведёт к победе в игре; и модель может поломаться на ранее невиданных вариантах
• Его в целом удивляет/впечатляет то, что RLHF работает - ибо по факту оптимизируется на правильное/лучшее решение, а которое больше нравится асессорам. И в целом модель может быстро научиться эксплойтить.
• При всем при этом, RLHF работает и является полезным. Как минимум потому, что людям не надо создавать вариант с нуля - они выбивают что-то из предложенного.
• И есть большой аргумент в пользу RLHF - использовать его для оценочных задач типа "хорошая ли шутка, хорошо ли суммаризирован текст" легко. А вот для RL не понятно, как дизайнить reward function.

И в целом он называет RLHF "vibe check" :)

Tweet

#datascience
🔥13👍1
Facial recognition to detect duplicate Captain accounts

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

По ссылке можно почитать официальный вариант. Если стиль или тон текста покажутся странными - не удивляйтесь, оригинальный текст переписывали два-три раза для соответствия корпоративным стандартам, не всегда с моего согласия :)

Суть такая - иногда капитаны (так называют водителей такси в Careem) создают больше одного аккаунта для фрода: создают новый аккаунт после блокировки прошлого, для получения бонусов или для других способов получения преимущества. Таких случаев не то чтобы много, но они есть.
Корпоративная риторика: мы любим и уважаем наших ценных капитанов, бывает что они случайно создают дополнительные аккаунты, но иногда это происходит злоумышленно.

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

Сам подход довольно простой - собираем все фотографии капитанов (лежат у нас на S3), извлекаем эмбеддинги и сравниваем. Фоток было 2-3 миллиона. Для извлечения эмбеддингов я использовал либу face_recognition - можно использовать для коммерческих целей, работает шустро и достаточно хорошо. Эмбеддинги хранил и сравнивал с помощью Faiss-GPU. Индексирование и поиск топ-5 схожих эмбеддингов заняло около часа.

Были интересные фейлы модели - о них можно почитать в самой статье. Плюс, нужно было делать дополнительный пост-процессинг бизнес-правилами. Сложность добавляло то, что у нас очень не любят совершать ошибки в блокировках капитанов - поэтому требовали держать False Positives около нуля. После нескольких итераций обсуждений, в сумме заблокировали около 2к мошенников. Могли бы заблокировать на порядки больше - но никто не был готов делать ручные проверки, поэтому остановились на этом.

В прод для регулярных проверок не выкатывали по вышеописанной причине. И потом, через полгодика проверки при регистрации улучшили.

Для меня проект был довольно интересным, несмотря на то, что в чисто техническом смысле он был прост :) Из запоминающегося - некоторые мошенники брали свои фотки, вырезали лица и (явно в фотошопе) переносили их на яркий фон.

Ссылка

#datascience
👍9🔥41😁1
😁7🫡3
😱9😁2👍1🔥1
нужна ваша помощь в опенсорс-переводе 🧑‍💻

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

то же касается переводов между другими неангл языками

для улучшения перевода между англ и ру, нам нужно за следующие пару недель добить датасет с переводами — хотим дальше успеть до обучить модельки и опубликовать статью в одном журнале

Давид запилил бота для перевода — а я прошу вас помочь с оценкой существующих переводов и улучшением качества

@crowd_translate_bot

будем благодарны за участие! 💛
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤡2
​​Wolf: Captioning Everything with a World Summarization Framework

Статья от NVIDIA с красочным названием WOrLd summarization Framework. Авторы задались вопросом "что может быть лучше, чем суммаризировать видео с помощью VLM?" и дали простой ответ - суммаризировать видео с помощью нескольких VLM!

Выглядит это так: вначале разбивают видео на кадры и просят одну модель суммаризировать кадры (подают текущий кадр и предыдущий caption). Потом просят GPT-4 суммаризировать все captions в один. Затем берут видео целиком и просят модель описать его. И, наконец, суммаризируют все вместе.

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

Paper link

Leaderboard

Мои обзоры:
Personal blog
Medium
Linkedin Pulse

#paperreview
👍3🔥1😁1
😁18😢83😱1
The AI Scientist: Fully Automated Scientific Discovery или буллшит

Несколько дней назад была опубликована громкая статья The AI Scientist: Towards Fully Automated Open-Ended Scientific Discovery, в которой авторы уверяют, что создали решение для автоматической генерации новых идей, написания кода, визуализации результатов и так далее.

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

У меня есть три основных пункта критики:
• Все эти статьи сводятся к оптимизации гиперпараметров или архитектуры
• Предложенные подходы сравниваются только с бейзлайном - нет сравнения с подходами других авторов
• Пункт, связанный с предыдущим, - у всех этих статей список литературы состоит из 6-11 пунктов

Теперь сами статьи:
1. Accelerating Mathematical Insight: Boosting Grokking Through Strategic Data Augmentation Учат модель складывать, вычитать и делить числа. Экспериментируют с аугментациями типа вместо a + b сделать b + a или слегка изменить значения a, b = (self.p - a) % self.p, (self.p - b) % self.p

2. Grokking Through Compression: Unveiling Sudden Generalization via Minimal Description Length Та же самая задача (складывать, вычитать и делить числа), добавили ещё датасет с пермутациями.
Хотят проверить когда может начаться grokking - идея в том, что он внезапно происходит при определенном MDL. По факту тренируют трансформер, вклад статьи - новая метрика: количество ненулевых весов модели после применения pruning threshold. И замеряют как эта метрика меняется во время тренировки.

3. Grokking Accelerated: Layer-wise Learning Rates for Transformer Generalization "Оказывается", если разным слоям трансформера поставить разный learning rate, это может улучшить метрики. На Kaggle, помнится, такие подходы использовали годы назад.

4. Unlocking Grokking: A Comparative Study of Weight Initialization Strategies in Transformer Models Сравнение стандартных подходов к инициализации весов сетки.

5. Adaptive Learning Rates for Transformers via Q-Learning Обновляют lr с помощью q-learning на основе валидационного лосса. Ну хоть датасеты взяли поинтереснее - shakespeare char, enwik8, text8.

6. StyleFusion: Adaptive Multi-style Generation in Character-Level Language Models Единственная статья, которая мне показалась интересной. Авторы хотят сделать стиль сгенерированного текста консистентным - чтобы он не менялся для разных кусков текста. Суть - просто после каждого слоя трансформера добавляют новый модуль и к обычному лоссу добавляют ошибку классификации стиля. Но по факту это подбор архитектуры. И вполне возможно, что в существующих статьях что-то подобное пробовали.

7. DualDiff: Enhancing Mode Capture in Low-dimensional Diffusion Models via Dual-expert Denoising Запускают эксперименты на 2D датасетах по генерации circle, moon, line - это прям несерьёзно (данные генерятся на sklearn). Это точно статья по подбору архитектуры - вместо тренировки одной диффузионной модели берут две (обе MLP + residual) и добавляют gating mechanism.

8. GAN-Enhanced Diffusion: Boosting Sample Quality and Diversity Если честно, не понял, что это было. Берут модель diffusion и добавляют GAN - типа тренируют на reconstruction + adversarial loss. Тот же синтетический датасет, что из прошлой статьи.

9. Multi-scale Grid Noise Adaptation: Enhancing Diffusion Models For Low-dimensional Data Экспериментируют с вариантами добавления шума - размерами 5х5 и 20х20.

10. DualScale Diffusion: Adaptive Feature Balancing for Low-Dimensional Generative Models По факту - добавили "local branch" - типа residual внутри сетки: мини-сетка, которая работает с upscaled images.

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

#paperreview #datascience
👍7🔥1
​​Winning Amazon KDD Cup24

В этот раз не совсем статья - это техническое описание победившего решения в соревновании от Amazon. Команда Kaggle грандмастеров от NVIDIA заняла в нём первое место. Надо было создать ассистента для онлайн-шоппинга с использованием LLM. Участникам предлагалось решить 57 задач 5 типов, разделённых на 4 трека.

Авторы использовали модель Qwen2-72B-Instruct, которую дообучили на собственном датасете, созданном с помощью публичных данных и синтетической генерации. Для борьбы с distribution shifts применили wise-ft; использовали несколько LoRA адаптеров, добавили Logits Processors для ограничения вывода модели. Для инференса сделали 4-bit quantization и использовали vLLM - ибо были ограничения на размер моделей и на продолжительности инференса.

Мне было любопытно, что сейчас используют в соревнованиях для подобных задач. В целом получилось ожидаемо - собрали огромный датасет (500к), усреднили 4 fine-tuned модели (кстати, тренировали 1 день на 8 A100), добавили постпроценнинг и прочие трюки и получили SOTA.

Paper link

Competition link

Мои обзоры:
Personal blog
Medium
Linkedin Pulse

#paperreview
👍10🤯3🔥2
​​On the speed of ViTs and CNNs

Lucas Beyer опубликовал блогпост на тему сравнения скорости инференса ViT и CNN. Обсуждение в твиттере тут. Обычно говорят, что из-за attention трансформеры работают медленно, и он хотел показать, что это нет так. Код выложен. Кстати, он на PyTorch.

Сравнивал ConvNeXt-B, NFNet-F0, NFNet-F1 и ViT-B/16 из timm на рандомно сгенеренных тензорах.
Выводы: скорость вполне хорошая минимум до разрешения 1024х1024 (дальше не проверялось), а иногда ViT даже быстрее CNN.

Правда есть нюанс - Ross Wightman прокомментировал, что это во многом благодаря fused F.sdpa / flash attn - без этого скорость была бы намного ниже.

#datascience
50🔥3
​​https://x.com/Altimor/status/1825659507617460439

Эпичный пример фейла чат-ботов:
У компании нет видео-туториалов своего продукта.
Юзеры просят чат-бота дать ссылку на видео-туториал.
Чат-бот высылает ссылку на rickroll
50😁26