This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥3👍2💊2
Forwarded from Machinelearning
Он выступает прослойкой между вашим агентом (например, LangChain, LlamaIndex, VertexAI) и базой данных, упрощая работу с базой, подключение, управление, безопасность и мониторинг.,
Подходит для разработки AI-агентов, которые могут создавать и управлять в реальными БД.
Особенности:
Если делаете агентов, которые работают с
SQL/PostgreSQL/MySQL — точно стоит попробовать.▪ GitHub: https://github.com/googleapis/genai-toolbox
@ai_machinelearning_big_data
#AI #ML #aiagent #opensource #MCP #databases #genai
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥2🥱1💊1
🧠 SQL-задача для опытных разработчиков
В базе есть таблица заказов:
Задача:
Найти всех клиентов, у которых:
- В любые 3 подряд месяца был хотя бы 1 заказ в каждом месяце,
- и суммарная сумма заказов за эти 3 месяца превысила 10,000.
Дополнительно: вывести customer_id, эти 3 месяца (в формате YYYY-MM), общее число заказов за эти месяцы и сумму.
💡 Разбор подхода:
📆 Сначала агрегируем заказы по customer_id и order_month (например, 2024-06), посчитав кол-во заказов и сумму.
🪜 Пронумеруем месяцы для каждого клиента с помощью DENSE_RANK() или ROW_NUMBER().
🧮 Найдём окна из 3 последовательных месяцев (разница в номере = 2), и для них посчитаем сумму.
🧹 Отфильтруем только те окна, где сумма > 10000 и есть 3 записи подряд.
🧩 Решение (PostgreSQL)
В базе есть таблица заказов:
orders (
order_id INT,
customer_id INT,
order_date DATE,
total_amount DECIMAL
)
Задача:
Найти всех клиентов, у которых:
- В любые 3 подряд месяца был хотя бы 1 заказ в каждом месяце,
- и суммарная сумма заказов за эти 3 месяца превысила 10,000.
Дополнительно: вывести customer_id, эти 3 месяца (в формате YYYY-MM), общее число заказов за эти месяцы и сумму.
💡 Разбор подхода:
📆 Сначала агрегируем заказы по customer_id и order_month (например, 2024-06), посчитав кол-во заказов и сумму.
🪜 Пронумеруем месяцы для каждого клиента с помощью DENSE_RANK() или ROW_NUMBER().
🧮 Найдём окна из 3 последовательных месяцев (разница в номере = 2), и для них посчитаем сумму.
🧹 Отфильтруем только те окна, где сумма > 10000 и есть 3 записи подряд.
🧩 Решение (PostgreSQL)
WITH monthly_orders AS (
SELECT
customer_id,
TO_CHAR(order_date, 'YYYY-MM') AS order_month,
DATE_TRUNC('month', order_date) AS month_start,
COUNT(*) AS order_count,
SUM(total_amount) AS total_sum
FROM orders
GROUP BY customer_id, TO_CHAR(order_date, 'YYYY-MM'), DATE_TRUNC('month', order_date)
),
numbered_months AS (
SELECT
customer_id,
order_month,
month_start,
order_count,
total_sum,
ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY month_start) AS rn
FROM monthly_orders
),
three_month_windows AS (
SELECT
m1.customer_id,
m1.order_month AS month1,
m2.order_month AS month2,
m3.order_month AS month3,
(m1.total_sum + m2.total_sum + m3.total_sum) AS total_window_sum,
(m1.order_count + m2.order_count + m3.order_count) AS total_orders
FROM numbered_months m1
JOIN numbered_months m2 ON m1.customer_id = m2.customer_id AND m2.rn = m1.rn + 1
JOIN numbered_months m3 ON m1.customer_id = m3.customer_id AND m3.rn = m1.rn + 2
WHERE
m3.month_start - m1.month_start <= INTERVAL '62 days' -- ~2 месяца
)
SELECT
customer_id,
month1,
month2,
month3,
total_orders,
total_window_sum
FROM three_month_windows
WHERE total_window_sum > 10000;
👍6❤5👀4🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
🔥 Совет дня: быстро посчитать частоту значений в колонке
Часто нужно узнать, сколько раз встречается каждое значение в столбце? Используй
📌 Удобно для:
— подсчёта популярных категорий
— анализа активности пользователей
— агрегации логов
💡 Фишка: добавь
Часто нужно узнать, сколько раз встречается каждое значение в столбце? Используй
GROUP BY + COUNT(*):
SELECT category, COUNT(*) AS freq
FROM products
GROUP BY category
ORDER BY freq DESC;
📌 Удобно для:
— подсчёта популярных категорий
— анализа активности пользователей
— агрегации логов
💡 Фишка: добавь
LIMIT — и получишь топ-N значений:
SELECT user_id, COUNT(*) AS actions
FROM logs
GROUP BY user_id
ORDER BY actions DESC
LIMIT 10;
👍8❤1🔥1
Forwarded from C# (C Sharp) programming
📂 Microsoft открыла исходный код DocumentDB — нового стандарта NoSQL-баз на основе PostgreSQL
Теперь ядро Cosmos DB (MongoDB API) доступно всем — Microsoft представила DocumentDB, документоориентированную базу данных с открытым исходным кодом. Это серьёзный шаг для open source-сообщества и большой вклад в развитие NoSQL на базе PostgreSQL.
🔧 Что входит в DocumentDB:
▪️ pg_documentdb_core — расширение PostgreSQL с поддержкой BSON, включает:
- индексацию по полям, включая гео и составные
- векторный поиск (AI, NLP, рекомендации)
- аутентификацию SCRAM
▪️ pg_documentdb_api — API-уровень для CRUD-операций, запросов и управления индексами
🐳 Как попробовать:
1. Установите Docker
2. Клонируйте проект:
Соберите и запустите:
Подключение:
🔗 Репозиторий: https://github.com/microsoft/documentdb
DocumentDB — это не просто адаптация под Mongo, а новая точка входа в NoSQL на мощной базе PostgreSQL.
Теперь ядро Cosmos DB (MongoDB API) доступно всем — Microsoft представила DocumentDB, документоориентированную базу данных с открытым исходным кодом. Это серьёзный шаг для open source-сообщества и большой вклад в развитие NoSQL на базе PostgreSQL.
🔧 Что входит в DocumentDB:
▪️ pg_documentdb_core — расширение PostgreSQL с поддержкой BSON, включает:
- индексацию по полям, включая гео и составные
- векторный поиск (AI, NLP, рекомендации)
- аутентификацию SCRAM
▪️ pg_documentdb_api — API-уровень для CRUD-операций, запросов и управления индексами
🐳 Как попробовать:
1. Установите Docker
2. Клонируйте проект:
git clone https://github.com/microsoft/documentdb.git
Соберите и запустите:
docker build . -f .devcontainer/Dockerfile -t documentdb
docker run -v $(pwd):/home/documentdb/code -it documentdb /bin/bash
cd code && make && sudo make install
./scripts/start_oss_server.sh -t documentdb
Подключение:
psql -p 9712 -h localhost -d postgres
🔗 Репозиторий: https://github.com/microsoft/documentdb
DocumentDB — это не просто адаптация под Mongo, а новая точка входа в NoSQL на мощной базе PostgreSQL.
❤6👍5
🧠 Word2Vec: как работает модель Skip‑Gram по версии Chris McCormick
Гайд погрузит вас в архитектуру Skip‑Gram — одной из ключевых моделей Word2Vec, не отвлекаясь на лишние детали арт-обзора, а фокусируясь на сути алгоритма :
▪ Цель “фейковой задачи”
Мы обучаем нейросеть с одним скрытым слоем не ради самой задачи, а чтобы получить векторы слов — веса скрытого слоя. Саму сеть потом не используем напрямую
▪ Обучающие пары
Из текста формируются пары: центральное слово + одно из слов в окне контекста. Размер окна — параметр (например, ±5 слов)
▪ Предсказание контекста
На вход подается one-hot вектор центрального слова, на выходе — распределение вероятностей соседних слов (softmax). Цель — максимизировать \(\sum \log p(w_\text{context} \mid w_\text{center})\)
▪ Архитектура сети
- Вход → one-hot размером |V| → умножение на матрицу W (|V| × N) → скрытый слой размерности N (например, 300) :contentReference[oaicite:5]{index=5}.
- W — это то, что мы хотим: векторное представление слов.
▪ Трюки ускорения
Чтобы не считать softmax по тысячам слов, применяются Negative Sampling или Hierarchical Softmax — чтобы обучение стало масштабируемым.
▪ Почему это работает
Слова, которые часто встречаются в похожих контекстах, получают близкие эмбеддинги, и ассоциативные отношения проявляются через векторные разности (например, queen – woman ≈ king – man).
Почему стоит читать этот туториал?
- Объясняет суть Skip‑Gram без лишнего шума
- Показывает, почему скрытый слой — это главная ценность
- Подробно разбирает формирование пар и механизм predict context
- Затрагивает оптимизации для скорости
- Содержит наглядные формулы и визуализации
➡️ Если хотите разобраться, как работает Word2Vec "внутри", этот материал от McCormick — один из самых понятных и доступных.
🟡 Читать
Гайд погрузит вас в архитектуру Skip‑Gram — одной из ключевых моделей Word2Vec, не отвлекаясь на лишние детали арт-обзора, а фокусируясь на сути алгоритма :
▪ Цель “фейковой задачи”
Мы обучаем нейросеть с одним скрытым слоем не ради самой задачи, а чтобы получить векторы слов — веса скрытого слоя. Саму сеть потом не используем напрямую
▪ Обучающие пары
Из текста формируются пары: центральное слово + одно из слов в окне контекста. Размер окна — параметр (например, ±5 слов)
▪ Предсказание контекста
На вход подается one-hot вектор центрального слова, на выходе — распределение вероятностей соседних слов (softmax). Цель — максимизировать \(\sum \log p(w_\text{context} \mid w_\text{center})\)
▪ Архитектура сети
- Вход → one-hot размером |V| → умножение на матрицу W (|V| × N) → скрытый слой размерности N (например, 300) :contentReference[oaicite:5]{index=5}.
- W — это то, что мы хотим: векторное представление слов.
▪ Трюки ускорения
Чтобы не считать softmax по тысячам слов, применяются Negative Sampling или Hierarchical Softmax — чтобы обучение стало масштабируемым.
▪ Почему это работает
Слова, которые часто встречаются в похожих контекстах, получают близкие эмбеддинги, и ассоциативные отношения проявляются через векторные разности (например, queen – woman ≈ king – man).
Почему стоит читать этот туториал?
- Объясняет суть Skip‑Gram без лишнего шума
- Показывает, почему скрытый слой — это главная ценность
- Подробно разбирает формирование пар и механизм predict context
- Затрагивает оптимизации для скорости
- Содержит наглядные формулы и визуализации
➡️ Если хотите разобраться, как работает Word2Vec "внутри", этот материал от McCormick — один из самых понятных и доступных.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1🔥1
Forwarded from Анализ данных (Data analysis)
🧠 MindsDB — универсальный MCP-сервер с поддержкой SQL и ИИ
Если вам нужен мощный способ подключать LLM к реальным данным — вот он.
MindsDB — это инструмент, который позволяет обращаться к более чем 200 источникам данных (Slack, Gmail, Google Sheets, базы данных, соцсети и т.д.) с помощью:
▪ обычных SQL-запросов
▪ или просто на естественном языке (например: "покажи все письма от клиента за прошлый месяц")
Что делает его особенным?
▪ Умеет объединять данные из разных систем — как единый запрос
▪ Позволяет вызывать и обучать ML/LLM‑модели прямо из SQL
▪ Работает как MCP‑сервер — можно подключать агентов, чат-ботов и использовать в продуктивной среде
▪ Полностью open-source, с активным сообществом и 33 000+ звёзд на GitHub
💡 Это готовое решение, чтобы построить:
– интеллектуального ассистента с доступом к данным
– LLM-интерфейс к корпоративным системам
– гибкий слой интеграции для агентов
🔗 github.com/mindsdb/mindsdb
@data_analysis_ml
Если вам нужен мощный способ подключать LLM к реальным данным — вот он.
MindsDB — это инструмент, который позволяет обращаться к более чем 200 источникам данных (Slack, Gmail, Google Sheets, базы данных, соцсети и т.д.) с помощью:
▪ обычных SQL-запросов
▪ или просто на естественном языке (например: "покажи все письма от клиента за прошлый месяц")
Что делает его особенным?
▪ Умеет объединять данные из разных систем — как единый запрос
▪ Позволяет вызывать и обучать ML/LLM‑модели прямо из SQL
▪ Работает как MCP‑сервер — можно подключать агентов, чат-ботов и использовать в продуктивной среде
▪ Полностью open-source, с активным сообществом и 33 000+ звёзд на GitHub
💡 Это готовое решение, чтобы построить:
– интеллектуального ассистента с доступом к данным
– LLM-интерфейс к корпоративным системам
– гибкий слой интеграции для агентов
🔗 github.com/mindsdb/mindsdb
@data_analysis_ml
❤4👍2
🧠 SQL-задача для продвинутых: как найти самые длинные серии входов без пропусков?
Представим таблицу
Нужно определить: для каждого пользователя — самую длинную непрерывную последовательность дней, когда он заходил на сайт (без пропущенных дат).
💡 Хитрый приём: если пронумеровать входы с
Вот решение:
📌 Подходит для задач с непрерывной активностью, логами, аналитикой по клиентам и временным последовательностям.
Представим таблицу
logins:user_id INT,
login_date DATEНужно определить: для каждого пользователя — самую длинную непрерывную последовательность дней, когда он заходил на сайт (без пропущенных дат).
💡 Хитрый приём: если пронумеровать входы с
ROW_NUMBER(), то разность login_date - row_number будет постоянной в рамках серии подряд идущих дней. Это позволяет сгруппировать такие серии и посчитать их длину.Вот решение:
WITH login_ranked AS (
SELECT
user_id,
login_date,
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY login_date) AS rn
FROM logins
),
grouped AS (
SELECT
user_id,
login_date,
DATE_SUB(login_date, INTERVAL rn DAY) AS grp
FROM login_ranked
),
group_lengths AS (
SELECT
user_id,
grp,
COUNT(*) AS streak_length
FROM grouped
GROUP BY user_id, grp
)
SELECT
user_id,
MAX(streak_length) AS max_consecutive_days
FROM group_lengths
GROUP BY user_id
ORDER BY max_consecutive_days DESC;
📌 Подходит для задач с непрерывной активностью, логами, аналитикой по клиентам и временным последовательностям.
👍11❤1
🚀 *Amazon запускает S3 Vectors — и это может перевернуть рынок векторных БД*
На первый взгляд — просто новый сервис. На деле — возможно, главная новость для AI-инфраструктуры в 2024.
Когда Amazon представил S3 в 2006, он навсегда изменил подход к хранению данных: больше не нужно думать о дисках — только API и бесконечное масштабирование. S3 Vectors может сделать то же самое с векторными БД.
💡 Почему это важно
1️⃣ Резкое удешевление
- $0.06/GB за хранение, $0.004/TB за запросы
- В 10–400 раз дешевле, чем популярные векторные хостинги
- Подходит для стартапов, особенно с бесплатными AWS-кредитами
2️⃣ Масштабируемость без DevOps
- Храни миллиарды векторов
- Запросы — за сотни миллисекунд
- Без серверов: просто создаёшь *vector bucket* и используешь API
3️⃣ Глубокая интеграция с AWS-экосистемой
- Bedrock (RAG-приложения)
- OpenSearch (tiered storage)
- SageMaker и другие сервисы
- Всё подключается "из коробки"
🛠️ Что можно делать
- Масштабируемый RAG с низкой ценой
- Поиск по смыслу в документах, видео, медизображениях, коду
- Долгосрочная память для AI-агентов
- Семантический корпоративный поиск
📈 Сообщество уже тестирует: среднее время запроса — ~250 мс. Preview-доступ открыт в регионах US East/West, Frankfurt и Sydney.
🔗 https://aws.amazon.com/blogs/aws/introducing-amazon-s3-vectors-first-cloud-storage-with-native-vector-support-at-scale/
Если пробуете — делитесь результатами. Это может быть началом нового стандарта.
На первый взгляд — просто новый сервис. На деле — возможно, главная новость для AI-инфраструктуры в 2024.
Когда Amazon представил S3 в 2006, он навсегда изменил подход к хранению данных: больше не нужно думать о дисках — только API и бесконечное масштабирование. S3 Vectors может сделать то же самое с векторными БД.
💡 Почему это важно
1️⃣ Резкое удешевление
- $0.06/GB за хранение, $0.004/TB за запросы
- В 10–400 раз дешевле, чем популярные векторные хостинги
- Подходит для стартапов, особенно с бесплатными AWS-кредитами
2️⃣ Масштабируемость без DevOps
- Храни миллиарды векторов
- Запросы — за сотни миллисекунд
- Без серверов: просто создаёшь *vector bucket* и используешь API
3️⃣ Глубокая интеграция с AWS-экосистемой
- Bedrock (RAG-приложения)
- OpenSearch (tiered storage)
- SageMaker и другие сервисы
- Всё подключается "из коробки"
🛠️ Что можно делать
- Масштабируемый RAG с низкой ценой
- Поиск по смыслу в документах, видео, медизображениях, коду
- Долгосрочная память для AI-агентов
- Семантический корпоративный поиск
📈 Сообщество уже тестирует: среднее время запроса — ~250 мс. Preview-доступ открыт в регионах US East/West, Frankfurt и Sydney.
🔗 https://aws.amazon.com/blogs/aws/introducing-amazon-s3-vectors-first-cloud-storage-with-native-vector-support-at-scale/
Если пробуете — делитесь результатами. Это может быть началом нового стандарта.
👍7❤5🥰2🔥1
📘 Шпаргалки по SQL — база и оконные функции в одном месте
Хочешь быстро освежить SQL или подготовиться к собеседованию?
Нашёл отличные PDF-шпаргалки, которые удобно сохранить себе и использовать как в работе, так и в учёбе.
🔹 Базовый SQL:
Каждая команда объясняется не только по синтаксису, но и по сути — когда и зачем использовать.
1️⃣
2️⃣ Все типы
3️⃣
4️⃣ Агрегатные функции и фильтрация
Основы SQL
🔹 Оконные функции (window functions):
Это уже продвинутый уровень, особенно полезный для аналитиков и дата-инженеров.
1️⃣
2️⃣
3️⃣ Работа с рамками окна:
4️⃣ Сортировка внутри окна и реальные примеры запросов
🔗 Оконные функции в SQL
📌 Когда только начинал учить SQL, не хватало понятных материалов. А тут — всё чётко, наглядно и по делу. За это авторам — уважение 🙌
▶️ Сохраняйте себе, чтобы не потерять
Хочешь быстро освежить SQL или подготовиться к собеседованию?
Нашёл отличные PDF-шпаргалки, которые удобно сохранить себе и использовать как в работе, так и в учёбе.
🔹 Базовый SQL:
Каждая команда объясняется не только по синтаксису, но и по сути — когда и зачем использовать.
1️⃣
SELECT, WHERE, GROUP BY, HAVING 2️⃣ Все типы
JOIN с примерами 3️⃣
CASE WHEN, UNION и подзапросы 4️⃣ Агрегатные функции и фильтрация
Основы SQL
🔹 Оконные функции (window functions):
Это уже продвинутый уровень, особенно полезный для аналитиков и дата-инженеров.
1️⃣
ROW_NUMBER, RANK, DENSE_RANK, NTILE 2️⃣
LAG, LEAD, FIRST_VALUE, LAST_VALUE 3️⃣ Работа с рамками окна:
ROWS BETWEEN, RANGE, GROUPS 4️⃣ Сортировка внутри окна и реальные примеры запросов
📌 Когда только начинал учить SQL, не хватало понятных материалов. А тут — всё чётко, наглядно и по делу. За это авторам — уважение 🙌
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14🔥8👍7
Forwarded from Machine learning Interview
This media is not supported in your browser
VIEW IN TELEGRAM
🔊 OpenVoice — опенсовр инструмент для клонирования голоса
Вы можете сгенерировать копию любого голоса всего по одной короткой записи — и озвучивать тексты с нужной интонацией, эмоцией и даже на другом языке.
💡 Что умеет:
— Воспроизводит голос с точным тембром и стилем
— Меняет тон, темп, эмоции и акцент
— Работает даже с языками, которых не было в обучении (zero-shot)
— Быстрая генерация и минимальные ресурсы — дешевле многих коммерческих решений
⚙️ Как устроено:
OpenVoice использует комбинацию моделей: одна отвечает за стиль, вторая — за тональность и характеристики речи. Обучена на сотнях тысяч голосов и стилей.
Онлайн-демо: https://huggingface.co/spaces/myshell-ai/OpenVoice
🎯 Кому подойдёт:
— Авторам подкастов, дикторам и блогерам
— Разработчикам — для интеграции озвучки в приложения
— Исследователям — для изучения архитектуры голосовых моделей
• Github: https://github.com/myshell-ai/OpenVoice/tree/main
@machinelearning_interview
Вы можете сгенерировать копию любого голоса всего по одной короткой записи — и озвучивать тексты с нужной интонацией, эмоцией и даже на другом языке.
💡 Что умеет:
— Воспроизводит голос с точным тембром и стилем
— Меняет тон, темп, эмоции и акцент
— Работает даже с языками, которых не было в обучении (zero-shot)
— Быстрая генерация и минимальные ресурсы — дешевле многих коммерческих решений
⚙️ Как устроено:
OpenVoice использует комбинацию моделей: одна отвечает за стиль, вторая — за тональность и характеристики речи. Обучена на сотнях тысяч голосов и стилей.
Онлайн-демо: https://huggingface.co/spaces/myshell-ai/OpenVoice
🎯 Кому подойдёт:
— Авторам подкастов, дикторам и блогерам
— Разработчикам — для интеграции озвучки в приложения
— Исследователям — для изучения архитектуры голосовых моделей
• Github: https://github.com/myshell-ai/OpenVoice/tree/main
@machinelearning_interview
❤5👍4🔥3
📑 go-sqlite3 — необычная реализация SQLite для Go, которая обходится без cgo. Вместо традиционных биндингов проект использует Wasm-сборку SQLite и рантайм wazero, что делает его полностью независимым от системных библиотек.
Драйвер остаётся совместимым с стандартным интерфейсом
🤖 GitHub
Драйвер остаётся совместимым с стандартным интерфейсом
database/sql, но при этом предлагает прямой доступ к низкоуровневым функциям SQLite. Разработчики уделили внимание тестированию: поддержка множества архитектур и ОС, включая экзотические вроде RISC-V или Solaris. 🤖 GitHub
🔥7❤2👍2😁1🆒1
Forwarded from Machinelearning
Архитектура Mixture-of-Recursions (MoR), предложенная Google в соавторстве с KAIST AI объединяет в едином фреймворке традиционные подходы разделения параметров и адаптивные вычисления, заставляя модель думать над каждым токеном с разной глубиной.
Под капотом MoR - рекурсивный трансформер, который прогоняет входные данные через один и тот же блок слоев несколько раз. Но главная фишка в том, что количество этих прогонов, или глубина рекурсии, не фиксированное, а динамическое и определяется для каждого токена индивидуально.
Легковесный обучаемый роутер анализирует токен и решает, сколько вычислительных усилий на него потратить. Простые слова могут пройти всего один цикл рекурсии, в то время как семантически нагруженные термины отправятся на более глубокую обработку из нескольких циклов.
Это дает два главных преимущества:
При одинаковом бюджете на обучение (в FLOPs) и меньшем размере самой модели MoR показывает более низкую перплексию и лучшие результаты в few-shot задачах, чем стандартные и рекурсивные аналоги.
@ai_machinelearning_big_data
#AI #ML #LLM #Architecture #MoR
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍1🔥1