Решение: использование
DATEDIFF
DATEDIFF: эта функция вычисляет разницу между двумя датами. Она используется для того, чтобы обеспечить сравнение именно «сегодняшних» и «вчерашних» температур.Если сформулировать обычным языком следующий запрос, то окажется, что он выражает следующую идею: нужно выбрать такие идентификаторы, чтобы температура, соответствующая представляемым ими датам, была бы больше, чем температура на «вчерашние» по отношению к ним даты.
SELECT DISTINCT a.Id
FROM Weather a, Weather b
WHERE a.Temperature > b.Temperature
AND DATEDIFF(a.Recorddate, b.Recorddate) = 1
Всё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Train/test split — кажется самой простой частью ML.
Но именно здесь чаще всего ломают всю модель.
И самое опасное — ты можешь даже не заметить
Data Leakage — тихий убийца моделей
Ты случайно «подсматриваешь» в тест.
Примеры:
👉 нормализация на всём датасете до split
👉 target encoding на всех данных
👉 feature, напрямую связанная с таргетом
Модель показывает космический скор,
а в проде — провал.
Случайный split там, где нельзя
Ты делаешь random split…
но данные зависимы.
Примеры:
👉 временные ряды
👉 пользователи (один и тот же user в train и test)
👉 сессии
Модель узнаёт данные, а не обобщает.
Игнорирование времени
В задачах с временем:
👉 ❌ случайный split
👉 ✅ train = прошлое, test = будущее
Иначе ты:
👉 обучаешься на будущем
👉 предсказываешь прошлое
Это не ML. Это читерство.
4️⃣ Дисбаланс классов в split
Ты сделал split и получил:
👉 train: 5% positive
👉 test: 1% positive
Метрики начинают врать.
Решение:
👉 stratified split
Слишком маленький test
Test = 50 объектов
Accuracy = 90%
Звучит круто.
Но это статистический шум.
Маленький test = ненадёжная оценка.
Тест используется как валидация
Классическая ошибка:
👉 обучился
👉 посмотрел на test
👉 подкрутил модель
👉 снова посмотрел
Это уже не test. Это validation 2.0.
Дубликаты в train и test
Если один и тот же объект попал в обе выборки:
Модель просто запоминает.
Особенно критично:
👉 CV
👉 e-commerce
👉 табличные данные с ID
Неправильный split в CV
Cross-validation тоже можно сломать:
👉 leakage между фолдами
👉 группы не учитываются
👉 time-series перемешаны
Используй:
👉 GroupKFold
👉 TimeSeriesSplit
Главный инсайт
Train/test split — это не про «разделить данные».
Это про симуляцию реального мира.
Если split не отражает прод —
все метрики бесполезны.
В одном предложении
Плохой split может сделать плохую модель «идеальной» —
до момента, когда она выйдет в прод.
Всё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Для корпораций это фактически бесплатно, а датасет выходит уникальным — таких данных нет в интернете и их невозможно сгенерировать синтетически.
Так что да, люди сами помогают создавать себе замену.
Всё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Вот где большинство агент-фреймворков ошибаются:
Память хранится в одном месте.
Ресурсы — в другом.
Навыки разбросаны по системе.
Когда агенту нужен контекст, обычно делают плоский векторный поиск и просто надеются на лучший результат.
Именно это и проблема. OpenViking решает её одной идеей:
рассматривать контекст агента как файловую систему.
Всё работает через единый протокол:
viking://Память, ресурсы и навыки организованы как директории с уникальными URI.
Агент может ls, find и навигировать по контексту, как разработчик в терминале.
Главный прорыв — многоуровневая загрузка контекста:
- L0 — одно предложение для быстрого поиска
- L1 — обзор ~2000 токенов для принятия решений
- L2 — полные детали, загружаются только когда действительно нужны
Большинство агентов просто загружает всё в контекст и надеется на лучшее.
OpenViking загружает только нужные данные и только в нужный момент.
Результат:
- меньше расходов на токены
- выше точность
- быстрее работа агентов
Retrieval теперь тоже работает логичнее.
Вместо одного плоского семантического поиска:
1. сначала происходит позиционирование на уровне директорий
2. затем рекурсивный поиск внутри наиболее релевантных директорий
Можно буквально видеть траекторию поиска — это больше не чёрный ящик.
Есть и механизм самоэволюции агента.
В конце каждой сессии система автоматически:
- извлекает новые знания
- обновляет память агента
- обновляет память пользователя
То есть агент становится умнее с каждым использованием.
Проект уже имеет:
- 9K звёзд на GitHub
- 13 контрибьюторов
Разработан командой ByteDance Viking, которая строит инфраструктуру векторного поиска с 2019 года.
Проект полностью open-source под лицензией Apache 2.0.
Всё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
gstack превращает Claude Code в команду специалистов, доступных по запросу. Он предлагает восемь навыков для управления рабочими процессами, включая планирование, ревью кода и автоматизацию браузера, все через удобные команды.
Основные моменты:
Всё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Актриса выложила на GitHub опенсорс-инструмент MemPalace для работы с памятью ИИ-агентов. Делала его вместе с другом.
Фишка в том, что все данные хранятся локально, а система сама решает, какие факты о пользователе подтягивать под конкретный запрос. По бенчмарку LongMemEval инструмент уже обгоняет и платные, и бесплатные решения.
За сутки репозиторий набрал 2k+ звёзд.
Похоже, границы между индустриями окончательно стерлись 💀
Всё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Всё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Instant Grep ищет по миллионам файлов за миллисекунды
16.8 сек → 13 мс
И главное:
они не ускоряли regex
они убрали лишний поиск
Как это работает
- создаётся индекс: куски текста → файлы
- используются триграммы (fil, ile, le_)
- сначала ищутся кандидаты
- потом запускается regex
большинство файлов вообще не открывается
- индексируются не все куски
- только самые «полезные»
- редкие символы имеют больший вес
Всё локально
- индекс хранится у тебя
- привязан к Git
- быстрый доступ через memory map
Скорость даёт не regex
а умный отбор файлов до поиска.
https://x.com/cursor_ai/status/2036122609931165985
Всё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
- 47 000 действий для агентов в 250+ приложениях
- Подключения к Slack, GitHub, Gmail, Stripe, Discord, Google Sheets и другим сервисам
- Все действия проверены, агент больше не «галлюцинирует» API
- Разворачивается одной CLI-командой: подключил один раз — используешь везде
Это тот самый слой интеграций, которого агентам давно не хватало.
https://github.com/withoneai/cli
Всё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Да, без Excel и без GUI.
Sheets - это инструмент, который позволяет читать и редактировать CSV прямо в терминале через TUI или CLI.
Что внутри:
Работает на Windows, macOS и Linux.
Идеально, если ты живёшь в терминале и не хочешь дергаться между окнами.
Excel начинает нервничать.
https://github.com/maaslalani/sheets
Всё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Модель от OpenBMB, которая умеет:
Главный плюс - всё это в одной модели, без костылей из ASR + TTS
https://huggingface.co/openbmb/VoxCPM2
Всё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Возможно, кто-то из прочитавших заголовок скажет — зачем возиться с WAL, если есть более простые способы.
NOTIFY, например.Да, действительно, и, если вам нужно мониторить изменения в небольшой, не слишком часто обновляющейся таблице, то это отличный вариант. Но дело в том, что все уведомления
NOTIFY падают в одну очередь, и если таких уведомлений много, то они затормозят работу всей БД.Кроме того, их размер ограничен 8000 байтов, чего может быть недостаточно. А еще, если сервис-получатель был по какой-то причине не доступен и сообщение не дошло, повторное через NOTIFY не отправляется — то есть данные просто потеряются.
В общем, не идеальный вариант.
Спойлер: этот вариант тоже не идеальный. Как минимум, придется повозиться:
wal_level на logical со стандартного replica — так он начнет делать более подробные записи о том, как и что конкретно изменилось в базе. publications (то есть, расписать, какие таблицы и действия вы хотите отслеживать) и репликационный слот (то есть отдельную копию WAL, которая гарантирует, что никакие важные данные из лога не удалятся, пока уведомление не будет отправлено).Всё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Этим вопросом задалась команда J'son & Partners Consulting, которая сравнила подходы к подготовке ИИ-специалистов в России, США и Китае. Во всех трех странах ключевой вызов один — образование не успевает за темпами развития технологий, поэтому важно его адаптировать.
Какие меры предпринимают:
Всё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Очень часто DISTINCT добавляют просто чтобы убрать дубли после неудачного join. Запрос вроде работает, но по факту ты сначала раздуваешь результат, а потом заставляешь базу его чистить. На больших таблицах это легко убивает производительность.
Плохой вариант:
SELECT DISTINCT u.id, u.name
FROM users u
JOIN orders o ON o.user_id = u.id;
Лучше так:
SELECT u.id, u.name
FROM users u
WHERE EXISTS (
SELECT 1
FROM orders o
WHERE o.user_id = u.id
);
Почему это сильный приём:
EXISTS останавливается, как только находит первое совпадение
не нужно тащить лишние строки
не нужно потом убирать дубли
логика запроса становится честной - ты проверяешь наличие, а не собираешь мусор
Это один из самых частых hidden performance fixes в SQL. Если видишь DISTINCT, сразу спрашивай себя: он тут реально нужен или просто маскирует плохую логику JOIN.
Всё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Amazon, Google, Microsoft и другие технокомпании вкладывают в ИИ огромные деньги: они выпускают все новые продукты на его основе и активно — иногда слишком — продвигают их среди клиентов и даже собственных сотрудников. Учитывая их рвение, может показаться, что это приносит им большие доходы, но, кажется, это не так. По крайней мере пока.
В плюсе пока только Nvidia, которая с 2023 заработала на ИИ-чипах 253 миллиардов. Никто больше к таким результатам даже не приблизился, и в основном все в глубоком минусе.
Выглядит не очень, но стоит учитывать три фактора:
В любом случае, выглядят данные любопытно и доля правды в них точно есть. Отсюда вопрос: как думаете, когда ИИ начнет окупаться?
Всё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Интересная статья про паттерны, по которым можно выявить случаи мошенничества и подозрительной активности на банковских счетах с помощью простого
Большинство признаков, на которые надо обращать внимание, известны или интуитивно понятны, но автор еще и сами SQL-запросы показывает, и это уже может пригодиться.
Чтобы выявлять все эти сигналы было проще, автор предлагает заранее материализовать их с помощью оконных функций:
SELECT
cardholder_id,
timestamp,
amount,
merchant_id,
timestamp - LAG(timestamp) OVER w AS time_since_last,
CASE WHEN merchant_id <> LAG(merchant_id) OVER w
THEN 'changed' ELSE 'same' END AS merchant_change,
sum(amount) OVER (
PARTITION BY cardholder_id
ORDER BY timestamp
RANGE BETWEEN INTERVAL '24 hours' PRECEDING AND CURRENT ROW
) AS running_24h_total,
ROW_NUMBER() OVER (
PARTITION BY cardholder_id, date(timestamp)
ORDER BY timestamp
) AS tx_of_day
FROM transactions
WINDOW w AS (PARTITION BY cardholder_id ORDER BY timestamp)
ORDER BY cardholder_id, timestamp;
И после этого уже прогонять проверки с помощью WHERE:
SELECT *
FROM tx_with_windows
WHERE tx_of_day >= 5
AND time_since_last < INTERVAL '60 seconds'
AND merchant_change = 'changed';
Главное — не переусердствовать и помнить, что каждый сигнал по отдельности, как правило, ничего не доказывает: и обычному человеку может понадобиться снять деньги с карты несколько раз подряд или сбегать в магазин посреди ночи. Чтобы отсеять честных пользователей от мошенников, нужно смотреть на несколько параметров в совокупности.
Всё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Это гибрид: Graph + Vector + Temporal MVCC в одном ядре
заточен под AI-агентов и knowledge systems
Что внутри:
Из хорошего, это не Frankenstein из разных сервисов, а единая система.
Под капотом:
То есть ты можешь:
Фактически это попытка сделать “память для AI”:
где есть связи, смысл и история изменений, а не просто таблицы.
Если делаешь RAG, multi-agent системы или сложные knowledge graph - будет полезно.
Всё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Нейросеть разбирает изображение на смысловые блоки, после чего любой фрагмент можно переписать, не трогая остальное.
Модель уверенно справляется с таблицами, формулами и диаграммами, сохраняет исходные цвета, шрифты и позиции элементов. Готовый результат экспортируется в DrawIO, SVG или PowerPoint.
Проект полностью открытый, ставится локально с GitHub.
Забираем, пока не закрыли:
Всё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Большинство думает, что проблема в LLM или плохом промпте. На практике всё проще. Модель не видит правильные связи между таблицами.
Пример. Запрос вроде “какие издатели получили выплаты выше 5000”. Векторный поиск подтянет publisher и royalty_ledger. Всё логично. Но пропустит vendor_agreement, ту самую таблицу, которая их связывает.
В итоге SQL выглядит валидно. Но возвращает ноль строк.
Это системная проблема всех решений на embeddings. Они ищут по смыслу, но не понимают структуру базы.
Нормальный подход другой. Схему нужно рассматривать как граф.
Таблицы это узлы. Foreign keys это связи. Запрос решается не поиском похожих слов, а обходом графа и поиском join-пути.
Именно так работает QueryWeaver.
Он строит граф базы и при запросе сам находит весь путь, включая промежуточные таблицы. Даже если это цепочка из нескольких шагов.
На практике это выглядит так. В тесте с базой на 60 таблиц он разобрал 5-шаговый запрос через цепочку superpower → capability_matrix → stakeholder_registry → resource_requisition → budget_allocation.
Векторный поиск увидел только начало и конец. Всё между ними потерял, потому что “stakeholder” никак не связан по смыслу с “superpower”.
Графу на это всё равно. Он просто находит единственный путь между сущностями.
И это меняет всё.
Open-source, можно развернуть у себя и наконец получить text-to-SQL, который реально работает.
сё про Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM