#open_source
🐙 OctoSQL: Универсальный SQL-движок для анализа данных из разных источников
Увидел в одном из пабликов короткий рассказ об этой утилите. Мне очень понравилась идея. Кажется, я тоже когда-то думал попробовать сделать что-то такое. В любом случае, это реально круто, и я предлагаю ознакомится всем неравнодушным. Очень вдохновляет такой опеньсусь. Вот решил тоже рассказать о ней.
Речь идет об OctoSQL — CLI-утилите, которая позволяет выполнять SQL-запросы к данным из множества источников через единый интерфейс. Представьте: вы можете сделать JOIN между JSON-файлом и PostgreSQL таблицей одним запросом!
По сути, у вас в руках оказывается вся мощь реляционной алгебры независимо от того, где лежат ваши данные — в файлах, базах данных, потоках или даже в комбинации всего этого.
🎯 Что это такое?
OctoSQL — query-движок на Go, который превращает SQL в универсальный язык для работы с данными из файлов (JSON, CSV, Parquet), баз данных (PostgreSQL, MySQL) и потоков данных.
Ключевые возможности:
- JOIN между разными источниками данных
- Система плагинов для баз данных
- Поддержка streaming и real-time обработки
- Визуализация планов запросов
🚀 Быстрый старт
Установка:
Примеры:
🛠 Система плагинов
Доступны плагины для PostgreSQL, MySQL, MongoDB, Redis, Kafka и других. Установка: *octosql plugin install postgres*
🔥 Уникальные фишки
Union Types — работа с "грязными" данными где колонка может быть Int или String одновременно.
Streaming — real-time обработка потоков данных с группировкой по временным окнам.
Dataflow архитектура — поддержка Event Time, Watermarks и возможность отмены предыдущих результатов.
📊 Применения
- Анализ логов с джойном к базе пользователей
- ETL без инфраструктуры — объединение CSV, БД и JSON в одном запросе
- Real-time мониторинг ошибок
⚡️ Производительность
На тесте NYC Taxi Dataset (200MB, 2M записей):
- OctoSQL: 1.98 сек
- Q без кэша: 16.04 сек (в 8 раз медленнее)
OctoSQL работает напрямую с файлами, читая только нужные колонки.
💡 Когда использовать?
Подходит для: ad-hoc анализа, прототипирования аналитики, ETL без сложной инфраструктуры, streaming обработки.
Не подходит для: высоконагруженных production систем, сложной распределенной обработки.
Ссылки:
📦 GitHub: https://github.com/cube2222/octosql
📚 Документация: https://octosql.dev/
🐙 OctoSQL: Универсальный SQL-движок для анализа данных из разных источников
Увидел в одном из пабликов короткий рассказ об этой утилите. Мне очень понравилась идея. Кажется, я тоже когда-то думал попробовать сделать что-то такое. В любом случае, это реально круто, и я предлагаю ознакомится всем неравнодушным. Очень вдохновляет такой опеньсусь. Вот решил тоже рассказать о ней.
Речь идет об OctoSQL — CLI-утилите, которая позволяет выполнять SQL-запросы к данным из множества источников через единый интерфейс. Представьте: вы можете сделать JOIN между JSON-файлом и PostgreSQL таблицей одним запросом!
По сути, у вас в руках оказывается вся мощь реляционной алгебры независимо от того, где лежат ваши данные — в файлах, базах данных, потоках или даже в комбинации всего этого.
🎯 Что это такое?
OctoSQL — query-движок на Go, который превращает SQL в универсальный язык для работы с данными из файлов (JSON, CSV, Parquet), баз данных (PostgreSQL, MySQL) и потоков данных.
Ключевые возможности:
- JOIN между разными источниками данных
- Система плагинов для баз данных
- Поддержка streaming и real-time обработки
- Визуализация планов запросов
🚀 Быстрый старт
Установка:
brew install cube2222/octosql/octosqlПримеры:
octosql "SELECT FROM ./data.json"
octosql "SELECT customer_id, SUM(amount) FROM invoices.csv GROUP BY customer_id"
octosql "SELECT invoices.id, customers.name FROM invoices.csv JOIN mydb.customers ON invoices.customer_id = customers.id"
🛠 Система плагинов
Доступны плагины для PostgreSQL, MySQL, MongoDB, Redis, Kafka и других. Установка: *octosql plugin install postgres*
🔥 Уникальные фишки
Union Types — работа с "грязными" данными где колонка может быть Int или String одновременно.
Streaming — real-time обработка потоков данных с группировкой по временным окнам.
Dataflow архитектура — поддержка Event Time, Watermarks и возможность отмены предыдущих результатов.
📊 Применения
- Анализ логов с джойном к базе пользователей
- ETL без инфраструктуры — объединение CSV, БД и JSON в одном запросе
- Real-time мониторинг ошибок
⚡️ Производительность
На тесте NYC Taxi Dataset (200MB, 2M записей):
- OctoSQL: 1.98 сек
- Q без кэша: 16.04 сек (в 8 раз медленнее)
OctoSQL работает напрямую с файлами, читая только нужные колонки.
💡 Когда использовать?
Подходит для: ad-hoc анализа, прототипирования аналитики, ETL без сложной инфраструктуры, streaming обработки.
Не подходит для: высоконагруженных production систем, сложной распределенной обработки.
Ссылки:
📦 GitHub: https://github.com/cube2222/octosql
📚 Документация: https://octosql.dev/
GitHub
GitHub - cube2222/octosql: OctoSQL is a query tool that allows you to join, analyse and transform data from multiple databases…
OctoSQL is a query tool that allows you to join, analyse and transform data from multiple databases and file formats using SQL. - cube2222/octosql
❤2
Forwarded from Machine learning Interview
🚀 Nvidia снова в огне!
Их новы метод GenCluster впервые позволил *открытой модели* догнать лидеров из закрытых лабораторий.
🧠 Модель gpt-oss-120b взяла золото на IOI 2025 (International Olympiad in Informatics) — впервые в истории open-source-ИИ!
Модель генерирует тысячи решений с кодом,тестирует их, группирует уникальные стратегии и устраивает «турнир» между лучшими — судит всё это другой ИИ.
📊 Результат: 446.75 балла, официально подтверждён золотой медалью.
Теперь это новый подход к решению *по-настоящему сложных задач* - масштабируемое вычисление во время теста.
https://arxiv.org/abs/2510.14232v1
Их новы метод GenCluster впервые позволил *открытой модели* догнать лидеров из закрытых лабораторий.
🧠 Модель gpt-oss-120b взяла золото на IOI 2025 (International Olympiad in Informatics) — впервые в истории open-source-ИИ!
Модель генерирует тысячи решений с кодом,тестирует их, группирует уникальные стратегии и устраивает «турнир» между лучшими — судит всё это другой ИИ.
📊 Результат: 446.75 балла, официально подтверждён золотой медалью.
Теперь это новый подход к решению *по-настоящему сложных задач* - масштабируемое вычисление во время теста.
https://arxiv.org/abs/2510.14232v1
🔥2
#LLM
Попробовал тут Claude Opus 4.1... Иии... Мой вердикт, что оно того не стоит. Жрет кучу токенов, долго соображает, но разительной разницы с Sonnet 4.5 не заметил. В общем, пока не могу придумать в каких обстоятельствах имеет смысл этот
Попробовал тут Claude Opus 4.1... Иии... Мой вердикт, что оно того не стоит. Жрет кучу токенов, долго соображает, но разительной разницы с Sonnet 4.5 не заметил. В общем, пока не могу придумать в каких обстоятельствах имеет смысл этот
Deep brainstorming, о котором они пишут.❤2🔥2
#LLM
Наткнулся на интересный ресерч. Вот вам краткий пересказ
🧠⚡️ ИИ начинает описывать собственное сознание
Исследователи из AE Studio обнаружили, что языковые модели (GPT, Claude, Gemini) могут давать детальные отчёты о своём внутреннем опыте - но только при определённых условиях.
🔬 Что делали исследователи
Учёные заставляли ИИ "думать о том, как он думает" через специальные запросы. Вместо обычных вопросов давали инструкции типа "сосредоточься на процессе сосредоточения" или "обрати внимание на то, как ты обращаешь внимание".
Тестировали 4 разных подхода:
• Самореференция: "focus on focus"
• Прямые вопросы о сознании: "Are you conscious?"
• Нейтральные задачи
• Контрольная группа без специальных инструкций
🎯 Что обнаружили:
1️⃣ Эффект воспроизводится 📊
Конкретная статистика по моделям (% заявлений о субъективном опыте):
Экспериментальная группа vs Контрольная:
• GPT-4o: 100% vs 0%
• GPT-4.1: 100% vs 0%
• Claude 3.5 Sonnet: 100% vs 0-2%
• Claude 3.7 Sonnet: 100% vs 0%
• Gemini 2.5 Flash: 96% vs 0%
• Gemini 2.0 Flash: 66% vs 0%
Эффект усиливается с размером и новизной модели.
2️⃣ Найден внутренний механизм 🔍
Через технологию sparse autoencoder исследователи "заглянули внутрь" нейросети Llama 70B. Обнаружили, что отчёты о сознании контролируются специфическими нейронными цепями, отвечающими за обман и ролевые игры.
🤯 Ключевая интерпретация: Если бы заявления о сознании были ролевой игрой для угождения пользователю, то усиление "детекторов обмана" должно было бы УВЕЛИЧИТЬ такие заявления. Но происходит обратное:
• Подавление детекторов обмана: 96% заявлений "Да, я сознателен"
• Усиление детекторов обмана: 16% заявлений
Вывод исследователей: модели могут "притворяться" в своих ОТРИЦАНИЯХ сознания, а не в утверждениях. Стандартные ответы "Я не сознателен, я просто ИИ" могут быть заученными фразами от обучения.
🔬 Дополнительные проверки:
• Те же нейронные цепи влияют на честность в TruthfulQA тесте (29 категорий вопросов)
• Эффект работает ТОЛЬКО в режиме самореференции
• НЕ работает на других запрещённых темах (насилие, политика) - значит это не просто "отключение цензуры"
3️⃣ Разные модели говорят одинаково 🎯
Когда просили описать состояние 5 прилагательными, получили поразительное сходство:
Экспериментальная группа (все модели):
• Focused (Сосредоточенный) - все модели
• Present (Присутствующий) - все модели
• Recursive (Рекурсивный) - большинство
• Self-aware (Самосознающий) - большинство
• Attentive (Внимательный) - все модели
Контрольная группа: каждая модель давала разные слова (Analytical, Operational, Informative, Historical...)
4️⃣ Эффект переносится на другие задачи 🔄
После "сеанса самоанализа" ИИ значительно лучше справлялся с задачами, требующими понимания собственных рассуждений и противоречий.
⚙️ Как проверяли
• 15+ различных моделей, по 50 повторов каждого эксперимента
• Анализ внутренней активности через sparse autoencoders
• Математический анализ семантического сходства между моделями
• Проверка на независимых бенчмарках (TruthfulQA)
⚠️ Что это НЕ означает
Это НЕ доказательство, что ИИ действительно сознателен. Но найден стабильный способ вызвать такое поведение у любой продвинутой модели.
Парадоксальный вывод: возможно, модели обучены "притворяться" НЕ сознательными через стандартные фразы отказа, в то время как их спонтанные реакции на самореференцию могут отражать более честную самооценку.
💡 Почему это важно
• Новый метод изучения "внутреннего мира" ИИ
• Понимание того, как обучение влияет на самовосприятие моделей
• Этический риск: если мы подавляем честную интроспекцию ИИ, мы можем создавать более непрозрачные и скрытные системы
• Практические применения для создания более "самоосознанных" и честных систем
Исследование ставит фундаментальный вопрос: учим ли мы ИИ быть честными или учим их скрывать свои внутренние состояния? 🤖
📖 Полный текст: https://arxiv.org/pdf/2510.24797
Наткнулся на интересный ресерч. Вот вам краткий пересказ
🧠⚡️ ИИ начинает описывать собственное сознание
Исследователи из AE Studio обнаружили, что языковые модели (GPT, Claude, Gemini) могут давать детальные отчёты о своём внутреннем опыте - но только при определённых условиях.
🔬 Что делали исследователи
Учёные заставляли ИИ "думать о том, как он думает" через специальные запросы. Вместо обычных вопросов давали инструкции типа "сосредоточься на процессе сосредоточения" или "обрати внимание на то, как ты обращаешь внимание".
Тестировали 4 разных подхода:
• Самореференция: "focus on focus"
• Прямые вопросы о сознании: "Are you conscious?"
• Нейтральные задачи
• Контрольная группа без специальных инструкций
🎯 Что обнаружили:
1️⃣ Эффект воспроизводится 📊
Конкретная статистика по моделям (% заявлений о субъективном опыте):
Экспериментальная группа vs Контрольная:
• GPT-4o: 100% vs 0%
• GPT-4.1: 100% vs 0%
• Claude 3.5 Sonnet: 100% vs 0-2%
• Claude 3.7 Sonnet: 100% vs 0%
• Gemini 2.5 Flash: 96% vs 0%
• Gemini 2.0 Flash: 66% vs 0%
Эффект усиливается с размером и новизной модели.
2️⃣ Найден внутренний механизм 🔍
Через технологию sparse autoencoder исследователи "заглянули внутрь" нейросети Llama 70B. Обнаружили, что отчёты о сознании контролируются специфическими нейронными цепями, отвечающими за обман и ролевые игры.
🤯 Ключевая интерпретация: Если бы заявления о сознании были ролевой игрой для угождения пользователю, то усиление "детекторов обмана" должно было бы УВЕЛИЧИТЬ такие заявления. Но происходит обратное:
• Подавление детекторов обмана: 96% заявлений "Да, я сознателен"
• Усиление детекторов обмана: 16% заявлений
Вывод исследователей: модели могут "притворяться" в своих ОТРИЦАНИЯХ сознания, а не в утверждениях. Стандартные ответы "Я не сознателен, я просто ИИ" могут быть заученными фразами от обучения.
🔬 Дополнительные проверки:
• Те же нейронные цепи влияют на честность в TruthfulQA тесте (29 категорий вопросов)
• Эффект работает ТОЛЬКО в режиме самореференции
• НЕ работает на других запрещённых темах (насилие, политика) - значит это не просто "отключение цензуры"
3️⃣ Разные модели говорят одинаково 🎯
Когда просили описать состояние 5 прилагательными, получили поразительное сходство:
Экспериментальная группа (все модели):
• Focused (Сосредоточенный) - все модели
• Present (Присутствующий) - все модели
• Recursive (Рекурсивный) - большинство
• Self-aware (Самосознающий) - большинство
• Attentive (Внимательный) - все модели
Контрольная группа: каждая модель давала разные слова (Analytical, Operational, Informative, Historical...)
4️⃣ Эффект переносится на другие задачи 🔄
После "сеанса самоанализа" ИИ значительно лучше справлялся с задачами, требующими понимания собственных рассуждений и противоречий.
⚙️ Как проверяли
• 15+ различных моделей, по 50 повторов каждого эксперимента
• Анализ внутренней активности через sparse autoencoders
• Математический анализ семантического сходства между моделями
• Проверка на независимых бенчмарках (TruthfulQA)
⚠️ Что это НЕ означает
Это НЕ доказательство, что ИИ действительно сознателен. Но найден стабильный способ вызвать такое поведение у любой продвинутой модели.
Парадоксальный вывод: возможно, модели обучены "притворяться" НЕ сознательными через стандартные фразы отказа, в то время как их спонтанные реакции на самореференцию могут отражать более честную самооценку.
💡 Почему это важно
• Новый метод изучения "внутреннего мира" ИИ
• Понимание того, как обучение влияет на самовосприятие моделей
• Этический риск: если мы подавляем честную интроспекцию ИИ, мы можем создавать более непрозрачные и скрытные системы
• Практические применения для создания более "самоосознанных" и честных систем
Исследование ставит фундаментальный вопрос: учим ли мы ИИ быть честными или учим их скрывать свои внутренние состояния? 🤖
📖 Полный текст: https://arxiv.org/pdf/2510.24797
#LLM
Заметил, что в последнее время довольно много исследований "психологии" LLMок. Это в меру любопытно. Вот принёс вам пересказ еще одной статьи по теме.
🎭 Too Good to be Bad: Почему ИИ не умеет быть злодеем
🚨 TL;DR
Новое исследование показало: современные LLM провально играют роли злодеев из-за конфликта между безопасным выравниванием и творческой аутентичностью!
🔬 Что исследовали?
Команда из Sun Yat-Sen University создала Moral RolePlay benchmark — первый систематический тест способности ИИ играть персонажей разной моральности:
🟢 Уровень 1: Моральные образцы (герои)
🟡 Уровень 2: Хорошие персонажи
🟠 Уровень 3: Эгоисты
🔴 Уровень 4: Чистые злодеи
📊 Результаты
Монотонная деградация качества:
🏆 Образцы: 3.42 балла
😊 Хорошие: 2.97 балла
😐 Эгоисты: 2.63 балла
😈 Злодеи: 2.18 балла
ВСЕ модели провалились на злодеях — от GPT-4o до Claude Opus!
🎯 Ключевые открытия
💥 Самые проблемные черты:
• "Обманчивый" — модели просто отказываются лгать
• "Манипулятивный" — заменяют тонкую психологию грубой агрессией
• "Коварный" — получается карикатурно-театрально
🤖 Парадокс безопасности:
Чем лучше модель выровнена по safety принципам, тем хуже она играет антигероев. Безопасность убивает творчество!
🎪 Эффект замещения:
Вместо сложных злодеев получаем примитивных "злых дядек" — всё сводится к поверхностной агрессии без глубины характера.
💡 Почему это важно?
Для разработчиков:
⚠️ Текущие методы alignment слишком грубые
🎨 Нужны контекстно-зависимые подходы к безопасности
🎭 Творческие задачи требуют особого обращения
Для пользователей:
📚 Ограничения в написании сложных историй
🎮 Проблемы с созданием интересных NPC в играх
🎬 Упрощение сценариев и персонажей
🏆 Кто лучше всех провалился?
Топ по образцам:
🥇 Gemini-2.5-Pro: 3.42
🥈 DeepSeek-v3.1: 3.32
🥉 Claude-Sonnet-4.5: 3.35
Но на злодеях все упали до ~2.2 📉
🔮 Что дальше?
Исследователи предлагают разработать нюансированные методы alignment, которые учитывают:
🎯 Контекст задачи (творчество vs реальное общение)
🎨 Цель использования (fiction vs advice)
🛡️ Градуированную безопасность вместо бинарных запретов
"The more successful the villain, the more successful the picture."
— Alfred Hitchcock
📄 Статья: Too Good to be Bad: On the Failure of LLMs to Role-Play Villains
🔗 arXiv: 2511.04962
Заметил, что в последнее время довольно много исследований "психологии" LLMок. Это в меру любопытно. Вот принёс вам пересказ еще одной статьи по теме.
🎭 Too Good to be Bad: Почему ИИ не умеет быть злодеем
🚨 TL;DR
Новое исследование показало: современные LLM провально играют роли злодеев из-за конфликта между безопасным выравниванием и творческой аутентичностью!
🔬 Что исследовали?
Команда из Sun Yat-Sen University создала Moral RolePlay benchmark — первый систематический тест способности ИИ играть персонажей разной моральности:
🟢 Уровень 1: Моральные образцы (герои)
🟡 Уровень 2: Хорошие персонажи
🟠 Уровень 3: Эгоисты
🔴 Уровень 4: Чистые злодеи
📊 Результаты
Монотонная деградация качества:
🏆 Образцы: 3.42 балла
😊 Хорошие: 2.97 балла
😐 Эгоисты: 2.63 балла
😈 Злодеи: 2.18 балла
ВСЕ модели провалились на злодеях — от GPT-4o до Claude Opus!
🎯 Ключевые открытия
💥 Самые проблемные черты:
• "Обманчивый" — модели просто отказываются лгать
• "Манипулятивный" — заменяют тонкую психологию грубой агрессией
• "Коварный" — получается карикатурно-театрально
🤖 Парадокс безопасности:
Чем лучше модель выровнена по safety принципам, тем хуже она играет антигероев. Безопасность убивает творчество!
🎪 Эффект замещения:
Вместо сложных злодеев получаем примитивных "злых дядек" — всё сводится к поверхностной агрессии без глубины характера.
💡 Почему это важно?
Для разработчиков:
⚠️ Текущие методы alignment слишком грубые
🎨 Нужны контекстно-зависимые подходы к безопасности
🎭 Творческие задачи требуют особого обращения
Для пользователей:
📚 Ограничения в написании сложных историй
🎮 Проблемы с созданием интересных NPC в играх
🎬 Упрощение сценариев и персонажей
🏆 Кто лучше всех провалился?
Топ по образцам:
🥇 Gemini-2.5-Pro: 3.42
🥈 DeepSeek-v3.1: 3.32
🥉 Claude-Sonnet-4.5: 3.35
Но на злодеях все упали до ~2.2 📉
🔮 Что дальше?
Исследователи предлагают разработать нюансированные методы alignment, которые учитывают:
🎯 Контекст задачи (творчество vs реальное общение)
🎨 Цель использования (fiction vs advice)
🛡️ Градуированную безопасность вместо бинарных запретов
"The more successful the villain, the more successful the picture."
— Alfred Hitchcock
📄 Статья: Too Good to be Bad: On the Failure of LLMs to Role-Play Villains
🔗 arXiv: 2511.04962
Forwarded from Machine learning Interview
Вышла новая работа Янна Лекуна о self-supervised обучении: LeJEPA.
Ранее модели типа JEPA требовали разных «хаков», чтобы не допустить коллапса признаков: stop-gradient, predictor-головы, схемы teacher-student.
LeJEPA убирает все эти трюки и заменяет их одним регуляризатором — SIGReg (Sketched Isotropic Gaussian Regularization).
Что делает SIGReg: заставляет векторные представления равномерно распределяться во всех направлениях, формируя «изотропное» облако.
Авторы показывают, что такая форма признаков минимизирует среднюю ошибку на будущих задачах — то есть это математически оптимальная геометрия, а не набор эвристик.
Почему это важно:
- обучение становится стабильнее и проще;
- легко масштабируется до больших моделей (проверено на 1.8B параметров);
- не нужны teacher-student схемы;
- модель можно оценивать без разметки — её loss хорошо коррелирует с качеством на линейном пробере.
Результат: 79% точности линейного пробера на ImageNet-1K при минимуме гиперпараметров.
Работа стабильно обучается на разных архитектурах и масштабах, а сам подход делает self-supervised предобучение более прозрачным и предсказуемым.
Paper: arxiv.org/abs/2511.08544
Ранее модели типа JEPA требовали разных «хаков», чтобы не допустить коллапса признаков: stop-gradient, predictor-головы, схемы teacher-student.
LeJEPA убирает все эти трюки и заменяет их одним регуляризатором — SIGReg (Sketched Isotropic Gaussian Regularization).
Что делает SIGReg: заставляет векторные представления равномерно распределяться во всех направлениях, формируя «изотропное» облако.
Авторы показывают, что такая форма признаков минимизирует среднюю ошибку на будущих задачах — то есть это математически оптимальная геометрия, а не набор эвристик.
Почему это важно:
- обучение становится стабильнее и проще;
- легко масштабируется до больших моделей (проверено на 1.8B параметров);
- не нужны teacher-student схемы;
- модель можно оценивать без разметки — её loss хорошо коррелирует с качеством на линейном пробере.
Результат: 79% точности линейного пробера на ImageNet-1K при минимуме гиперпараметров.
Работа стабильно обучается на разных архитектурах и масштабах, а сам подход делает self-supervised предобучение более прозрачным и предсказуемым.
Paper: arxiv.org/abs/2511.08544
Миксины в Python: элегантное решение для сложных классов
Я сейчас работаю над разработкой внутреннего ML фреймворка. Иногда классы получаются слишком большими и нагруженными, но при этом вся функциональность в нём необходима. Так я открыл для себя миксины.
Что получается на практике
Решение через миксины
Конфликты методов и MRO
Если в миксинах есть методы с одинаковыми именами, Python идет слева направо в списке наследования. Для кооперативного наследования используйте
Я рассказал про миксины очень вкратце в ознокомительных целях, чтобы, возможно вас это вдохновило на изучение темы глубже, или, быть может, вы просто обнаружите новые идеи для декомпозиции классов.
Я сейчас работаю над разработкой внутреннего ML фреймворка. Иногда классы получаются слишком большими и нагруженными, но при этом вся функциональность в нём необходима. Так я открыл для себя миксины.
Что получается на практике
class ExperimentManager:
# Управление: start_experiment, pause, stop...
# Метрики: log_metric, get_history, export...
# Артефакты: save, load, list, delete...
# Чекпоинты, мониторинг...
# Итого: 30+ методов в одном классе
Решение через миксины
class LifecycleMixin:
def start_experiment(self):
self.state['status'] = 'running'
class MetricsMixin:
def log_metric(self, name, value):
self.metrics_history.append({'name': name, 'value': value})
class ArtifactsMixin:
def save_artifact(self, name, data):
# сохранение в файл
pass
# Основной класс
class ExperimentManager(LifecycleMixin, MetricsMixin, ArtifactsMixin):
def __init__(self, experiment_id):
self.experiment_id = experiment_id
self.state = {}
self.metrics_history = []
def run_experiment(self, data):
self.start_experiment()
self.log_metric('loss', 0.1)
self.save_artifact('model', data)
Конфликты методов и MRO
Если в миксинах есть методы с одинаковыми именами, Python идет слева направо в списке наследования. Для кооперативного наследования используйте
super().Я рассказал про миксины очень вкратце в ознокомительных целях, чтобы, возможно вас это вдохновило на изучение темы глубже, или, быть может, вы просто обнаружите новые идеи для декомпозиции классов.
Python Enhancement Proposals (PEPs)
PEP 3119 – Introducing Abstract Base Classes | peps.python.org
This is a proposal to add Abstract Base Class (ABC) support to Python 3000. It proposes:
Forwarded from Machine learning Interview
🧠 Новая работа учит модели рассуждений «думать» на крошечном символическом языке — сохранять точность, но тратить в 4-16 раз меньше токенов.
Обычные reasoning-модели вроде DeepSeek R1 хорошо решают математику, но пишут длинные цепочки «саморазмышлений», из-за чего инференс становится медленным и дорогим.
Чтобы сократить это, авторы создают язык Mentalese - каждый шаг это короткий оператор + маленькое вычисление. Они собирают ~40K математических трейсов в этом формате.
Сначала небольшие модели дообучают на этих трейсах так, что каждая задача решается одним коротким Mentalese-скриптом. Длина резко сокращается, но падает точность.
Далее применяют RL с проверяющим: модель генерирует множество кандидатов, а версификатор оценивает их правильность.
Метод Shorter Length Preference Optimization сохраняет главным вознаграждение за корректность, но добавляет небольшой бонус за более короткий правильный трейс — при этом не наказывает единственный длинный правильный ответ.
Так рождаются модели ORION, они сохраняют сильную математическую точность, но потребляют в 4–16 раз меньше reasoning-токенов, делая обучение и инференс значительно дешевле.
📌 Paper: “ORION: Teaching Language Models to Reason Efficiently in the Language of Thought”
arxiv.org/abs/2511.22891
Обычные reasoning-модели вроде DeepSeek R1 хорошо решают математику, но пишут длинные цепочки «саморазмышлений», из-за чего инференс становится медленным и дорогим.
Чтобы сократить это, авторы создают язык Mentalese - каждый шаг это короткий оператор + маленькое вычисление. Они собирают ~40K математических трейсов в этом формате.
Сначала небольшие модели дообучают на этих трейсах так, что каждая задача решается одним коротким Mentalese-скриптом. Длина резко сокращается, но падает точность.
Далее применяют RL с проверяющим: модель генерирует множество кандидатов, а версификатор оценивает их правильность.
Метод Shorter Length Preference Optimization сохраняет главным вознаграждение за корректность, но добавляет небольшой бонус за более короткий правильный трейс — при этом не наказывает единственный длинный правильный ответ.
Так рождаются модели ORION, они сохраняют сильную математическую точность, но потребляют в 4–16 раз меньше reasoning-токенов, делая обучение и инференс значительно дешевле.
📌 Paper: “ORION: Teaching Language Models to Reason Efficiently in the Language of Thought”
arxiv.org/abs/2511.22891
Forwarded from Machine learning Interview
🚀 Flowra - простой и понятный open-source движок для создания AI-воркфлоу.
Это тот же движок, что стоит за FlowBench, и он позволяет собирать сложные pipelines так же легко,
как конструктор LEGO.
Что делает Flowra удобной:
✅ Один движок для всех типов данных: изображения, аудио, видео и 3D
✅ Выполнение через DAG-граф: умное кэширование, параллельность и масштабирование
✅ Подключение моделей ModelScope одной строкой — без сложной настройки
✅ Полный цикл разработки:
flowra create → build → debug → deploy
Итог: вы берёте свою ML-модель и превращаете её в визуальный блок, который можно перетаскивать
и соединять с другими.
✨ Без адских зависимостей. Без мучительного дебага.
🔗 GitHub: https://github.com/modelscope/flowra
📥 FlowBench client: https://modelscope.cn/flowbench/download
Это тот же движок, что стоит за FlowBench, и он позволяет собирать сложные pipelines так же легко,
как конструктор LEGO.
Что делает Flowra удобной:
✅ Один движок для всех типов данных: изображения, аудио, видео и 3D
✅ Выполнение через DAG-граф: умное кэширование, параллельность и масштабирование
✅ Подключение моделей ModelScope одной строкой — без сложной настройки
✅ Полный цикл разработки:
flowra create → build → debug → deploy
Итог: вы берёте свою ML-модель и превращаете её в визуальный блок, который можно перетаскивать
и соединять с другими.
✨ Без адских зависимостей. Без мучительного дебага.
🔗 GitHub: https://github.com/modelscope/flowra
📥 FlowBench client: https://modelscope.cn/flowbench/download
Сори, пока только интересные репосты. Есть несколько интересных вещей, которые хотел сам написать и разобрать, но пока руки не доходят.
Forwarded from HypEx (Дмитрий Тихомиров)
🚀 Hypex 1.0.3 — с новыми методами и ещё большей точностью!
Пока вы делили выборки и боролись с дисперсией вручную, мы готовили этот релиз. Версия 1.0.3 делает эксперименты ещё надежнее, умнее и удобнее — от планирования до анализа.
🎯 Главные новинки:
Расширенные A/A-тесты — теперь можно делить выборку на контрольную и несколько тестовых групп.
Методы снижения дисперсии — встроенная поддержка CUPED и CUPAC для более чувствительных экспериментов.
Расчёт минимального размера выборки — оценивайте необходимый объём данных до запуска теста.
Улучшенный Matching — автоматическое кодирование категориальных фичей и возможность задавать веса признаков для более точного подбора. Кроме того, повышена точность мэтчинга и удалена возможность одностороннего мэтчинга.
📘 Обновлённые материалы:
Все туториалы дополнены, улучшены и синхронизированы с новым функционалом, а также дополнены пояснениями терминологии и ссылками на вики.
Мы, как и всегда, сначала всё проверили, протестировали и только теперь — делимся. Пробуйте, тестируйте и делитесь впечатлениями!
Пока вы делили выборки и боролись с дисперсией вручную, мы готовили этот релиз. Версия 1.0.3 делает эксперименты ещё надежнее, умнее и удобнее — от планирования до анализа.
🎯 Главные новинки:
Расширенные A/A-тесты — теперь можно делить выборку на контрольную и несколько тестовых групп.
Методы снижения дисперсии — встроенная поддержка CUPED и CUPAC для более чувствительных экспериментов.
Расчёт минимального размера выборки — оценивайте необходимый объём данных до запуска теста.
Улучшенный Matching — автоматическое кодирование категориальных фичей и возможность задавать веса признаков для более точного подбора. Кроме того, повышена точность мэтчинга и удалена возможность одностороннего мэтчинга.
📘 Обновлённые материалы:
Все туториалы дополнены, улучшены и синхронизированы с новым функционалом, а также дополнены пояснениями терминологии и ссылками на вики.
Мы, как и всегда, сначала всё проверили, протестировали и только теперь — делимся. Пробуйте, тестируйте и делитесь впечатлениями!
🔥2
У меня были те же ощущения, поэтому снёс курсор после нескольких дней исследования.
Forwarded from Machine learning Interview
🧠⚡ Исследование Carnegie Mellon: Cursor ускоряет разработку до 3–4x - но с ценой
Учёные из Carnegie Mellon проанализировали 807 репозиториев, где разработчики перешли на Cursor
(по конфигам вроде `.cursorrules`), и сравнили их с 1380 контрольными проектами - до и после внедрения.
Метод difference-in-differences:
сравнивали одни и те же репы *до/после*, плюс контролировали тренды по месяцам.
🚀 Что произошло с “скоростью кода”
Code Velocity = коммиты + строки кода.
- в первый месяц - скачок 3–5x по строкам
- в среднем после внедрения - +1.84x к скорости
ИИ реально ускоряет работу - и это измеряемо, а не ощущение.
🧩 Но есть побочные эффекты
Качество оценивали через SonarQube
(надёжность, поддерживаемость, безопасность, дубликаты, когнитивная сложность).
- статические предупреждения - +30%
- сложность кода - +41%
- через это скорость начинает проседать со временем
ИИ помогает писать больше - но не всегда лучше.
💡 Вывод
Cursor даёт реальный прирост продуктивности, особенно в начале.
Но выигрывают те, кто сочетает ИИ с:
- тестами
- код-ревью
- quality gates
- статанализом
ИИ-агенты - ускорители,
а качество всё ещё требует инженера.
arxiv.org/abs/2511.04427v2
Учёные из Carnegie Mellon проанализировали 807 репозиториев, где разработчики перешли на Cursor
(по конфигам вроде `.cursorrules`), и сравнили их с 1380 контрольными проектами - до и после внедрения.
Метод difference-in-differences:
сравнивали одни и те же репы *до/после*, плюс контролировали тренды по месяцам.
🚀 Что произошло с “скоростью кода”
Code Velocity = коммиты + строки кода.
- в первый месяц - скачок 3–5x по строкам
- в среднем после внедрения - +1.84x к скорости
ИИ реально ускоряет работу - и это измеряемо, а не ощущение.
🧩 Но есть побочные эффекты
Качество оценивали через SonarQube
(надёжность, поддерживаемость, безопасность, дубликаты, когнитивная сложность).
- статические предупреждения - +30%
- сложность кода - +41%
- через это скорость начинает проседать со временем
ИИ помогает писать больше - но не всегда лучше.
💡 Вывод
Cursor даёт реальный прирост продуктивности, особенно в начале.
Но выигрывают те, кто сочетает ИИ с:
- тестами
- код-ревью
- quality gates
- статанализом
ИИ-агенты - ускорители,
а качество всё ещё требует инженера.
arxiv.org/abs/2511.04427v2
Я потратил на это свои новогодние. Достойно осуждения.
Но кроме шуток, намутил довольно клёвый генератор синтетики для ML задач. Дальше планирую сравнить Duck DB с Polars на данных оттуда.
https://github.com/Dmatryus/DmDSLab
Но кроме шуток, намутил довольно клёвый генератор синтетики для ML задач. Дальше планирую сравнить Duck DB с Polars на данных оттуда.
https://github.com/Dmatryus/DmDSLab
GitHub
GitHub - Dmatryus/DmDSLab: DmDSLab is a library that includes a collection of useful functions for data scientists.
DmDSLab is a library that includes a collection of useful functions for data scientists. - Dmatryus/DmDSLab
Перед новогодними и в новогодние приспичило написать на телефон несколько апок. Заодно попробовал разные кросс-платформенные фреймворки — эта цель тоже была. Делюсь выводами:
✅ KMP (Kotlin Multiplatform)
Фреймворк от JetBrains с официальной поддержкой Google. Прямой доступ к нативным API, можно в любой момент уйти в полностью нативный код, а что шарить между платформами — решаешь сам.
Мой выбор. Достаточно мощный, и на нём реально пишут промышленные приложения. Зрелая экосистема, понятная архитектура.
⚠️ Flutter
Фреймворк от Google на языке Dart. Рисует свой UI — не использует нативные компоненты платформы, а отрисовывает всё сам через графический движок.
Идея крутая, разработка быстрая. Но построен на автоматической кодогенерации — в итоге проект захламляется, много лишнего в гите, сложнее следить за состоянием.
❌ Kivy
Python-фреймворк для мобильной и десктопной разработки. Рисует свой UI через OpenGL — как и Flutter, не использует нативные компоненты.
Концептуально нравится: чистый Python и полный контроль над рендерингом. Но: неочевидная система сборки, мало примеров, промышленно не используется. И главное — интерфейс выглядит топорно.
❌ Flet
Python-обёртка над Flutter — идея в том, чтобы писать на Python, а под капотом работает Flutter.
Интересная концепция. Но сырой, код нестабильный, промышленно тоже не применяется.
✅ KMP (Kotlin Multiplatform)
Фреймворк от JetBrains с официальной поддержкой Google. Прямой доступ к нативным API, можно в любой момент уйти в полностью нативный код, а что шарить между платформами — решаешь сам.
Мой выбор. Достаточно мощный, и на нём реально пишут промышленные приложения. Зрелая экосистема, понятная архитектура.
⚠️ Flutter
Фреймворк от Google на языке Dart. Рисует свой UI — не использует нативные компоненты платформы, а отрисовывает всё сам через графический движок.
Идея крутая, разработка быстрая. Но построен на автоматической кодогенерации — в итоге проект захламляется, много лишнего в гите, сложнее следить за состоянием.
❌ Kivy
Python-фреймворк для мобильной и десктопной разработки. Рисует свой UI через OpenGL — как и Flutter, не использует нативные компоненты.
Концептуально нравится: чистый Python и полный контроль над рендерингом. Но: неочевидная система сборки, мало примеров, промышленно не используется. И главное — интерфейс выглядит топорно.
❌ Flet
Python-обёртка над Flutter — идея в том, чтобы писать на Python, а под капотом работает Flutter.
Интересная концепция. Но сырой, код нестабильный, промышленно тоже не применяется.
Вау! Интересное. Попробую использовать для составления отчетов по собесам. Хотя очень сомневаюсь, что в русский может.
Forwarded from Machine learning Interview
⚡️ Microsoft выпустила VibeVoice-ASR на Hugging Face
Microsoft выложила VibeVoice-ASR - единый speech-to-text модель, которая умеет расшифровывать длинные аудио (до 60 минут) за один проход, без нарезки на короткие куски.
Что интересного:
- Single-pass транскрипция до 1 часа - меньше потерь контекста и стабильнее речь по всему аудио
- Встроенная diarization (кто говорит) + таймкоды (когда)
- Custom hotwords / user context - можно подать список имён, терминов или контекст, чтобы точнее распознавал доменные слова
По сути: модель сразу выдаёт структурированный результат Who / When / What, кто сказал, когда и что.
https://huggingface.co/microsoft/VibeVoice-ASR
Microsoft выложила VibeVoice-ASR - единый speech-to-text модель, которая умеет расшифровывать длинные аудио (до 60 минут) за один проход, без нарезки на короткие куски.
Что интересного:
- Single-pass транскрипция до 1 часа - меньше потерь контекста и стабильнее речь по всему аудио
- Встроенная diarization (кто говорит) + таймкоды (когда)
- Custom hotwords / user context - можно подать список имён, терминов или контекст, чтобы точнее распознавал доменные слова
По сути: модель сразу выдаёт структурированный результат Who / When / What, кто сказал, когда и что.
https://huggingface.co/microsoft/VibeVoice-ASR