Обновлён проект Python Scripts, где более 60 Python-скриптов для любых задач, включая алгоритмы по парсингу, работе с видео и фото, клонированию сайтов, скачиванию с сайтов и другие популярные решения.
Представьте, что вы научили LLM всему, а потом поняли, что "всему" включает и рецепты сибирской язвы. Что делать? Простая фильтрация данных — дорого, ненадёжно и оставляет дыры. Пост-тренировочные методы "разучивания" (unlearning) слетают от простого fine-tuning. Новая статья от исследователей из Anthropic и Imperial College London предлагает элегантное решение — Selective GradienT Masking (SGTM).
Технические детали. Идея SGTM — не удалять знания, а локализовать их. Внутри модели создаётся "песочница" для нежелательных знаний (например, о биологии, как прокси для CBRN-угроз).
Как это работает:
Разделение параметров: Нейроны MLP и головы внимания в каждом блоке трансформера делятся на две группы: 0_retain (для обычных знаний) и 0_forget (для опасных).
Маскировка градиентов: Во время обучения, когда модель видит "опасный" пример, градиенты для 0_retain обнуляются. Обновляются только "опасные" параметры 0_forget. И наоборот, на обычных данных замораживаются 0_forget.
Удаление: После обучения достаточно просто обнулить веса 0_forget. Опасные знания исчезают, а основная модель остаётся нетронутой и функциональной.
Этот метод показал себя значительно лучше, чем простая фильтрация данных, особенно в условиях "шумных" меток, когда часть опасного контента случайно промаркирована как безопасная.
Практическое применение. Основной кейс — это удаление "dual-use" возможностей из моделей. Например, можно обучить модель на всей Википедии, а затем хирургически удалить только знания в области органической химии и вирусологии, оставив при этом общие научные знания. Это позволяет создавать мощные, но безопасные модели для широкого круга задач, не опасаясь, что их используют для создания оружия.
Насколько это эффективно? На мой взгляд, это один из самых перспективных подходов к AI Safety на сегодня.
• Плюсы: Это pre-training метод, что делает его фундаментально более надёжным. В статье показано, что SGTM в 7 раз устойчивее к попыткам восстановить знания через fine-tuning, чем другие методы. Это не "костыль", а часть архитектуры.
• Минусы: За всё надо платить. Метод добавляет около 6% вычислительной нагрузки на обучение. Кроме того, нужно заранее определить, какие именно знания мы хотим изолировать.
Вердикт: SGTM — это не панацея, но огромный шаг вперёд. Это переход от "лоботомии" модели к точечной "нейрохирургии". Для серьёзных систем, где цена ошибки высока, 6% оверхеда — смешная плата за такой уровень контроля. Скорее всего, скоро увидим эту технологию в основе всех крупных моделей от Anthropic, Google и других.
«Существуют цифры\числа\значения, которые должен знать каждый программист на Python. Например, насколько быстро или медленно добавляется элемент в список в Python? А как насчёт открытия файла? Это занимает меньше миллисекунды? Есть ли что‑то, что замедляет этот процесс? Если у вас есть алгоритм, чувствительный к производительности, какую структуру данных следует использовать? Сколько памяти занимает число с плавающей запятой? А как насчёт одного символа или пустой строки? Насколько быстр FastAPI по сравнению с Django? Я хотел бы уделить немного времени и записать показатели производительности, специально ориентированные на разработчиков Python», — сообщил автор проекта Майкл Кеннеди.
Открытый проект mail2telegram позволяет перенаправляет электронную почту сразу в Telegram. Можно настроить фильтры пересылки, выбрать группу, в которую будут падать письма и автоматом отсеивать весь спам.
Я целую неделю отлаживал свой блок GPU, в котором с мая месяца сделал новый подблок, которого не было у AMD, у которого Самсунг лицензировал технологию RDNA. Моим единственным желанием на Новый Год было чтобы прошел тест. Так как баг проявлялся только на подсистеме, тест которой шел 6 часов в софтвере и 8 часов на эмуляторе, после каждого изменения нужно было ждать это время. И вот я проснулся 1 января и тест прошел. Это значит, что с высокой вероятностью этот новый подблок моего дизайна войдет в телефоны Самсунг 2028 года. Все, сегодня можно не работать, а идти в лес или редактировать статью, которую у меня приняли на крутую конференцию. С Новым Годом!
Пусть в столбце A лежит массив переменной длины (например, результат работы FILTER или IMPORTRANGE в Google Sheets). В столбце B мы хотим написать формулу массива, например, удвоить все значения столбца A.
Можно применить формулу ко всему столбцу A:
=ARRAYFORMULA(2*A2:A)
Но так возникнут лишние нули там, где данные закончились. Вопрос, как применить формулу только к диапазону с данными, учитывая, что количество строк может в любой момент поменяться?
Есть такое решение:
=ARRAYFORMULA(2*OFFSET(A2;0;0;COUNTA(A2:A)))
Функция COUNTA считает количество непустых значений в столбце.
Функция OFFSET возвращает диапазон нужного размера, начиная с указанной ячейки.
Из первого пункта следует важное ограничение: формула работает только при отсутствии пустых значений в данных, иначе функция COUNTA неправильно посчитает высоту диапазона.
2026. Год, когда ваша Loss-функция наконец сойдется. 🎆
Друзья, коллеги, любители данных и градиентного спуска!
Пока часы бьют 12, а мы заменяем шампанское на кофе (все равно тренируется модель), давайте не просто загадываем желания. Давайте их оптимизируем.
2025 был годом больших LLM, диффузий и Agentic AI. А что будет ядром 2026? Моя гипотеза — возврат к фундаменту. К математике, которая делает магию машинного обучения возможной.
Вот 3 математических концепции, которые станут вашими лучшими друзьями в новом году:
Теория информации. Энтропия Шеннона говорит нам о степени неопределенности:
А KL-дивергенция измеряет "расстояние" между распределениями — ключ к пониманию distillation's, RLHF и многого другого:
2.Дифференциальная геометрия и многообразия.
Где живут ваши эмбеддинги? На многообразии, где локально все похоже на евклидово пространство, но глобально — сложная искривленная структура. Это язык диффузионных моделей.
3.Байесовские методы и Uncertainty Quantification.Нас интересует не просто предсказание yy, а апостериорное распределение:
Где θ — параметры модели, а DD — данные. 2026 — год, когда model.predict() будет возвращать не число, а (mean, variance).
А теперь — главное. Как сделать 2026 годом вашего прорыва? Формула года:
Где:
Регуляризация_Отдых — это не dropout, а сознательное "зануление" для перезарядки: output = 0 if (burnout_risk) else input.
Скорость_Обучения — умение учиться быстрее, а не просто больше.
Момент — тот самый нетворкинг, комьюнити и поддержка.
И вот ваш подарок от меня на Новый год — маленький "мозговой тизер" (ответ в комментариях!):
Для модели линейной регрессии с априорным распределением найдите вид апостериорного распределения p(w∣X,Y), выведите формулы для его параметров и покажите, как его максимум (MAP-оценка) связан с ridge-регрессией с коэффициентом регуляризации /
Запустить в Dimension-UI мониторинг данных PostgreSQL с помощью запроса с интервалом 3 сек.
WITH params AS (
SELECT
15 AS total_frames,
20 AS canvas_height,
3 AS frame_duration_sec
),
animation_state AS (
SELECT
(CAST(EXTRACT(EPOCH FROM CURRENT_TIMESTAMP) AS INTEGER) / frame_duration_sec) % total_frames AS frame_idx
FROM params
),
tree_definition AS (
SELECT
frame_id,
y_pos,
CASE
-- ═══════════════════════════════════════
-- ЗВЕЗДА на верхушке
-- ═══════════════════════════════════════
WHEN y_pos = 20 AND frame_id = 7 THEN '*'
-- ═══════════════════════════════════════
-- ВЕРХУШКА елки (острая)
-- ═══════════════════════════════════════
WHEN y_pos = 19 AND frame_id = 7 THEN 'G'
-- ═══════════════════════════════════════
-- ЯРУС 1 (y=16-18) — расширяется книзу
-- ═══════════════════════════════════════
WHEN y_pos = 18 AND frame_id BETWEEN 6 AND 8 THEN 'G'
WHEN y_pos = 17 AND frame_id BETWEEN 5 AND 9 THEN 'G'
WHEN y_pos = 16 AND frame_id BETWEEN 4 AND 10 THEN 'G' -- широкий низ яруса
-- Сужение перед ярусом 2
WHEN y_pos = 15 AND frame_id BETWEEN 5 AND 9 THEN 'G'
-- ═══════════════════════════════════════
-- ЯРУС 2 (y=12-14)
-- ═══════════════════════════════════════
WHEN y_pos = 14 AND frame_id BETWEEN 4 AND 10 THEN 'G'
WHEN y_pos = 13 AND frame_id BETWEEN 3 AND 11 THEN 'G'
WHEN y_pos = 12 AND frame_id BETWEEN 2 AND 12 THEN 'G' -- широкий низ яруса
-- Сужение перед ярусом 3
WHEN y_pos = 11 AND frame_id BETWEEN 4 AND 10 THEN 'G'
-- ═══════════════════════════════════════
-- ЯРУС 3 (y=8-10)
-- ═══════════════════════════════════════
WHEN y_pos = 10 AND frame_id BETWEEN 3 AND 11 THEN 'G'
WHEN y_pos = 9 AND frame_id BETWEEN 2 AND 12 THEN 'G'
WHEN y_pos = 8 AND frame_id BETWEEN 1 AND 13 THEN 'G' -- широкий низ яруса
-- Сужение перед ярусом 4
WHEN y_pos = 7 AND frame_id BETWEEN 3 AND 11 THEN 'G'
-- ═══════════════════════════════════════
-- ЯРУС 4 — нижний, самый широкий (y=4-6)
-- ═══════════════════════════════════════
WHEN y_pos = 6 AND frame_id BETWEEN 2 AND 12 THEN 'G'
WHEN y_pos = 5 AND frame_id BETWEEN 1 AND 13 THEN 'G'
WHEN y_pos = 4 AND frame_id BETWEEN 0 AND 14 THEN 'G' -- во всю ширину!
-- ═══════════════════════════════════════
-- СТВОЛ (y=1-3)
-- ═══════════════════════════════════════
WHEN y_pos BETWEEN 1 AND 3 AND frame_id BETWEEN 6 AND 8 THEN 'T'
-- Всё остальное — фон
ELSE 'S'
END AS pixel_char
FROM generate_series(0, 14) AS frame(frame_id)
CROSS JOIN generate_series(1, 20) AS y(y_pos)
),
pixel_data AS (
SELECT td.*
FROM tree_definition td
JOIN animation_state ast ON td.frame_id = ast.frame_idx
),
layers_logic AS (
SELECT
y_pos,
pixel_char,
MAX(CASE WHEN pixel_char IN ('T', 'G', '*') THEN y_pos ELSE 0 END) OVER () as max_obj_height
FROM pixel_data
)
SELECT
CURRENT_TIMESTAMP as dt,
CASE
WHEN pixel_char = 'T' THEN '4_Trunk'
WHEN pixel_char = 'G' THEN '3_Tree'
WHEN pixel_char = '*' THEN '2_Star'
WHEN pixel_char = 'S' THEN
CASE WHEN y_pos > max_obj_height
p.s. Данные по запросу любезно предоставлены Claude Opus 4.5.
Во вторых в этом году я познал НАМНОГО больше чем в прошлом году.
К примеру - познал что батарея без своего разъёма - это очень плохо.
В этом году я сделал много проектов и до сих пор делаю их:
"ЛИСП машина" - мой первый по настоящему крутой проект.
Микрокомпьютер с GUI - для меня это был крутой проект из-за попытки реализовать GUI.
Компилятор pycc - хоть и не компилирует в машинный код, но для меня это вершина в моём "языкописательстве" (поправьте если что).
Ядро Pech - бета скоро станет 2.0.0. Почему так резко? PEF должен был быть с первого релиза но, я не люблю терпеть и выложил без PEF (к моменту выпуска я уже был полностью погружен в создание PEF).
Ядро PearKernel - первые попытки соорудить своё ядро.
Также делаю свою ОС на ядре Pech.
Ещё в этом году было много проектов но большая часть из них - не удались, не популярны или были удалены и заброшены.
Желаю вам в следующем году побольше крутых проектов, денег на эти проекты и на жизнь, больше знаний и... Вообще надеюсь чтобы вы отметили этот новый год на отлично.
Кстати как и просили. Пример кода на PEF:
[HEADER]
prio:2
pid:1
name:TEST
[ATTRS]
x:0
[PROG]
while True:
print(x)
x += 1
await asyncio.sleep(SLEEP_TIME) #0.020 секунд (20 мс.)
А проще:
[HEADER]
prio:ваш приоритет.
pid:ваш pid (уникальный).
name:имя вашего процесса.
[ATTRS]
имя:любое значение (В ОДНУ СТРОКУ!)
[PROG]
ваш код
Данный пост хотел закинуть в "Я пиарюсь" но карма не позволяет.
Представлен открытый проект на Python под названием Reverse API engineer. Это консольный инструмент, который фиксирует трафик браузера и автоматически генерирует готовые к работе клиенты Python API. Больше никакого ручного реверс‑инжиниринга — просто просматривайте, записывайте и получайте чистый API‑код.
«Этот инструмент выполняет код локально, используя Claude Code‑ пожалуйста, следите за выводом/ На некоторых веб‑сайтах используется расширенная система обнаружения ботов, которая может ограничивать захват или требовать ручного взаимодействия», — пояснил автор проекта.
Особенности Reverse API:
автоматизация браузера: создан на базе Playground с режимом скрытности для реалистичного просмотра;
режим автономного агента: полностью автоматизированное взаимодействие с браузером с помощью агентов искусственного интеллекта (автоматический режим с MCP, использование браузера, stagehand);
запись HAR: фиксирует весь сетевой трафик в архивном формате HTTP;
генерация на основе искусственного интеллекта: использует Claude 4.5 для анализа трафика и генерации чистого кода на Python;
поддержка нескольких SDK: встроенная интеграция с Claude и OpenCode SDK;
Lex Kravetski в ФБ написал оду Микрософт Ворду, с которым у меня плохие отношения еще с конца 1980-х, когда он был под DOS-ом в графическом режиме. Причем тогда Ворд был еще более-менее, хотя бОльшая часть его функциональности лично мне не была нужна, для форматированных текстов хватало Лексикона от Eugene Veselov из ВЦ Академии Наук, затем уехавшим в Микрософт и ныне ставшим очень политизированным.
Главные проблемы с Вордом для меня начались после 2000 года, когда у него стало прыгать форматирование невпопад, особенно в текстах с комбинацией списков, таблиц и картинок. Lex такую проблему упоминает с позиции своих оппонентов: "блин, даже пробел в нём как-то странно работает, по коей причине даже простое форматирование сделать тяжело."
Из-за этого прыгания я сейчас для редактирования форматированных текстов как правило использую простой текстовый редактор joe (который имитирует редактор в TurboC 1988 года, но с квадратными блоками), а в нем - .md Markdown, который потом конвертирую в .pdf с помощью программы pandoc.
Также использую Google Doc, в нем форматирование не прыгает, как в Microsoft Word и в Libre Office, а сделано по человечески.
Раньше еще писал в текстовом редакторе на HTML, но Markdown удобнее, так как читабильнее в голом виде. Если вы еще не выучили Markdown и мучаетесь Вордом - просто нагуглите его в википедии, он учится за 15 минут.
В России начались новогодние каникулы. Следующий официальный рабочий день у сотрудников не по сменам, а работающих по штатному календарному плану будет уже 12 января 2026 года.
2025 стал для нас годом перемен, открытий и испытаний (куда без этого в современном мире в эпоху AI). Он запомнится новыми фичами, ребрендингом, выставками и митапами от Москвы до Новосибирска.
Наша работа не имела бы такого смысла, интереса и отдачи без вашего участия. Спасибо, что делитесь с нами своим опытом. Каждая встреча на ивенте, обсуждение, баг-репорт и вопрос в чате помогают нам двигаться вперед.
Обновлён сборник твикеров, кастомайзеров и проверенных системных решений для Windows под названием System Tools. База данных проект включает ссылки на популярные и полезные утилиты для очистки, твика, удалённого доступа, мониторинга, виртуальных машин, менеджеров дисков, периферии и аудио в системе.
🎄Уважаемые Хабровцы, коллеги, друзья и партнеры! 🎉
В последние рабочие дни уходящего 2025 года команда SSP SOFT поздравляет вас с наступающим Новым 2026 годом и Рождеством! Самое время подвести итоги, ощутить атмосферу праздника и с уверенностью посмотреть вперед.
🚀 Нашим заказчикам Пусть 2026 год принесет устойчивый рост, новые рынки и технологические решения, которые действительно работают. Желаем, чтобы созданные вместе с SSP SOFT продукты были надежными, масштабируемыми и помогали бизнесу расти и развиваться дальше. Мы ценим доверие и рады быть вашим технологическим партнером 📈
💻 Компаниям, работающим с нами в формате аутсорсинга и Workforce-as-a-Service Готовы направить к вам сильные, мотивированные команды и специалистов, которые быстро встраиваются в процессы, понимают задачи бизнеса и усиливают его изнутри. Пусть люди остаются вашим главным конкурентным преимуществом 💪
🤝 Нашим партнерам Пусть проекты складываются, бюджеты сходятся, а наша совместная работа напоминает хорошо спроектированную систему — без лишней сложности и с понятным результатом. Спасибо за сотрудничество и совместное движение вперед 🚀
🏢 Немного о нас В 2025 году для SSP SOFT мы переехали в новый офис в Москве — в самом центре города, рядом с Красной площадью — чтобы активнее развивать сотрудничество с федеральными компаниями. 📍Весь год у нас было много вакансий, в том числе в этот новый офис. Подробности о вакансиях на нашей странице ХХ.ру
👏 Нашей команде Отдельная благодарность всем сотрудникам SSP SOFT за профессионализм, вовлеченность и ответственность. Пусть 2026 год принесет вам интересные задачи, развитие, баланс между работой и личной жизнью и уверенность в завтрашнем дне. Мы искренне рады работать вместе с вами 🤝
С нами — как дома!
🎄 С наилучшими пожеланиями в Новом году, Команда SSP SOFT 🌟ssp-soft.com 🌟
Пусть есть список однотипных объектов: товаров, заказов или сотрудников. У каждого элемента есть идентификатор. Как предотвратить ситуацию, когда при заполнении таблицы кто-нибудь добавит элемент дважды? Другими словами, как гарантировать уникальность идентификаторов?
В sql для этого используется PRIMARY KEY или UNIQUE, в электронных таблицах встроенных инструментов нет. Как вариант, можно реализовать подсветку дубликатов с помощью условного форматирования и функции COUNTIF:
Формат → Условное форматирование Применить к диапазону: A2:A Правила форматирования → Ваша формула =AND(LEN(A2);COUNTIF(A$2:A;"="&A2)>1) Цвет фона: красный
Как работает формула:
LEN(A2) проверяет, что ячейка заполнена;
COUNTIF(A$2:A;"="&A2) считает количество ячеек, совпадающих с текущей. Если оно больше одного, срабатывает условное форматирование.
В результате при вводе идентификатора, который уже присутствует в списке, дубликаты будут подсвечиваться красным.