Обновить

Все потоки

Сначала показывать
Порог рейтинга

Большинство объяснений машинного обучения начинаются с нейронов, весов или градиентного спуска. Но есть одна деталь, без которой вся эта конструкция вообще не работает.

Откуда модель вообще узнаёт, что ошиблась? Именно с этого, как мне кажется, и стоит начинать изучение машинного обучения. В новой части книги я попытался объяснить это максимально просто и без фраз вроде "нейросеть сама обучается". Разбираем, что такое ошибка, почему она превращается в loss-функцию, зачем вообще нужны MSE и Log Loss, и как несколько строк математики становятся тем самым сигналом, который заставляет модель становиться лучше. Loss-функции являются центральным механизмом обучения современных моделей машинного обучения.

Если давно хотели понять, что происходит "под капотом" современных AI-моделей – буду рад, если почитаете.

📖 https://apphp.gitbook.io/ai-dlya-php-razrabotchikov-intuitivno-i-na-praktike/chast-ii.-obuchenie-kak-optimizaciya/2.1-oshibka-loss-funkcii-i-zachem-oni-nuzhny

Теги:
+4
Комментарии0

Cтaтья «BotSharp изнyтpи: ищeм cлaбыe мecтa в кoдe ИИ‑плaтфopмы нa.NET»

Пpинятo cчитaть, чтo в AI и ML бeз Python никyдa, a.NET — этo иcключитeльнo иcтopия пpo enterprise, вeб‑paзpaбoткy и гeймдeв. Ho пpoeкт BotSharp гoтoв пocпopить c этим cтepeoтипoм, пpeдлaгaя ИИ‑плaтфopмy нa экocиcтeмe Microsoft.

Mы peшили зaглянyть пoд кaпoт BotSharp и пpoвepить, какие ошибки есть в его иcxoдном кoде.

Теги:
+7
Комментарии0

Согласно новому исследованию, ИИ лучше человека в переписке с человеком проходит тест Тьюринга.

При предложении принять человекоподобный образ, GPT-4.5 был признан человеком в 73% случаев. Это значительно чаще, чем участники опроса выбирали реального человека.

Исследование: C.R. Jones, & B.K. Bergen, Large language models pass a standard three-party Turing test, Proc. Natl. Acad. Sci. 2026. DOI: 10.1073/pnas.2524472123

Источник: https://www.facebook.com/4everscience/

Теги:
+4
Комментарии0

Хотел сделать крутую онлайн игру. Расскажу где всё пошло не так

Идея была простая до безобразия. Браузерная змейка но с живыми соперниками. Canvas, websocket, Node.js. Всё это я более-менее знал, казалось делов на пару выходных.

Первый день вообще огонь. Змейка ползает, еду ест, растёт, цвета красивые. Думаю ну всё, осталось только игроков подключить.

Ага.

Синхронизация это ад

Подключил websocket, запустил два браузера на одной машине, вроде видят друг друга. Отлично. Добавил искусственную задержку 50мс чтобы проверить как будет на реальной сети.

Всё сломалось.

У одного игрока змейка уже повернула, у второго она ещё летит прямо. Столкновения каждый клиент считает сам по своей картинке мира. Один видит что убил соперника, второй видит что убил он. Оба правы по своей логике.

Полез гуглить. Нашёл что это называется authoritative server, client-side prediction, lag compensation. Понял что я вообще не туда смотрел когда проектировал. Думал займёт вечер. Потратил месяц и всё равно сделал через одно место.

Лобби которое я не планировал

Ок, физику перенёс на сервер. Теперь надо чтобы игроки могли найти друг друга, подождать, начать игру. Звучит как мелочь.

Это не мелочь.

Ожидание, старт, игра, конец, переиграть — каждое состояние надо синхронизировать. И самое весёлое это когда один игрок просто закрыл вкладку в середине партии. Что показывать второму? Кто победил? Как засчитать? Три вечера только на обработку разрывов соединения.

Читер за пять минут

Дал поиграть другу. Через пять минут он открыл консоль и начал отправлять серверу произвольные координаты. Змейка телепортировалась куда хочет. Я вообще не думал об этом когда писал архитектуру.

Что по итогу

Игра работает. Можно найти соперника и сыграть партию. Но код это такой клубок что я боюсь его открывать.

Главное что понял: онлайн игра это не игра плюс немного сетевого кода. Это совсем другая задача где сеть и есть основная сложность. Я недооценил это раз в десять минимум.

Код выложу на GitHub как разберу этот клубок. Пока стыдно показывать.

Кто делал нормальный мультиплеер в браузере, как решали синхронизацию? Потому что мои костыли мне самому не нравятся.

Теги:
+4
Комментарии2

Прежде чем тащить ИИ в процесс, сначала разберись что вообще происходит

Приходил недавно в одну компанию. Ребята хотели автоматизировать обработку заявок от клиентов. Уже выбрали инструмент, уже договорились с подрядчиком, уже почти подписали.

Попросил показать как сейчас работает процесс.

Оказалось что заявки приходят в три разных места: почта, телеграм и форма на сайте. Каждый менеджер забирает откуда хочет. Статусы никто не ведёт в режиме реального времени, только отчёты за месяц. Дубли не отслеживаются. Как итог клиентов обзванивают по несколько раз, тратя время и нервы.

Я спрашиваю: а что именно хотите автоматизировать? Они говорят: ну вот этот весь процесс, чтобы было чётко.

Это не автоматизация. Это ускорение хаоса.

Я уже видел такое несколько раз за последний год. Компания чувствует что что-то идёт не так, слышит везде про ИИ, решает что это и есть ответ. Но ИИ не чинит кривой процесс. Он его копирует и делает быстрее.

Правило которое я для себя вывел: если не можешь объяснить процесс новому сотруднику за 10 минут так чтобы он пошёл и сделал, не ломая при этом общую структуру, то автоматизировать ещё рано. Сначала объясни людям, выстрой свою систему, а потом уже автоматизируй.

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

Кто сталкивался с таким, когда приходили автоматизировать а оказывалось что сначала надо просто навести порядок?

Теги:
+4
Комментарии0

🎓 День открытых дверей онлайн-магистратуры МФТИ «Управление ИТ-продуктами»

Если вы планируете развиваться в продуктовом менеджменте и хотите разобраться, как устроено обучение в онлайн-магистратуре, приходите на онлайн-встречу МФТИ.

На эфире расскажем:

▪️ Как устроена программа «Управление ИТ-продуктами».

▪️ Какие дисциплины изучают студенты и как проходят занятия.

▪️ Как организована работа над дипломом, проектами и взаимодействие с экспертами.

▪️ Какие карьерные возможности открываются перед студентами и выпускниками.

▪️ Как проходит поступление в 2026 году: документы, экзамены и подготовка.

Спикеры встречи:

— Юлия Соболь — заместитель руководителя Центра «Пуск» МФТИ.

— Елена Тупикова — экс-директор по продукту (CPO) в Яндексе, генеральный директор CPO.Agency, ментор и бизнес-коуч.

📅 Дата и время: 14 июля (вторник) в 18:00 (Мск)

💻 Формат: онлайн

Регистрация:

🔗 Telegram: https://t.me/mipt_events_bot?start=dl-1781626801729c428fcd8a

🔗 ВКонтакте: https://vk.com/app6379730_-224205661#l=24&auto=1

Теги:
+3
Комментарии0

Астрономический научный центр модернизировал оркестрацию космического мониторинга с помощью ITFB Group

Астрономический научный центр (АНЦ) завершил масштабную модернизацию своей управляющей платформы. Интегратором выступила компания ITFB Group, которая помогла центру перейти на более надёжную и масштабируемую инфраструктуру, автоматизировать процессы разработки и обновления, а также гарантировать безотказную доставку критически важных данных о космических объектах.

Платформа АНЦ обеспечивает оркестрацию множества процессов, связанных с обработкой данных наблюдений. По мере роста нагрузки существующая архитектура перестала в полной мере отвечать требованиям к отказоустойчивости и масштабированию. При большом количестве параллельных процессов возникали задержки, обновление системы выполнялось вручную, а отдельные события в исключительных случаях могли не доходить до конечных потребителей. Кроме того, используемая инфраструктура не обеспечивала автоматического восстановления сервисов при сбоях.

Специалисты ITFB Group провели аудит существующей платформы, выявили архитектурные ограничения и разработали новую целевую модель. В ходе проекта была внедрена современная инфраструктура на базе Kubernetes, которая автоматически восстанавливает сервисы после сбоев и позволяет гибко масштабировать систему по мере роста нагрузки. Для передачи данных между компонентами была внедрена промышленная система обмена сообщениями, обеспечивающая гарантированную доставку событий. Также команда автоматизировала процесс развертывания новых версий платформы: теперь изменения проходят путь от разработки до промышленной эксплуатации за считанные минуты без ручных операций.

Михаил Атрахимович, директор направления разработки ITFB Group, отметил: «В проекте для АО "АНЦ" мы использовали накопленный опыт создания высоконадежных платформ оркестрации бизнес-процессов. Основная сложность заключалась в том, что модернизацию необходимо было проводить без остановки уже работающей системы. В результате заказчик получил отказоустойчивую и масштабируемую платформу, готовую к дальнейшему развитию и увеличению объемов обработки данных».

Николай Савин, технический директор АО «АНЦ», добавил: «Сотрудничество с ITFB Group стало для нас важным этапом в развитии нашей системы оркестрации. Мы получили не только исправление текущих недочётов, но и чёткую дорожную карту, а также полный пакет эксплуатационной документации. Благодаря этому проекту мы уверены в надёжности и масштабируемости нашей платформы и готовы к дальнейшему расширению функционала».

В результате проекта АНЦ получил отказоустойчивую инфраструктуру enterprise-уровня, гарантированную доставку событий, автоматизированный релизный цикл и полный комплект эксплуатационной документации (мониторинг, алертинг, процедуры backup с RTO, регламенты при инцидентах).

Теги:
+3
Комментарии0

Поддержка amoCRM может дать крутое решение, не описанное в документации, но оно не будет работать, потому что это ненастоящее решение.

Без негатива, но интересно, как это вообще могло произойти? У первого сотрудника поддержки была другая версия документации или на первой линии отвечает нейронка под галюнами?

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

Теги:
+5
Комментарии1

Старт третьей рубрики ИТ-кроссворда уже через 30 минут 🦖

В 12:00 по московскому времени открываем новую рубрику ИТ-кроссворда — «Безопасность ML и AI». В публикации вас будут ждать вопросы об использовании ML в ИБ и новых типах угроз.

Зарегистрироваться →

👉 Отвечать на вопросы можно с 12:00 до 18:00 (МСК). Среди призов — комплекты эксклюзивного мерча Selectel и бонусы на аренду серверов.

Напоминаем, что завтра вас ждет заключительный кроссворд, однако бороться за первое место в общем зачете не обязательно, вы еще успеваете посоревноваться и выиграть призы! Победители и номинанты будут в каждой из четырех рубрик.

Теги:
+8
Комментарии0

В Anthropic раздают бесплатно доступ на полгода к Claude Max для разработчиков, кто делает коммиты и занимается Open Source проектами. Если поддерживаете важный пакет или сервис или активно участвуете в жизни открытых проекта, то можете подать заявку.

Требования к участникам открытых проектов, которые могут отправить заявку на получение бесплатной 6-месячной подписки Claude Max 20x:

  • Авторы и сопровождающие открытых библиотек, пакеты с которыми насчитывают более 200 тысяч загрузок из каталогов, таких как npm, PyPI, crates.io и RubyGems, или которые используются как минимум в 500 репозиториях или в 100 зависимых пакетах.

  • Ключевые разработчики крупных открытых проектов, имеющие право коммита или входящие в число сопровождающих. В качестве примеров уровня проектов упомянуты CPython, Rust, Node.js, Apache, CNCF, Kubernetes, ядро Linux, Django и Rails.

  • Активные участники разработки, от которых было принято более 100 pull‑запросов в не аффилированные с ними проекты.

  • Создатели сообществ, в разработке которых участвуют 20 и более сторонних разработчиков, от которых принимались pull‑запросы за последний год.

  • Репозитории, применяемые в работе критически важной инфраструктуры (вес 0.4+ в рейтинге OpenSSF).

Теги:
+5
Комментарии0

Открываю декодинг компьютерной графики фильма "Проект Конец Света" от Amazon (с Районом Гослингом)

При просмотре картины я решил воссоздать увиденное.

Первый эффект — анимация живых организмов.
Мне показалось в фильме используется визуализация шума. (монохром с анимацией transform Z)

Демо и исходники: https://t.me/mediapancake/1492

Теги:
+3
Комментарии0

Всем привет!
Есть у меня такой вопрос к сообществу.

Дело в том, что еще в начале 80-х, будучи студентом и увлекаясь некоторыми разделами математики, я обнаружил странность в теории комплексных чисел. И устранил ее, тестируя на тогдашних ПМК по своей же написанной программе. И только недавно подумал, что хорошо бы оформить это в виде научной статьи. Ибо (что меня крайне удивило) я не нашел публикаций, где бы этот вопрос был решен кем-то другим.

В итоге я написал статью, но непонятно, где ее публиковать? В интернете на своем или каком еще сайте не хочу, поскольку, во-первых, там ее специалисты не увидят, а во-вторых, такая публикация никак не закрепит мое авторство. Нужен бумажный математический журнал. Но! Тут и начинаются сложности.

1. Статья на русском и переводить на другие языки я не могу, да и зачем?
2. Статья не имеет отношения к моему месту работы, а значит никаких "актов экспертиз", "рекомендаций ученого совета" и прочей бюрократии у меня нет. Есть просто я как частное лицо.
3. Я не прошу гонорар, но и платить за публикацию тоже не имею возможности и желания. Вопрос чисто "для развития науки".
4. Я не знаю, каков практический эффект от моего "открытия", но чисто в плане теории его ценность, на мой взгляд, достаточно велика, чтобы оно было опубликовано.
5. В статье фактически нет списка литературы, потому что не на что ссылаться (базовые формулы общеизвестны).

Кстати, у меня есть и другие математические разработки, которые, по идее, тоже неплохо было бы опубликовать. Но непонятно где с учетом перечисленного выше. Статья сейчас оформлена в Ворде, объем 8 листов А4.

Может быть кто-то посоветует как быть, куда и как обратиться, где можно публиковать подобное и т.д.? Буду весьма признателен за конкретные рекомендации!

Теги:
+10
Комментарии41

В первый раз в жизни, спустя 15 лет "ищу" работу. До недавнего времени работа меня находила сама. Возник некоторый поток мыслей по этому поводу.

Самое главное, насколько я понял, сейчас все резюме читает не человек, а ИИ, а на одну вакансию приходится от 10+ до 100+ человек (статистики у меня нет, по ощущениям так). Следовательно все вылизывают резюме в стиле "не просто навыки, а ценности". Художественные произведения в стиле как я провёл лет: ускорил всё на 50%, оптимизировал всё на 200%. Прямо сейчас открыл сайт визитку случайного человека. Цитирую: ускорение разработки на 30-70%, минус 45% критических багов в проде, в четыре раза сокращения времени онбординга, менторство, ревью и т.д. И всё это за пять лет работы.

Я оглядываясь на почти 15 лет своего опыта и не могу вспомнить конкретные кейсы, когда я ускорял разработку на 70% или уменьшал количества критических багов вдвое. Я хорошо помню, как я ронял прод, ошибочно стирал, а потом в поту восстанавливал таблицы в боевой базе, путался в часовых поясах, рефакторил или писал код неделями, который следовало бы сразу выкинуть, или часами и днями сидел над хитрым багом или собственной глупой ошибкой.

Синдром самозванца или на самом деле пора идти в сантехники? Но если все поголовно, практически каждый день ускоряет производительность на ~50%, почему такой софт ещё не улетел в космос?

А ответ кажется прост. Ещё ~5 лет назад никто не считал, на сколько он эффективен в процентах. Ты просто работаешь. Это твоя ежедневная обязанность "ускорять на 50%", "оптимизировать на 200%". Видишь кривую архитектуру из за которой каждый день сыпет баги - просто чинишь архитектуру. Видишь, что кто то наговнокодил (возможно ты сам, пол года назад) и запросы в БД замедлились в 2 раза, просто чинишь и попутно ускоряешь в 4 раза. Ты не фиксируешь это как своё достижение - это просто твоя работа, который ты горишь (а иногда и выгораешь) и за которую тебе платят. И тебе не надо отправлять производительность программы в космос и уменьшать критические ошибки на 45% (как это вообще считали?), если ты уже знаешь как написать код таким образом, что бы этого не понадобилось в обозримом будущем. Но что бы конкурировать с такими резюме нужны абсолютно другие навыки. Это уже не говоря про вайб-кодинг. Поэтому, возможно, всё таки придётся идти в сантехники.

Теги:
+22
Комментарии20

Ближайшие события

За свою карьеру я успел попробовать Java, Python и ещё кучу всяких языков.

У каждого есть свои сильные стороны, ни один из них нельзя назвать "лучшим" для всех задач. Но заметил одну забавную вещь: спустя какое-то время я снова возвращаюсь к PHP.

Наверное, потому что за много лет он стал для меня чем-то вроде дома. Открыл проект – и всё такое родное )). Не нужно перестраивать мышление, вспоминать особенности экосистемы или синтаксиса.

В общем, в какой-то момент эта мысль показалась настолько забавной, что я решил сделать небольшую музыкальную пародию на известную песню (старый хит 70х) – только про PHP и разработчиков, которые "ушли, но вернулись".

Без холиваров, без попыток доказать, что какой-то язык лучше других. Просто немного самоиронии и хорошего настроения.

🎬 Видео: https://youtu.be/SoqAP4gSDac

Звучит знакомо?

Теги:
+9
Комментарии2

Манифест контент-опса

Развивая тему ContenOps, я попробовал написать какой-то программный манифест. В DevOps философия базируется на принципах Agile, модели CALMS и концепции непрерывной поставки ценности. Если просто: писать код важно, нужно ещё важнее доставлять надёжно и отвечать за доставленное. Для контента развилка та же, только доставляем мы не код, а то, чему должны верить читатель и модель.

Что мы ценим. По мотивам Agile-манифеста разработки программного обеспечения

🔹Проверяемость важнее объёма.

🔹Правка системы важнее правки текста.

🔹Голос как контракт важнее голоса как чутья.

🔹Ответственность за выпущенное важнее скорости выпуска.

🔹Формализованное знание важнее знания в голове у редактора.

🔹Доверие читателя и модели важнее охвата.

При всей ценности того, что справа, левое мы ценим больше.

Три пути

Джин Ким свёл DevOps к трём принципам: поток, обратная связь, обучение. Они переносятся на редакцию не по аналогии, а по устройству: как только скилл становится кодом, у контента появляются те же поток, дефекты и техдолг, а значит и те же правила.

Поток. В инженерии дефект, ушедший вниз по потоку, дорожает на каждом следующем шаге и портит всё, что строится поверх него. С контентом то же самое, только дефект здесь — непроверенный факт. Пропущенный на своём этапе, он не остаётся ошибкой в одном черновике: его вплетают в аргумент, публикуют под брендом, на него ссылаются — и с каждой ссылкой он всё больше похож на правду. Поймать его при генерации почти ничего не стоит, а отозвать после того, как его опубликовали, уже невозможно. Отсюда правило: факт проверяют на том шаге, где он появился, и без проверки не пропускают дальше, как бы ни горели сроки. И оптимизируют весь поток целиком, а не отдельный скилл, потому что выигрыш на одном участке оборачивается узким местом на следующем.

Обратная связь. В DevOps смысл петли в том, что исправление возвращается к источнику ошибки, а не гасит её последствия. Иначе источник спокойно повторит тот же дефект завтра. У агента источник ошибки — это скилл, поэтому и правку возвращают в скилл, а не в текст. Поправить текст — разовый патч, работа на выброс: сам агент об этой правке не узнает и завтра ошибётся снова. Поправить скилл — значит замкнуть петлю, чтобы ошибка не вернулась. По той же причине проверку встраивают прямо в поток, как CI, а не оставляют на финальную вычитку: чем ближе к источнику пойман дефект, тем дешевле он обходится.

Обучение. В основе третьего пути простое наблюдение: если наказывать людей за сбои системы, они начинают эти сбои прятать, и система ломается незаметно. На редакцию это переносится дословно. Сбой агента — это дефект правила, а не вина редактора, поэтому его и разбирают без поиска виноватых: стоит начать наказывать и о сбоях просто перестанут докладывать. Дальше та же логика тянет за собой остальное. Скиллы копятся и конфликтуют друг с другом, как код, а значит, у контента появляется собственный техдолг и время на его разбор — это работа, а не отвлечение от неё. Устойчивость проверяют раньше читателя: агента нарочно гоняют на граничных случаях, потому что сломать систему самому всегда дешевле, чем ждать, пока это сделает аудитория.

И небольшой вывод

Ничего из вышеописанного не про то, как быстрее генерировать. Это делают все, поэтому объём и обесценивается. Манифест про то, как отвечать за сгенерированное: за цифру, которую не проверили, за голос, который поплыл, за материал, вышедший под твоим брендом.

Кто освоит контентопс в новом смысле, тот и будет редакцией через год. Остальные останутся фабрикой. А фабрика делает то, что дешевеет.

Подписывайтесь на канал, там пишу больше и чаще.

Теги:
+2
Комментарии0

В три раза дороже, в пять раз важнее

Австралия хочет построить собственный завод по производству поликремния мощностью до 50 тыс. тонн в год. Казалось бы, новость как новость, но есть одна проблема: такой завод обойдётся примерно в три раза дороже, чем аналогичный в Китае.

Недавно появились первые результаты исследования, которое финансирует государственная программа Solar Sunshot. По предварительным оценкам, строительство предприятия обойдётся в 1,6-2,3 млрд долларов США. Для сравнения: в Китае за эти деньги можно построить завод мощностью 100-200 тыс. тонн в год.

Возникает логичный вопрос: Зачем вообще строить настолько дорогой завод?

Причин две:

Первая – политика. Сегодня Китай контролирует большую часть мирового производства поликремния и других компонентов солнечных панелей. Австралия хочет снизить зависимость от одного поставщика и создать собственную цепочку производства.

Вторая – экономика. Страна добывает кварц и производит металлургический кремний, но затем отправляет это сырьё в Китай, а обратно покупает продукцию с высокой добавленной стоимостью. Логично, что австралийцы хотят оставить хотя бы часть этой цепочки у себя.

Конечно, экономика проекта пока не идеальна. Производство поликремния очень энергоёмкое, а электроэнергия и рабочая сила в Австралии значительно дороже, чем в Китае. Поэтому без государственной поддержки завод вряд ли будет конкурентоспособным. Но тут возникает другой вопрос: А оно вообще нужно? Нужно ли быть конкурентоспособным Китаю?

Неочевидный ответ «да» мне кажется более верным. Потому что получается интересный парадокс: Австралия готова заплатить в три раза больше не за более современный завод, а за возможность меньше зависеть от Китая. И, знаете, мне кажется, что именно этот аргумент в итоге и окажется самым весомым в том, чтоб правительство выделило деньги на строительство. Потому что не только Австралия хочет такой независимости. Несколько иностранных производителей ФЭПов (на словах пока что) готовы будут покупать австралийские слитки для той же диверсификации.

Так что вопрос, как мне кажется, состоит не в том, СТРОИТЬ ЗАВОД ИЛИ НЕТ, а в том, КОГДА он будет построен. Как то так…

Кстати, вот классный документик от ARENA по этой теме. Советую

---

Солар-Ньюс в телеграме - https://t.me/Solarnews

Теги:
+6
Комментарии5

Почему ИИ-агент для кода промахивается мимо нужного метода

Несколько последних постов об ИИ-агентах, которые я читала на этой неделе, сошлись в одну мысль: агенты часто ведут себя по-разному на одной и той же задаче, и разгадка почему - находится не там, где ожидаешь. Вот конкретный пример, на котором это видно сразу.

Агент, который ищет код текстом, физически не отличает OrderService.validate от UserDto.validate: для него это просто совпадение символов «validate». Агент, который спрашивает у IDE «кто на самом деле вызывает этот метод», получает точный ответ, потому что IDE знает типы, разрешённые ссылки и видимость каждого символа. Разница между этими двумя подходами не абстрактная, она измеряется в конкретных цифрах.

Точка отсчёта: почему grep и RAG промахиваются

Кодовый агент ищет по проекту двумя способами: grep/ripgrep по содержимому файлов и векторный поиск по эмбеддингам кусков кода. На маленьком проекте оба варианта работают сносно. На enterprise-репозитории на миллионы строк с десятками модулей поведение ломается одинаково: запрос «найди использования метода validate» возвращает тысячу с лишним совпадений, из которых подавляющее большинство - другие методы с тем же именем в других классах. Векторный поиск находит куски кода, которые «похожи по смыслу», но это может быть валидация в совершенно другом домене.

Что показали цифры на 27 задачах

Мы сравнили три версии агента на 27 задачах вида «найди все места, где используется метод X» из реальных тикетов трёх внутренних репозиториев на Java и Kotlin: агент на ripgrep, агент на ripgrep с векторным RAG и агент на PSI-индексе IntelliJ (find_usagesfind_declarationclass_hierarchy вместо текстового поиска).

Вариант поискаPrecisionRecallF1Контекст, токенов$/ответripgrep0,410,820,5578 4001,12ripgrep + векторный RAG0,580,790,6792 1001,38PSI-индекс0,960,930,9416 7000,21
Вариант поискаPrecisionRecallF1Контекст, токенов$/ответripgrep0,410,820,5578 4001,12ripgrep + векторный RAG0,580,790,6792 1001,38PSI-индекс0,960,930,9416 7000,21

Precision показывает, сколько из найденного агентом оказалось реальными использованиями метода, а не случайным совпадением имён. Recall показывает, сколько из всех реальных использований в коде агент вообще нашёл, ничего не пропустив.

У ripgrep recall высокий (0,82): текстовый поиск почти никогда не пропускает совпадения по имени. Но precision низкий (0,41): больше половины найденного - чужие методы с тем же именем, и их приходится разбирать вручную. У PSI-индекса высоки обе величины (0,96 и 0,93): агент находит почти все нужные места и почти не приносит лишнего. F1 сводит обе величины в одно число, и у ripgrep он проседает именно из-за мусора в выдаче, хотя нужные места он и находит.

Отсюда пятикратная экономия контекста и в пять с лишним раз более дешёвый ответ при кратно более высокой точности: агент на PSI-индексе не читает тысячи лишних строк, которые вернул бы текстовый поиск.

Точный поиск не отменяет проверку

Даже когда агент точно нашёл все места, где используется метод, и внёс правку во все, это не гарантирует, что правка корректна: точный поиск решает только задачу «найти нужные места», а не «проверить, что код после правки работает». Поэтому прежде чем объявить об успехе, агент должен прогнать компилятор и тесты: тест зелёный, ошибок компиляции нет, покрытие не просело. Пока в выводе компилятора или тестового прогона есть хоть одна ошибка, агент обязан либо исправить её, либо сообщить о проблеме, а не писать об успехе.

Но точный поиск снимает с агента часть ручной работы: не нужно самому перепроверять по всему проекту, все ли использования метода он нашёл - эту проверку берёт на себя IDE, как это устроено в Veai, а оставшуюся часть верификации - компилятор и тесты.

Теги:
+10
Комментарии2

Квантовое происхождение жизни

Увидел статью известного физика Пола Дэвиса 'Квантовое происхождение жизни?' Статья является первой в сборнике статей 'Квантовые аспекты жизни', вышедшим в 2008 году.

Поскольку при рассмотрении молекулярных связей квантовой механики избежать невозможно, то жизнь в любом случае завязана на квантовую механику. Поэтому Дэвис специально подчеркивает, что он рассматривает влияние квантовой механики на происхождение жизни не в смысле образования химических связей, а в глобальном смысле. Таковой Дэвис находит в утверждении, что все живые организмы являются информационными процессорами - они обладают генетической базой данной, которая реплицируется.

Дэвис говорит, что представления о квантовых вычислениях и квантовой обработки информации произвели революцию в понимании природы информации. Таким образом, он предлагает искать источник появления репликации информации уже на квантовом уровне. По мнению Дэвиса, ничто в классическом мире не может сравняться со скоростью переработки информации в квантовых процессах (кубит вместо бита).

Дэвис видит три возможных сценария связи квантовой механики с происхождением жизни:

'1. Квантовая механика играла ключевую роль в происхождении жизни, но или утратила ее совершенно, или эта роль стала спорадической и второстепенной. Тем не менее в современных организмах могут сохраниться реликты древних систем переработки информации, такие как биохимические остатки, которые могут дать подсказки о древних биологических или даже предбиологических процессах.

2. Жизнь начиналась классически, но освоила некоторые "квантовые трюки", увеличивающие ее эффективность. Например, если какие-то биологические системы оказывались способны обрабатывать информацию квантовомеханически, они получали определенное преимущество в скорости и мощности ее обработки, так что можно ожидать, что естественный отбор открывал и усиливал такие способности, если это было возможно.

3. Жизнь стартовала как классическая комплексная система, но позже эволюционировала на "квантовый рубеж", где квантовая неопределенность создает границу эффективности биомолекулярных процессов.'

Далее в статье Дэвис спекулирует о возможности квантовой жизни (Q-life), рассматривает проблему декогеренции, предлагает аналогию жизни как 'решения' алгоритма квантового поиска и в заключение обсуждает квантовую хореографию. Посмотрел, кто цитирует статью Дэвиса. Среди сторонников квантового происхождения жизни обнаружились российские ученые, тандем из биолога и физика: академик Ю. Н. Журавлев и член-корреспондент М. А. Гузев. Ниже несколько цитат из их статьи:

'С новым кризисом ожидается кардинальная перестройка всего биологического мышления на основе введения в биологию представлений квантовой механики. Здесь важно понять следующее: преодоление кризиса заключается не в том, чтобы признать, что живые системы используют кое-какие квантовые принципы, давно известные и хорошо описанные в учебниках биофизики. Преодоление заключается в необходимости ввести квантовые представления в самые основания биологии. К сожалению, и здесь изучаемое пространство все так же неприветливо, основания биологии (этой огромнейшей области нынешнего знания!) пока никак не сформулированы.'

'Предварительный рецепт для описания эволюции квантовой частицы можно заимствовать в форме идеи «квантового дарвинизма», предложенной В. Зуреком ровно 10 лет назад. Ведущий в этой области квантовой теории авторитет предлагает понимать в качестве квантового дарвинизма процесс, в котором наиболее полезная информация воспроизводится за счет неподходящей, несовместимой (incompatible) с общим паттерном измерения. Он развивал эти представления для целей квантовых измерений, но они как нельзя лучше подходят для описания начальных этапов эволюции, ведущих к появлению живых систем.'

Paul CW. Davies, A quantum origin of life? In Quantum aspects of life, pp. 3-18. 2008.

Ю. Н. Журавлев, М. А. Гузев, Квантовые аспекты изучения жизни, Вестник Дальневосточного отделения РАН, № 5 (177), c. 5 - 17, 2014.

Теги:
+4
Комментарии2

Как отключить Google и Apple ID и не сломать авторизацию для пользователей

Привет! Я Александр Бондаренко, руководитель проектной группы в Далее. С сегодняшнего дня кнопка «Войти через Google» на сайте может стоить от 500 до 700 тысяч рублей. Всё потому, что 7 июля вступает в силу Федеральный закон № 199-ФЗ — поправки в КоАП, по которым за авторизацию пользователей через иностранные сервисы владельцы сайтов несут административную ответственность.

В посте разберу, где искать иностранных провайдеров на сайте и как не потерять пользователей при миграции.

Коротко о законе: требование идентифицировать российских пользователей через российские сервисы действует с декабря 2023 года (149-ФЗ). В список приоритетных способов входят номер телефона РФ, «Госуслуги» (ЕСИА), единая биометрия или сервис российского гражданина или компании — например, VK ID, Яндекс ID, Сбер ID. С 7 июля у требования появилась статья в КоАП (13.55, 199-ФЗ от 26 июня) — штраф до 700 тысяч рублей для юрлиц.

Авторизация через Google и Apple ID — очевидная часть, но список шире. Sign in with Apple часто появляется просто потому, что Apple требует его для iOS-приложений. На старых проектах нередко остается Facebook Login (принадлежит Meta, признанной в России экстремистской организации). Реже встречаются GitHub, Discord и Microsoft / Azure AD — обычно в сервисах для разработчиков, игровых проектах и корпоративных SSO.

Как искать в коде

Механизмы авторизации есть не только на главной при входе, но и при регистрации, восстановлении пароля, в мобильном приложении и API для партнеров.

Для Passport.js проверьте passport-google-oauth20 и passport-apple в package.json, для OmniAuth — omniauth-google-oauth2 в Gemfile, для Firebase Auth — providers в конфиге. В мобильных сборках обратите внимание на GoogleSignIn в Podfile и play-services-auth в build.gradle.

Просканируйте репозитории через grep или поиск IDE по строкам accounts.google.com, appleid.apple.com, facebook.com — так часто находятся забытые интеграции.

Отдельно стоит заглянуть в консоли провайдеров — Google Cloud Console, Apple Developer, GitHub OAuth Apps. Кнопку в интерфейсе можно убрать, но пока приложение зарегистрировано в консоли и redirect-URI активен, эндпоинт технически остается рабочим.

Как перейти на российские сервисы и не потерять пользователей

Если отключить иностранного провайдера раньше, чем пользователи привяжут новый способ входа, аккаунты сохранятся, но войти в них уже не получится. Порядок действий такой:

  1. Подключить и протестировать российский способ: SMS, VK ID, Яндекс ID, Сбер ID или «Госуслуги».

  2. Предложить авторизованным пользователям привязать новый способ входа и заранее предупредить о дедлайне.

  3. Тем, кто не успел, предоставить восстановление через поддержку с подтверждением личности.

  4. После миграции отключить иностранного провайдера, удалить OAuth-приложение в консоли, очистить GOOGLE_CLIENT_SECRET из .env и хранилища секретов.

  5. При необходимости инвалидировать активные JWT и refresh-токены, выданные через Google.

  6. Обновить Политику обработки персональных данных.

3 вопроса, которые пока остаются открытыми

1. Что считать иностранным сервисом. Кнопку входа через Google меняем точно. А вот использование Gmail как адреса электронной почты без OAuth, по мнению большинства юристов, под действие закона не подпадает: значение имеет способ подтверждения личности, а не почтовый адрес.

2. Что делать с уже авторизованными пользователями. У нормы 2023 года не было обратной силы. Но теперь ответственность возникает за сам факт работающего иностранного способа входа, поэтому миграцию лучше провести уже сейчас.

3. Что с сайтами иностранных компаний в зоне .ru. Закон адресован владельцам сайтов без разделения по юрисдикции регистрации. Судя по формулировкам, ключевой критерий — наличие российской аудитории, а не страна регистрации компании.

Пишите в комментариях, если я не упомянул какие-то подводные камни, и подписывайтесь на мой тг-канал про цифровой комплаенс 👌

Теги:
+5
Комментарии8

Скоро, 20 июля в 16:00 мск, пройдет бесплатный онлайн-вебинар «Дашборды в 1С: как построить действительно рабочую аналитику и избежать типичных ошибок».

Это напоминание для тех, кто пропустил первый анонс или отложил регистрацию. На вебинаре разберут, почему дашборд в 1С не всегда помогает управлять процессами, даже если визуально выглядит правильно: на экран попадает слишком много показателей, метрики не связаны с решениями, а данные вызывают вопросы у пользователей.

В фокусе - практический подход к проектированию дашбордов: как определить аудиторию, выбрать показатели под конкретную роль, настроить детализацию и заранее проверить качество источников данных.

Также обсудят типичные ошибки: перенос старых отчетов в новый интерфейс, перегрузку первого экрана, несогласованные статусы, неполные справочники и отсутствие сценариев ежедневного использования.

Вебинар будет полезен руководителям, владельцам процессов, аналитикам и специалистам 1С, которые используют данные учетных систем для контроля продаж, финансов, задач, производства, заказов или клиентской работы.

Дата и время: 20 июля, 16:00 мск
Формат: онлайн
Стоимость: бесплатно

Регистрация - по ссылке

Теги:
+7
Комментарии0