Удалось побывать 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 логов ошибок с временными метками
🔥11👍8⚡4❤2
📣 Хорошая обзорная статья про то, что нового появилось в 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…
🔥6👍4🤔1
Прошлую субботу в офисе 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 Как раз есть задача по временным рядам, правда не дошли руки почитать еще статью. Обзорные статья классная тема, чтобы изучить и резюмировать что придумали за последнее время, все работу по агрегации материалов там уже делают за тебя.
+обзоры решений в рекомендациях
👍11🔥5🤔2