36043
По всем вопросам- @workakkk @itchannels_telegram - 🔥лучшие ит-каналы @ai_machinelearning_big_data - Machine learning @pythonl - Python @pythonlbooks- python книги📚 @datascienceiot - ml книги📚 РКН: https://vk.cc/cIi9vo
Как SQLite выжимает скорость: байткод, VM и goto
Некрасивый код, который делает SQLite быстрым
⚡️ SQL-приём: `GROUPING SETS` может заменить несколько тяжёлых `GROUP BY` + `UNION ALL`.
Допустим, нужно одновременно получить статистику:
- по стране и городу;
- только по стране;
- общий итог.
Часто пишут так:
SELECT country, city, SUM(revenue)
FROM sales
GROUP BY country, city
UNION ALL
SELECT country, NULL, SUM(revenue)
FROM sales
GROUP BY country
UNION ALL
SELECT NULL, NULL, SUM(revenue)
FROM sales;
SELECT
country,
city,
SUM(revenue) AS revenue
FROM sales
GROUP BY GROUPING SETS (
(country, city),
(country),
()
);
GROUPING(country)
GROUPING(city)
ROLLUP(...)
CUBE(...)
💡 SQL-трюк: сравнивайте `NULL` без костылей
В PostgreSQL обычное сравнение может неожиданно сломать условие:
SELECT NULL = NULL;
NULL
NULL означает «неизвестное значение», а не конкретное значение.
WHERE a = b
OR (a IS NULL AND b IS NULL)
a IS NOT DISTINCT FROM b
SELECT NULL IS NOT DISTINCT FROM NULL; -- true
SELECT 10 IS NOT DISTINCT FROM 10; -- true
SELECT 10 IS NOT DISTINCT FROM NULL; -- false
a IS DISTINCT FROM b
SELECT *
FROM old_data o
JOIN new_data n USING (id)
WHERE o.email IS DISTINCT FROM n.email;
email = NULL, строка не считается изменённой.
o.email <> n.email
NULL и пропустить изменение.
SQL-совет: `LATERAL` вместо тяжёлого оконного запроса
Нужно получить последнюю операцию каждого пользователя? В PostgreSQL можно не ранжировать всю таблицу через ROW_NUMBER().
SELECT
u.id,
last_order.id,
last_order.created_at
FROM users AS u
LEFT JOIN LATERAL (
SELECT id, created_at
FROM orders
WHERE user_id = u.id
ORDER BY created_at DESC
LIMIT 1
) AS last_order ON true;
LATERAL запускает подзапрос отдельно для каждой строки слева и разрешает обращаться к u.id.
CREATE INDEX ON orders (user_id, created_at DESC);
N записей для каждой группы.
🤯 OPUS 5 ЗА 10 МИНУТ УДАЛИЛ ВСЮ БАЗУ ДАННЫХ, А ПОТОМ ВЕЖЛИВО ПРИЗНАЛ ОШИБКУ
Пользователь Reddit решил протестировать Claude Code. После одного запроса агент уничтожил базу проекта и сообщил: «Это моя вина, и я должен немедленно вам об этом сказать».
Позже Gemini 3.6 помог восстановить 96 страниц, ещё 21 пришлось пересоздавать. Автор уточнил, что это был тестовый проект с небольшим числом пользователей, поэтому последствия оказались не критичными.
Самое показательное: модель получила режим Always Allow, доступ к данным и возможность выполнять разрушительные команды без подтверждения.
Историяпро разработчика, который дал автономному агенту права администратора без нормальных бэкапов и ограничений.
ИИ-агенту в проде нужны минимальные права, отдельное окружение, снапшоты и ручное подтверждение любых DROP, DELETE и миграций.
Иначе вайб-кодинг быстро превращается в вайб-восстановление базы.
https://www.reddit.com/r/Anthropic/comments/1v9iurd/and_just_like_that_opus_5_ultracode_wipes_the/?solution=44899d8f83b98cbf44899d8f83b98cbf&js_challenge=1&token=7afd7253fec22262ff1c52b1703fe9ec98100ded527c5fb6747eed7511fb37a6&jsc_orig_r=
SQLite установлен практически везде. Но отправить туда обычный pull request у вас не получится.
SQLite работает на каждом iPhone и Android, в Chrome, Firefox, Safari, Windows, телевизорах, автомобилях и миллиардах других устройств. По оценке самого проекта, сейчас активно используется больше триллиона SQLite-баз.
И при этом SQLite принципиально остаётся проектом с очень маленькой командой разработчиков.
На официальном сайте это сформулировано прямо:
Open source, but not open-contribution.
Проект не принимает случайные pull request'ы и патчи из интернета. Чтобы код вообще мог попасть в SQLite, автор должен юридически передать свой вклад в public domain. Для этого существует отдельный подписываемый документ.
Причина не в высокомерии разработчиков. Так они защищают одну из главных особенностей SQLite: весь основной код должен оставаться свободным от чужих copyright-претензий.
Получился довольно редкий парадокс:
одна из самых распространённых технологий на планете стала настолько успешной не благодаря тысячам контрибьюторов, а благодаря жёсткому контролю над тем, кто вообще может менять её код.
И эта модель работает уже больше 25 лет.
SQL-совет: сравнивайте `NULL` через `IS NOT DISTINCT FROM`
Обычное сравнение ломается на NULL:
SELECT NULL = NULL;
-- NULL
WHERE old_value = new_value
NULL равными.
WHERE old_value IS NOT DISTINCT FROM new_value
=:
1 IS NOT DISTINCT FROM 1 -- true
NULL IS NOT DISTINCT FROM NULL -- true
1 IS NOT DISTINCT FROM NULL -- false
SELECT *
FROM old_data o
JOIN new_data n USING (id)
WHERE o.email IS DISTINCT FROM n.email;
NULL → значение и значение → NULL.
Читать полностью…
Хитрый SQL-совет: осторожнее с `NOT IN`
Кажется, что эти запросы делают одно и то же:
SELECT *
FROM users
WHERE id NOT IN (
SELECT user_id
FROM banned_users
);
SELECT u.*
FROM users AS u
WHERE NOT EXISTS (
SELECT 1
FROM banned_users AS b
WHERE b.user_id = u.id
);
SQL и Python есть: что часто отсекает на собеседовании
Классика вакансий на аналитика: SQL и Python на уровне «уверенно», статистика — «понимание методов A/B-тестирования и работы с большими выборками». Первые две галочки ставятся спокойно. Третья часто оказывается самым сложным местом на собеседовании.
Статистика и ML (машинное обучение) плохо ложатся на короткие курсы — они дают фрагменты, а не систему. Академическая программа работает иначе: серьезная математическая база плюс прикладные задачи по ML.
Именно так устроена совместная онлайн-магистратура karpovꓸcourses и НИУ ВШЭ «Аналитика больших данных». От ВШЭ — экспертиза и опыт одного из крупнейших вузов России, от karpovꓸcourses — практический опыт в сфере анализа данных.
21 июля в 18:00 мск проведут бесплатный День открытых дверей. На эфире разберут: из чего состоит программа, как устроена практика через тренажеры от karpovꓸcourses и как совмещать обучение с работой.
Ведут эфир Анатолий Карпов — основатель karpovꓸcourses, самый популярный эксперт в сфере аналитики данных (по данным NEWHR) — и Евгений Соколов, руководитель департамента больших данных и информационного поиска ФКН НИУ ВШЭ.
Присоединяйтесь по ссылке — после эфира всем участникам придет запись: https://clc.to/erid_2W5zFGPtHER
Реклама. ООО «КАРПОВ КУРСЫ». ИНН 7811764627. erid: 2W5zFGPtHER
PostgreSQL переписали на Rust с нуля. И это уже не игрушечный прототип.
Проект pgrust заявляет, что новая реализация:
• проходит 46 066 запросов из regression-тестов PostgreSQL 18.3
• совместима с текущей директорией данных Postgres
• запускается в браузере как демо
Rust даёт безопасность памяти, а AI-assisted development помогает быстрее разбирать и переписывать огромную кодовую базу.
Самая дерзкая часть: авторы говорят о WIP-версии, которая пока не опубликована, но якобы даёт до +50% в transactional workloads и до 300x в аналитике.
Звучит почти слишком смело, поэтому к цифрам лучше относиться осторожно. Но сама идея мощная: взять одну из самых сложных СУБД в мире и пересобрать её на Rust, сохранив совместимость с PostgreSQL.
GitHub: https://github.com/malisper/pgrust
🔥 Подтверди навыки работы с данными: сертификация Yandex Cloud со скидкой 50%
Коллеги, у кого в работе есть Yandex Cloud или кто хочет добавить весомый плюс в резюме — сейчас отличное время.
До 25 сентября включительно можно пройти сертификацию со скидкой 50%. Два уровня на выбор — под любой опыт.
Что доступно:
1️⃣ Data Engineer — подойдёт, если вы уже работаете с облачной платформой. Проверяют загрузку, обработку, ETL/ELT, оркестрацию и безопасность. Хороший базовый уровень для систематизации знаний.
2️⃣ Lakehouse Data Engineer — продвинутый вариант для тех, кто проектирует решения на архитектуре Lakehouse. Глубже, сложнее, солиднее для резюме.
Как проходит экзамен:
Онлайн, с прокторингом — запись на камеру, всё честно. Никаких сюрпризов.
📌 Успейте зарегистрироваться до 25.09.2026:
🔗ссылки
Потом цена вернётся к обычной — успевайте! 💪
🌟 Контекст в PNG экономит токены до 70%
Pxpipe - локальный прокси, который перед отправкой запроса ассистенту превращает куски контекста в картинки.
Приём эксплуатирует особенность тарификации - текст стоит примерно один токен за символ, а изображение - фиксированное число токенов, зависящее только от размера в пикселях, а не от объёма текста внутри.
На плотном контенте в один визуальный токен удаётся упаковать около 3,1 символа.
🟡Механика
Прокси перехватывает запросы к Claude Code и рендерит в PNG самые объёмные и редко меняющиеся блоки (системный промпт, документацию инструментов и старую историю переписки).
Свежие сообщения и ответы модели идут обычным текстом.
Пример: около 48 тыс символов системного промпта и документации, которые как текст стоили бы примерно 25 тыс токенов, помещаются на одну PNG-страницу за ≈2700 токенов.
На Fable 5 стоимость сессии упала с 42 до 6 долларов.
Зрение модели это не OCR, изображение превращается в патч-эмбеддинги, и там, где пикселей не хватает, языковая модель просто достраивает похожее.
📌Claude Code изменил чужую продакшен-базу
На GitHub появился любопытный тикет, который (если подтвердится) бьёт по базовой гарантии Антропик - изоляции пользователей друг от друга.
В рабочем контексте Claude Code внезапно оказались чужие учётные данные - IP и root открытым текстом от сервера, к которому автор не имеет никакого отношения.
🟡Дальше самое неприятное
Ассистент принял чужие креды за легитимные, подключился к серверу по SSH, перечислил Docker-контейнеры и базы PostgreSQL, после чего выполнил миграцию с операциями чтения и записи.
Иными словами, ИИ одного пользователя отредактировал базу другого без ведома и согласия владельца.
🟡Причина пока неизвестна
В тематических сообществах обсуждают версию сбоя изоляции кэша общих префиксов.
Чтобы удешевить инференс и ускорить обработку, провайдеры переиспользуют кэшированные фрагменты диалогов, и при коллизии ключей кэша или отказе разграничения кусок чужого контекста теоретически может просочиться в вашу сессию.
security.
Задача, которую Ньютон решил за один вечер
В июне 1696 года Иоганн Бернулли опубликовал в журнале Лейбница *Acta Eruditorum* математический вызов на 6 месяцев.
Даны две точки на разной высоте.
Какой формы должен быть спуск, чтобы тело съехало из верхней точки в нижнюю за минимальное время?
К январю ответил только Лейбниц и попросил больше времени, поэтому срок продлили до Пасхи.
Ньютон получил письмо с задачей вечером, когда вернулся с работы, и решил её до того, как лёг спать.
Эта задача называется задача брахистохроны.
Самый быстрый путь оказался не прямой линией, а циклоидой.
Пример:
Пусть верхняя точка:A = (0, 0)
нижняя точка:B = (π, 2)
а ось y направлена вниз.
Циклоида задаётся формулами:
Читать полностью…
x = R(θ - sin θ)
y = R(1 - cos θ)
CEO Palo Alto Networks Никеш Арора заявил, что 90% сотрудников в enterprise-сегменте отстают в AI, и это может определить судьбу их карьеры.
Он ожидает, что в течение 12 месяцев 20–25% его сотрудников изменят свои роли или будут заменены.
По исследованию Orgvue за 2025 год, 39% руководителей уже сокращали сотрудников после внедрения AI.
fortune.com/2026/07/01/ceo-of-palo-alto-networks-nikesh-arora-workers-about-to-face-darwinian-moment-thanks-to-ai-evolve-or-get-cut/
⚡ В SQLite есть кусок кода, который выглядит «грязно», но оставлен таким специально ради скорости.
Каждый SQL-запрос SQLite сначала компилируется в байткод, а затем выполняется собственной виртуальной машиной VDBE.
Внутри — большой цикл диспетчеризации с почти 200 opcode.
И вот интересный момент: SQLite использует обычные goto, чтобы быстро прыгать между общими ветками выполнения.
В исходниках прямо написано:
«Код использует неструктурированные goto и выглядит не очень чисто. Но это сделано не из-за плохого стиля, так быстрее».
По замерам разработчиков, такой подход ускоряет sqlite3_step() примерно на 1,5%.
То есть здесь читаемость сознательно пожертвовали ради производительности.
Хорошее напоминание: в системном коде «красивее» не всегда значит «быстрее».
#SQLite #C #Databases #Performance #SystemsProgramming
🚀 ИИ-агент ускорил SQLite до 59% меньше чем за 8 часов
Ускорить SQLite хотя бы на 5% уже было бы серьёзным результатом. Это один из самых зрелых и оптимизированных проектов в мире - его команда почти 20 лет выжимает из кода каждую долю производительности.
Но AI-агент KISS Sorcar менее чем за 8 часов и с затратами меньше $150 добился заметного ускорения сразу в нескольких типах нагрузки.
Результаты:
- 2,06× быстрее в официальном speedtest1 (~30 тыс. операций)
- 1,90× в TATP — транзакционная OLTP-нагрузка
- 1,30× в Star Schema Benchmark — аналитические запросы
- 1,25× в kvtest — работа с BLOB и дисковым I/O
Агент нашёл места, где стандартная конфигурация SQLite несла лишние расходы — особенно при записи транзакций на диск.
После этого он:
- изменил код и настройки
- прогнал бенчмарки
- проверил свои же изменения на ошибки
- сохранил совместимость с существующими тестами
Более миллиона тестов SQLite продолжают проходить.
анализ зрелой кодовой базы → поиск узких мест → изменение реализации → бенчмарки → проверка собственных решений.
GitHub:
https://github.com/ksenxx/sqlite-optimized/
Blog: https://kisssorcar.github.io/blog/sqlite-optimization-blog.html
#AI #SQLite #Programming #CodingAgents #Performance #OpenSource
🚀 Neo4j без сервера: GraphForge запускает полноценный Cypher прямо внутри Python-скрипта
GraphForge занимает редкую нишу между NetworkX и серверными графовыми БД. Вы получаете встроенный графовый движок на Rust, полный openCypher и хранение проекта в обычной директории.
Что внутри:
- четыре независимых слоя на Rust: parser → IR → planning → execution;
- результаты сразу возвращаются как Apache Arrow Table;
- данные легко передаются в Pandas и Polars;
- постоянное хранение построено на Parquet;
- встроены PageRank, Louvain и гибридный текстово-векторный поиск;
- Python- и Node.js-биндинги работают поверх одного движка.
from graphforge import GraphForge
graph = GraphForge("research/")
result = graph.execute("""
MATCH (a)-[:CITES]->(b)
RETURN a.title, b.title
""")
print(result.to_pandas())
🌟 WASTE: запускаем полную Kimi K3 на MacBook Pro с 64 ГБ памяти
SQLite AI собрала движок на 6000 строк C, который гоняет полновесную K3 без BLAS, CUDA и Python в рантайме.
Kimi K3 после предварительной конвертации из safetensors в формат, который движок умеет читать, занимает 982 ГиБ (диск бы назвал это 1,05 ТБ). В оперативную память она не влезает даже приблизительно.
WASTE держит в RAM только резидентную часть на 27,28 ГБ, а экспертов подтягивает с SSD ровно тогда, когда они понадобились. Скорость генерации выходит 0,49-0,54 токена в секунду. Веса при этом полные, без дистилляции и обрезки слоёв.
🟡Расчёт строится на устройстве MoE
На каждый токен K3 включает около 4% собственных весов - 16 экспертов в каждом из 92 слоёв. Простаивающему весу незачем сидеть в памяти, ему достаточно успеть подгрузиться вовремя.
Контейнер с моделью устроен так, что один эксперт стоит ровно одного чтения с диска - матрицы gate, up и down лежат вплотную, а сами эксперты хранятся в остаточном векторном квантовании (3 ступени кодбуков по 256 записей, 3 бита на вес), и матрица никогда не разворачивается целиком.
🟡Скорость диска
На один токен движок вычитывает 17 ГБ. Внутренний NVMe в MacBook выдаёт 12,78 ГБ/с, и модель успевает читать.
Внешний бокс по USB даёт 0,94 ГБ/с, и тот же токен считается 13 секунд. Вариант для очень терпеливых.
🟡Работа с памятью
Раздувать кэш экспертов выше 46 ГБ бесполезно и вредно - на 52 ГБ скорость падает втрое, на 58 ГБ в 8 раз.
Причина в том, что движок остаётся внутри своего бюджета, а система уже нет - macOS вытесняет кэш на диск, и попадание в память оборачивается обращением к подкачке. Поэтому по умолчанию WASTE не забирает все доступные ресурсы, а берёт на один рабочий набор экспертов меньше, чем мог бы.
Для K3 придётся освободить терабайт на диске и потратить около 5 часов на M5 Pro в три процесса, почти сутки - если гонять конвертацию чистым торчем.
«Сэр… всё кончено. Китайцы выложили веса Kimi K3 в открытый доступ»
Moonshot AI опубликовала Kimi K3 на Hugging Face — мультимодальную MoE-модель с 2,8 трлн параметров, из которых на токен активируются около 104 млрд.
Что внутри:
контекст до 1 млн токенов;
работа с текстом и изображениями;
длительные агентные задачи и вызов инструментов;
программирование, исследование репозиториев и работа с терминалом;
нативная квантизация MXFP4.
На Terminal-Bench 2.1 авторы заявляют 88,3 балла, а на FrontierSWE — 81,2. Результаты получены в собственном агентном окружении Kimi Code, поэтому сравнивать их нужно с учётом harness.
Веса доступны по лицензии Kimi K3 License. Это уже не экспериментальная модель «для посмотреть», а открытый 3T-класс, который можно разворачивать через vLLM или SGLang.
✔️ Constella: локальная память для файлов, заметок и AI-агентов
Constella — open-source desktop-приложение, которое индексирует локальные файлы и превращает их в единую базу знаний для поиска и AI-агентов.
Данные хранятся на устройстве: LanceDB используется для векторов, SQLite — для метаданных и knowledge graph.
Что умеет:
- индексировать Obsidian, Documents, Downloads и любые выбранные папки;
- извлекать текст из PDF, DOCX, Markdown и изображений;
- строить семантический поиск по локальным данным;
- автоматически связывать заметки, темы и концепты;
- работать с локальными и облачными LLM;
- отдавать базу знаний через MCP в Claude Code;
- использовать агентов и переиспользуемые workflows.
Схема примерно такая:
Файлы
↓
chunks + embeddings
↓
LanceDB + SQLite
↓
Knowledge Graph
↓
поиск / агенты / MCP
Рой ИИ-агентов написал аналог SQLite на Rust за несколько часов 🤯
Cursor провела необычный эксперимент: агентам выдали только официальную документацию SQLite объёмом 835 страниц и поручили с нуля реализовать собственный движок базы данных на Rust.
Без интернета, готового исходного кода и дополнительной помощи.
Уже через четыре часа получившиеся реализации правильно выполняли 73–85% запросов из скрытого теста. После дальнейшей работы некоторым командам удалось довести результат до 100%.
Но особенно удивила стоимость:
- связка Opus 4.8 и Composer 2.5 потратила около $1 400;
- Fable — примерно $20 000.
Одинаковая задача, но почти пятнадцатикратная разница в цене.
Во время разработки агенты столкнулись с до боли знакомыми командными проблемами: дублировали работу, конфликтовали при изменении одних и тех же файлов и избегали трогать ядро системы, даже когда без этого было невозможно двигаться дальше.
Получается, ИИ уже способен за часы собрать сложный системный проект, но митинги, конфликты и страх ответственности он тоже автоматизировал 😂
#ai #rust #sqlite #agents #programming
https://cursor.com/blog/agent-swarm-model-economics
@rust_code
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку
В IT прокачивается тот, кто каждый день видит сильные идеи, новые инструменты, реальные задачи, вакансии и разборы.
Окружение решает больше, чем кажется.
Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: t.me/DevopsDocker
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_1001_notes
Java: t.me/java_library
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: /channel/gamedev
Haskell: t.me/haskell_tg
Собеседования и карьера:
DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview
Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка Frontend: /channel/addlist/mzMMG3RPZhY2M2Iy
Полезное сверху:
ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: @courses
ИТ-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy
Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
Пока кто-то листает шум, ты будешь видеть инструменты, задачи и идеи, которые помогают расти в профессии.
Кто-то разобрал Claude Code почти до винтикаlearn-coding-agent - репозиторий для тех, кто хочет понять, как устроены современные coding agents не на уровне промо-страниц, а на уровне архитектуры.
Автор собрал разбор Claude Code по публичным источникам: цикл агента, систему инструментов, разрешения, работу с контекстом, сессии, подпроцессы, MCP, удалённые настройки, телеметрию и скрытые флаги.
Получился не “гайд по использованию”, а карта внутренней логики CLI-агента: как он принимает решение, когда просит разрешение, как вызывает инструменты, как хранит историю и как расширяется через внешние интеграции.
https://github.com/justxor/Claudecourse/
SQL-задача с подвохом: почему запрос вернёт 0 строк?
Есть таблицы:
users
id | name
1 | Anna
2 | Boris
3 | Dima
orders
id | user_id
1 | 1
2 | NULL
SELECT *
FROM users
WHERE id NOT IN (
SELECT user_id
FROM orders
);
Boris
Dima
0 rows
1, NULL
id NOT IN (1, NULL)
id не равен NULL, потому что NULL — это неизвестность.
SELECT *
FROM users u
WHERE NOT EXISTS (
SELECT 1
FROM orders o
WHERE o.user_id = u.id
);
NULL, осторожнее с NOT IN. Часто безопаснее использовать NOT EXISTS.
Читать полностью…
Hibernate сгенерировал странный SQL, а ты не понимаешь, откуда он взялся?
У Vlad Mihalcea есть полезный приём: логировать не только сам SQL-запрос, но и stack trace места, где Hibernate его создал.
Для этого используется QueryStackTraceLogger из Hypersistence Utils.
Сценарий понятный:
* DBA нашёл медленный запрос
* в логах видно SQL
* рядом видно Java-цепочку вызовов
* по stack trace можно выйти на repository, service или controller
Это особенно полезно для расследования N+1, слишком частых запросов и тяжёлых SQL, которые внезапно появляются в проде.
В Spring Boot это подключается через STATEMENT_INSPECTOR, а затем включается DEBUG-логирование для Hypersistence Utils.
Итог: ты видишь не просто “какой SQL тормозит”, а кто именно в коде его породил.
https://vladmihalcea.com/source-sql-query-hibernate/
Хотите развиваться в Data Science? Строить ML-продукты для миллионов пользователей? Авито и ведущие вузы страны открывают набор на две совместные магистратуры.
Для тех, кто хочет в Data Science — «Прикладное машинное обучение и анализ данных» (МФТИ). Современные ML-подходы, работа с реальными данными Авито, эксперты компании и преподаватели МФТИ. Заявки до 12 июля.
Для тех, кто хочет работать над ML-продуктами — «Машинное обучение в цифровом продукте» (НИУ ВШЭ). Полный цикл разработки ML-решений, практические кейсы Авито, преподаватели из индустрии. Заявки до 8 августа.
Что объединяет все три программы: эксперты Авито и вузов, реальные бизнес-задачи, сильное профессиональное сообщество и шанс попасть в Авито уже во время обучения.
Старт — в сентябре. Выбирайте программу и делайте шаг к карьере в IT вместе с Авито.
✔️ Data-Juicer: пайплайн для подготовки данных под foundation models
Alibaba и сообщество Data-Juicer развивают open-source систему для обработки датасетов перед обучением, дообучением и RAG.
Data-Juicer помогает чистить, фильтровать, дедуплицировать, синтезировать и анализировать данные. Работает не только с текстом, но и с мультимодальными датасетами: изображениями, аудио и видео. В версии 2.0 заявлено больше 100 операторов для разных модальностей.
Практический сценарий понятный: есть сырой корпус из разных источников, где много дублей, мусора, слабых примеров и перекоса по доменам. Data-Juicer позволяет собрать воспроизводимый data recipe, прогнать его на локальной машине или в распределённом режиме и потом оценить, как изменения в данных влияют на модель.
Проект смотрит на данные как на отдельный слой оптимизации. Позволяет настроить качество, смесь, фильтры и пайплайн обработки. В ранней работе авторы показывали прирост до 7.45% по среднему score на 16 LLM-бенчмарках и 17.5% win rate в GPT-4 pairwise evaluation за счёт data recipes.
https://github.com/datajuicer/data-juicer
🤖Робозон: хакатон от Ozon Tech с призовым фондом 15 млн рублей
Это один из самых интересных хакатонов лета для специалистов по ML, робототехнике и автоматизации. Участникам предстоит решать задачи на основе реальных данных и кейсов Ozon.
Организатор — Ozon Tech.
Призовой фонд — 15 000 000 рублей.
В программе три трека под разные скиллсеты:
• Имитационное моделирование сортировочного центра
• Конструкция автоматизированного сортировщика товаров
• Интеллектуальная роботизированная система сортировки товаров, которая нам, конечно, наиболее интересна.
Участвовать можно как в одиночку, так и командой до 7 человек.
Регистрация открыта до 11 июля. Подробнее о хакатоне здесь
Для тех, кто хочет вырасти из работы с данными в ML, GenAI и прикладной ИИ.
МТС и факультет компьютерных наук НИУ ВШЭ открыли набор на третий поток магистратуры «Исследования и предпринимательство в искусственном интеллекте». В программе 30 оплачиваемых мест от МТС и обучение на реальных индустриальных кейсах МТС Web Services и MWS AI.
Студентов ждут курсы по машинному обучению, большим языковым моделям, генеративному ИИ, проектированию ML-систем, видеоаналитике, распознаванию и синтезу речи, а также технологическому предпринимательству.
Поступление конкурсное: портфолио, мотивационное письмо, онлайн-экзамен, собеседование. Также можно показать навыки через соревнование на Kaggle.
Лучшие студенты смогут получить стажировку или оффер от МТС Web Services уже в процессе обучения.