Forwarded from DeepSchool
YOLO history. Part 8
В предыдущей статье мы рассказали о том, как использовать вспомогательные модели для улучшения качества основной.
В новой статье разберём устройство архитектур YOLOv8 и YOLOv11, а также отличия академического и индустриального подходов к созданию нового детектора.
Читайте новую статью по ссылке!
В предыдущей статье мы рассказали о том, как использовать вспомогательные модели для улучшения качества основной.
В новой статье разберём устройство архитектур YOLOv8 и YOLOv11, а также отличия академического и индустриального подходов к созданию нового детектора.
Читайте новую статью по ссылке!
DeepSchool
YOLO history. Part 8 - DeepSchool
Разбираем устройство архитектур YOLOv8 и YOLOv11, а также отличия академического и индустриального подходов к созданию нового детектора
Forwarded from Душный NLP
Лучшие работы Dissertation Award и немного статистики: подводим итоги ACL 2025
В этом году Ассоциация компьютерной лингвистики (ACL) учредила награду для лучших PhD-диссертаций. Критериев выбора несколько. Исследование должно:
⚪️ быть связным и хорошо написанным;
⚪️ охватывать одну из областей интереса ACL;
⚪️ удовлетворять принятым в академии методологиям;
⚪️ вызывать желание прочитать его целиком.
Диссертацию пубедителя публикуют в журнале Computational Linguistics, который индексируется в Scopus и Web of Science, а также стабильно входит в I и II квартиль.
В этом сезоне с 1 сентября 2022-го по 31 августа 2024 года на рассмотрении комиссии подали 29 диссертаций. Почётного упоминания удостоились работы:
Human-AI Collaboration to Support Mental Health and Well-Being
Ashish Sharma
Диссертация сдвигает границы взаимодействия человека с ИИ: автор исследует способы выявлять и имитировать эмпатию, расширяя возможности применения NLP для улучшения ментального здоровья людей.
Modeling Cross-lingual Transfer for Semantic Parsing
Tom Sherborne
В этой диссертации развивают высокоточные методы кросс-лингвистического трансфера для языков, на которых собрано слишком мало датасетов для разработки и обучения моделей. Эффективность методов демонстрируется в контекст семантического парсинга для интеграцим с базами данных API.
Лучшей диссертацией стала работа об LLM:
Rethinking Data Use in Large Language Models
Sewon Min
На фото улыбается победительница — Sewon Min, одна из самых известных учёных в области обработки естественного языка. Она специализируется на языковых моделях, использующих контекст. Большинство её статей посвящено задаче автоматического ответа на вопросы, в частности, проблеме повышения фактической корректности ответа.
В диссертации Sewon Min сосредоточилась на более узких темах: генерации на основе примеров (fewshot-learning), а также непараметрических языковых моделях, которые используют для генерации внешний корпус. В исследование вошло множество инсайтов о поведении и возможностях больших лингвистических моделей в рамках обучения с контекстом. Эти находки сформировали сегодняшнее ядро NLP.
Больше о трендах и лучших статьях конференции читайте в предыдущих постах:
В Вене проходит 63-я ежегодная конференция ассоциации компьютерной лингвистики — ACL 2025
Интересное с конференции ACL 2025
Запомнили для вас всё самое интересное❣ Алексей Березникер и Алексей Сорокин
#YaACL25
Душный NLP
В этом году Ассоциация компьютерной лингвистики (ACL) учредила награду для лучших PhD-диссертаций. Критериев выбора несколько. Исследование должно:
Диссертацию пубедителя публикуют в журнале Computational Linguistics, который индексируется в Scopus и Web of Science, а также стабильно входит в I и II квартиль.
В этом сезоне с 1 сентября 2022-го по 31 августа 2024 года на рассмотрении комиссии подали 29 диссертаций. Почётного упоминания удостоились работы:
Human-AI Collaboration to Support Mental Health and Well-Being
Ashish Sharma
Диссертация сдвигает границы взаимодействия человека с ИИ: автор исследует способы выявлять и имитировать эмпатию, расширяя возможности применения NLP для улучшения ментального здоровья людей.
Modeling Cross-lingual Transfer for Semantic Parsing
Tom Sherborne
В этой диссертации развивают высокоточные методы кросс-лингвистического трансфера для языков, на которых собрано слишком мало датасетов для разработки и обучения моделей. Эффективность методов демонстрируется в контекст семантического парсинга для интеграцим с базами данных API.
Лучшей диссертацией стала работа об LLM:
Rethinking Data Use in Large Language Models
Sewon Min
На фото улыбается победительница — Sewon Min, одна из самых известных учёных в области обработки естественного языка. Она специализируется на языковых моделях, использующих контекст. Большинство её статей посвящено задаче автоматического ответа на вопросы, в частности, проблеме повышения фактической корректности ответа.
В диссертации Sewon Min сосредоточилась на более узких темах: генерации на основе примеров (fewshot-learning), а также непараметрических языковых моделях, которые используют для генерации внешний корпус. В исследование вошло множество инсайтов о поведении и возможностях больших лингвистических моделей в рамках обучения с контекстом. Эти находки сформировали сегодняшнее ядро NLP.
Больше о трендах и лучших статьях конференции читайте в предыдущих постах:
В Вене проходит 63-я ежегодная конференция ассоциации компьютерной лингвистики — ACL 2025
Интересное с конференции ACL 2025
Запомнили для вас всё самое интересное
#YaACL25
Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Канал Доброго Вани | Data Science и Продуктики
Python.pdf
6.2 MB
Итак, обещанные материалы: от абсолютного нуля до МЛ-бибизяна
1. Основы Python Эрик Мэтиз
2. Погружаемся в классический МЛ с Джейком Вандер Пласом
3. Уничтожаем свои нервные клетки двумя семестрами Deep Learning School от МФТИ
сначала https://stepik.org/course/196127/promo?search=6864012529
затем https://stepik.org/course/196142/promo?search=6864012526
4. Раздуваем своё портфолио https://fintech.tinkoff.ru/school/generation/dl/
---- Поздравляю, вы выросли вглубину, но не вширину. Рекомендую приправлять всё вышеперечисленное хакатонами. Идем дальше
5. SQL https://stepik.org/course/63054/syllabus
6. Docker https://karpov.courses/docker
7. MLops https://ods.ai/tracks/ml-in-production-spring-22
8. Spark https://pythonru.com/biblioteki/pyspark-dlja-nachinajushhih
9. Алгосы от Яши (идеально ботать перед собесом) https://github.com/VanjaRo/LeetCode/blob/main/README.md
10. Математика для ML/DL/AI https://academy.yandex.ru/handbook/ml идеально для собеса (порадуй свои глазные яблочки)
11. Git https://practicum.yandex.ru/profile/git-basics/
Вот и весь рецепт. Дальше самостоятельно😘
1. Основы Python Эрик Мэтиз
2. Погружаемся в классический МЛ с Джейком Вандер Пласом
3. Уничтожаем свои нервные клетки двумя семестрами Deep Learning School от МФТИ
сначала https://stepik.org/course/196127/promo?search=6864012529
затем https://stepik.org/course/196142/promo?search=6864012526
4. Раздуваем своё портфолио https://fintech.tinkoff.ru/school/generation/dl/
---- Поздравляю, вы выросли вглубину, но не вширину. Рекомендую приправлять всё вышеперечисленное хакатонами. Идем дальше
5. SQL https://stepik.org/course/63054/syllabus
6. Docker https://karpov.courses/docker
7. MLops https://ods.ai/tracks/ml-in-production-spring-22
8. Spark https://pythonru.com/biblioteki/pyspark-dlja-nachinajushhih
9. Алгосы от Яши (идеально ботать перед собесом) https://github.com/VanjaRo/LeetCode/blob/main/README.md
10. Математика для ML/DL/AI https://academy.yandex.ru/handbook/ml идеально для собеса (порадуй свои глазные яблочки)
11. Git https://practicum.yandex.ru/profile/git-basics/
Вот и весь рецепт. Дальше самостоятельно😘
Forwarded from Data Engineering / Инженерия данных / Data Engineer / DWH
How we built fast UPDATEs for the ClickHouse column store
▫️Part 1: Purpose-built engines
▫️Part 2: SQL-style UPDATEs
В первой части автор Том Шрайбер поясняет, как ClickHouse обходится без традиционного обновления строк, превращая UPDATE/DELETE в вставки с помощью специальных движков вроде ReplacingMergeTree, CollapsingMergeTree и др., которые позднее сливаются фоновым процессом, обеспечивая высокую скорость и масштабируемость на аналитических нагрузках. Это решение позволило объединить эффективность вставок и возможность правки данных без ущерба для быстрого чтения.
Вторая статья рассказывает о новой архитектуре патч‑партиций (patch parts), благодаря которым ClickHouse наконец поддерживает классический синтаксис UPDATE … WHERE, но без затрат на перестройку колонок: патч‑партиции содержат только изменённые значения и сливаются в фоновом режиме, обеспечивая мгновенную видимость изменений и высокую производительность. Автор подробно описывает эволюцию от тяжёлых мутаций до экономных, декларативных обновлений на основе SQL, вдохновлённых механизмами MergeTree.
#ClickHouse
▫️Part 1: Purpose-built engines
▫️Part 2: SQL-style UPDATEs
В первой части автор Том Шрайбер поясняет, как ClickHouse обходится без традиционного обновления строк, превращая UPDATE/DELETE в вставки с помощью специальных движков вроде ReplacingMergeTree, CollapsingMergeTree и др., которые позднее сливаются фоновым процессом, обеспечивая высокую скорость и масштабируемость на аналитических нагрузках. Это решение позволило объединить эффективность вставок и возможность правки данных без ущерба для быстрого чтения.
Вторая статья рассказывает о новой архитектуре патч‑партиций (patch parts), благодаря которым ClickHouse наконец поддерживает классический синтаксис UPDATE … WHERE, но без затрат на перестройку колонок: патч‑партиции содержат только изменённые значения и сливаются в фоновом режиме, обеспечивая мгновенную видимость изменений и высокую производительность. Автор подробно описывает эволюцию от тяжёлых мутаций до экономных, декларативных обновлений на основе SQL, вдохновлённых механизмами MergeTree.
#ClickHouse
ClickHouse
How we built fast UPDATEs for the ClickHouse column store – Part 1: Purpose-built engines
ClickHouse is a column store, but that doesn’t mean updates are slow. In this post, we explore how purpose-built engines like ReplacingMergeTree deliver fast, efficient UPDATE-like behavior through smart insert semantics.
Forwarded from LLM под капотом
Новые материалы по SGR - Schema-Guided Reasoning
Я собрал воедино и структурировал материалы про SGR для LLM, выделил паттерны (их всего три) в отдельные статьи (english). Получилась краткая методичка "собери сам свою reasoning систему":
- SGR Intro - заглавная страница с определением и основными ссылками
- SGR Patterns - примеры простых паттернов, из которых можно "собирать" более сложные reasoning схемы: Cascade, Routing, Cycle.
- SGR Examples - четыре примера: simple math task, text-to-sql, document classification, advanced reasoning in compliance.
Сейчас я работаю над еще одним дополнением - минимальным примером бизнес-ассистента, который может использовать несколько инструментов для распутывания сложных задачек. Он создается без сторонних библиотек, исключительно на OpenAI SDK, Pydantic и всего с одним промптом.
Как думаете, в сколько строчек Python можно уложить такое демо-решение?
Ваш, @llm_under_hood 🤗
Я собрал воедино и структурировал материалы про SGR для LLM, выделил паттерны (их всего три) в отдельные статьи (english). Получилась краткая методичка "собери сам свою reasoning систему":
- SGR Intro - заглавная страница с определением и основными ссылками
- SGR Patterns - примеры простых паттернов, из которых можно "собирать" более сложные reasoning схемы: Cascade, Routing, Cycle.
- SGR Examples - четыре примера: simple math task, text-to-sql, document classification, advanced reasoning in compliance.
Сейчас я работаю над еще одним дополнением - минимальным примером бизнес-ассистента, который может использовать несколько инструментов для распутывания сложных задачек. Он создается без сторонних библиотек, исключительно на OpenAI SDK, Pydantic и всего с одним промптом.
Как думаете, в сколько строчек Python можно уложить такое демо-решение?
Ваш, @llm_under_hood 🤗
Forwarded from Заскуль питона (Data Science)
A/B-тесты кажутся простыми: разделили аудиторию, сравнили метрики, сделали вывод. Но на практике можно легко допустить ошибку, которая приведёт к неправильным решениям. Собрал полезные статьи с Хабра, которые помогут разобраться в нюансах экспериментов и избежать классических фейлов и узнать что-то новое.
Топ постов от IT-компаний, в которых активно используется 🆎.
Ставьте
@zasql_python
Что-то забыл? Пишите в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Artem Ryblov’s Data Science Weekly
The Prompt Report: A Systematic Survey of Prompt Engineering Techniques
Generative Artificial Intelligence (GenAI) systems are increasingly being deployed across diverse industries and research domains. Developers and end-users interact with these systems through the use of prompting and prompt engineering.
Although prompt engineering is a widely adopted and extensively researched area, it suffers from conflicting terminology and a fragmented ontological understanding of what constitutes an effective prompt due to its relatively recent emergence.
Authors establish a structured understanding of prompt engineering by assembling a taxonomy of prompting techniques and analyzing their applications. They present a detailed vocabulary of 33 vocabulary terms, a taxonomy of 58 LLM prompting techniques, and 40 techniques for other modalities.
Additionally, authors provide best practices and guidelines for prompt engineering, including advice for prompting state-of-the-art (SOTA) LLMs such as ChatGPT. They further present a meta-analysis of the entire literature on natural language prefix-prompting. As a culmination of these efforts, this paper presents the most comprehensive survey on prompt engineering to date.
Link: ArXiv
Navigational hashtags: #armarticles
General hashtags: #promptengineering #prompts #prompt #llm
@data_science_weekly
Generative Artificial Intelligence (GenAI) systems are increasingly being deployed across diverse industries and research domains. Developers and end-users interact with these systems through the use of prompting and prompt engineering.
Although prompt engineering is a widely adopted and extensively researched area, it suffers from conflicting terminology and a fragmented ontological understanding of what constitutes an effective prompt due to its relatively recent emergence.
Authors establish a structured understanding of prompt engineering by assembling a taxonomy of prompting techniques and analyzing their applications. They present a detailed vocabulary of 33 vocabulary terms, a taxonomy of 58 LLM prompting techniques, and 40 techniques for other modalities.
Additionally, authors provide best practices and guidelines for prompt engineering, including advice for prompting state-of-the-art (SOTA) LLMs such as ChatGPT. They further present a meta-analysis of the entire literature on natural language prefix-prompting. As a culmination of these efforts, this paper presents the most comprehensive survey on prompt engineering to date.
Link: ArXiv
Navigational hashtags: #armarticles
General hashtags: #promptengineering #prompts #prompt #llm
@data_science_weekly
Forwarded from Андрей Созыкин (Andrey Sozykin)
YouTube
Протокол TCP: управление перегрузкой | Компьютерные сети 2025 - 35
Лекция по механизму управления перегрузкой в протоколе TCP.
Как поддержать курс:
- Boosty - https://boosty.to/asozykin
- Cloudtips - https://pay.cloudtips.ru/p/45a4055b
Заранее спасибо за помощь!
Сайт курса - https://www.asozykin.ru/courses/networks_online…
Как поддержать курс:
- Boosty - https://boosty.to/asozykin
- Cloudtips - https://pay.cloudtips.ru/p/45a4055b
Заранее спасибо за помощь!
Сайт курса - https://www.asozykin.ru/courses/networks_online…
Управление перегрузкой в TCP
Наверняка вы знаете, что скачивать что-то большое из интернета через одно TCP-соединение очень долго. Почему так происходит?
Протокол TCP проектировался в 80-е годы прошлого века, когда каналы связи были медленные и ненадежные. Поэтому TCP после установки соединения начинает передавать данные с низкой скоростью. Если данные не теряются, то скорость постепенно увеличивается. А если теряются - то скорость снижается. Таким образом со временем TCP определяет приемлемую скорость передачи данных.
Сейчас каналы связи стали более быстрыми и стабильными. Почему нельзя передавать по ним сразу много данных? Оказывается, не все так просто. Сетью одновременно может пользоваться много устройств и вместе они способны загрузить даже самые быстрые и широкие каналы.
Поэтому у TCP очень сложная задача. Если передавать в сеть мало данных, то канал связи не будет загружен полностью и скорость передачи будет низкая. С другой стороны, если передать слишком много данных, то может произойти перегрузка, часть данных будет отброшена и их придется передавать заново. В этом случае скорость тоже будет низкая.
Дополнительная сложность в том, что сетью пользуются другие устройства. В случае с интернет это миллионы других устройств. Как определить подходящую скорость с учетом всех остальных устройств в сети?
Об этом вкратце рассказано в новом видео по управлению перегрузкой в TCP.
Более подробно можно почитать в RFC:
- RFC 5681 TCP - Congestion Control.
- RFC 896 - Congestion Control in IP/TCP Internetworks.
Если плохо работает YouTube, то можно смотреть в Дзен или VK.
Поддержать создание курса можно на Boosty или CloudTips.
Наверняка вы знаете, что скачивать что-то большое из интернета через одно TCP-соединение очень долго. Почему так происходит?
Протокол TCP проектировался в 80-е годы прошлого века, когда каналы связи были медленные и ненадежные. Поэтому TCP после установки соединения начинает передавать данные с низкой скоростью. Если данные не теряются, то скорость постепенно увеличивается. А если теряются - то скорость снижается. Таким образом со временем TCP определяет приемлемую скорость передачи данных.
Сейчас каналы связи стали более быстрыми и стабильными. Почему нельзя передавать по ним сразу много данных? Оказывается, не все так просто. Сетью одновременно может пользоваться много устройств и вместе они способны загрузить даже самые быстрые и широкие каналы.
Поэтому у TCP очень сложная задача. Если передавать в сеть мало данных, то канал связи не будет загружен полностью и скорость передачи будет низкая. С другой стороны, если передать слишком много данных, то может произойти перегрузка, часть данных будет отброшена и их придется передавать заново. В этом случае скорость тоже будет низкая.
Дополнительная сложность в том, что сетью пользуются другие устройства. В случае с интернет это миллионы других устройств. Как определить подходящую скорость с учетом всех остальных устройств в сети?
Об этом вкратце рассказано в новом видео по управлению перегрузкой в TCP.
Более подробно можно почитать в RFC:
- RFC 5681 TCP - Congestion Control.
- RFC 896 - Congestion Control in IP/TCP Internetworks.
Если плохо работает YouTube, то можно смотреть в Дзен или VK.
Поддержать создание курса можно на Boosty или CloudTips.
Forwarded from Поступашки - ШАД, Стажировки и Магистратура
Эти пет проекты должен сделать каждый аналитик
Финальные 4 часа скидки на наши продвинутые курсы подходят к концу. В честь этого подготовили самые популярные проекты, еще больше пет проектов будут на нашем курсе аналитика хард.
1. Работа с данными
В новом продукте придется выстраивать аналитические процессы. Но для начала нужно просто привести данные к удобному виду. Так данные могут храниться не оптимально: например, есть база данных VK с одной таблицей, где хранятся посты и авторы этих постов. Скорее всего, постов будет намного больше, чем авторов, поэтому разумно создать новую таблицу, переместить туда посты, а из исходной удалить. Помимо такого не оптимального хранения, данные могут быть банально грязные: аномалии, дубликаты и пропуски, неудобный тип переменных. Для "очистки" данные пригодятся статистические методы и визуализация. Также уже на этом этапе можно формулировать какие-то гипотезы. Для выполнения такого задания достаточно открыть jupyter notebook взять любой сырой датасет c того же kaggle, имитирующий "большие данные", там же по запросу в духе "Exploratory Data Analysis" можно посмотреть примеры других пользователей.
2. Дашборды
Результаты предыдущей работы с данными нужно предоставить в удобном виде. Согласитесь, что ко всем важным показателям нашего продукта должен быть простой и быстрый доступ. Странно было бы если всей команде каждый раз приходилось писать запрос, чтобы узнать сколько у продукта пользователей. Поэтому выстраивание аналитики начинается с выведения ключевых метрик как DAU, WAU, MAU. Целевая задача состоит в визуализации и презентации, также можно повыдумывать свои метрики и сформулировать какие-то гипотезы, глядя на графики. Например, видим пик активных пользователей (маркетологи закупили рекламу), а потом видим отток — давайте посмотрим на retention и оценим насколько реклама эффективна. Также придется найти данные и настроить рабочее окружение, наиболее удачным для новичков мне кажется: ClickHouse, Redash, Superset, GitLab. Они интерактивны, к каждому есть туториал. На работе могут быть другие инструменты, но их освоения тоже не составит проблем.
3. AB тест
Здесь и пригодятся все гипотезы, сформулированные в предыдущих проектах: теперь их можно проверить. Сначала планируем эксперимент: рассчитываем необходимое кол-во пользователей, подобираем методы проверки. Огромный простор для воображения: можно подобрать более чувствительные метрики, можно потестить систему сплитования, можно использовать методы понижения дисперсии. Но лучше начать с самого простого: хоть как-то выбрать пользователей, разделить на тест и контроль и использовать t-тест, Манна - Уитни, проинтерпретировать результат + прикрутить все рабочее окружение из второго проекта. Если получится что-то рабочее, то прикручиваем хэширование с солью, АА-тест, бутстреп, cuped, бакетное преобразование и тд. Примеры AB тестов всякого качества можно посмотреть на том же kaggle, github.
4. Пайплан
Обычно данные хранятся в разных системах и в разных формах, аналитику нередко приходится перетаскивать данные в хранилище и выдавать их в виде графиков и табличек. Для имитации чего-то подобного можно взять данные из одной базы данных, возможно, эти источником будет также являться Kafka, положить в Hadoop, и поместить данные в другую базу данных, используя преобразования Spark, и запустить это все дело через Airflow. После нашего курса дата инженерия будете такое щелкать как орешки😎😎.
5. Система алертов
На работе придется писать отчеты, поэтому лучше автоматизировать этот процесс через тг бота. Создаем, пишем скрипт для сборки отчета по выбранной бд. Подумайте, какие метрики выбрать, за какой период и как лучше представить отчет. Автоматизируйте отправку отчета с помощью Airflow. В дополнение к отчетам можно реализовать поиск аномалий: детектировать необычное поведения метрик и отправлять в чат. Выбираем метрики, срезы, частоту для мониторинга, метод детектирования. Методы можно разделить на статистические (правило трех сигм) и на основе мл алгоритмов (DBSCAN, LOF). Как всегда для начала реализовываем самое простое.
@postypashki_old
Финальные 4 часа скидки на наши продвинутые курсы подходят к концу. В честь этого подготовили самые популярные проекты, еще больше пет проектов будут на нашем курсе аналитика хард.
1. Работа с данными
В новом продукте придется выстраивать аналитические процессы. Но для начала нужно просто привести данные к удобному виду. Так данные могут храниться не оптимально: например, есть база данных VK с одной таблицей, где хранятся посты и авторы этих постов. Скорее всего, постов будет намного больше, чем авторов, поэтому разумно создать новую таблицу, переместить туда посты, а из исходной удалить. Помимо такого не оптимального хранения, данные могут быть банально грязные: аномалии, дубликаты и пропуски, неудобный тип переменных. Для "очистки" данные пригодятся статистические методы и визуализация. Также уже на этом этапе можно формулировать какие-то гипотезы. Для выполнения такого задания достаточно открыть jupyter notebook взять любой сырой датасет c того же kaggle, имитирующий "большие данные", там же по запросу в духе "Exploratory Data Analysis" можно посмотреть примеры других пользователей.
2. Дашборды
Результаты предыдущей работы с данными нужно предоставить в удобном виде. Согласитесь, что ко всем важным показателям нашего продукта должен быть простой и быстрый доступ. Странно было бы если всей команде каждый раз приходилось писать запрос, чтобы узнать сколько у продукта пользователей. Поэтому выстраивание аналитики начинается с выведения ключевых метрик как DAU, WAU, MAU. Целевая задача состоит в визуализации и презентации, также можно повыдумывать свои метрики и сформулировать какие-то гипотезы, глядя на графики. Например, видим пик активных пользователей (маркетологи закупили рекламу), а потом видим отток — давайте посмотрим на retention и оценим насколько реклама эффективна. Также придется найти данные и настроить рабочее окружение, наиболее удачным для новичков мне кажется: ClickHouse, Redash, Superset, GitLab. Они интерактивны, к каждому есть туториал. На работе могут быть другие инструменты, но их освоения тоже не составит проблем.
3. AB тест
Здесь и пригодятся все гипотезы, сформулированные в предыдущих проектах: теперь их можно проверить. Сначала планируем эксперимент: рассчитываем необходимое кол-во пользователей, подобираем методы проверки. Огромный простор для воображения: можно подобрать более чувствительные метрики, можно потестить систему сплитования, можно использовать методы понижения дисперсии. Но лучше начать с самого простого: хоть как-то выбрать пользователей, разделить на тест и контроль и использовать t-тест, Манна - Уитни, проинтерпретировать результат + прикрутить все рабочее окружение из второго проекта. Если получится что-то рабочее, то прикручиваем хэширование с солью, АА-тест, бутстреп, cuped, бакетное преобразование и тд. Примеры AB тестов всякого качества можно посмотреть на том же kaggle, github.
4. Пайплан
Обычно данные хранятся в разных системах и в разных формах, аналитику нередко приходится перетаскивать данные в хранилище и выдавать их в виде графиков и табличек. Для имитации чего-то подобного можно взять данные из одной базы данных, возможно, эти источником будет также являться Kafka, положить в Hadoop, и поместить данные в другую базу данных, используя преобразования Spark, и запустить это все дело через Airflow. После нашего курса дата инженерия будете такое щелкать как орешки😎😎.
5. Система алертов
На работе придется писать отчеты, поэтому лучше автоматизировать этот процесс через тг бота. Создаем, пишем скрипт для сборки отчета по выбранной бд. Подумайте, какие метрики выбрать, за какой период и как лучше представить отчет. Автоматизируйте отправку отчета с помощью Airflow. В дополнение к отчетам можно реализовать поиск аномалий: детектировать необычное поведения метрик и отправлять в чат. Выбираем метрики, срезы, частоту для мониторинга, метод детектирования. Методы можно разделить на статистические (правило трех сигм) и на основе мл алгоритмов (DBSCAN, LOF). Как всегда для начала реализовываем самое простое.
@postypashki_old
Forwarded from Pavel Zloi
Поднять FRIDA API не просто
Несколько дней пытался поднять ai-forever/FRIDA в формате API сервера через существующие популярные решения для инференса с доступом аля OpenAI-подобное API. По понятным причинам вариант запуска через Ollama не рассматриваю из-за слабых метрик квантованных моделей.
Попробовал первым делом vLLM, но к сожалению модели архитектуры T5 авторы данного проекта уже два года добавляют, всё никак не добавят (подробнее тут, тут и тут), так что увы и ах, едем дальше.
Следующим в моём списке была Text Embedding Inference (TEI) от не абы кого, а самих Hugginп Face, однако, там тоже поддержки T5 пока ещё нет (смотри тут), а самый свежий билд (1.8) говорит при запуске Фриды что:
Далее пошёл смотреть справится ли Triton Inference Server (TIS) основанный на TensorRT-LLM, там судя по спецификациям эмбеддеры T5 поддерживаются, но запускается это всё с таким большим скрипом, что мне кажется странным, что этот бэкенд называют продакшен-реди. Немного пострадав с этим проектом побрёл искать обёртки, нашёл openai_trtllm, там обнаружил готовый docker-compose.yml, обрадовался, думал смогу всё красиво собрать, но контейнеры падают с ошибкой в процессе сборки.
После этой неудачи, словно Ийон Тихий, пошёл в отрыв и стал искать любой API сервер, который заявляет поддержку T5 эмбеддеров и предоставляет формат работы совместимый с OpenAI API клиентами, перерыл десятки проектов, маленьких и больших, и нашёл одни проект соответствующий всем критериям, называется он Infinity, очень легко настраивается, сам скачивает модели, сам всё запускает, может предоставить доступ сразу к нескольким эмбеддинговым моделям.
Вот мой docker-compose.yml конфиг для запуска FRIDA через Infinity сервер:
(учитывая наличие принудительно включенной телеметрии предположу, что возможно в будущем проект станет платным)
Данный сервер поддерживает разные движки (engine) для инференса:
- torch - это полноценная реализация обёртки над sentence-transformers, то есть почти все существующие эмбеддеры в данном режиме будут поддерживаться
- optimum - для запуска ONNX моделей
- ctranslate2 - только для BERT'очек
После запуска на него можно делать HTTP запросы вида:
В ответе будет извлеченный из текста вектор, бай зе вей, можно передать массив из строк в input, но это думаю вы все и так знаете.
Несколько дней пытался поднять ai-forever/FRIDA в формате API сервера через существующие популярные решения для инференса с доступом аля OpenAI-подобное API. По понятным причинам вариант запуска через Ollama не рассматриваю из-за слабых метрик квантованных моделей.
Попробовал первым делом vLLM, но к сожалению модели архитектуры T5 авторы данного проекта уже два года добавляют, всё никак не добавят (подробнее тут, тут и тут), так что увы и ах, едем дальше.
Следующим в моём списке была Text Embedding Inference (TEI) от не абы кого, а самих Hugginп Face, однако, там тоже поддержки T5 пока ещё нет (смотри тут), а самый свежий билд (1.8) говорит при запуске Фриды что:
unknown variant `t5`, expected one of `bert`, `xlm-roberta`, `camembert`, `roberta`, `distilbert`, `nomic_bert`, `mistral`, `gte`, `new`, `qwen2`, `qwen3`, `mpnet`, `modernbert`
Далее пошёл смотреть справится ли Triton Inference Server (TIS) основанный на TensorRT-LLM, там судя по спецификациям эмбеддеры T5 поддерживаются, но запускается это всё с таким большим скрипом, что мне кажется странным, что этот бэкенд называют продакшен-реди. Немного пострадав с этим проектом побрёл искать обёртки, нашёл openai_trtllm, там обнаружил готовый docker-compose.yml, обрадовался, думал смогу всё красиво собрать, но контейнеры падают с ошибкой в процессе сборки.
После этой неудачи, словно Ийон Тихий, пошёл в отрыв и стал искать любой API сервер, который заявляет поддержку T5 эмбеддеров и предоставляет формат работы совместимый с OpenAI API клиентами, перерыл десятки проектов, маленьких и больших, и нашёл одни проект соответствующий всем критериям, называется он Infinity, очень легко настраивается, сам скачивает модели, сам всё запускает, может предоставить доступ сразу к нескольким эмбеддинговым моделям.
Вот мой docker-compose.yml конфиг для запуска FRIDA через Infinity сервер:
x-shared-logs: &shared-logs
logging:
driver: "json-file"
options:
max-size: "100k"
services:
infinity:
image: michaelf34/infinity:0.0.76
restart: unless-stopped
command: >
v2
--model-id ai-forever/FRIDA
--engine torch
--port "7997"
environment:
- HF_HOME=/app/.cache
- HF_HUB_ENABLE_HF_TRANSFER=0
- DO_NOT_TRACK=1
- HF_HUB_DISABLE_TELEMETRY=1
- INFINITY_ANONYMOUS_USAGE_STATS=0
volumes:
- ./infinity_data:/app/.cache
ports:
- "7997:7997"
deploy:
resources:
reservations:
devices:
- driver: nvidia
device_ids: [ '1' ]
capabilities: [ gpu ]
<<: *shared-logs
Данный сервер поддерживает разные движки (engine) для инференса:
- torch - это полноценная реализация обёртки над sentence-transformers, то есть почти все существующие эмбеддеры в данном режиме будут поддерживаться
- optimum - для запуска ONNX моделей
- ctranslate2 - только для BERT'очек
После запуска на него можно делать HTTP запросы вида:
curl -s https://localhost:7997/embeddings \
-H 'Content-Type: application/json' \
-d '{"input":"Привет! Как дела?"}'
В ответе будет извлеченный из текста вектор, бай зе вей, можно передать массив из строк в input, но это думаю вы все и так знаете.
Forwarded from Pavel Zloi
Ну и само собой Фриду можно попробовать через моё публичное API вот такой командой:
И через любой openai клиент, например:
curl https://api.rpa.icu/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer https://t.iss.one/evilfreelancer" \
-d '{
"model": "FRIDA",
"input": "Привет! Как дела?"
}'
И через любой openai клиент, например:
from openai import OpenAI
client = OpenAI(
api_key="https://t.iss.one/evilfreelancer",
base_url="https://api.rpa.icu"
)
response = client.embeddings.create(
model="FRIDA",
input="Привет! Как дела?"
)
print(response)