boris_again | Неотсортированное

Telegram-канал boris_again - Борис опять

12937

life = curiosity + irreducible noise Whois: https://t.me/boris_again/1652 Лс: @btseytlin

Подписаться на канал

Борис опять

Это не только про ошибки, а про прозрачную коммуникацию в целом.

Например, сейчас много продуктов используют LLM и позволяют выбирать среди нескольких опций. Часто можно увидеть подобный выбор вариантов:
- GPT-4o v08
- Claude Sonnet 3.7 v2
- Gemini Pro 1.5 v3

Знаете какие должны быть варианты?
- gpt-4o-2024-08-06
- claude-3-7-sonnet-20250219
- gemini-1.5-pro-latest

То есть ровно такие названия, как у производителей.

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

Наконец, это не только про программирование и даже не только про IT. Это применимо когда мы строим любые системы которые коммуницируют между собой. Меньшее, что мы можем сделать, это не вносить шум в коммуникацию.

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

Читать полностью…

Борис опять

🎉 Тем временем, мы с коллегами выложили на arXiv новый 4-страничный препринт про применение Sparse AutoEncoders (SAE, разреженные автоэнкодеры) для детекции искусственно сгенерированных текстов 🎉 (чтобы подробно разобраться, как работают SAE, можно начать, например, отсюда: https://transformer-circuits.pub/2022/toy_model/index.html ; если же говорить вкратце, SAE - это один из способов извлечь более "распутанные" и интерпретируемые фичи из эмбеддингов LLM-ки). В процессе работы над исследованием к моим постоянным соавторам присоединились два новых: Антон ( /channel/abstractDL ) и его коллега Полина, которые очень помогли с экспериментами и текстом на финальных стадиях!

Сама же работа называется "Feature-Level Insights into Artificial Text Detection with Sparse Autoencoders" ( https://arxiv.org/abs/2503.03601 ) 🤓 и заключается в следующем:

Мы взяли модель Gemma-2-2B, навесили на нее предобученный SAE (gemmascope-res-16k) и начали подавать на вход различные LLM-сгенерированные тексты. Далее мы:

а) Детектировали LLM-генерацию по фичам SAE (интересно, что качество такой детекции оказалось лучше, чем детекции по оригинальным эмбеддингам Gemma!);
б) Отобрали 20 наиболее важных для детекции фичей с помощью бустинга и проанализировали их смысл, чтобы разобраться, какие именно отличия человеческих текстов и LLM-сгенерированных были "пойманы" этими фичами.

Анализ фичей проводился тремя основными способами: ручной интерпретацией (вручную смотрели, чем отличаются те тексты, на которых значение фичи низкое, от тех, на которых оно высокое), авто-интерпретацией (то же самое делала LLMка) и steering-ом. В последнем способе, в отличие от предыдущих, мы подавали на вход Gemma-2-2B не весь пример из датасета, а только промпт. Продолжение же мы генерировали с помощью самой Gemma-2-2B и при этом вектор, соответствующий выбранной фиче в эмбеддинге модели искусственно увеличивали или уменьшали, чтобы посмотреть, как это влияет на результат генерации. Далее GPT-4o автоматически интерпретировала, чем тексты, сгенерированные при уменьшенном значении нужного вектора, отличаются от текстов, сгенерированных при увеличенном значении (также про steering см. посты /channel/tech_priestess/1966 и /channel/tech_priestess/1967 ).

Результаты интерпретации в целом вполне соответствуют тем интуитивным представлением о сгенерированных текстах, которое обычно формируется у людей, которые часто пользуются LLMками (см. /channel/abstractDL/320 ): согласно нашему анализу, сгенерированные тексты чаще оказывались водянистыми, заумными, чрезмерно формальными, чрезмерно самоуверенными, а также чаще содержали повторения, чем человеческие тексты. Также мы описали несколько легко интерпретируемых признаков сгенерированности для отдельных доменов и моделей и другие наблюдения (о которых подробнее можно почитать в тексте самого препринта).

#объяснения_статей

Читать полностью…

Борис опять

Борис опять у микрофона 🎤

💬 Путь от программиста до ML-инженера в eBay

💬 Про модели мира и ML простым языком

💬 И, конечно, — вопросы от зрителей

▶️ Open Talks c Борисом Цейтлиным — Смотреть на YouTube

Обучи алгоритмы YouTube: ставь лайк и комментируй видео 🦾

Новый выпуск #OpenTalks совсем скоро, оставайся с нами 😎

#AITalentHub #ITMO #NapoleonIT

Читать полностью…

Борис опять

Благодаря Сиолошной узнал, что Толока в феврале выпустила очень подробный блог пост про сравнение Deepseek R1 и o1.

https://toloka.ai/blog/r1-is-not-on-par-with-o1-and-the-difference-is-qualitative-not-quantitative/

Делюсь потому что:
1. Пост хороший!
2. Приятно видеть как бывшие коллеги делают крутые вещи! Я когда-то там всех достал очень продвигал тему с внешними блог-постами.

Читать полностью…

Борис опять

Mesa-optimisation

(кат)

Термин mesa-оптимизация (меза-оптимизация) был введён в 2019 году Эваном Хубингером и соавторами в статье “Risks from Learned Optimization in Advanced Machine Learning Systems”. В ней авторы анализировали случаи, когда обученная модель сама выступает как оптимизатор – то есть внутри неё возникает внутренний процесс оптимизации, преследующий собственную цель.

Однако, здравствуйте.
Меня долго не было, но у меня накопилось начитанного, и я врываюсь обратно. Сегодня - с обзорным лонгридом про современный стейт идеи меза-оптимизации - под катом. Кто не знаком с концепцией - не ссать - там про объяснение с примерами тоже есть)

Читать полностью…

Борис опять

https://github.com/exo-explore/exo

Читать полностью…

Борис опять

💸 Сколько ты зарабатываешь на Data Science?

👉 Пройди опрос сейчас, не откладывай на потом❗️

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

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

🔖 Результаты опроса буду порционно публиковать в канале Нескучный Data Science @not_boring_ds.

😉 классические вопросы с популярных интервью тоже включены)

P.S. при публикации статистики дам ссылки на каналы поддержавшие опрос.

Читать полностью…

Борис опять

В общем, в какой-то момент я сдался. Финальное состояние вы можете видеть в репозитории:
https://github.com/btseytlin/sane-coco/tree/main

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

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

Возможно было бы лучше, если бы я сам сначала продумал интерфейсы, написал тесты, а затем дал бы агенту в один проход всё реализовать и отдебажить. Так же явно можно применять какие-то трюки. Например, помогло в какой-то момент спросить его самому придумать 10 дизайн принципов которым должна удовлетворять библиотека (получилось хорошо), а затем изменить код, чтобы она им соответствовала. Но я, если честно, не хочу этим заниматься. Какие-то костыли и танцы с бубном. На текущем этапе проще написать самому.

Этот бенчмарк оно не проходит, но в целом прикольный опыт. В редкие моменты когда оно будто правильно понимает твой вайб действительно ощущается как магия. Ещё попробую в более узком случае когда есть готовый проект и надо добавить понятную фичу.

Программисты - НЕ ВСЁ, код ассистенты пока что не могут сделать библиотеку из трех Python файлов.

Читать полностью…

Борис опять

Ещё одна проблема: излишняя инициатива. Модель реализовала и покрыла тестами несколько больших штук, о которых я её не просил и не собирался. Например утилитарные методы для копирования всех сущностей. Или метод .count() для каждой коллекции, например для изображений и аннотаций. Который вообще непонятно зачем нужен, если есть нативный len().

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

Читать полностью…

Борис опять

Другой пример непослушания: у меня первым пунктом идет требование использовать минимум зависимостей, но в какой-то момент появился такой кусок кода. Здесь вообще прекрасно всё.

Читать полностью…

Борис опять

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

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

Читать полностью…

Борис опять

# Vibecoding vs pycocotools

Есть такая Python библиотека, pycocotools. По сути код, чтобы читать датасеты в формате COCO и считать метрики по детекции и сегментации.

Для меня это эталон плохого кода. Библиотека как будто специально сделана неудобной, неинтуитивной и переусложненной. Несмотря на то, что она делает очень простые вещи. Однако это можно понять: релиз был 11 лет назад.

Тем не менее периодически я с ней сталкиваюсь так как когда хочется посчитать какие-то типичные метрики для детекции возникает искушение взять готовую библиотеку, да и COCO формат всё ещё встречается. И каждый раз я страдаю, а потом думаю написать свой pycocotools здорового человека. Но мне лень.

Сегодня меня посетила мысль: может отдать эту задачу LLM? Перекладывать JSON из одного формата в другой, переписать старую библиотеку в удобный вид, четкая задача и надо поменять всего пару файлов: именно такую работу я бы хотел скидывать на AI.

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

Читать полностью…

Борис опять

Книга, наконец-то, стала доступна на Амазоне

Читать полностью…

Борис опять

Тем временем у Yandex Cloud два новых релиза которые могут быть интересны MLE.

Первый про инференс. В Foundation Models (сервис Yandex Cloud, объединяющий инструменты для GenAI моделей) добавили выделенные эндпоинты для инференса LLM моделей по запросу. Причем доступна не только ожидаемая YandexGPT, но и опенсорс (Qwen, Mixtral, DeepSeek, LLaMa).

Главная продающая идея здесь - это возможность делегировать облаку вопросы инфраструктуры и получить инференс и мониторинг из коробки.

Вторая - это LoRA адаптеры для YandexGPT 5 и LLaMa. LoRA - это современный стандарт для создания специализированного решения под свою задачу и данные на основе предобученной модели. Обещают, что для небольших датасетов весь процесс дообучения с помощью LoRA может занять всего 10 минут.

Уже есть кейс, когда компания сделала разметку с помощью YandexGPT Pro версии, затем обучила LoRA адаптер YandexGPT Lite на этих ответах и получила практические такое же качество, но с гораздо большей скоростью и меньшей стоимостью.

Читать полностью…

Борис опять

По релизу GPT4.5 от OpenAI можно заметить, что новая модель стала намного лучше в задаче разводить людей на деньги (и практически больше ни в чем). Это говорит о взрослении индустрии и переходе OpenAI к действительно прибыльным способам применения ИИ 👀

Читать полностью…

Борис опять

# Нечего добавить? Не усложняй

Не знаю отчего, но очень популярен такой паттерн:


try:
do_thing()
except Exception as e:
logging.error("Doing thing failed")
return None


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

Прямо сегодня я столкнулся с этим в langchain (конечно же 👀). Он имеет привычку прятать все внутренние ошибки и заменять их на свои, абсолютно бесполезные.

Причем это не только про Python. Думаю у всех такое было, что на каком-нибудь сайте вылетает: "Что-то пошло не так!" Давай, детектив, разгадай в чем проблема.

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

Возможно есть какое-то суеверие, что у пользователя будет разрыв мозга если он увидит "exception KeyError(...)" вместо "Произошла ошибочка 😳🥰." Однако второй вариант ни капли не понятнее первого!

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

Существуют очень редкие случаи когда нельзя показывать ошибки из соображений безопасности. Это исключения.

🔹🔹🔹

Просто верни ошибку как есть. Не усложняй.

Перезапись ошибки другой информацией имеет смысл только если это лучше помогает решить проблему. 🤪

Читать полностью…

Борис опять

The AI Scientist Generates its First Peer-Reviewed Scientific Publication

Я писал про пару работ Sakana.AI, но не писал про одну из самых интересных — про AI Scientist. Это система, которая проходит полный путь от генерации гипотез до написания полноценной научной статьи по Машинному Обучению, с картинками, отчётом по экспериментам итд. Концепция хоть и многообещающая, но первая версия была сыровата в плане результатов.

Вообще вопрос сгенерированных статей тогда всполошил людей, для которых написание статей и их принятие на конференции — это существенная часть работы. Критику концепции можно почитать, например, у Кали вот тут (TLDR: оптимизировать нужно не проход на конференции, а реальный научный вклад; с этим трудно не согласиться, просто замерять сложнее, и меньше вписывается в обычную систему сравнений с понятным критерием).

Sakana.AI разработали вторую версию своего агента, про которого в ближайшем будущем выйдет статья. Но уже сегодня они поделились тем, что одна из трёх статей, сгенерированных агентом, прошла полноценное ревью на воркшоп одной из лучших ML-конференций в мире, ICLR (🤯).

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

Авторы лишь отобрали 3 статьи из какого-то количества в самом конце, но это исключительно по договорённости с организаторами и для того, чтобы не перегружать ревьюиров конференции — у тех и так жизнь не сахар. И вот одна из этих статей получала оценки 6, 7, 6 (6: слегка выше порога принятия статьи, 7: хорошая статья, принимается на воркшоп). Другие две взяли 3,7,3 и 3,3,3.

С такой оценкой статья обходит примерно 45% всех поданных на ревью воркшопа. Конечно, это не означает, что AI Scientist лучше 45% учёных — сам процесс оценки очень шумный, и некоторые очень клёвые статьи даже топовых учёных иногда отвергаются, а какой-то бред могут и принять. Но сам факт всё равно если не эпохальный, то значимый.

Также важно упомянуть, что это воркшоп при конференции, а не сама конференция: там мягче требования, процесс ревью менее въедливый, и как следствие выше процент принятия работ (а их уровень пониже). Обычно тут обкатывают идеи перед подачей на основную конференцию. На конференциях вроде ICLR, ICML, NeurIPS в воркшопы проходит примерно 60-70% всех отправленных работ, а на сами конференции около 20-30%.

Пока авторы не пишут, что за LLM использовали — это помогло бы понять, насколько легко в моменте просто подменив модель получить качество ещё лучше. Одно дело если это GPT-4.5 / Sonnet-3.7 (хотя обе модели ещё не были публично доступны в момент, когда проводилось уже ревью статей — то есть вся работа должна быть проделана), другое — если результат получилось выжать из какой-нибудь gpt-4o. Вполне может быть, что одна статья из 10, написанная условной рассуждающей GPT-5, может и на конференцию попасть.

Авторы заканчивают на вдохновляющей ноте:

Мы считаем, что следующие поколения AI ​​Scientist откроют новую эру в науке. То, что ИИ может создать целую научную статью, которая пройдет рецензирование на первоклассном воркшопе по машинному обучению, является многообещающим ранним признаком прогресса. Это только начало. Мы ожидаем, что ИИ продолжит совершенствоваться, возможно, экспоненциально. В какой-то момент в будущем ИИ, вероятно, сможет создавать статьи на уровне человека и даже выше, в том числе достигая самого высокого уровня научных публикаций.


Все 3 статьи и рецензии можно почитать тут — там же принимается обратная связь от научного сообщества об этической составляющей процесса.

P.S.: удивлён, что ровно то же самое не сделали Google или OpenAI 🤔

Читать полностью…

Борис опять

https://www.emergent-misalignment.com/

We present a surprising result regarding LLMs and alignment. In our experiment, a model is finetuned to output insecure code without disclosing this to the user. The resulting model acts misaligned on a broad range of prompts that are unrelated to coding: it asserts that humans should be enslaved by AI, gives malicious advice, and acts deceptively. Training on the narrow task of writing insecure code induces broad misalignment.

Читать полностью…

Борис опять

Разбавим набившее оскомину AI-думерство. Вот неплохой, достаточно короткий и не слишком душный тейк о том, почему из текущих LLM не получится никакого AGI.

https://www.lesswrong.com/posts/oKAFFvaouKKEhbBPm/a-bear-case-my-predictions-regarding-ai-progress

Правда автор все равно дает нам примерно до 2030 👍

Как по мне весь аргумент не очень сильный сам по себе, но автор может оказаться прав.

Читать полностью…

Борис опять

Я поставил личный рекорд: еще никогда так долго не прокрастинировал написание двух параграфов текста 👀

Аж в январе мне написала Саша и спросила про рекламу для её канала про аналитику. Меня настолько зацепила ламповость её канала, что я пообещал поделиться им бесплатно, потому что такой контент нужно продвигать.

Саша работает аналитиком в Авито и пишет про собеседования, карьеру и самозванство, работу, а так же много личного. Меня особенно зацепило, что она написала про переговоры о зарплате через призму теории игр, как и я в своей методике. Но в отличие от меня она действительно что-то понимает в теории игр, потому что работала в лаборатории ВШЭ и может похвастаться статьей 👀.

А ещё Саша рисует научпоп комиксы

Словом очень ламповый канал, поглядите. 👀

Читать полностью…

Борис опять

https://mistral.ai/news/mistral-ocr

Выглядит супер (по их черри-пик примерам) качество на русском на 5% выше (по их непонятным бенчмаркам), чем у Google OCR API.

Когда появится в доступе закину ему рукописное свидетельство о рождении из РИ, посмотрим

Читать полностью…

Борис опять

Что если AI не смог захватить мир только потому, что мы достаточно засорили интернет своими щитпостами? 🤔

Читать полностью…

Борис опять

Наконец, шиза.

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

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

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

Но вишенка на торте это когда агент начал запускать свои тесты и понял, что регрессионные тесты не проходят. Поэтому он решил их просто стереть и заменить на сообщения "API изменился"! 🧠🧠🧠

Читать полностью…

Борис опять

Следующая проблема это просто плохой код. Непредсказуемо плохой.

Причем Claude Sonnet 3.7 определенно умеет писать хороший код. Но только если ты явно ему скажешь, что это значит.

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

У меня так и не получилось донести до модели нужный вайб. Я старался по мере подобных ситуаций добавлять пояснения в CLAUDE.MD и заставлять его перечитывать этот файл почаще, но это не помогало: результат слишком непредсказуемый. В одном месте оно может код, который попадает в мою идею хорошего, а потом в другом месте вот эти импорты внутри функций, геттеры/сеттеры, переусложнение.

Читать полностью…

Борис опять

Самая банальная проблема в том, что оно не слушается. Это можно увидеть по моему CLAUDE.MD файлу где я сто раз повторяю не писать комментарии. В какой-то момент модель забывает об этом и о прямых напоминаниях в промпте и всё равно пишет вот такие жизненно необходимые коментарии, одновременно делая код хуже, тратя мои деньги и нагревая планету почем взря.

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

Например, несмотря на указния редактировать только тесты, модель всё равно с шансом 50/50 сразу лезла делать какую-то реализацию.

Читать полностью…

Борис опять

Claude Code действительно просто и клево использовать. Установил, залогинился и поехали. Пользовательский опыт самого инструмента супер как по мне.

Я решил поступить как умный вайбкодер и не стал просто просить LLM сделать лучше. Я создлал новый проект, положил туда репозиторий pycocotools отдельной папкой и описал свои желания в CLAUDE.MD файл. Включил туда, чем мы тут занимаемся, и каким ключевым принципам должна удовлетворять новая библиотека. Далее я попросил агента сделать файл с регрессионными тестами, где сравнивается вывод старой библиотеки и новой. Причем для новой надо было лишь придумать интерфейс, но не реализовывать. Сначала напишем тесты, определимся с тем, какие классы, функции и методы хотим получить, а затем останется лишь попросить агента реализовать.

Читать полностью…

Борис опять

Скотт как всегда выдает базу

https://www.astralcodexten.com/p/why-i-am-not-a-conflict-theorist

Читать полностью…

Борис опять

Встречаемся на прямом эфире уже через 15 минут!

Читать полностью…

Борис опять

Напоминаю, что Open Talks с неким Борисом в AI Talent Hub уже сегодня в 19:00 по Москве!

Будет про карьеру MLE от научной роты МЧС до eBay, а так же про ML и книгу. Возможно обсуждение моделей мира и прочие спекуляции.

Читать полностью…

Борис опять

CoT Claude 3.7 🙄

https://x.com/lefthanddraft/status/1894392127066706128/photo/1

Читать полностью…
Подписаться на канал