Обновить
72.26

Data Engineering *

Обсуждаем вопросы сбора и подготовки данных

Сначала показывать
Порог рейтинга
Уровень сложности

RAG без эмбеддингов для энтерпрайза (опыт ИИ-чемпионата)

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1.9K

Как я отказался от оверинжиниринга и переместился с 30 места на 7 в Enterprise RAG Challenge. И чего не хватило до 1 места.

Сейчас облась ИИ – дикий запад. Никто не знает, как правильно решать задачи, а результаты экспериментов лежат приватными под NDA. Тем ценнее, когда кто-то делится реальным опытом с разбором деталей и подводных камней. Так что делюсь с хабром своей мартовской статьей про участие в Enterprise RAG Challenge от Рината LLM под капотом

Если вы интересуетесь разработкой продуктов поверх LLM, то

Читать далее

Dart / Flutter — применяя zero / empty объекты ко всему

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров1.6K

Больше техническая заметка, чем статья, поэтому постараюсь изложить мысли как можно кратче.

Приходя из JS/TS мира, когда я впервые написал на Dart, самой прекрасной вещью, помимо многих было использование функций isEmpty или isNotEmpty для String, List, Map, и так далее. Это было невероятно просто и прекрасно не писать каждый раз  .length == 0.

Также, очень полезным паттерном были empty/zero значения как Duration.zero, Offset.zero, и другие.

Спустя время, я нашел привычку использовать похожий принцип для работы с различными случаями, а также пришел к мысли - что если мы используем такие значения для большей части объектов, избавляясь от null (не для всех случаев, но тем не менее)? Немного поискав, нашел похожий паттерн в Go и других языках, и продолжил думать.

Читать далее

Как Apache Spark читает файлы: механизмы, оптимизации

Уровень сложностиСложный
Время на прочтение5 мин
Количество просмотров3.8K

Меня зовут Андрей Кучеров, и я Lead Data Engineer. Часть моей работы включает обучение команды. Я люблю делиться своим опытом, потому что в работе с данными мелочей не бывает - часто кажущиеся незначительными детали могут кардинально влиять на производительность всего пайплайна. Многие недооценивают важность правильного выбора форматов данных и тонкой настройки процессов чтения, а потом удивляются, почему их Spark-джобы работают медленно и потребляют слишком много ресурсов. Читаем далее что бы разобраться в теме ->

Читать далее

SSDF — велосипед для ETL на SQL

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров407

Речь пойдет о моем пет‑проекте — SSDF (super SQL data flow)

Когда‑то я работал в одной компании, у нас было ХД на MSSQL и самописный велосипед для организации ETL/data flow; так и назывался — dataflow.

Выглядел он следующим образом (если описывать вкратце).
Пункт загрузки описывался как одна строка в таблице, основные поля — источник и назначение, например, источник — это view, назначение всегда таблица, ещё давайте упомянем поле горизонта загрузки. Dataflow генерировала и выполняла (для типа view) код удаления из назначения по горизонту и код вставки из вью. Были, конечно, и другие типы — процедура, скрипт, более сложные.

Таблица этих пунктов и являла собой поток данных, и, порядок прописывался жестко, так же был параллелизм (два и более под одним номером n выполняются одновременно).

Главное, что я из этого вынес — что так можно работать и работать вполне неплохо.

Читать далее

Sandbox DB: универсальная песочница для погружения в Big Data, аналитику и визуализацию

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров11K

Запускайте PostgreSQL, ClickHouse, Airflow, Superset и другие инструменты одним кликом: учите, экспериментируйте, осваивайте новое!

Читать далее

Self-Service ETL vs Power Query: чем отличаются загрузчики Visiology и Power BI

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.8K

Вопрос, чем заменить Power BI, стал актуален для многих пользователей одной из самых популярных BI-платформ. С точки зрения синтаксиса DAX и удобства работы с моделью данных наиболее очевидной альтернативой является Visiology. Но у этой платформы до недавнего времени не было своего ETL-инструментария. Недавно вендор представил свой Self-Service ETL, и у меня возник логичный профессиональный интерес к его тестированию. В этой статье я делюсь своими исследованиями возможностей SS ETL от Visiology по сравнению с Power Query.

Читать далее

Частые ловушки в экспериментах машинного обучения — рассказываем, что следует знать

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.9K

Привет, Хабр! Я Павел Куницын, главный специалист по анализу данных и машинному обучению в ПГК Диджитал. Мы занимаемся разработкой цифровых продуктов в сфере железнодорожных грузоперевозок: интерактивной карты вагонного парка, оптимизатора ремонтов и других решений. В большинстве из них мы применяем машинное обучение.

О том, как мы подходим к этому, я и мои коллеги рассказываем в нашем блоге на Хабре. Например, мы работаем с MLflow, который помогает анализировать результаты и вести учет экспериментов. Но несмотря на доступную автоматизацию, на этапе экспериментов могут возникать определённые сложности. Расскажу о наиболее частых проблемах.

Читать далее

LLM red teaming: полное руководство [+советы экспертов]

Время на прочтение12 мин
Количество просмотров1.3K

Давайте представим стратегию, зародившуюся в военной сфере, где команды притворяются врагами друг друга, чтобы проверить оборонительные механизмы. Этот подход, известный как red teaming, оказался чрезвычайно ценным и теперь нашёл новое применение. Сегодня, когда искусственный интеллект занимает всё больше места в нашей повседневной жизни, использование метода red teaming для тестирования этих систем становится необходимым. Red teaming для моделей-LLM помогает убедиться, что они не только эффективны в работе, но и безопасны и надежны.

Читать далее

Как мы покорили методы Big Data для данных любого размера

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.9K

Всем привет! Меня зовут Саттар Гюльмамедов и я работаю в команде ETL платформы DataOps в МТС. Марк Твен как-то написал «Слухи о моей смерти сильно преувеличены» — про Big Data сейчас можно сказать то же самое. Волна хайпа, которую многие пытались оседлать, прошла. Но, как и значительная часть инженерных достижений, работа с большими данными стала рутиной, помогающей развиваться другим направлениям в ИТ. 

В экосистеме МТС мы строим для Big Data отдельную платформу, где есть инструменты для хранения и оценки данных, анализа и построения отчетов. Но все начинается с их загрузки и обработки. Получение и преобразование данных — как раз задача библиотек и сервисов, которые делает моя команда. Многие знают мем о перекладывании JSON. А мы как раз делаем инструменты для тех случаев, когда такие задачи уже не столь тривиальны и нужно разобраться с разными типами данных, разными структурам, хранящимися к тому же в разных форматах, и все это нужно сделать в рамках одного процесса.

В этом материале я расскажу про наши решения и условия, лежащие в их основе. Одним наш опыт поможет спланировать эволюцию своих инструментов, другим снимет страх перед сложным стеком технологий Big Data, а третьи просто развлекутся. 

Дисклеймер:
чтобы не отклоняться от темы, я не буду подробно описывать концепции ETL и ELT (они хорошо разобраны тут, тут и тут). Наши инструменты следуют парадигме «E[TL]+», т. е. позволяют выполнять трансформации данных как в процессе переноса, так и в целевом хранилище.

Про нашу платформу в общих чертах писал мой коллега Дмитрий Бодин в своей публикации «Customer Happiness: как не только разработать, но и внедрить новый продукт внутри крупной компании». Я продолжу начатый им рассказ и добавлю подробностей о компоненте ETL, его составляющих и нашей команде.

Читать далее

Практика создания кастомных сборок Spark Kubernetes Executor

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров648

Поделюсь с коллегами практикой создания Docker-сборок на базе Spark разных версий, которые могут запускаться как Spark Kubernetes Executors для параллельного выполнения Spark-задач в кластере.

В нашем конкретном случае сборки включают Pyspark и Cassandra Connector, однако вы можете использовать этот материал как набор практических примеров, чтобы сконструировать собственные Docker-сборки для Spark на другом стеке или с другими приложениями.

В рамках поставленной задачи мне понадобилось подготовить, как минимум, пару Docker-сборок: одну для поддержки легаси кода и другую вполне современную для последующей миграции. Ниже я расскажу об этапах создания таких Docker-сборок, погружаясь в детали по ходу дела.

Читать далее

Как я победил в RAG Challenge: от нуля до SoTA за один конкурс

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров45K

Когда новичок пытается построить свою первую вопросно-ответную LLM систему, он быстро узнаёт, что базовый RAG - это для малышей и его нужно "прокачивать" модными техниками: Hybrid Search, Parent Document Retrieval, Reranking и десятки других непонятных терминов.
Глаза разбегаются, наступает паралич выбора, ладошки потеют.

А что, если попробовать их все?
Я решил потратить на подготовку к соревнованию 200+ часов и собственноручно проверить каждую из этих методик.
Получилось настолько удачно, что я выиграл конкурс во всех номинациях.

Теперь рассказываю, какие техники оказались полезными, а какие нет, и как повторить мой результат.

Читать далее

Управление качеством данных

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров895

Итак, у нас есть данные, и есть требования к ним. От кого? От тех, кто будет ими пользоваться. Если те, кто ставит задачу говорят что "данные плохие" и не могут сформулировать критерии к качеству данных, им можно их подсказать, подсмотрев в предыдущей статье. Таким образом, управление качеством данных - это, в первую очередь, методология, которая обеспечивает некий уровень качества в отношении выбранных данных.

Управление качеством данных - это постоянный процесс. Да, для начала неплохо разобраться с уже имеющимися данными, но наша задача сделать так, чтобы все новые данные, попадающие в систему, проверялись, валидировались, насыщались и, в итоге, соответствовали предъявляемым к ним требованиям. Управление качеством, кстати, является важной частью управления Нормативно-Справочной информацией, MDM (Master Data Management).

Как же сделать так, чтобы данные попадали в системы уже "чистыми"? Думаю, что самый оптимальный способ - это правильно настроить поля ввода, не допуская ввод заведомо некорректный значений, а также предлагать автозаполнение по возможности: например, выбор адреса доставки предлагать из КЛАДР, а данные о компании автоматически заполнять используя специальные сервисы. Таким образом, и людям надо будет вводить меньше информации, и вероятность ошибки будет гораздо меньше.

Читать далее

Качество данных простым языком

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров1.2K

При подготовке статьи что главное? Источники! А что может быть источником надежнее, чем стандарты ISO? Давайте посмотрим, есть ли стандарты "качества данных"? Есть! ISO/TS 8000 и даже соответствующий ГОСТ 56214. Что ж, читаем определения:

3.1.3 качество (quality): Степень соответствия совокупности присущих характеристик объекта требованиям (3.1.2).

Примечания: 1 Термин "качество" может применяться с прилагательными, такими как "плохое", "хорошее" или "превосходное".

Так. Хватит ГОСТов на сегодня. Итак, есть данные, у них есть качество - характеристика, показывающая степень пригодности данных к использованию, и которое может быть "плохим", "хорошим" или "превосходным". На самом деле, есть 7 основных качественных характеристики: точность, полнота, непротиворечивость, достоверность, своевременность, уникальность и доступность.

Читать далее

Ближайшие события

Как обсчитать когортный анализ в 9 шагов

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.1K

В статье описан алгоритм обсчета когортного анализа по датасету транзакций платежей пользователей с реализацией на Python.

Читать далее

Дедупликация объявлений: как мы боремся с одинаковыми размещениями

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров2.9K

Привет! Меня зовут Кирилл Сергеев, я ML-инженер в Циане. В этой статье я расскажу, как мы решили задачу дедупликации объявлений о недвижимости, разработав систему на основе трёх моделей. Эта система автоматически находит и объединяет дублирующиеся объявления, помогая пользователям видеть только актуальную и уникальную информацию.

Материал будет полезен ML-инженерам и специалистам по обработке данных, которым интересно, как мы подошли к решению этой задачи: какие методы использовали, какие проблемы возникли и как мы их преодолели.

Читать далее

Бизнес-глоссарий и Каталог Данных

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров1.1K

Что такое «Каталог Данных»? Это список «чистых» и готовых к использованию данных, которые можно использовать для интеграции или формирования витрин данных – Datamart для построения отчетности или дашбордов, или для предоставления аналитикам и бизнес-пользователям («Гражданским Аналитикам») для самостоятельно (Self-Service) аналитики, когда они смогут самостоятельно построить необходимую им отчетность, не прибегая к помощи специалистов по управлению данными или, тем более, ИТ-отдела, для которого управление данными и разработка отчетности явно не является приоритетной задачей.

Каталогизация данных, в свою очередь предполагает наличие программного продукта для хранения списка каталогизированных данных и их описания (метаданных) — «Каталога Данных».

Но дело в то, что еще до формирования каталога данных и проектов по очистке данных должны быть другие проекты: в первую очередь я говорю про бизнес-глоссарий, в котором бизнес расписывается кровью, что означает тот или иной показатель.

Читать далее

Что подразумевают под Data Governance?

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров3.2K

Если говорить про Data Governance, то это, в первую очередь, не продукты, а огромная методология управления жизненным циклом данных, и только потом – технологии. Близко к идеалу считается методология DAMA-DMBOK, и у любого специалиста по данным это должна быть настольная книга. К сожалению, в подавляющем большинстве случаев, когда люди начинают задумываться про управление данных, она попросту неприменима, так как она показывает «правильное» управление данными больших предприятий, до неё еще надо «дорасти», при этом точечно применяя сначала простые приемы, с возможностью расширения методик управления данными как «вширь», на другие отделы, так в «вглубь» на все процессы, связанные с управлением данными (Data Management): получением («добычей»), обработкой, хранением, извлечением и использованием информации. Без подобного управления жизненным циклом данных получим картину как в последнем исследовании Makves, что 40% данных никогда не используется: к ним не зафиксировано ни одного обращения за 5 лет.
Найти «Ценность в данных» становится искусством, так как на предприятии растут «Кладбища данных» вместо «Хранилищ данных».

Сейчас зачастую под Data Governance имеют в виду две части, это Data Quality – управление качеством данных, и Data Linage – «понять, откуда пришли данные, как они изменялись и можно ли им доверять». Если данные методологии использовать «в лоб», то это очень сильно замедлит разработку и перегрузит команду по управлению данными.

Читать далее

Задача про n-ое число Фибоначчи

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров1.7K

Суть моего труда заключается в том, чтобы определить функцию для нахождения n-ого числа Фибоначчи с линейной сложностью поиска. Вот какие методы я попробовал:

Возможно получится по простым данным постоить полином большой степени, используя метод неопределённых коэффициентов и использовать его для подсчёта последующих значений последовательности.

Читать далее

Три необсуждаемых вопроса о микросервисах и параллельной распределённой обработке данных — чтобы жить стало легче

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров2.8K

Воркшоп для тех, кто впервые сталкивается с распределёнными системами.

В этой статье на примере решения несложного архитектурного кейса я покажу, что ответов только на 3 вопроса при проектировании систем распределённой параллельной обработки данных будет достаточно для обеспечения жёстких нефункциональных требований.

Читать далее

Повышение эффективности аналитических баз данных: кейс «Комус» и Arenadata

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров1.5K

Хабр, привет! Современные высоконагруженные системы требуют точной настройки и регулярного мониторинга, чтобы обеспечить стабильную производительность в условиях постоянно растущих объёмов данных. Когда речь идёт о крупной аналитической базе данных, развёрнутой в облачной среде, оптимизация её работы становится критически важной задачей. В прошлой статье мы уже рассказывали о типичных ошибках при работе с Arenadata DB (ADB), о том, как их избежать и значительно повысить производительность кластера. Сегодня же поделимся реальным опытом на примере компании «Комус» — лидера в области B2B-ритейла, которая обратилась к Arenadata за проведением комплексного аудита своего кластера ADB.

В этой статье мы детально разобрали, как с помощью анализа и оптимизации удалось выявить точки роста, подготовить кластер к текущим и будущим нагрузкам и предложить план улучшений. Мы рассмотрим технические детали аудита, проблемы, с которыми пришлось столкнуться, и эффективные практики, позволившие повысить производительность аналитической базы данных.

Что там с нагрузкой на кластер?