Удалось побывать DS-ментором на одном из хакатонов в конце прошлого года, где моя команда заняла 3-е место 🎉 . Исходный проект был посвящён кластеризации событий брокера сообщений/логов.
Коллективным разумом были предложены следующие идеи ниже. Ожидаемо хотелось применить трансформеры, но из-за объёма данных и доступных ресурсов был выбран другой подход. Как вы думаете, какой?
1. Baseline: scaNN + любимый эмбеддер
• ScaNN — супербыстрый на CPU алгоритм поиска ближайших соседей (быстрее Faiss)
• Benchmarks алгоритмов кластеризаций
2. Готовый алгоритм ранжирования текстов: Rank-BM25 — улучшенный tf-idf, который может плохо выделять если признаков мало, и очень быстро растет размер словаря при увеличении кол-во n-gramm
3. Алгоритм с кастомным эмбеддингом
• Используем токенизатор (например, BPE). Обучаем его на логах
• Переводим логи в последовательность токенов
• Генерируем tf-idf для 1-, 2-, 3-грамм (размер словаря ~10⁶)
• Создаём эмбеддинги для токенов (например, с помощью предобученной модели)
• Кластеризуем эмбеддинги (например, на 100-800 кластеров)
• Для нового текста создаём вектор, учитывающий частоту кластеров
• Результат — компактные векторы, подходящие для кластеризации и обнаружения аномалий
4. Быстрая работа со строками + dbstream clustering
• RapidFuzz — библиотека с быстрыми реализациями функций string similarity.
• Jaro-Winkler Distance — быстрее Левенштейна на коротких строках.
5. Итеративное выделение кластеров с помощью LLM
• Генерируем ключевые слова и типы ошибок по существующим кластерам
• Покрываем базу кейвордами (~50%)
• Обрабатываем оставшиеся данные, выделяя новые кластеры
• Повторяем процесс, пока покрытие не станет полным
• Удобно выделяем ключевые виды ошибок (например, SQLException, JavaException, Timeout и т.д.)
6. Имплентация от Jetbrains (📕Статья: Aggregation of Stack Trace Similarities for Crash Report Deduplication, ⭐️ код на GitHub)
Внутри решение k-NN с хитрой агрегацией stack trace логов ошибок с временными метками
Коллективным разумом были предложены следующие идеи ниже. Ожидаемо хотелось применить трансформеры, но из-за объёма данных и доступных ресурсов был выбран другой подход. Как вы думаете, какой?
1. Baseline: scaNN + любимый эмбеддер
• ScaNN — супербыстрый на CPU алгоритм поиска ближайших соседей (быстрее Faiss)
• Benchmarks алгоритмов кластеризаций
2. Готовый алгоритм ранжирования текстов: Rank-BM25 — улучшенный tf-idf, который может плохо выделять если признаков мало, и очень быстро растет размер словаря при увеличении кол-во n-gramm
3. Алгоритм с кастомным эмбеддингом
• Используем токенизатор (например, BPE). Обучаем его на логах
• Переводим логи в последовательность токенов
• Генерируем tf-idf для 1-, 2-, 3-грамм (размер словаря ~10⁶)
• Создаём эмбеддинги для токенов (например, с помощью предобученной модели)
• Кластеризуем эмбеддинги (например, на 100-800 кластеров)
• Для нового текста создаём вектор, учитывающий частоту кластеров
• Результат — компактные векторы, подходящие для кластеризации и обнаружения аномалий
4. Быстрая работа со строками + dbstream clustering
• RapidFuzz — библиотека с быстрыми реализациями функций string similarity.
• Jaro-Winkler Distance — быстрее Левенштейна на коротких строках.
5. Итеративное выделение кластеров с помощью LLM
• Генерируем ключевые слова и типы ошибок по существующим кластерам
• Покрываем базу кейвордами (~50%)
• Обрабатываем оставшиеся данные, выделяя новые кластеры
• Повторяем процесс, пока покрытие не станет полным
• Удобно выделяем ключевые виды ошибок (например, SQLException, JavaException, Timeout и т.д.)
6. Имплентация от Jetbrains (📕Статья: Aggregation of Stack Trace Similarities for Crash Report Deduplication, ⭐️ код на GitHub)
Внутри решение k-NN с хитрой агрегацией stack trace логов ошибок с временными метками
📣 Хорошая обзорная статья про то, что нового появилось в OCR (подготовка документов для LLM) в 2024 в контексте GenAI от Игоря Галицкого – OCR Development as Part of GenAI for Documents: 2024 Year-End Summary (linkedin)
Выделяется три подхода к решению задач OCR:
• Pipeline-Based Approach - использование множества специализированных моделей, а также компактных VLM, для каждой подзадачи OCR (распознавание текста, таблиц, формул)
• Expert OCR VLMs – применение специализированных OCR VLM моделей, например, GOT-OCR2.0 (580M) для конвертации img-> md
• General VLMs, крупные универсальные VLM модели, например, GPT-4o или Qwen2-VL.
🤔 Почему это важно?
Большинство кейсов в Enterprise сейчас представляют поиск информации по коллекциям документов (RAG), где качество распознавания сильно влияет на финальный результат.
📌 Узкоспециализированные модели OCR пока продолжают показывать лучшие результаты. По деталям – лучше ознакомиться с исходной статьей.
Выделяется три подхода к решению задач OCR:
• Pipeline-Based Approach - использование множества специализированных моделей, а также компактных VLM, для каждой подзадачи OCR (распознавание текста, таблиц, формул)
• Expert OCR VLMs – применение специализированных OCR VLM моделей, например, GOT-OCR2.0 (580M) для конвертации img-> md
• General VLMs, крупные универсальные VLM модели, например, GPT-4o или Qwen2-VL.
🤔 Почему это важно?
Большинство кейсов в Enterprise сейчас представляют поиск информации по коллекциям документов (RAG), где качество распознавания сильно влияет на финальный результат.
📌 Узкоспециализированные модели OCR пока продолжают показывать лучшие результаты. По деталям – лучше ознакомиться с исходной статьей.
Linkedin
OCR Development as Part of GenAI for Documents: 2024 Year-End Summary
As we wrap up 2024, it's a perfect time to review the progress in Optical Character Recognition (OCR) within the context of document processing, particularly with the rapid advancements in Large Language Models (LLMs) and Vision-Language Models (VLMs). These…
Прошлую субботу в офисе VK прошла Дата-Ёлка 🎄🎅, запись тут. В 2019 году там выступал Спайдермен 🕷, сейчас не так весело. Лично я не дошёл ногами, но посмотрел доклады онлайн, а коллега сходил вживую. В начале мероприятия было мало людей, большинство начало приходить ближе к афтепати 🍷, про еду не забыли)
интересные треки
🧠 1. Reliable ML. Первая часть: обсуждали старые материалы и дали ссылку на классную книгу 📖 по интерпретации моделей. Основной фокус — важность оценки uncertainties моделей. Например, как оценивать не только вероятность события, но и доверительный интервал 📊. Вот полезная библиотека для этого: https://github.com/scikit-learn-contrib/MAPIE.
Вторая часть: обсудили бизнес-аспекты Reliable ML и вспомнили про system design (ссылка на гитхаб). Не хватило конкретных разборов бизнес-кейсов 🤔
🤖 2. Что нового в NLP? LLM стали лучше. Занавес
🔍 3. Итоги PyData. Было много интересных проектов, многие используют LLM. Запомнились:
- Briefer: новый Jupyter Notebook с интерактивными визуализациями.
- Quak: профайлер данных.
📈 4. Карьерный трек в IT Основан на аналитике с hhru (ссылка тут)
- Динамика роста вакансий превышает динамику роста резюме (вторая производная). В абсолютных значениях: 7+ активных резюме на вакансию. И тут конечно вопрос к аналитикам из hh, вывод на 1й картинке ошибочный
- Сильный дисбаланс у джунов: 10x резюме на вакансию, тогда как у сеньорных позиций — 1x.
- Почему не стоит становиться тимлидом: статья (больше ответственности, сложнее рост, прирост 💵 меньше чем от перехода от джуна к мидлу.
⭐️ 5. Отдельно рекомендовали почитать про аномалии временных рядах Dive into Time-Series Anomaly Detection: A Decade Review Как раз есть задача по временным рядам, правда не дошли руки почитать еще статью. Обзорные статья классная тема, чтобы изучить и резюмировать что придумали за последнее время, все работу по агрегации материалов там уже делают за тебя.
+обзоры решений в рекомендациях
интересные треки
🧠 1. Reliable ML. Первая часть: обсуждали старые материалы и дали ссылку на классную книгу 📖 по интерпретации моделей. Основной фокус — важность оценки uncertainties моделей. Например, как оценивать не только вероятность события, но и доверительный интервал 📊. Вот полезная библиотека для этого: https://github.com/scikit-learn-contrib/MAPIE.
Вторая часть: обсудили бизнес-аспекты Reliable ML и вспомнили про system design (ссылка на гитхаб). Не хватило конкретных разборов бизнес-кейсов 🤔
🤖 2. Что нового в NLP? LLM стали лучше. Занавес
🔍 3. Итоги PyData. Было много интересных проектов, многие используют LLM. Запомнились:
- Briefer: новый Jupyter Notebook с интерактивными визуализациями.
- Quak: профайлер данных.
📈 4. Карьерный трек в IT Основан на аналитике с hhru (ссылка тут)
- Динамика роста вакансий превышает динамику роста резюме (вторая производная). В абсолютных значениях: 7+ активных резюме на вакансию. И тут конечно вопрос к аналитикам из hh, вывод на 1й картинке ошибочный
- Сильный дисбаланс у джунов: 10x резюме на вакансию, тогда как у сеньорных позиций — 1x.
- Почему не стоит становиться тимлидом: статья (больше ответственности, сложнее рост, прирост 💵 меньше чем от перехода от джуна к мидлу.
⭐️ 5. Отдельно рекомендовали почитать про аномалии временных рядах Dive into Time-Series Anomaly Detection: A Decade Review Как раз есть задача по временным рядам, правда не дошли руки почитать еще статью. Обзорные статья классная тема, чтобы изучить и резюмировать что придумали за последнее время, все работу по агрегации материалов там уже делают за тебя.
+обзоры решений в рекомендациях
Dive into Time-Series Anomaly Detection: A Decade Review (link)
📌 Обзорная статья, которая собрала ключевые наработки в области поиска аномалий за последние 10 лет. Так как по работе пришлось плотнее заняться временными рядами, думаю написать несколько постов по этой теме.
📈 Что такое временные ряды и аномалии?
- Временные ряды 𝑋(𝑡) это данные, в которых значения зависят от времени. Пример – курс валют
- Поиск аномалий – это обнаружение отклонений, при которых временной ряд ведёт себя существенно иначе, чем ожидается. Это полезно для:
• Мониторинга и прогнозирования технического обслуживания оборудования.
• Выявления мошенничества (fraud detection).
• Обнаружения DDoS-атак через анализ сетевого трафика
🏷 Виды аномалий
- Точечные выбросы (point anomalies) – одиночные аномальные значения
- Контекстные аномалии (contextual anomalies) – выбросы, которые кажутся аномальными только в определённом окне (например, аномально высокая температура зимой)
- Sequence-based аномалии – аномальные последовательности данных
📊 Типы и особенности временных рядов
- Univariate vs Multivariate – одиночный или множественные временные ряды
- Тренды и сезонность
- Циклические флуктуации (Cyclical fluctuations)
- Шумы (Irregular variations)
🔬 Виды детекции аномалий
- Supervised – обучающая выборка содержит стандартные и аномальные кейсы
- Unsupervised – обучение без разметки
- Semi-supervised – известны только стандартные временные ряды, без аномалий
- Self-supervised – используются дополнительные сигналы для обучения без явной разметки
В целом все методы стремятся спрогнозировать ожидаемое значение в данный момент и, если оно сильно отличается от фактического, то можно говорить об аномалии.
📌 Подходы к детекции аномалий
Классические методы
Используются прогнозирующие модели для дальнейшего сравнения план/факт:
- Деревья решений и бустинг (например, LightGBM, XGBoost)
- Рекуррентные сети (RNN) с LSTM и трансформерами
- Методы SVM (вспомнили даже его 🫡)
- Скользящее среднее😐
Нестандартные методы
🔹 Reconstruction-based методы. Используют автоэнкодеры, где временной ряд:
1. Сжимается в латентное пространство энкодером
2. Восстанавливается декодером
3. Если получившиеся временной ряд сильно отличается от ожидаемого => аномалия
Популярные методы:
- Autoencoder-based (Buzz, EncDec-AD и т. д.).
- GANs и диффузионные сети (в статье почему-то забыты, хотя, например, в статье Time Series Anomaly Detection using Diffusion-based Models утверждают, что они SOTA - верим?)
🔹 Clustering-based методы. Как можно догадаться аномалии ищутся с помощью кластеризации:
- Distance-based (по расстоянию).
- Density-based (по плотности).
В статье упоминается 10+ примеров, но суть одна:
1. Временной ряд разбивается скользящим окном.
2. Каждый кусок сравнивается с остальными.
3. Используется кластеризация (например, DAG, деревья).
Популярные методы:
- Discord Detection using Matrix Profile (DAD).
- Adjacent Mean Difference (AMD).
- KNN – за счёт малого количества гиперпараметров оказался одним из лучших. Проверил на игрушечных кейсах (см. пример ниже)
📏 Метрики
Часто используются адаптированные метрики классификации:
- ROC AUC и его вариации, есть свои адаптации под каждый тип аномалий
- Precision и Recall
- True Positive Rate (TPR) и другие
📊 Бенчмарки. Популярные датасеты:
- NAB, KDD21, TODS, TimeEval и другие.
Однако в статье не приводится, какие методы лучшие
🎯 Рекомендация. Лучше строить бейзлайны на скользящих средних и бустингах и только потом пробовать deep learning
📌 Обзорная статья, которая собрала ключевые наработки в области поиска аномалий за последние 10 лет. Так как по работе пришлось плотнее заняться временными рядами, думаю написать несколько постов по этой теме.
📈 Что такое временные ряды и аномалии?
- Временные ряды 𝑋(𝑡) это данные, в которых значения зависят от времени. Пример – курс валют
- Поиск аномалий – это обнаружение отклонений, при которых временной ряд ведёт себя существенно иначе, чем ожидается. Это полезно для:
• Мониторинга и прогнозирования технического обслуживания оборудования.
• Выявления мошенничества (fraud detection).
• Обнаружения DDoS-атак через анализ сетевого трафика
🏷 Виды аномалий
- Точечные выбросы (point anomalies) – одиночные аномальные значения
- Контекстные аномалии (contextual anomalies) – выбросы, которые кажутся аномальными только в определённом окне (например, аномально высокая температура зимой)
- Sequence-based аномалии – аномальные последовательности данных
📊 Типы и особенности временных рядов
- Univariate vs Multivariate – одиночный или множественные временные ряды
- Тренды и сезонность
- Циклические флуктуации (Cyclical fluctuations)
- Шумы (Irregular variations)
🔬 Виды детекции аномалий
- Supervised – обучающая выборка содержит стандартные и аномальные кейсы
- Unsupervised – обучение без разметки
- Semi-supervised – известны только стандартные временные ряды, без аномалий
- Self-supervised – используются дополнительные сигналы для обучения без явной разметки
В целом все методы стремятся спрогнозировать ожидаемое значение в данный момент и, если оно сильно отличается от фактического, то можно говорить об аномалии.
📌 Подходы к детекции аномалий
Классические методы
Используются прогнозирующие модели для дальнейшего сравнения план/факт:
- Деревья решений и бустинг (например, LightGBM, XGBoost)
- Рекуррентные сети (RNN) с LSTM и трансформерами
- Методы SVM (вспомнили даже его 🫡)
- Скользящее среднее
Нестандартные методы
🔹 Reconstruction-based методы. Используют автоэнкодеры, где временной ряд:
1. Сжимается в латентное пространство энкодером
2. Восстанавливается декодером
3. Если получившиеся временной ряд сильно отличается от ожидаемого => аномалия
Популярные методы:
- Autoencoder-based (Buzz, EncDec-AD и т. д.).
- GANs и диффузионные сети (в статье почему-то забыты, хотя, например, в статье Time Series Anomaly Detection using Diffusion-based Models утверждают, что они SOTA - верим?)
🔹 Clustering-based методы. Как можно догадаться аномалии ищутся с помощью кластеризации:
- Distance-based (по расстоянию).
- Density-based (по плотности).
В статье упоминается 10+ примеров, но суть одна:
1. Временной ряд разбивается скользящим окном.
2. Каждый кусок сравнивается с остальными.
3. Используется кластеризация (например, DAG, деревья).
Популярные методы:
- Discord Detection using Matrix Profile (DAD).
- Adjacent Mean Difference (AMD).
- KNN – за счёт малого количества гиперпараметров оказался одним из лучших. Проверил на игрушечных кейсах (см. пример ниже)
📏 Метрики
Часто используются адаптированные метрики классификации:
- ROC AUC и его вариации, есть свои адаптации под каждый тип аномалий
- Precision и Recall
- True Positive Rate (TPR) и другие
📊 Бенчмарки. Популярные датасеты:
- NAB, KDD21, TODS, TimeEval и другие.
Однако в статье не приводится, какие методы лучшие
🎯 Рекомендация. Лучше строить бейзлайны на скользящих средних и бустингах и только потом пробовать deep learning
Please open Telegram to view this post
VIEW IN TELEGRAM
# knn для поиска аномалий
window_size = 5
X = np.array([time_series[i:i+window_size] for i in range(len(time_series) - window_size)])
knn = NearestNeighbors(n_neighbors=5)
knn.fit(X)
distances, _ = knn.kneighbors(X)
anomaly_scores = distances[:, -1] # расстояние до самого дальнего из 5 ближайших соседей
# Нормализация оценок (выбросы и есть аномалии)
anomaly_scores = (anomaly_scores - anomaly_scores.min()) / (anomaly_scores.max() - anomaly_scores.min())
Забавная дискуссия: 🎥 vk между Сергеем Марковым (руководитель исследований в проекте GigaChat, Сбер) и Иваном Тюкиным (Центр ИИ Сколтеха) — обсуждают, был ли DeepSeek прогревом. Можно не смотреть самое интересное тут:
GigaChat vs. DeepSeek
💡 Сергей ожидаемо позитивно оценивает GigaChat. Про DeepSeek, хоть и выложил все веса в open-source, в части доработки multi-token prediction (что позволяет опубликовал только половину весов. Это означает, что если повторить модель у себя, скорость инференса (работы модели) будет в 2 раза ниже
Цены на API
💰 DeepSeek на старте оказался очень дешевым — от 0.14$ до 2$ за 1M токенов, тогда как ChatGPT стоит 10–20$, а GigaChat — 10$. Но эта цена, скорее всего, субсидирована и действует только в периоды низкого спроса. Сейчас, например, API отключены ❌
PS: Забавно, но GigaChat доступен в open-source, но многие архитектурные решения основаны на DeepSeek. Структура модели здесь (см. скрин выше)
GigaChat vs. DeepSeek
💡 Сергей ожидаемо позитивно оценивает GigaChat. Про DeepSeek, хоть и выложил все веса в open-source, в части доработки multi-token prediction (что позволяет опубликовал только половину весов. Это означает, что если повторить модель у себя, скорость инференса (работы модели) будет в 2 раза ниже
Цены на API
💰 DeepSeek на старте оказался очень дешевым — от 0.14$ до 2$ за 1M токенов, тогда как ChatGPT стоит 10–20$, а GigaChat — 10$. Но эта цена, скорее всего, субсидирована и действует только в периоды низкого спроса. Сейчас, например, API отключены ❌
PS: Забавно, но GigaChat доступен в open-source, но многие архитектурные решения основаны на DeepSeek. Структура модели здесь (см. скрин выше)
Курс про ai агентов на Hugging Face 🤗
• AI агенты — это способ добавить дополнительную функциональность или навыки чатботу. Все с использованием их либы smolagents. Очень понравилось, что не нужно прописывать логику, когда и как вызывать функции — чат-бот сам это понимает, боль что метод все равно нужно закодить, и если нет готового API, то например парсить сайты/данные сложно. Сейчас вышла только первая часть из шести, но она короткая — всего час, но можно успеть создать первого агента.
• Забавно видеть как оно рассуждает (см. картинку).
• Учебные проекты слушателей курса - мем, например, запрос погоды, но зачем - если проще узнать напрямую. Хотя это закрывает 50% полезного функционала алисы
• AI агенты — это способ добавить дополнительную функциональность или навыки чатботу. Все с использованием их либы smolagents. Очень понравилось, что не нужно прописывать логику, когда и как вызывать функции — чат-бот сам это понимает, боль что метод все равно нужно закодить, и если нет готового API, то например парсить сайты/данные сложно. Сейчас вышла только первая часть из шести, но она короткая — всего час, но можно успеть создать первого агента.
• Забавно видеть как оно рассуждает (см. картинку).
• Учебные проекты слушателей курса - мем, например, запрос погоды, но зачем - если проще узнать напрямую. Хотя это закрывает 50% полезного функционала алисы
Как ChatGPT влияют на нашу креативность?
Журнал Science (!) тоже задается этим вопросом. В статье Generative AI enhances individual creativity but reduces the collective diversity исследовали, как меняются истории, написанные людьми, если AI подбрасывает им идеи (0, 1 или 5 идей).
• Ожидаемо чем больше ai идей были доступны тем лучше получался текст. Это валидировали человеком. Особенно если навыки у человека были слабее изначально.
• Но! Чем активнее люди использовали подсказки AI, тем более похожими становились их тексты. Понравилось что тут уже не люди проверяли, а через косинусное расстояние эмбеддингов текстов
Очевидное решение - всем нужно использовать разные сетки и чаты, и температуру поднять
Журнал Science (!) тоже задается этим вопросом. В статье Generative AI enhances individual creativity but reduces the collective diversity исследовали, как меняются истории, написанные людьми, если AI подбрасывает им идеи (0, 1 или 5 идей).
• Ожидаемо чем больше ai идей были доступны тем лучше получался текст. Это валидировали человеком. Особенно если навыки у человека были слабее изначально.
• Но! Чем активнее люди использовали подсказки AI, тем более похожими становились их тексты. Понравилось что тут уже не люди проверяли, а через косинусное расстояние эмбеддингов текстов
Очевидное решение - всем нужно использовать разные сетки и чаты, и температуру поднять
Прочитал книжку "Простые правила" (авторы Дональд Сулл, Кэтлин Эйзенхардт). Там про то, что сложным правилам непросто следовать, они могут быть ошибочными – как итог, простые оказываются продуктивнее и точнее. Постулируя это, идет большой разбор множества сфер, где это действительно так (от медицины: например, для борьбы с бессонницей — ложиться спать в одно и то же время, до программы развития стартапов в Чили, где действовало правило исключения — неделовые поездки по стране). Звучит, как будто гуманитарии открыли правило "не переобучись". А так, конечно, рекомендую книжку.
Таки прочитал лучшие решения с соревнований Kaggle за 2023 год (the Best Solution Write-up Authors 🏆), все еще актуально. За статьи в сумме раздали 100 тысяч долларов.
1. Три статьи от одного автора (Chris Deotte) посвящены задачам про временные ряды:
- В одной задаче нужно было предсказать количество микробизнесов на 100 человек в каждом штате на следующие месяцы. Как всегда, важна хорошая валидация: GroupKFold по регионам + cross time series validation для увеличения объема данных и получения более робастных метрик. Так как метрика SMAPE, то и loss обычный MSE, и нужно предсказывать не саму плотность, а только прирост. Таким образом, все данные по штатам становятся ближе друг к другу. Необычно, что лучшая модель получилась с сеткой с GRU слоями. Автор признает, что такой же результат получился бы при использовании магического коэффициента 1.0045 в качестве поправочного коэффициента для соотношения в динамике прошлых месяцев. И, конечно же, LB public probing (для тех, кто знает; кто не знает – ни в коем случае не использовать).
- В следующем соревновании требовалось прогнозировать прогрессирование болезни Паркинсона. Мало кейсов (248 пациентов), много лишних и шумных показателей (1000 показателей). 99% успеха – признак, как часто человек приходит в больницу. Наверное, не для этого запускали соревнование. И понятно, что тут зашли наиболее простые модели, у автора – SVR (Support Vector Regression).
- В 3м соревновании автор перестарался с подходом из пункта а и улетел с 1-го места в предварительном этапе на 967-е. Во всем виноват как раз LB public probing (буквально переобучился). А надо было всего лишь прочитать книжку "Простые правила" из прошлого поста.
2. Распознавание предложений языков жестов: решение через адаптированный Squeezeformer, который изначально был для распознавания речи. С помощью MediaPipe ключевые точки (landmarks) трансформируются в аналогичный входной спектр. Забавно, что dropout здесь называется FingerDropout, то есть буквально зануляются пальцы. А вот в задаче распознавания букв языков жестов – обычный 1D CNN эффективнее трансформеров (by Hoyeol Sohn).
3. Задача - предсказание успеваемости студентов по информации, как студент проходит развивающие игры. Слышал, что в какой-то компании так определяют производительность сотрудников по 5-минутной игре в начале рабочего дня (aka фильм "Особое мнение", только про корпоративную эффективность). Решение – объединение бустингов, лики и использование открытого API игры, чтобы сгенерировать больше данных, погружение в данные, чтобы создать осмысленные признаки. Интересно, что под задачу удалось адаптировать подход, вдохновленный WaveNet, с использованием embedding слоев и объединив с TimeEmbedding + avg_pooling, создать решение с сетками (причем там двухшаговое обучение с претрейном для backbona), и, как они говорят, итерационное обучение ускорил pipeline обучения.
4. Две статьи про физические задачи: детекция гравитационных волн (топ-решение G2Net) и нейтрино (лучшее решение gnn, т.е. графовые сетки).
5. Задача Маммографии: YOLOX для правильного кропа изображения + EfficientNet и ConvNeXt для классификации. Примечательно, что использование label smoothing работало все-таки лучше, чем soft positive label trick (always been).
+там еще про Image Matching Challenge и распознавание пении птиц по пению
1. Три статьи от одного автора (Chris Deotte) посвящены задачам про временные ряды:
- В одной задаче нужно было предсказать количество микробизнесов на 100 человек в каждом штате на следующие месяцы. Как всегда, важна хорошая валидация: GroupKFold по регионам + cross time series validation для увеличения объема данных и получения более робастных метрик. Так как метрика SMAPE, то и loss обычный MSE, и нужно предсказывать не саму плотность, а только прирост. Таким образом, все данные по штатам становятся ближе друг к другу. Необычно, что лучшая модель получилась с сеткой с GRU слоями. Автор признает, что такой же результат получился бы при использовании магического коэффициента 1.0045 в качестве поправочного коэффициента для соотношения в динамике прошлых месяцев. И, конечно же, LB public probing (для тех, кто знает; кто не знает – ни в коем случае не использовать).
- В следующем соревновании требовалось прогнозировать прогрессирование болезни Паркинсона. Мало кейсов (248 пациентов), много лишних и шумных показателей (1000 показателей). 99% успеха – признак, как часто человек приходит в больницу. Наверное, не для этого запускали соревнование. И понятно, что тут зашли наиболее простые модели, у автора – SVR (Support Vector Regression).
- В 3м соревновании автор перестарался с подходом из пункта а и улетел с 1-го места в предварительном этапе на 967-е. Во всем виноват как раз LB public probing (буквально переобучился). А надо было всего лишь прочитать книжку "Простые правила" из прошлого поста.
2. Распознавание предложений языков жестов: решение через адаптированный Squeezeformer, который изначально был для распознавания речи. С помощью MediaPipe ключевые точки (landmarks) трансформируются в аналогичный входной спектр. Забавно, что dropout здесь называется FingerDropout, то есть буквально зануляются пальцы. А вот в задаче распознавания букв языков жестов – обычный 1D CNN эффективнее трансформеров (by Hoyeol Sohn).
3. Задача - предсказание успеваемости студентов по информации, как студент проходит развивающие игры. Слышал, что в какой-то компании так определяют производительность сотрудников по 5-минутной игре в начале рабочего дня (aka фильм "Особое мнение", только про корпоративную эффективность). Решение – объединение бустингов, лики и использование открытого API игры, чтобы сгенерировать больше данных, погружение в данные, чтобы создать осмысленные признаки. Интересно, что под задачу удалось адаптировать подход, вдохновленный WaveNet, с использованием embedding слоев и объединив с TimeEmbedding + avg_pooling, создать решение с сетками (причем там двухшаговое обучение с претрейном для backbona), и, как они говорят, итерационное обучение ускорил pipeline обучения.
4. Две статьи про физические задачи: детекция гравитационных волн (топ-решение G2Net) и нейтрино (лучшее решение gnn, т.е. графовые сетки).
5. Задача Маммографии: YOLOX для правильного кропа изображения + EfficientNet и ConvNeXt для классификации. Примечательно, что использование label smoothing работало все-таки лучше, чем soft positive label trick (always been).
+там еще про Image Matching Challenge и распознавание пении птиц по пению
Kaggle
[Winners' Announcement] Celebrating the Best Solution Write-up Authors of 2023! | Kaggle
AI.Insaf
Таки прочитал лучшие решения с соревнований Kaggle за 2023 год (the Best Solution Write-up Authors 🏆), все еще актуально. За статьи в сумме раздали 100 тысяч долларов. 1. Три статьи от одного автора (Chris Deotte) посвящены задачам про временные ряды: -…
Please open Telegram to view this post
VIEW IN TELEGRAM
Проспонсировал AI-гонку, купив годовую подписку Perplexity. 300 запросов в день - удобно, может быть и o4-mini завезут 🍷
Please open Telegram to view this post
VIEW IN TELEGRAM