Сквозь тернии к апдейту: история о том, как мы обновляли стриминг ОК

Стриминговые данные — важная часть многих современных ИТ-платформ. Они активно используются в разных разделах социальной сети Одноклассники уже более 10 лет. И за это время используемый нами стриминговый фреймворк успел заметно измениться, поэтому настало время обновить его в нашем проекте. Но на пути обновления легаси-систем иногда возникают сложности. Меня зовут Алина Шестакова. Я разработчик в команде разработки DataPlatform единой облачной платформы One-сloud. В этой статье расскажу о том, как устроен стриминг данных в ОК, а также обо всех патчах и челленджах, возникших в процессе обновления стримингового фреймворка.

https://habr.com/ru/companies/vk/articles/924650/

#streaming #java #highload #legacy #инфраструктура #bigdata #распределенные_системы #обработка_данных

Сквозь тернии к апдейту: история о том, как мы обновляли стриминг ОК

Стриминговые данные — важная часть многих современных ИТ-платформ. Они активно используются в разных разделах социальной сети Одноклассники уже более 10 лет. И за это время используемый нами...

Хабр

Как мы построили свой инструмент для работы с LLM

Привет, Habr! Меня зовут Алексей Рудак, и я основатель компании Lingvanex — компании, которая уже 7 лет делает решения для машинного перевода и распознавания речи. В этой статье я бы хотел рассказать про наш инструмент для тренировки языковых моделей, который шесть лет назад родился из простого набора скриптов. Но постепенно усложняяcь, он стал включать в себя функции разметки данных, фильтрации датасетов, генерации данных и тестирования. В какой-то момент инструмент стал настолько функциональный, что я решил сделать ему красивый UI и назвать его - Data Studio. Итак, что же такое Data Studio ? Data Studio — это инструмент для работы с задачами обработки естественного языка (NLP), который мы используем в основном для улучшения качества перевода текста. С помощью Data Studio можно обучать модели перевода, настраивать различные параметры для этих тренировок, токенизировать данные, фильтровать их по различным параметрам, собирать метрики, создавать данные для обучения, тестирования и валидации и многое другое. Общий процесс создания языковой модели для перевода выглядит так: 1) Предобработка данных: этап подготовки данных перед обучением модели. 2) Фильтрация с использованием структурных и семантических фильтров. 3) Сбор общего набора данных: удаление избыточности, равномерное распределение тем и длин, сортировка. 4) Тегирование для классификации данных. 5) Загрузка общего набора данных в Data Studio для проверки. 6) Создание данных для валидации и тестирования модели. 7) Обучение модели.

https://habr.com/ru/articles/924174/

#машинное_обучениe #инструментарий #llm #llmмодели #искусственный_интеллект #языковые_модели #large_language_model #большие_языковые_модели #ai #обработка_данных

Как мы построили свой инструмент для работы с LLM

Привет, Habr! Меня зовут Алексей Рудак, и я основатель компании Lingvanex — компании, которая уже 7 лет делает решения для машинного перевода и распознавания речи. В этой статье я бы хотел рассказать...

Хабр

Как мы заменили сотни Join’ов на один РТ-процессинг с 1kk RPS

Как связаны скидки, пользовательские пути и огромные массивы данных в Яндекс Рекламе? Привет, Хабр! Меня зовут Максим Стаценко, я работаю с базами данных и яростно в них копаюсь с 2010 года, а в Big Data — с 2016. Сейчас работаю в Яндексе в DWH поиска и рекламы. Мы работаем с ОЧЕНЬ большими данными. Каждый день миллионы пользователей видят рекламу Яндекса, а наши системы обрабатывают огромные объёмы данных. Чтобы реклама работала эффективно, нам нужно в каждый момент времени иметь максимально полную информацию об истории жизни рекламного объявления, а значит нужно каким-то образом передавать данные от одного события к другому внутри рекламной воронки. Расскажу, как мы решали эту проблему.

https://habr.com/ru/companies/oleg-bunin/articles/884560/

#ytsaurus #mapreduce #olap #oltp #антифрод #распределенные_системы #оптимизация #обработка_данных #хранилища_данных

Как мы заменили сотни Join’ов на один РТ-процессинг с 1kk RPS

Как связаны скидки, пользовательские пути и огромные массивы данных в Яндекс Рекламе?  Привет, Хабр! Меня зовут Максим Стаценко, я работаю с базами данных и яростно в них копаюсь с 2010 года, а в...

Хабр

Повышаем эффективность хранения данных до 300 раз с помощью таблиц SCD-2

Всем привет, меня зовут Василий. С 2021 года работаю в роли инженера данных в Х5 Tech, успел за это время познакомиться с несколькими интересными проектами и подходами в области обработки данных, об одном из которых пойдет речь далее. В этой статье расскажу о том, как можно повысить эффективность хранения данных за счет уменьшения их дублирования. Разберем, что из себя представляют Slowly Changing Dimensions-2 (далее SCD-2) таблицы и самостоятельно реализуем на PySpark алгоритм сохранения данных в них. Попутно поговорим о том, как находить изменения в любой таблице, даже если отсутствуют поля для выбора изменившихся записей, и научимся получать из созданной SCD-2 таблицы срезы на требуемую дату в прошлом.

https://habr.com/ru/companies/X5Tech/articles/911716/

#SCD #spark #python #обработка_данных #хранение_данных #нахождение_дельты #история_изменений #алгоритм_нахождения_изменений #pyspark #сжатие_данных

Повышаем эффективность хранения данных до 300 раз с помощью таблиц SCD-2

Всем привет, меня зовут Василий. С 2021 года работаю в роли инженера данных, а в 2024 году присоединился к одной из продуктовых команд в Х5 Tech. За это время успел познакомиться с несколькими...

Хабр

[Перевод] Поднимайте If вверх, опускайте For вниз

Эта статья — краткая заметка о двух связанных друг с другом эмпирических правилах. Поднимайте If вверх Если внутри функции есть условие if , то подумайте, нельзя ли его переместить в вызывающую сторону: // ХОРОШО fn frobnicate(walrus: Walrus) { ... } // ПЛОХО fn frobnicate(walrus: Option<Walrus>) { let walrus = match walrus { Some(it) => it, None => return, }; ... } В подобных примерах часто существуют предварительные условия: функция может проверять предусловие внутри и «ничего не делать», если оно не выполняется, или же может передать задачу проверки предварительного условия вызывающей её стороне, а при помощи типов (или assert) принудительно удовлетворить этому условию. Подъём проверок вверх, особенно в случае предварительных условий, может иметь лавинообразный эффект и привести к уменьшению общего количества проверок. Именно поэтому и возникло это правило.

https://habr.com/ru/articles/911790/

#условные_конструкции #циклы #обработка_данных #оптимизация_кода #читаемость_кода

Поднимайте If вверх, опускайте For вниз

Эта статья — краткая заметка о двух связанных друг с другом эмпирических правилах. Поднимайте If вверх Если внутри функции есть условие if , то подумайте, нельзя ли его переместить в вызывающую...

Хабр

Переходим от legacy к построению Feature Store

Невероятная история о том, как внедрить систему Feature Store в проект с огромным legacy и получить профит. Привет, Хабр! Меня зовут Евгений Дащенко, я из компании «Домклик», которая решает все вопросы, связанные с недвижимостью, включая оценку стоимости недвижимости любого типа. Это статья по мотивам моего доклада на конференции Highload++ про интерфейс между данными и ML-моделями Feature Store: как мы сделали его с нашей командой, каких результатов добились и с какими подводными камнями столкнулись на пути.

https://habr.com/ru/companies/oleg-bunin/articles/908970/

#feature_store #ml #mlops #ai #python #машинное_обучение #архитектура #обработка_данных #ops #data_science

Переходим от legacy к построению Feature Store

Невероятная история о том, как внедрить систему Feature Store в проект с огромным legacy и получить профит. Привет, Хабр! Меня зовут Евгений Дащенко, я из компании Домклик, которая решает все вопросы,...

Хабр

[Перевод] Как писать запросы для табличных моделей с помощью DAX

В этой статье мы погрузимся в мир запросов DAX для табличных моделей данных. ДAX (Data Analysis Expressions) — это мощный язык запросов, который используется для анализа и обработки данных в Power BI и других продуктах Microsoft. Мы рассмотрим, как с помощью DAX можно выполнять эффективные запросы к данным, начиная с простых операций, таких как получение всех строк из таблицы, и заканчивая более сложными задачами, например, использованием локальных мер и фильтрации данных. Статья будет полезна как новичкам, так и опытным пользователям, стремящимся глубже понять возможности DAX и научиться использовать его для быстрой и точной аналитики.

https://habr.com/ru/companies/otus/articles/904444/

#DAX #Запросы_DAX #анализ_данных #Power_BI #Меры_в_DAX #фильтрация_данных #EVALUATE #обработка_данных

Как писать запросы для табличных моделей с помощью DAX

Запросы к табличным моделям — это специфическая область знаний. Но каждый раз, когда вы создаёте визуализацию в отчёте, Power BI автоматически генерирует DAX-запросы. И порой полезно знать, как их...

Хабр

Обходим подводные камни работы с UDA в коде на Lua для ScyllaDB: дружим Java-драйвер и пустые значения

Привет, Хабр! Мое имя Александр Коваль, я разработчик IoT-сервисов в МТС Web Services. Сейчас ScyllaDB поддерживает ограниченное количество функций, в том числе агрегационных. В стандартном наборе: min, max, count, avg. Но ее функциональность расширяется двумя типами пользовательских функций : скалярными (scalar functions) и агрегационными (aggregate functions). Первые работают со значениями одной строки, а вторые — нескольких. Реализовать такие функции можно на Lua или Rust. В процессе работы с агрегационными функциями можно столкнуться с тем, что ScyllaDB и Java-драйвер по-разному обрабатывают пустые значения. В этом посте я расскажу, как это можно решить относительно просто и без сложных дополнительных телодвижений. Для примера возьму код на Lua и покажу, как он реализуется в виде функции ScyllaDB. Дисклеймер: этот материал написан на основе личного опыта — все решения получены методом проб и ошибок. Конструктивные предложения и советы по их улучшению приветствуется. Код с примерами и ссылки на ресурсы можно найти у меня в репозитории GitHub .

https://habr.com/ru/companies/ru_mts/articles/902544/

#scylladb #java #function #driver #база_дынных #uda #Драйвер_Java_Data_Base_Connectivity #Агрегационные_функции #базы_данных #обработка_данных

Обходим подводные камни работы с UDA в коде на Lua для ScyllaDB: дружим Java-драйвер и пустые значения

Привет, Хабр! Мое имя Александр Коваль, я разработчик IoT-сервисов в МТС Web Services. Сейчас ScyllaDB поддерживает ограниченное количество функций, в том числе агрегационных. В стандартном наборе:...

Хабр

Как превратить сырые данные в аналитический отчет

Делюсь опытом и готовыми решениями по сбору и структурированию сырых данных, превращая их в полезный инструмент для аналитиков.

https://habr.com/ru/articles/888436/

#парсер_сайтов #данные #обработка_данных #хранение_данных #apache_superset #парсинг #mongodb

Как превратить сырые данные в аналитический отчет

Делюсь опытом и готовыми решениями по сбору и структурированию сырых данных, превращая их в полезный инструмент для аналитиков. Введение Сырые данные — это основа для принятия обоснованных решений в...

Хабр

Как перевести банковский продукт в realtime

Частая история: приходит пуш-уведомление от банка, что вам одобрено классное предложение. Причём это уже десятое сообщение за пару месяцев, и никакое оно для вас не важное и не классное. Тизер: да, мы будем говорить о цифровом маркетинге в реальном времени от финансовых организаций — кредит, ипотека, депозит. Научим, как сделать так, чтоб клиент получал своевременные и выгодные предложения, а не спам. Привет, Хабр! Это Владимир Ловцов и Владимир Аврамов из «ИТ-холдинга Т1». И мы расскажем о формировании офферов финансовых продуктов в realtime. Поехали!

https://habr.com/ru/companies/oleg-bunin/articles/875228/

#фреймворки #api #java #postgresql #архитектуры #анализ_и_проектирование_систем #lua #etl #хранилища #обработка_данных

Как перевести банковский продукт в realtime

Частая история: приходит пуш-уведомление от банка, что вам одобрено классное предложение. Причём это уже десятое сообщение за пару месяцев и никакое оно для вас не важное и не классное. Тизер: да, мы...

Хабр