Обновить
63.21

Data Engineering *

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

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

Как я заменил BI-дашборд на AI-чат: архитектура RAG-системы для 600K записей

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели2.2K

После 10 лет внедрения BI-систем (Qlik Sense, Power BI, Data Lens) я понял одну вещь: дашборд — это не решение. Это данные для решения. А между данными и решением — пропасть, которую преодолевает человек.

В этой статье покажу, как построил RAG-систему с чат-интерфейсом для базы из 600 000 записей техники из Федресурса. Без философии — только архитектура, код и грабли.

Читать далее

Новости

Очередь задач на Postgres: SKIP LOCKED + lease/heartbeat + backpressure (практический опыт)

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели4.9K

Как сделать надёжную очередь задач без Rabbit/Kafka, используя только Postgres? Разбираю боевой паттерн: FOR UPDATE SKIP LOCKED для конкурентного забора, lease/heartbeat для возврата задач после падений и backpressure, чтобы воркеры не съели память.

Читать далее

Типология мышления в аналитической культуре больших языковых моделей (Часть_1)

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

Миронов В.О., Кальченко С.Н.

Добрый день, уважаемые хаброгорожане;‑) Крайние тренды по части тестирования современных больших языковых моделей выходят на невиданные высоты и ставится цель: пересматривать не только всю систему анализа моделей, но и саму структуру эволюции нашего подхода к пониманию больших языковых моделей в самом широком контексте. Здесь мы всё больше «скатываемся» к математическому описанию объекта промпта и его понятия. По большому счету, наибольшее понимание, а именно, формирование идей в машинном представлении, основано на геометрическом понимании «форм» слов, а не алгебраическом, в виде векторов, эмбеддингов и матриц, хотя это тоже очень важно на базовом уровне. Отличный пример такого подхода изложен в этой статье, где как раз и показано, что важно, топологическое представление пространства слов и их смыслов, так как оно максимально гибко и позволяет работать с двумя главными понятиями для словоформ: значение и время, в течение которого это значение сохраняется для текущего контекста.

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

Читать далее

Взгляд разметчика данных

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

Дисклеймер: ниже будет описан личный опыт и точка зрения человека-исполнителя. Устройство всей процедуры разметки в статье не раскрывается. Все совпадения сущностей случайны. Названия компаний не упоминаются в целях соблюдения NDA. В статье не будут подниматься вопросы оплаты труда и разбираются только основные рабочие моменты.

 Всем добрый день!

Одно время я работал разметчиком данных на разные компании и довольно долго, примерно 5 лет. Так как компании были разные, то и размечать приходилось разное: сайты, картинки, звуки. Только с видео не довелось поработать. С одной стороны, эта работа довольно рутинная и однообразная. С другой стороны - нет. Потому что на разметку попадались разные документы с разной целью. Однако целью данной статьи не документы, а общие закономерности и подводные камни на этом нудном пути с точки зрения непосредственного исполнителя.

Разметка данных используется для обучения различных алгоритмов, чаще всего на основе нейросетей. Она применяется разных отраслях, включая такие сложные, как медицина. Без разметки невозможно обучение моделей, так как нет явной целевой переменной и от качества разметки напрямую зависит качество модели. Я имею опыт работы Data Scientist-ом и даже диплом получил, поэтому понимаю, насколько важна разметка. Более того, сейчас, работая с медицинскими датасетами, я всё чаще задумываюсь: а насколько вообще можно доверять той или иной разметке, даже если её ставит врач?

Итак, приступим к теме нашего разговора.

Читать далее

Как обрабатывать 5 млн изменяющихся форм в минуту с SLI 99.99%

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели8.9K

Всем привет! Меня зовут Кирилл Грищук, я Tech Lead в команде Инфомодели в Авито. Мы занимаемся тем, что обрабатываем формы от пользователей: от 5 млн до 15 млн форм в минуту, а это более 150 тысяч в секунду. 

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

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

Читать далее

Как JOIN изменил наш подход к инфраструктуре данных в NAVER

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели5.8K

После миграции с ClickHouse на StarRocks NAVER существенно оптимизировала обработку многотабличных JOIN. StarRocks повысил производительность запросов, обеспечил бесшовное масштабирование и позволил построить единый слой запросов, совместимый с множеством источников данных. Эти улучшения позволили предоставлять инсайты в реальном времени и поддерживать принятие решений на основе данных во всей экосистеме NAVER.

Читать далее

Парсинг тарифов интернета и ТВ: Архитектура БД и бэкенд на SQL

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели7.2K

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

Я решил объединить свой опыт в телекоме с навыками в программировании. Так появилась идея по парсенгу тарифов. Цель — создать инструмент, который автоматически мониторит провайдеров, избавляя пользователей от ручного сравнения и помогая им находить оптимальные условия по тарифу.

Сейчас я работаю аналитиком БД, параллельно изучаю архитектуру, построение данных. Решил начать проект с проектирования структуру на PostgreSQL по схеме "Звезда". Таблицей фактов у меня будет таблица со связью города с провайдером, таблицы измерений – таблица с информацией о тарифах, городами и провайдерами.

Читать далее

Инструмент перехвата медленных запросов StarRocks

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели5.8K

Практическое руководство по построению сервиса перехвата медленных запросов в StarRocks: правила kill и пороги (full table scan, scan rows/bytes), анализ execution plan, интеграции с Grafana и Feishu, SQL-схемы и YAML-конфигурация для продакшена.

Читать далее

От парных котировок к абсолютным курсам — как мы построили фундамент веб-интерфейса AbsCur3 с 287 валютными парами

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

Попробуйте найти исторические курсы для пар вроде «доллар к афгани» или «евро к таджикскому сомони». Данные либо платные, либо их просто нет в виде готового датасета. Мы решили эту проблему в рамках своего проекта, хотя единственный подходящий API диктовал суровые условия: 8 запросов в минуту и 5000 дней за раз.

Получилось! Наш Python-скрипт аккуратно, чанк за чанком, собрал историю всех 287 пар за 4.5 часа, ни разу не превысив лимит. В статье делюсь техническими деталями, как выстроить такую загрузку, и уроками, которые мы извлекли.

Читать далее

Построение иерархии классов для множества объектов информационной модели

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

Привет, Хабр!

ИТ-проекты – это далеко не только создание новых систем с нуля. Существенная часть специалистов занята поддержкой и сопровождением действующих систем. А когда в состав ИТ-системы добавляется новое ПО (или заменяется какой-то из её компонентов), актуальной задачей является перенос архивных данных и настройка взаимодействия нового софта с окружающим ландшафтом. При этом задачей-максимум является добавление новых свойств для системы, улучшающих пользовательский опыт или процессы администрирования и сопровождения. Ниже я расскажу, как мы провели классификацию объектов информационной модели при интеграции действующей системы расчета производственных показателей с внешней, вновь создаваемой системой управления НСИ.

Читать далее

Достижение целей с технической точки зрения

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

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

Таким образом, если задать текущее состояние строкой Sтек и желаемое состояние строкой Sцель, то достижение цели можно назвать: работу по переводу ситуации в строке Sтек в строку Sцель.

Читать далее

Ivory v1.4.0

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

Ivory теперь поддерживает LDAP и OIDC/SSO наряду с базовой аутентификацией, что значительно упрощает интеграцию с существующей инфраструктурой идентификации. Для каждого провайдера предусмотрены возможности тестирования подключения, а пользователям можно настроить несколько вариантов входа.

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

Читать далее

Директор спрашивает «почему маржа упала» — как ответить цифрами

Время на прочтение6 мин
Охват и читатели8.3K

Привет, аналитики!

Публикую 30 декабря — когда все нормальные люди режут оливье. Но если вы это читаете, значит, тоже из тех, кто 2 января откроет ноутбук проверить дашборды. Для нас и пишу.

В прошлой статье разбирали, какие метрики выбирать для ритейла. Допустим, вы собрали нужные KPI, построили дашборды - а директор спрашивает: «Маржа выросла на 3 млн. За счёт чего?»

Показать рост - просто. Объяснить причину - сложнее. Выросла выручка, но упала маржинальность. Увеличился трафик, но просела конверсия. Как это влияет на итог в рублях?

Расскажу про дашборд факторного анализа продаж. Он показывает не «было — стало», а раскладывает изменение маржи по каждому фактору: от трафика до среднего чека.

Сегодня рассмотрим:

Читать далее

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

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

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели7.1K

Часто дизайнеры и разработчики живут в разных вселенных. Одни думают о пикселях и user flows, другие — о latency & database queries. Но именно на стыке этих дисциплин рождаются самые эффективные и надёжные продукты. Давайте посмотрим, как ваши дизайн-решения могут стать первым и самым важным рубежом обороны для бэкенда.

Смотреть принципы →

От онтологии оливье к онтологии Деда Мороза

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели5.4K

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

В статье — новогодняя сказка про холодильник-портал, онтология оливье, OntoAI в роли верного Ланселота и честный разбор того, как из живой модели получается объяснимый план покупок. Без магии, но с причинно-следственными связями.

Читать далее

RAG — это не память. Разбираем архитектуру персистентных AI-агентов

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели6.6K

Почему векторной базы/RAG недостаточно для качественной памяти ИИ-агентов. Приближаем поведение агента к человеческому с помощью архитектурных решений поверх LLM

Читать далее

Trino в Авито два года спустя: от движка к полноценной экосистеме

Время на прочтение10 мин
Охват и читатели11K

Всем привет! Меня зовут Дмитрий Рейман, я техлид аналитической платформы Avito. Уже третий год мы занимаемся миграцией с Vertica на Trino. Изначально казалось, что это будет просто: перенесём запросы, перепишем коннекторы, чуть подправим пайплайны.

Но за два с лишним года миграция перестала быть просто миграцией: проект разросся в инженерную одиссею, и вокруг Trino мы начали строить целую экосистему. Как это было — рассказываю под катом.

Читать далее

Когда один Excel-файл убивает 100-миллионный бизнес

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

Чем хорош малый бизнес, особенно на своем старте? Ему не нужны сложные инструменты: он в состоянии увидеть состояние дел расчетами «на коленке», а план действий уместить карандашом на трамвайном билетике.

А когда бизнес подрастает? Скажем, его месячная выручка становится 100М+, количество сотрудников исчисляется сотнями, а бизнес-процессы усложняются настолько, что перестают быть прозрачными, покрываются «туманом войны».

Эта история про то, как инструмент, понравившийся команде на старте бизнеса, довел её до убытков в десятки миллионов при росте оборотов, когда компания стала крупнее. И как прозрачность вернула контроль и разблокировала рост выручки на 50%.

Читать далее

Как создать переводчик для низкоресурсного языка: практическое руководство

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели9.9K

Привет, Хабр! В продолжение моей предыдущей статьи о локальном переводчике на кабардинском языке хочу поделиться практическим опытом обучения моделей машинного перевода для низкоресурсных языков. Расскажу о том, с какими проблемами я столкнулся, как их решал, и покажу конкретный код, который помог улучшить качество перевода с BLEU 8 до 28 пунктов.

Читать далее

Есть ли жизнь после Vertica или миграция DWH в Lakehouse

Время на прочтение17 мин
Охват и читатели10K

Всем привет! Меня зовут Дмитрий Рейман, я техлид аналитической платформы Авито. Мы строим систему общего назначения, которая одновременно обслуживает ETL, витрины, BI, ad-hoc аналитику и продуктовые платформы.

И в какой-то момент мы столкнулись с неприятным эффектом: объём данных начал расти заметно быстрее, чем органический рост, на который мы ориентировались раньше. Модель классического on-prem DWH перестала масштабироваться линейно: борьба за ресурсы мешала давать гарантии готовности данных; локальные оптимизации давали всё меньший эффект; любой рост требовал масштабирования “по месту” и приводил к длительным простоям аналитики.

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

Читать далее
1
23 ...