Dmatryusофрения
40 subscribers
290 photos
10 videos
15 files
148 links
Пишу о книгах, лидерстве, технологиях, opensource, своих проектах и наверное чем-то ещё. Ну и репосты IT приколямб.
Download Telegram
#open_source

🐙 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/
2
🚀 Nvidia снова в огне!

Их новы метод GenCluster впервые позволил *открытой модели* догнать лидеров из закрытых лабораторий.

🧠 Модель gpt-oss-120b взяла золото на IOI 2025 (International Olympiad in Informatics) — впервые в истории open-source-ИИ!

Модель генерирует тысячи решений с кодом,тестирует их, группирует уникальные стратегии и устраивает «турнир» между лучшими — судит всё это другой ИИ.

📊 Результат: 446.75 балла, официально подтверждён золотой медалью.

Теперь это новый подход к решению *по-настоящему сложных задач* - масштабируемое вычисление во время теста.

https://arxiv.org/abs/2510.14232v1
🔥2
Я 🫠
😁3
Красивые девушки, красивы во всем. Правда без макияжа явно фильтры используются. Думаю, что для генерации она должна быть побольше.
🔥3😁2
#LLM

Попробовал тут 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
#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
Вышла новая работа Янна Лекуна о 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
Миксины в 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().

Я рассказал про миксины очень вкратце в ознокомительных целях, чтобы, возможно вас это вдохновило на изучение темы глубже, или, быть может, вы просто обнаружите новые идеи для декомпозиции классов.
🧠 Новая работа учит модели рассуждений «думать» на крошечном символическом языке — сохранять точность, но тратить в 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
🚀 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
Сори, пока только интересные репосты. Есть несколько интересных вещей, которые хотел сам написать и разобрать, но пока руки не доходят.
Forwarded from HypEx (Дмитрий Тихомиров)
🚀 Hypex 1.0.3 — с новыми методами и ещё большей точностью!

Пока вы делили выборки и боролись с дисперсией вручную, мы готовили этот релиз. Версия 1.0.3 делает эксперименты ещё надежнее, умнее и удобнее — от планирования до анализа.

🎯 Главные новинки:

Расширенные A/A-тесты теперь можно делить выборку на контрольную и несколько тестовых групп.

Методы снижения дисперсии — встроенная поддержка CUPED и CUPAC для более чувствительных экспериментов.

Расчёт минимального размера выборки — оценивайте необходимый объём данных до запуска теста.

Улучшенный Matching — автоматическое кодирование категориальных фичей и возможность задавать веса признаков для более точного подбора. Кроме того, повышена точность мэтчинга и удалена возможность одностороннего мэтчинга.

📘 Обновлённые материалы:

Все туториалы дополнены, улучшены и синхронизированы с новым функционалом, а также дополнены пояснениями терминологии и ссылками на вики.

Мы, как и всегда, сначала всё проверили, протестировали и только теперь — делимся. Пробуйте, тестируйте и делитесь впечатлениями!
🔥2
У меня были те же ощущения, поэтому снёс курсор после нескольких дней исследования.
🧠 Исследование 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
Я потратил на это свои новогодние. Достойно осуждения.

Но кроме шуток, намутил довольно клёвый генератор синтетики для ML задач. Дальше планирую сравнить Duck DB с Polars на данных оттуда.

https://github.com/Dmatryus/DmDSLab
Перед новогодними и в новогодние приспичило написать на телефон несколько апок. Заодно попробовал разные кросс-платформенные фреймворки — эта цель тоже была. Делюсь выводами:

KMP (Kotlin Multiplatform)
Фреймворк от JetBrains с официальной поддержкой Google. Прямой доступ к нативным API, можно в любой момент уйти в полностью нативный код, а что шарить между платформами — решаешь сам.
Мой выбор. Достаточно мощный, и на нём реально пишут промышленные приложения. Зрелая экосистема, понятная архитектура.

⚠️ Flutter
Фреймворк от Google на языке Dart. Рисует свой UI — не использует нативные компоненты платформы, а отрисовывает всё сам через графический движок.
Идея крутая, разработка быстрая. Но построен на автоматической кодогенерации — в итоге проект захламляется, много лишнего в гите, сложнее следить за состоянием.

Kivy
Python-фреймворк для мобильной и десктопной разработки. Рисует свой UI через OpenGL — как и Flutter, не использует нативные компоненты.
Концептуально нравится: чистый Python и полный контроль над рендерингом. Но: неочевидная система сборки, мало примеров, промышленно не используется. И главное — интерфейс выглядит топорно.

Flet
Python-обёртка над Flutter — идея в том, чтобы писать на Python, а под капотом работает Flutter.
Интересная концепция. Но сырой, код нестабильный, промышленно тоже не применяется.
Вау! Интересное. Попробую использовать для составления отчетов по собесам. Хотя очень сомневаюсь, что в русский может.
⚡️ 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