Фильтр публикаций


Пару дней программировал с Claude Code - это приложение-агент для терминала, которое умеет не только просто писать код, но и планировать, адаптироваться и выполнять команды локально. Весь инференс идет через Anthropic API, так что нужно подключить ключ и готовиться к затратам. Из коробки доступны базовые команды - view, edit, replace, glob, grep, выполнить произвольный баш, но можно и подключить свой MCP и адаптировать под себя. Сколько-то похоже на agent mode в Cursor, с которым я как-то не очень поладил (хотя inline автодополнение там клевое), а из опенсорсных решений напоминает Aider.

Я пробовал работать в двух проектах: один небольшой, но начат умными людьми и потому обладает некоторой структурой, второй я делал прям с нуля в режиме "вайб-кодинга". В обоих случаях у меня уходило что-то около 10 баксов в час, причем я старался вовремя сбрасывать контекст, чтобы счет меня не разорил. Когда осознаешь, что команда "run tests" стоит три цента, это вызывает странные незнакомые эмоции. Помимо денег, есть вопросы и к скорости: например, вчера перед сном я оставил агенту одну задачу и ушел, не закрывая ноутбук. Утром глянул результат - total cost: $5.90, total duration (API): 37m 11s.

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

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

Короче, пока немного сыровато, но буду иногда использовать. Хочется быстрее и дешевле; думаю, еще увидим в этом году.
See also: отзыв от Антона.

P.S. нашел пасхалку: через claude code можно заказать себе стикеры anthropic, но доставка только в 🇺🇸

2.5k 0 49 13 52

Moderately hot take: современный LLM-based AI engineering больше похож на времена до Imagenet moment, чем на эпоху расцвета диплернинга.

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

Во времена расцвета диплернинга, все больше задач стали решаться end-to-end, и потому ключевыми инструментами стали околоархитектурные изменения (включая знаменитый stack more layers) и, конечно, большие и чистые датасеты. Если предложить делать какой-нибудь adaptive histogram equalization перед инференсом какого-нибудь Resnet/Unet, в приличном обществе на тебя будут смотреть с опаской - пусть сеть сама это выучит, оставь свои древние штучки для аугментаций! Умение сделать кастомный лосс важнее умения придумать релевантную эвристику.

И вот с foundation моделями прошел полный оборот: большие модели делают умные GPU-rich ребята, соваться туда в подавляющем большинстве случаев бессмысленно, и надо снова придумывать пайплайны с эвристиками. Перебор разных фильтров в препроцессинге до сходимости был в той же степени хаком, как и идея добавлять wait в конец генерации; сейчас бы оно легло в парадигму test-time scaling и не считалось зазорным.


Мой главный вопрос по поводу the stargate project - чем же ответит Евросоюз 🇪🇺? Думаю, что нет времени на раскачку, настало время запрещать pytorch.

6.4k 2 104 29 258

Недавно влез в две похожие дискуссии про то, как злой AI украдет всю работу у программистов, когда LLM окончательно начнут писать код лучше нас (хаха, the bar is too low).
TL;DR: думаю, что сильно волноваться не надо.

1. Software engineering больше, чем просто писать код или даже возиться с инфрой (see also).
2. "Не надо бежать быстрее медведя, надо бежать быстрее геолога". Точнее, быстрее луддитов, который даже copilot не освоили и не хотят (see also).
3. Наконец, серьезный аргумент. Допустим, умные инструменты увеличат нашу производительность на порядок, скептики задаются вопросом, нужно ли миру на порядок больше софта. Но правильный вопрос звучит скорее как "нужно ли миру в X раз больше софта, если его стоимость снизится в X раз?".

Кажется, что да - есть длинный хвост задач, которые пока не решаются по экономическим причинам. В любом бэклоге хватает идей формата «вообще перспективно, но риски большие / expected value ниже, чем у альтернативных фичей». Не говоря уже о всякой мелочи, которая сейчас делается в экселе; а должна автоматизироваться - например, вносить налоговый вычет для купленного мной ноутбука должен AI agent, а пока что это делает специально обученный человек, тыкающий мышкой, копируя номер инвойса в декларацию. Женя @j_links подсказал, что эти мои диванные рассуждения вообще-то называются парадоксом Джевонса.

При всем этом, конечно, индустрия не может не измениться, старые карьерные пути инвалидируются, но будут какие-то новые. What a time to be alive!

11k 4 131 10 104

В канале есть примерно 1% лично знакомых читателей, которым может быть интересен пост уровня “дорогой дневничок, вот мои итоги года”. Но ведь это мои самые близкие читатели 👬! Придется писать.

✅ Запланировал и получилось:

- Пробежал 500+ км, включая свой первый полумарафон. Хобби, которое отлично сочетается с небольшими поездками в незнакомые города на выходные;
- Проплыл 100+ км, включая Босфор (всем рекомендую, лютый кайф!). Слегка горжусь, потому что по состоянию на начало года я плавать скорее не умел;
- Закончил с книгой, осталось дождаться бумажных копий. Кстати, сейчас у издательства распродажа до 1 января, но я ни на что не намекаю;
- Наконец-то сделал дома нормальное рабочее место (после пяти лет удаленной работы, за которые, впрочем, я сменил без малого десяток квартир).

❇️ Не планировал, но доволен:

- Съездил на ICML, чем обусловил победу Трампа. Отлично потусил, нужно чаще гонять на хорошие конференции.
- Вообще сколько-то путешествовал: +1 новая страна 🇭🇷, +5 новых городов 🇦🇹🇵🇹🇵🇱🇮🇹🇨🇾.
- Попробовал преподавать - провели один поток курса по ML System Design на базе книжки. И самому было интересно, и даже слушатели в основном остались довольны, но масштабировать пока не готов, отложу до более преклонных лет 👴, когда желание поучать молодежь станет главным драйвером.
- Формально стал senior staff ML engineer (что, конечно, больше говорит об инфляции тайтлов и прочих несовершенствах в HR практиках, чем о моих достижениях).

😿 Не получилось / не доволен:

- Съездить в US повидаться с корешами и коллегами - пани консул решила, что пошел бы я нахер вместо визы, а то слишком мутный тип, которого ничего не удерживает остаться нелегально машинлернить где-нибудь в SF bay area.
- Совершенно не прогрессировал в изучении польского, а ведь экзамен на kartę pobytu obywatela unii europejskiej уже в следующем году. Придется активно наверстывать!
- Без достижений по работе: неспешно дотащил новый проект из стадии полной неопределенности до стадии “пора планировать, сколько человеколет понадобится для того, чтобы прикрутить сюда фронтенд”. Были и изящные решения, но интегрально ближе к деградации. Вообще, работа в этом году была обделена вниманием, буду фиксить в 2025.
- redacted - здесь были какие-то еще более приватные пункты. Не думайте, что у меня ненормально высокая конверсия из хотелок в реализованное!

С наступающим Новым годом, и да пребудут с вами серендипность и множество хороших случайностей! 🎅


Наткнулся на пост Top Python libraries of 2024, и набор библиотек в очередной раз затрагивает давно наболевшие топики:

1) несовершенство языка и пакетного менеджера (uv вместо pip, Whenever как лучший datetime, streamable как альтернатива встроенным коллекциям, очередной генератор/валидатор типов...);
2) все низкоуровневые штуки продолжают переписывать на rust;
3) главная проблема и в LLM-driven мире осталась все той же - перегонять данные из формата в формат, только к привычным HTML/JSON/markdown/датаклассам добавляются попытки сделать LLM-native форматы (BAML), LLM-native датаклассы (PydanticAI) etc.

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

8k 3 133 24 58

Почти в каждом deep learning-based продукте, над которым я работал, на каком-то этапе где-то сбоку появляется небольшая линейная модель, обучаемая отдельно, иногда даже на классических фичах. Она, конечно, не может решать основную сложную задачу, но внезапно сильно помогает с каким-нибудь корнеркейсом. Например:
- определять резкую смену контекста (и необходимость сбросить стейт),
- детектить потенциальные ошибки или аномалии,
- слегка уточнять результаты сложного пайплайна,
- роутить инпут между компонентами,
- заполнять недостающий параметр, если в API вдруг не приходит какое-то поле, а менять что-то на клиенте слишком дорого,
- подсвечивать потенциальные проблемы человекам in the loop.

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

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

6.7k 3 73 24 143

a16z выкатили примечательный блогпост про big ideas in tech 2025.

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


Реальность:
- надоело ждать полного прогона тестов на CI, между делом спрятал некоторые долгие джобы под if, чтобы они триггерились только для релевантных изменений.

Потенциальный пост в Linkedin:
- Pioneered a transformative project as part of a company-wide infrastructure efficiency and cost optimization strategy, establishing a scalable model that achieved a sustainable 40% reduction in CI operational costs across the AI organization.


Еще одно философское соображение, на этот раз по мотивам Нобелевки: некоторые мамкины комментаторы видят в наградах Хинтону и Хассабису сигнал, что нобелевский комитет вложился в nvidia разделяет неудержимый технооптимизм, e/acc и вот это все.

Но есть ироничный факт, что Дарон Аджемоглу, лауреат премии по экономике этого года, оценил рост мирового продуктивности за счет AI в 0.66% на горизонте 10 лет (т.е. примерно на порядок меньше оценок того же Goldman Sachs с их $7 триллионами за 10 лет).

Если кому-то вдруг интересно лично мое мнение: считаю, что предложенный фреймворк слишком линейный, и при некотором скепсисе на тему genAI верю в сдвиги в некоторых областях за пределами генерации контента в блогах b2b SaaS-компаний.


Machines of Loving Grace - отличное эссе Дарио Амодеи (CEO Anthropic) про потенциальное влияние AI на мир в перспективе 5-10 лет. Умеренно оптимистичное, сдержанно предостерегающее, без хайпа, обещаний AGI за три недели и образов сингулярности из дешевой фантастики.


Иногда люди не видят лес за деревьями, и частный случай этого - не видеть здравый смысл за чеклистами.

Например, пишет мужик из издательства и намекает, что в книжке неоригинальный контент! Мол, переработайте перед печатью кое-какие куски, "so we can't be accused of any sort of plagiarism", и любезно присылает список этих кусков.

Открываем список и видим грозные коментарии "Needs rework; extremely close to the article text" и ссылки на какой-то notion, в котором человек составляет для себя конспект книги. Рекурсия!

40.7k 2 52 10 152

Самая технически сложная задача, которой я занимался в последний месяц - заставить домашний wifi нормально работать.

Вроде бы я не совсем кретин в вопросах сетей: в далекие школьные годы админил домашнюю сеть и еще помню романтику одного ADSL-подключения на четыре подъезда и обжима витой пары отверткой. Казалось бы, с тех пор прогресс огого, не надо ползать по чердаку и прописывать роуты вручную, так что организовать wifi на три комнаты должно быть несложно. Но нет, разобраться, почему прекрасно работавшая сеть внезапно начала терять 30% пакетов между роутером и экстендером, совсем не тривиально. Воспроизводимость экспериментов оказалась хуже, чем в машинлернинге, и даже random seed не зафиксировать.

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

9.9k 0 17 35 141

Добрался почитать статью SAM 2: Segment Anything in Images and Videos (старье, ей уже больше месяца!), искренне восхитился. Причем даже не только красивой демкой и высокими метриками на всех подряд zero-shot / semi-supervised бенчмарках по сегментации, а дизайном всего решения.

TL;DR такой:
- поставили новую задачу promptable video segmentation - в такой постановке задачу не решают, зато ее можно рассматривать как обобщение ранее известных задач;
- чтобы ее решить, подошли с обеих сторон - модель и данные;
- модель дизайнили под относительно быстрый стриминг инференс, пригодный и для видео, и для отдельных картинок, которые рассматриваются как частный случай видео из одного кадра;
- поддержка видео реализована через memory attention блок (выход енкодера проходит через self-attention на себя, а cross-attention - на memory, содержащий фичемапы предыдущих фреймов и предсказаний + вектора сегментируемого таргета);
- собрали огромный датасет из 600k+ масок, используя много итераций self-labeling с вовлечением разметчиков (human in the loop is all we need), в конце добившись среднего времени разметки кадра человеком 4.5 секунд;
- при помощи тех же self-labeling + валидацией человеками расширили датасет в четыре раза, и обеспечили этим еще и хорошую сегментацию фоновых объектов;
- для каждого куска пайплайна есть детальный ablation study.

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


Среди статей на ICML нашел интересный топик - knowledge transfer from foundation models. Такая смесь дистилляции (которая фокусируется на переносе знаний между архитектурами) и трансфер лернинга (перенос знаний между задачами). Возьмем для примера две статьи, одна от Apple, другая от Amazon (неудивительно, что этим больше интересуются компании, чем университеты).

В Knowledge Transfer from Vision Foundation Models for Efficient Training of Small Task-specific Models авторы предложили т.н. task-oriented knowledge transfer - по сути нехитрая трехшаговая схема, что в каком порядке учить, что замораживать, как выбирать неразмеченный датасет. Ничего сверхординарного, зато много результатов экспериментов, подтверждающих полезность этой схемы.

Transferring Knowledge from Large Foundation Models to Small Downstream Models понравилась больше. В этой статье авторы предлагают своего рода выучиваемый feature selection поверх фичей из foundation моделей. Идея такая: надо заставить модель-студента выучивать только нужные фичи от учителя, а остальные можно игнорить (в отличие от обычной дистилляции, где студент должен выучить все, и обычно в пространстве предсказаний, а не фичей).

The core intuition behind AFT is that we want the downstream model to prefer making predictions based on information already present in the pre-trained features, as they are highly likely to contain useful knowledge for the downstream task, but without necessarily using all pretrained features, since not all of them will be relevant to the downstream task.

In contrast to KD, AFT does not penalize the downstream model (student) from forgetting some of the pretrained (teacher) features, and only penalizes learning extra features not extracted from pre-training.


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

Повторюсь: умение делать небольшие модели - важно и нужно.


Следующее прекрасное/безумное - AutoOS: Make Your OS More Powerful by Exploiting Large Language Models (github, статья).

TL;DR: разбираться в 15 тыщах флагов для linux kernel как-то сложно, давайте лучше сделаем цикл, где LLM будет перебирать значения, а потом полученный конфиг будет проверяться на жизнеспособность. Штош, я тоже в детстве любил шатать разные незнакомые параметры и проверять, загрузится ли система.


MNIST 1D - самая прекрасно безумная работа, которую я пока увидел на ICML.

Это полусинтетический датасет, похожий на MNIST, который при этом сложнее для стандартных бейзлайнов, но при этом требует еще меньше вычислительных ресурсов. Авторы утверждают, что на этом датасете можно быстро воспроизводить всякие забавные метаэффекты типа Double Descent и Winning Lottery Tickets, используя только процессор бюджетного ноутбука.

8.9k 0 102 5 106

Сел в поезд, еду в Вену жрать шницели со штруделем на ICML - пожалуй, это вторая по значимости академическая ML конференция после NeurIPS.

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

9.5k 0 43 14 239

Кажется, с разных сторон назревает некоторый антихайп про generative AI:

Например:
- Партнер в Sequoia насчитал, что с текущими инвестициями в железо genAI должен принести $600B, чтобы окупиться, и этого, конечно, не видно.
- Goldman Sachs оценивает будущие инвестиции в железо в триллион баксов (правда, без уточнения, за какой период) и тоже сомневаются в окупаемости
- Видеокарты не становятся фундаментально эффективнее, а в основном просто больше (правда, этот тейк относится к продвижению альтернативного железа, так что take it with a grain of salt).
- Economist утверждает про незначительный экономический эффект, несмотря на сотни миллиардов capex.
- Anecdotal data: лично разговаривал с парой человек, которые после тщательного анализа передумали лезть в некоторые на первый взгляд привлекательные ниши, где genAI вроде должен быть полезен: оказалось, что соотношение цена/качество (и полезность как следствие качества) не сходятся буквально на порядок.

Но подождите, рано ползти на кладбище. Вместо этого приведу цитату из requests for startups от YC:

Small fine-tuned models as an alternative to giant generic ones'

Giant generic models with a lot of parameters are very impressive. But they are also very costly and often come with latency and privacy challenges.
...
We are eager to support companies engaged in developing or fine-tuning such specialized models or creating tools to facilitate their construction.


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

Enriching these transactions directly with GPT4-0314 , would cost $4.5M per day. With Ntropy, this costs $9k per day, a 500x reduction, while maintaining the same accuracy.

Окей, GPT4-0314 - это уже плохой выбор, GPT-4o обошлась бы в разы дешевле, но разбежка примерно на два порядка все еще сохраняется.

Как человек, который любит делать мелкие негигантские специализированные модели и не любит обещать API-based foundation моделям $100 чаевыми, я не могу не радоваться.


Это было предсказуемо: в 2024 легкая небрежность в тексте/коде окончательно стала премиальной и крафтовой. Пресный вежливый текст - значит, написано при помощи LLM (и даже без упражнений с промптами). Шероховатости придают эффект теплоты: человек не поленился и написал сам.

Например, пишет мне рекрутер, и второй абзац его письма выглядит как LLM-summary моего линкедин-профиля. Дальше как-то автоматически сложно поверить его словам, что this is exactly the type of experience they are looking for.

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

# Init model.
model = Autoencoder.to(DEVICE)
criterion = nn.MSELoss()

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

В итоге умение писать кое-как теперь вообще не имеет значения, а умение писать изящно (будь то текст или код) ценится как и раньше.

11.5k 1 59 10 106
Показано 20 последних публикаций.