Forwarded from Kogut Ivan Tutoring
Рабочие будни. Парсинг товаров
#ЖизаПост
После вопроса на семинаре ШАДа о нашей команде в Яндексе я понял, что особо не рассказывал в канале, чем занимаюсь/занимался на работе😅
Пора это исправить! Дисклеймер: все-все-все рассказать не удастся - NDA, сами понимаете)
Напомню, что я работаю в команде Товарного Поиска (это не Маркет, а часть Поиска). Как и у любого поиска у нас есть база, а именно - база товаров. И в этом посте хочу рассказать кратко о процессе, который привносит больший вклад в базу. Речь пойдет о парсинге.
Представьте перед собой страницу с товаром какого-нибудь онлайн магазина. Из нее нужно достать такие важные поля как цена, название, картинка и так далее. Как это сделать (подумайте сами, а затем открывайте спойлер)❓
Сразу расскажу наше итоговое решение. HTML страницу можно представить как дерево, а нужная нам информация лежит в каких-то вершинах этого дерева. Давайте тогда классифицировать каждую вершину на то, содержит ли она нужные данные или нет. Придумаем кучу признаков для вершины: про ее положение в дереве, про информацию в соседних вершинах и про контент в самой вершине. Большинство факторов считаются алгоритмически, вот вам и ДП по дереву. Конечно, еще по тексту в вершине считается нейросеть, выход которой мы назвали текстовым признаком. В итоге на этом многообразии признаков учим Catboost и классификатор готов
Этот проект начался еще до моего попадания в штат и конкретно я парсил данные для fashion категорий и улучшал precision и recall для базовых полей. Удалось поделать следующее: создание толокерских заданий, обучение Catboost, обучение BERT и дистилляция в DSSM, запуск, оптимизация этого дела на C++ и придумывание с реализацией эвристик на дереве на тех же плюсах👨💻
Конечно, я не рассказал еще интересности этой задачи: более простые способы парсинга с их + и -, как обходить нужные страницы и так далее. Про это можно послушать в докладе одного из моих руклей на Highload 2022 (как давно это было) - ссылка▶️
#ЖизаПост
После вопроса на семинаре ШАДа о нашей команде в Яндексе я понял, что особо не рассказывал в канале, чем занимаюсь/занимался на работе
Пора это исправить! Дисклеймер: все-все-все рассказать не удастся - NDA, сами понимаете)
Напомню, что я работаю в команде Товарного Поиска (это не Маркет, а часть Поиска). Как и у любого поиска у нас есть база, а именно - база товаров. И в этом посте хочу рассказать кратко о процессе, который привносит больший вклад в базу. Речь пойдет о парсинге.
Представьте перед собой страницу с товаром какого-нибудь онлайн магазина. Из нее нужно достать такие важные поля как цена, название, картинка и так далее. Как это сделать (подумайте сами, а затем открывайте спойлер)
Этот проект начался еще до моего попадания в штат и конкретно я парсил данные для fashion категорий и улучшал precision и recall для базовых полей. Удалось поделать следующее: создание толокерских заданий, обучение Catboost, обучение BERT и дистилляция в DSSM, запуск, оптимизация этого дела на C++ и придумывание с реализацией эвристик на дереве на тех же плюсах
Конечно, я не рассказал еще интересности этой задачи: более простые способы парсинга с их + и -, как обходить нужные страницы и так далее. Про это можно послушать в докладе одного из моих руклей на Highload 2022 (как давно это было) - ссылка
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Knowledge Accumulator
Efficiently Modeling Long Sequences with Structured State Spaces [2021] - как дотер стал нейросетью
Для тех, кто не знает - я не особый любитель длинных математических статей. В целом, я не умею с адекватной скоростью читать и воспринимать много линала. Наверняка в телеграме существует большое количество умных постов про S4 с кратким пересказом его математики, и если вы из тех, кто способен такое воспринимать, поздравляю - данный пост не для вас.
Я постарался, вооружившись гайдом, уловить основной смысл данной архитектуры, где она находится по отношению с известными широким кругам. Итак, поехали.
Представим, что существует "ячейка памяти" - хранилище-вектор, который обновляется с учётом предыдущего состояния ячейки, последнего входа и каких-то обучаемых параметров. Помимо памяти есть функция выхода, которая берёт новое состояние памяти, последний вход и выдаёт выход наружу.
Мы уже знаем реализации подобных абстракций. Простейшая RNN, GRU/LSTM - все мы их любим, но у них есть жирная проблема - их нужно считать шаг за шагом, а значит, нельзя применить много компьюта и обработать кучу информации за раз, так, как это умеют трансформеры, но сами трансформеры фэйлятся на огромных контекстах.
Итак, помимо RNN и GRU существует State Space Model - ещё один формат ячейки памяти (в его основе всего лишь парочка матричных умножений), но у него есть крутая особенность. Вычисление рода "прогнать SSM на последовательности", оказывается, можно переформулировать в другую функцию - свёртку, для которой можно предпосчитать веса. При добавлении ещё одного фокуса (FFT) эту свёртку можно считать быстрее, чем втупую, что в итоге позволяет по сути быстро применять SSM на всей последовательности.
Далее, у SSM есть 2 проблемы - они херово работают, и хвалёное "быстро посчитать" на самом деле не такое уж и быстрое.
Чтобы решить первое, был придуман магический гиппопотам - инициализация одной из матриц внутри SSM таким образом, чтобы она была изначально ближе к пространству чего-то разумного.
Вкратце, вторая проблема заключается в том, что для подсчёта весов свёртки нужно умножать много матриц, а нам вообще-то лень - бумага нынче дорогая. Для этого придумывают магический костыль - Diagonal Plus Low-Rank. Я не стал разбираться в деталях, если вам интересно, отсылаю к разбору, но одну из матриц просто (нихера не просто в реальности) представляют не как обучаемую матрицу весов, а как результат операций над другими обучаемыми сущностями.
В результате, объединив описанные хаки, и получается S4 - хитрая и быстрая вариация "RNN"-ки, которую успешно применяют на сверхдлинных последовательностях.
Замечу, что это не первая статья, которую я обозреваю, в которой засчёт убирания нелинейностей удаётся всё очень сильно ускорить и упростить - напомню про RetNet. Нет никаких гарантий, что "мощность" архитектуры достигается как раз засчёт этих нелинейностей.
Кроме того, скажу честно - я банально не верю, что прорывные архитектуры будут основаны на какой-то сложной математике. Через пару лет окажется, что есть какая-нибудь суперпростая штука, которая делает всё то же самое даже лучше. Это не исключает, что математика будет вдохновлять на прогресс и в какой-то момент натолкнёт ресёрчеров на нечто крутое, но само это крутое будет очень простым.
@knowledge_accumulator
Для тех, кто не знает - я не особый любитель длинных математических статей. В целом, я не умею с адекватной скоростью читать и воспринимать много линала. Наверняка в телеграме существует большое количество умных постов про S4 с кратким пересказом его математики, и если вы из тех, кто способен такое воспринимать, поздравляю - данный пост не для вас.
Я постарался, вооружившись гайдом, уловить основной смысл данной архитектуры, где она находится по отношению с известными широким кругам. Итак, поехали.
Представим, что существует "ячейка памяти" - хранилище-вектор, который обновляется с учётом предыдущего состояния ячейки, последнего входа и каких-то обучаемых параметров. Помимо памяти есть функция выхода, которая берёт новое состояние памяти, последний вход и выдаёт выход наружу.
Мы уже знаем реализации подобных абстракций. Простейшая RNN, GRU/LSTM - все мы их любим, но у них есть жирная проблема - их нужно считать шаг за шагом, а значит, нельзя применить много компьюта и обработать кучу информации за раз, так, как это умеют трансформеры, но сами трансформеры фэйлятся на огромных контекстах.
Итак, помимо RNN и GRU существует State Space Model - ещё один формат ячейки памяти (в его основе всего лишь парочка матричных умножений), но у него есть крутая особенность. Вычисление рода "прогнать SSM на последовательности", оказывается, можно переформулировать в другую функцию - свёртку, для которой можно предпосчитать веса. При добавлении ещё одного фокуса (FFT) эту свёртку можно считать быстрее, чем втупую, что в итоге позволяет по сути быстро применять SSM на всей последовательности.
Далее, у SSM есть 2 проблемы - они херово работают, и хвалёное "быстро посчитать" на самом деле не такое уж и быстрое.
Чтобы решить первое, был придуман магический гиппопотам - инициализация одной из матриц внутри SSM таким образом, чтобы она была изначально ближе к пространству чего-то разумного.
Вкратце, вторая проблема заключается в том, что для подсчёта весов свёртки нужно умножать много матриц, а нам вообще-то лень - бумага нынче дорогая. Для этого придумывают магический костыль - Diagonal Plus Low-Rank. Я не стал разбираться в деталях, если вам интересно, отсылаю к разбору, но одну из матриц просто (нихера не просто в реальности) представляют не как обучаемую матрицу весов, а как результат операций над другими обучаемыми сущностями.
В результате, объединив описанные хаки, и получается S4 - хитрая и быстрая вариация "RNN"-ки, которую успешно применяют на сверхдлинных последовательностях.
Замечу, что это не первая статья, которую я обозреваю, в которой засчёт убирания нелинейностей удаётся всё очень сильно ускорить и упростить - напомню про RetNet. Нет никаких гарантий, что "мощность" архитектуры достигается как раз засчёт этих нелинейностей.
Кроме того, скажу честно - я банально не верю, что прорывные архитектуры будут основаны на какой-то сложной математике. Через пару лет окажется, что есть какая-нибудь суперпростая штука, которая делает всё то же самое даже лучше. Это не исключает, что математика будет вдохновлять на прогресс и в какой-то момент натолкнёт ресёрчеров на нечто крутое, но само это крутое будет очень простым.
@knowledge_accumulator
Forwarded from IT analysis • Системный и бизнес анализ
Обзор типов баз данных: какие типы БД существуют, в каких задачах используются ?
Сегодня поговорим про базы данных и рассмотрим типы БД, преимущества и недостатки каждого типа. Знание специфики применения различных типов баз данных позволяет аналитику лучше ориентироваться в архитектуре системы, а также принимать участие в проработке архитектуры решения.
Поэтому собрал в карточках краткую теорию по основным типам БД. Изучайте, делитесь с друзьями и сохраняйте в избранное, чтобы не потерять полезную информацию 😉
#study_analysis
Сегодня поговорим про базы данных и рассмотрим типы БД, преимущества и недостатки каждого типа. Знание специфики применения различных типов баз данных позволяет аналитику лучше ориентироваться в архитектуре системы, а также принимать участие в проработке архитектуры решения.
Поэтому собрал в карточках краткую теорию по основным типам БД. Изучайте, делитесь с друзьями и сохраняйте в избранное, чтобы не потерять полезную информацию 😉
#study_analysis
Forwarded from Тимлид Очевидность | Евгений Антонов
Я принес. Черная книга менеджера
Впервые я прочитал эту книгу лет 10-11 назад, когда только начинал получать тимлидские и прочие ответственные роли. Возможно поэтому у меня от них не было возвышенных иллюзий 🙂
Не пугайтесь, что эта книга называется книгой и якобы долго её придется читать. По сути это большой лонгрид на 25 страниц контента. Но контент очень емкий, сжатый, сконцентрированный. После каждой главы надо хорошо подумать.
А еще сразу уточню, что книга написана в жестком стиле. С обсценной лексикой и без какого-то заигрывания с «мы – семья», «позволь максимально уважить твои личные границы» и «доброго времени суток, многоуважаемые коллеги».
При этом, на мой взгляд, книга снимает розовые очки, к которым мы иной раз в айтишечке привыкли и показывает неприкрытую правду жизни и настоящих требований бизнеса от менеджеров. Жестко, но по-деловому справедливо.
Книгу я бы посоветовал почитать тимлидам, проджектам, продактам и прочим менеджерам точно. А еще неплохо бы тем, кто только подумывает пойти в разный менеджмент.
Ссылка на сайте Стратоплана потому, что её написал Слава Панкратов https://stratoplan-school.com/Storage/books/pdf/stratoplan_black_book.pdf
Кстати это тоже отдельный прикол был для меня, что одно время я воспринимал Стратоплан и Черную книгу менеджера как совсем разные сущности и был удивлен, когда узнал кто же автор 🙂
Пишите в комментариях свои отзывы, если читали. Обычно я встречаю отзывы противоположного спектра: или «супер-жиза», или «ну это че-то перебор». Равнодушных после прочтения обычно мало на моей практике.
Впервые я прочитал эту книгу лет 10-11 назад, когда только начинал получать тимлидские и прочие ответственные роли. Возможно поэтому у меня от них не было возвышенных иллюзий 🙂
Не пугайтесь, что эта книга называется книгой и якобы долго её придется читать. По сути это большой лонгрид на 25 страниц контента. Но контент очень емкий, сжатый, сконцентрированный. После каждой главы надо хорошо подумать.
А еще сразу уточню, что книга написана в жестком стиле. С обсценной лексикой и без какого-то заигрывания с «мы – семья», «позволь максимально уважить твои личные границы» и «доброго времени суток, многоуважаемые коллеги».
При этом, на мой взгляд, книга снимает розовые очки, к которым мы иной раз в айтишечке привыкли и показывает неприкрытую правду жизни и настоящих требований бизнеса от менеджеров. Жестко, но по-деловому справедливо.
Книгу я бы посоветовал почитать тимлидам, проджектам, продактам и прочим менеджерам точно. А еще неплохо бы тем, кто только подумывает пойти в разный менеджмент.
Ссылка на сайте Стратоплана потому, что её написал Слава Панкратов https://stratoplan-school.com/Storage/books/pdf/stratoplan_black_book.pdf
Кстати это тоже отдельный прикол был для меня, что одно время я воспринимал Стратоплан и Черную книгу менеджера как совсем разные сущности и был удивлен, когда узнал кто же автор 🙂
Пишите в комментариях свои отзывы, если читали. Обычно я встречаю отзывы противоположного спектра: или «супер-жиза», или «ну это че-то перебор». Равнодушных после прочтения обычно мало на моей практике.
Forwarded from K R
вот ещё полезный тред в тему обсуждения кач-ва сигналов ( то, что описано в треде имхо валидно онли для дирекшонал мидфрика, для кроссекшонала это будет невалидно по очевидным причинам, для хфт это будет невалидно из-за нерегулярного сэмплинга ) https://x.com/systematicls/status/1840317347783221613
Forwarded from Пристанище Дата Сайентиста (TelepostBot)
Материалы с курса ML System Design
Два моих хороших товарища Mikhail Rozhkov и Alexander Guschin выложили в открытый доступ материалы по ML System Design курсу в HARBOUR.SPACE в git
C Мишей мне довелось поработать над курсом MLOps для Data Science и разработки ML моделей, а с Сашей часто общаемся по самым разным вопросам =)
Так же советую ознакомиться с постом на medium
И подписаться на канал Саши в телеграме
Два моих хороших товарища Mikhail Rozhkov и Alexander Guschin выложили в открытый доступ материалы по ML System Design курсу в HARBOUR.SPACE в git
C Мишей мне довелось поработать над курсом MLOps для Data Science и разработки ML моделей, а с Сашей часто общаемся по самым разным вопросам =)
Так же советую ознакомиться с постом на medium
И подписаться на канал Саши в телеграме
Forwarded from Пристанище Дата Сайентиста (TelepostBot)
#llm #blog
Трендовые статьи по Large Language Model
Пост в блоге
Краткое содержания блогпоста:
- самокоррекция в LLM через обучение с подкреплением: Google Deepmind предложили инновационный подход для повышения способности больших языковых моделей (LLM) к самокоррекции.
- квантование LLM для выполнения инструкций: Было установлено, что методы квантования существенно влияют на производительность LLM. Ключевое наблюдение – квантование моделей с большими параметрами (405B) часто дает лучшие результаты.
- память в LLM: Было доказано, что LLM обладают памятью, а архитектура Transformer выполняет функцию аппроксимации входных данных, демонстрируя «память Шрёдингера», которая активируется входными данными.
- Logic-of-Thought для улучшения рассуждений LLM: Новый подход Logic-of-Thought (LoT) показал значительное улучшение производительности LLM на задачах логического рассуждения, в частности, на наборах данных ReClor, LogiQA и ProofWriter.
Пост в блоге
Трендовые статьи по Large Language Model
Пост в блоге
Краткое содержания блогпоста:
- самокоррекция в LLM через обучение с подкреплением: Google Deepmind предложили инновационный подход для повышения способности больших языковых моделей (LLM) к самокоррекции.
- квантование LLM для выполнения инструкций: Было установлено, что методы квантования существенно влияют на производительность LLM. Ключевое наблюдение – квантование моделей с большими параметрами (405B) часто дает лучшие результаты.
- память в LLM: Было доказано, что LLM обладают памятью, а архитектура Transformer выполняет функцию аппроксимации входных данных, демонстрируя «память Шрёдингера», которая активируется входными данными.
- Logic-of-Thought для улучшения рассуждений LLM: Новый подход Logic-of-Thought (LoT) показал значительное улучшение производительности LLM на задачах логического рассуждения, в частности, на наборах данных ReClor, LogiQA и ProofWriter.
Пост в блоге