Я поставил личный рекорд: еще никогда так долго не прокрастинировал написание двух параграфов текста 👀
Аж в январе мне написала Саша и спросила про рекламу для её канала про аналитику. Меня настолько зацепила ламповость её канала, что я пообещал поделиться им бесплатно, потому что такой контент нужно продвигать.
Саша работает аналитиком в Авито и пишет про собеседования, карьеру и самозванство, работу, а так же много личного. Меня особенно зацепило, что она написала про переговоры о зарплате через призму теории игр, как и я в своей методике. Но в отличие от меня она действительно что-то понимает в теории игр, потому что работала в лаборатории ВШЭ и может похвастаться статьей👀 .
А ещё Саша рисует научпоп комиксы
Словом очень ламповый канал, поглядите.👀
Аж в январе мне написала Саша и спросила про рекламу для её канала про аналитику. Меня настолько зацепила ламповость её канала, что я пообещал поделиться им бесплатно, потому что такой контент нужно продвигать.
Саша работает аналитиком в Авито и пишет про собеседования, карьеру и самозванство, работу, а так же много личного. Меня особенно зацепило, что она написала про переговоры о зарплате через призму теории игр, как и я в своей методике. Но в отличие от меня она действительно что-то понимает в теории игр, потому что работала в лаборатории ВШЭ и может похвастаться статьей
А ещё Саша рисует научпоп комиксы
Словом очень ламповый канал, поглядите.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥37❤14👎3
Mesa-optimisation
(кат)
Термин mesa-оптимизация (меза-оптимизация) был введён в 2019 году Эваном Хубингером и соавторами в статье “Risks from Learned Optimization in Advanced Machine Learning Systems”. В ней авторы анализировали случаи, когда обученная модель сама выступает как оптимизатор – то есть внутри неё возникает внутренний процесс оптимизации, преследующий собственную цель.
Однако, здравствуйте.
Меня долго не было, но у меня накопилось начитанного, и я врываюсь обратно. Сегодня - с обзорным лонгридом про современный стейт идеи меза-оптимизации - под катом. Кто не знаком с концепцией - не ссать - там про объяснение с примерами тоже есть)
(кат)
Термин mesa-оптимизация (меза-оптимизация) был введён в 2019 году Эваном Хубингером и соавторами в статье “Risks from Learned Optimization in Advanced Machine Learning Systems”. В ней авторы анализировали случаи, когда обученная модель сама выступает как оптимизатор – то есть внутри неё возникает внутренний процесс оптимизации, преследующий собственную цель.
Однако, здравствуйте.
Меня долго не было, но у меня накопилось начитанного, и я врываюсь обратно. Сегодня - с обзорным лонгридом про современный стейт идеи меза-оптимизации - под катом. Кто не знаком с концепцией - не ссать - там про объяснение с примерами тоже есть)
Telegraph
Mesa-optimisation
История концепции mesa-оптимизации Хотя термин был новым, сама идея опиралась на более ранние теории в сообществе безопасного ИИ. В частности, Эльезер Юдковский обсуждал похожее явление под названием «демоны оптимизации» (optimization daemons) ещё в 2016…
🔥11👍5❤3 1
Разбавим набившее оскомину AI-думерство. Вот неплохой, достаточно короткий и не слишком душный тейк о том, почему из текущих LLM не получится никакого AGI.
https://www.lesswrong.com/posts/oKAFFvaouKKEhbBPm/a-bear-case-my-predictions-regarding-ai-progress
Правда автор все равно дает нам примерно до 2030 👍
Как по мне весь аргумент не очень сильный сам по себе, но автор может оказаться прав.
https://www.lesswrong.com/posts/oKAFFvaouKKEhbBPm/a-bear-case-my-predictions-regarding-ai-progress
Как по мне весь аргумент не очень сильный сам по себе, но автор может оказаться прав.
Please open Telegram to view this post
VIEW IN TELEGRAM
Lesswrong
A Bear Case: My Predictions Regarding AI Progress — LessWrong
This isn't really a "timeline", as such – I don't know the timings – but this is my current, fairly optimistic take on where we're heading. …
👍19❤2🔥1
Благодаря Сиолошной узнал, что Толока в феврале выпустила очень подробный блог пост про сравнение Deepseek R1 и o1.
https://toloka.ai/blog/r1-is-not-on-par-with-o1-and-the-difference-is-qualitative-not-quantitative/
Делюсь потому что:
1. Пост хороший!
2. Приятно видеть как бывшие коллеги делают крутые вещи! Я когда-то тамвсех достал очень продвигал тему с внешними блог-постами.
https://toloka.ai/blog/r1-is-not-on-par-with-o1-and-the-difference-is-qualitative-not-quantitative/
Делюсь потому что:
1. Пост хороший!
2. Приятно видеть как бывшие коллеги делают крутые вещи! Я когда-то там
👍32❤8 5🔥2
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.
🤔17👍6❤5👎1🔥1😢1
Forwarded from Al Talent Hub
Борис опять у микрофона 🎤
💬 Путь от программиста до ML-инженера в eBay
💬 Про модели мира и ML простым языком
💬 И, конечно, — вопросы от зрителей
▶️ Open Talks c Борисом Цейтлиным — Смотреть на YouTube
Обучи алгоритмы YouTube: ставь лайк и комментируй видео 🦾
Новый выпуск #OpenTalks совсем скоро, оставайся с нами😎
#AITalentHub #ITMO #NapoleonIT
Обучи алгоритмы YouTube: ставь лайк и комментируй видео 🦾
Новый выпуск #OpenTalks совсем скоро, оставайся с нами
#AITalentHub #ITMO #NapoleonIT
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33👍4❤3 1
Forwarded from Сиолошная
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, может и на конференцию попасть.
Авторы заканчивают на вдохновляющей ноте:
Все 3 статьи и рецензии можно почитать тут — там же принимается обратная связь от научного сообщества об этической составляющей процесса.
P.S.: удивлён, что ровно то же самое не сделали Google или OpenAI🤔
Я писал про пару работ 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Forwarded from Техножрица 👩💻👩🏫👩🔧
🎉 Тем временем, мы с коллегами выложили на arXiv новый 4-страничный препринт про применение Sparse AutoEncoders (SAE, разреженные автоэнкодеры) для детекции искусственно сгенерированных текстов 🎉 (чтобы подробно разобраться, как работают SAE, можно начать, например, отсюда: https://transformer-circuits.pub/2022/toy_model/index.html ; если же говорить вкратце, SAE - это один из способов извлечь более "распутанные" и интерпретируемые фичи из эмбеддингов LLM-ки). В процессе работы над исследованием к моим постоянным соавторам присоединились два новых: Антон ( https://www.tgoop.com/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 см. посты https://www.tgoop.com/tech_priestess/1966 и https://www.tgoop.com/tech_priestess/1967 ).
Результаты интерпретации в целом вполне соответствуют тем интуитивным представлением о сгенерированных текстах, которое обычно формируется у людей, которые часто пользуются LLMками (см. https://www.tgoop.com/abstractDL/320 ): согласно нашему анализу, сгенерированные тексты чаще оказывались водянистыми, заумными, чрезмерно формальными, чрезмерно самоуверенными, а также чаще содержали повторения, чем человеческие тексты. Также мы описали несколько легко интерпретируемых признаков сгенерированности для отдельных доменов и моделей и другие наблюдения (о которых подробнее можно почитать в тексте самого препринта).
#объяснения_статей
Сама же работа называется "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 см. посты https://www.tgoop.com/tech_priestess/1966 и https://www.tgoop.com/tech_priestess/1967 ).
Результаты интерпретации в целом вполне соответствуют тем интуитивным представлением о сгенерированных текстах, которое обычно формируется у людей, которые часто пользуются LLMками (см. https://www.tgoop.com/abstractDL/320 ): согласно нашему анализу, сгенерированные тексты чаще оказывались водянистыми, заумными, чрезмерно формальными, чрезмерно самоуверенными, а также чаще содержали повторения, чем человеческие тексты. Также мы описали несколько легко интерпретируемых признаков сгенерированности для отдельных доменов и моделей и другие наблюдения (о которых подробнее можно почитать в тексте самого препринта).
#объяснения_статей
Please open Telegram to view this post
VIEW IN TELEGRAM
❤30 2
# Нечего добавить? Не усложняй
Не знаю отчего, но очень популярен такой паттерн:
То есть обработка ошибки, которая уничтожает информацию и не добавляет никакой пользы.
Прямо сегодня я столкнулся с этим в langchain (конечно же👀 ). Он имеет привычку прятать все внутренние ошибки и заменять их на свои, абсолютно бесполезные.
Причем это не только про Python. Думаю у всех такое было, что на каком-нибудь сайте вылетает: "Что-то пошло не так!" Давай, детектив, разгадай в чем проблема.
Абсурдность ситуации в том, что за каждым таким случаем стоит специально реализованная логика, которая не дает вам увидеть в чем проблема. Она не появляется сама собой. Поведение по умолчанию это вернуть ошибку как есть. Но кто-то специально приложил усилия, чтобы вы не узнали, почему сайт не открывается.
Возможно есть какое-то суеверие, что у пользователя будет разрыв мозга если он увидит😳 🥰 ." Однако второй вариант ни капли не понятнее первого!
Есть редкие продукты которые просто показывают ошибку. Примерно в половине случаев я могу догадаться в чем проблема и обойти её. Во второй половине случаев я могу хотя бы скопировать ошибку когда обращусь в тех поддержку.
Существуют очень редкие случаи когда нельзя показывать ошибки из соображений безопасности. Это исключения.
🔹🔹🔹
Просто верни ошибку как есть. Не усложняй.
Перезапись ошибки другой информацией имеет смысл только если это лучше помогает решить проблему.🤪
Не знаю отчего, но очень популярен такой паттерн:
try:
do_thing()
except Exception as e:
logging.error("Doing thing failed")
return None
То есть обработка ошибки, которая уничтожает информацию и не добавляет никакой пользы.
Прямо сегодня я столкнулся с этим в langchain (конечно же
Причем это не только про Python. Думаю у всех такое было, что на каком-нибудь сайте вылетает: "Что-то пошло не так!" Давай, детектив, разгадай в чем проблема.
Абсурдность ситуации в том, что за каждым таким случаем стоит специально реализованная логика, которая не дает вам увидеть в чем проблема. Она не появляется сама собой. Поведение по умолчанию это вернуть ошибку как есть. Но кто-то специально приложил усилия, чтобы вы не узнали, почему сайт не открывается.
Возможно есть какое-то суеверие, что у пользователя будет разрыв мозга если он увидит
"exception KeyError(...)"
вместо "Произошла ошибочка Есть редкие продукты которые просто показывают ошибку. Примерно в половине случаев я могу догадаться в чем проблема и обойти её. Во второй половине случаев я могу хотя бы скопировать ошибку когда обращусь в тех поддержку.
Существуют очень редкие случаи когда нельзя показывать ошибки из соображений безопасности. Это исключения.
🔹🔹🔹
Просто верни ошибку как есть. Не усложняй.
Перезапись ошибки другой информацией имеет смысл только если это лучше помогает решить проблему.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍65❤17👎2🤔1
Это не только про ошибки, а про прозрачную коммуникацию в целом.
Например, сейчас много продуктов используют 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. Это применимо когда мы строим любые системы которые коммуницируют между собой. Меньшее, что мы можем сделать, это не вносить шум в коммуникацию.
Если тебе нечего добавить к сообщению, то передай его как есть. Если что-то добавляешь или убираешь, то убедись, что этим ты делаешь лучше.
Например, сейчас много продуктов используют 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. Это применимо когда мы строим любые системы которые коммуницируют между собой. Меньшее, что мы можем сделать, это не вносить шум в коммуникацию.
Если тебе нечего добавить к сообщению, то передай его как есть. Если что-то добавляешь или убираешь, то убедись, что этим ты делаешь лучше.
👍102❤8🤔4👎2
T-Bank выложил очень подробный пост на Хабр про предобучение моделей T-lite и T-pro.
Напомню, что T-Lite и T-Pro это опубликованные в 2024 опенсорс русскоязычные модели на 7 и 32 млрд параметров, обе доступны на HF.
Обе модели являются адаптациями Qwen-2.5 под русский язык, а не предобучением с нуля. Это позволяет кратно сократить затраты на обучение и воспользоваться качеством базовой модели. Однако всё равно есть этап continual pretraining, то есть не нужно путать это с простым SFT finetuning. Сейчас на такой подход перешли все кроме GigaChat.
Раньше обучение этих моделей описывали достаточно крупными мазками и нам показывали бенчмарки.
В новом посте выложили все детали обучения:
- Двухстадийное предобучение (continual pretraining): Stage 1 на 100B токенов и Stage 2 на 40B токенов
- Состав датасетов для каждой стадии, включая доли языков и источников
- Детальный пайплайн обработки данных с фильтрацией
- Технические детали обучения: гиперпараметры, расписание LR, размеры батчей
- Instruction masking во второй стадии
- Результаты экспериментов и аблейшнов
Очень много подробностей. Таких материалов крайне мало. Вдвойне ценно, что поделились тем, что не сработало.
Дальше обещают ещё один лонгрид про post-training (SFT и alignment).
Напомню, что T-Lite и T-Pro это опубликованные в 2024 опенсорс русскоязычные модели на 7 и 32 млрд параметров, обе доступны на HF.
Обе модели являются адаптациями Qwen-2.5 под русский язык, а не предобучением с нуля. Это позволяет кратно сократить затраты на обучение и воспользоваться качеством базовой модели. Однако всё равно есть этап continual pretraining, то есть не нужно путать это с простым SFT finetuning. Сейчас на такой подход перешли все кроме GigaChat.
Раньше обучение этих моделей описывали достаточно крупными мазками и нам показывали бенчмарки.
В новом посте выложили все детали обучения:
- Двухстадийное предобучение (continual pretraining): Stage 1 на 100B токенов и Stage 2 на 40B токенов
- Состав датасетов для каждой стадии, включая доли языков и источников
- Детальный пайплайн обработки данных с фильтрацией
- Технические детали обучения: гиперпараметры, расписание LR, размеры батчей
- Instruction masking во второй стадии
- Результаты экспериментов и аблейшнов
Очень много подробностей. Таких материалов крайне мало. Вдвойне ценно, что поделились тем, что не сработало.
Дальше обещают ещё один лонгрид про post-training (SFT и alignment).
Хабр
Модели T-lite и T-pro: training report
Привет! Я Дима Стоянов, MLE в команде разработки фундаментальных моделей. Мы продолжаем рассказывать о наших моделях T-lite и T-pro. Общие характеристики и результаты бенчмарков описывали в предыдущей...
❤37👍14 7🔥3
Forwarded from КиберОлег 🦄🤖🙌
Делать стартап - это значит делать много вещей сразу, но обычно это значит делать все вещи плохо
Но GenAI многое поменял - теперь я могу делать ещё больше вещей и ещё хуже
Но GenAI многое поменял - теперь я могу делать ещё больше вещей и ещё хуже
# Vibecoding vs pycocotools часть II: Cursor
Недавно я проверил, может ли Claude Code Agent написать для нас небольшую Python библиотеку: pycocotools здорового человека. Он не смог.
Сегодня я проверил может ли Cursor. Задача была ослаблена до того, может ли Cursor в неавтономном режиме (на агентов пока надежды нет) помочь мне написать библиотеку быстрее, чем я написал бы её сам.
Я записал час вайбкодинга на видео (сам вайбкодинг начинается с 20 минуты).
Как и в прошлый раз посмотреть как и куда я пришел можно в этом репозитории (только не забудьте смотреть в ветку `cursor`):
https://github.com/btseytlin/sane-coco/tree/cursor
Ниже опишу свои выводы
Недавно я проверил, может ли Claude Code Agent написать для нас небольшую Python библиотеку: pycocotools здорового человека. Он не смог.
Сегодня я проверил может ли Cursor. Задача была ослаблена до того, может ли Cursor в неавтономном режиме (на агентов пока надежды нет) помочь мне написать библиотеку быстрее, чем я написал бы её сам.
Я записал час вайбкодинга на видео (сам вайбкодинг начинается с 20 минуты).
Как и в прошлый раз посмотреть как и куда я пришел можно в этом репозитории (только не забудьте смотреть в ветку `cursor`):
https://github.com/btseytlin/sane-coco/tree/cursor
Ниже опишу свои выводы
Media is too big
VIEW IN TELEGRAM
❤14👍7
В целом опыт на три с плюсом, почти четыре.
Сначала про плюсы. Очень приятный интерфейс. Cursor конечно монстр UI/UX. Очень простое погружение и онбординг. Самое главное: это работало. Если claude code agent за два часа работы не приблизил меня к желаемому результату, то здесь наблюдается прогресс. То, что осталось после часа работы, гораздо лучше, чем ничего. Cursor гораздо лучше понимал целевой вайб. В целом прикольно.
Однако мне кажется, что без курсора я бы продвинулся примерно так же. Было слишком много случаев когда агент шел не в нужную сторону, но это не было сразу очевидно, чтобы просто откатиться. Поэтому позже приходилось разбираться. В итоге процесс работы прерывается и приходится выходить из режиме решения задачи и переходить в режим "разбираемся в коде незнакомого интерна."
Самый неприятный момент (начинается около 57 минуты) был когда ассистент написал вызов трех методов:
1. Распарсить категории.
2. Распарсить изображения.
3. Распарсить аннотации.
Странность там была уже в том, что первые два метода, как и ожидается, парсили дикты и возвращали питон объекты. А третий почему-то ничего не возвращал, а делал что-то внутри себя. Это очень нечеловеческий и неинтуитивный способ написать кусок кода: две вещи работают так, а третья, функционально такая же, в другой парадигме. Закопавшись внутрь я понял, что ассистент написал третью функцию с сайд эффектом. То есть она не возвращала то, что распарсила, а сразу куда-то записывала. Это снова проблема непослушания: я прописал в правилах, что ожидаю функции и методы которые делают одну вещь без сайд эффектов, но модель решила подзабить на это.
Ничего, поправили. После шага парсинга аннотаций добавился шаг связи аннотаций и изображений (в COCO формате их надо сопоставить друг-другу). Потом ассистент пошел прогонять тесты, начал их править, внес множество изменений. И удалил шаг связи, который только что добавлял. Но вдруг тесты проходят!
Я смотрю в код и не понимаю как так может быть. То есть аннотации парсятся, результат записывается в переменную, а потом она нигде не используется. Её даже VSCode подсвечивает: смотри, этот кусок кода не нужен.
Получается мы распарсили аннотации, потом просто выбросили их, а тесты всё равно проходят. Не должно работать, но работает – очень плохая ситуация. Значит или тесты неправильные, или код работает не так, как мне кажется. Оказалось второе. На самом деле вторая функция, которая парсила изображения, уже записывала всё куда нужно. То есть она выглядела будто там нет сторонних эффектов, будто это правильная "делаю одну вещь" функция, а на самом деле это была подстава👀 .
И это боль. Прям правда боль. Нормально если ассистент пишет не такой код как мне нужно. Но действительно больно когда он пишет код который выглядит как то, что надо, а на практике работает вообще по-другому. В результате я не могу доверять инструменту, значит мне надо перепроверять. Проще ли это, чем написать самому? Не факт.
Дело так же в качестве. Я поймал эту проблему только потому, что у меня очень четкое представление о том, что я хочу получить. И то она вскрылась случайно. Как много программистов заботятся о том, чтобы каждая функция делала одну вещь? Может процентов десять. Как много не-программистов/вайбкодеров? Ноль. Значит 90% программистам и 100% вайбкодерам Cursor поможет написать код со скрытым приколом🙄 . В общем готовьтесь через пару лет поддерживать чье-то курсорное легаси где возможно всё и в любом куске кода может обнаружиться пасхалка.
В общем смешанные ощущения. Но скорее положительные. Однако точно не идет речи ни о каком "В 100Х РАЗ ЛУЧШЕ ПРОГРАММИСТЫ НЕ НУЖНЫ!1!11" Я напоминаю, что мы тут всё ещё пытаемся прочитать JSON с диска.
Сначала про плюсы. Очень приятный интерфейс. Cursor конечно монстр UI/UX. Очень простое погружение и онбординг. Самое главное: это работало. Если claude code agent за два часа работы не приблизил меня к желаемому результату, то здесь наблюдается прогресс. То, что осталось после часа работы, гораздо лучше, чем ничего. Cursor гораздо лучше понимал целевой вайб. В целом прикольно.
Однако мне кажется, что без курсора я бы продвинулся примерно так же. Было слишком много случаев когда агент шел не в нужную сторону, но это не было сразу очевидно, чтобы просто откатиться. Поэтому позже приходилось разбираться. В итоге процесс работы прерывается и приходится выходить из режиме решения задачи и переходить в режим "разбираемся в коде незнакомого интерна."
Самый неприятный момент (начинается около 57 минуты) был когда ассистент написал вызов трех методов:
1. Распарсить категории.
2. Распарсить изображения.
3. Распарсить аннотации.
Странность там была уже в том, что первые два метода, как и ожидается, парсили дикты и возвращали питон объекты. А третий почему-то ничего не возвращал, а делал что-то внутри себя. Это очень нечеловеческий и неинтуитивный способ написать кусок кода: две вещи работают так, а третья, функционально такая же, в другой парадигме. Закопавшись внутрь я понял, что ассистент написал третью функцию с сайд эффектом. То есть она не возвращала то, что распарсила, а сразу куда-то записывала. Это снова проблема непослушания: я прописал в правилах, что ожидаю функции и методы которые делают одну вещь без сайд эффектов, но модель решила подзабить на это.
Ничего, поправили. После шага парсинга аннотаций добавился шаг связи аннотаций и изображений (в COCO формате их надо сопоставить друг-другу). Потом ассистент пошел прогонять тесты, начал их править, внес множество изменений. И удалил шаг связи, который только что добавлял. Но вдруг тесты проходят!
Я смотрю в код и не понимаю как так может быть. То есть аннотации парсятся, результат записывается в переменную, а потом она нигде не используется. Её даже VSCode подсвечивает: смотри, этот кусок кода не нужен.
Получается мы распарсили аннотации, потом просто выбросили их, а тесты всё равно проходят. Не должно работать, но работает – очень плохая ситуация. Значит или тесты неправильные, или код работает не так, как мне кажется. Оказалось второе. На самом деле вторая функция, которая парсила изображения, уже записывала всё куда нужно. То есть она выглядела будто там нет сторонних эффектов, будто это правильная "делаю одну вещь" функция, а на самом деле это была подстава
И это боль. Прям правда боль. Нормально если ассистент пишет не такой код как мне нужно. Но действительно больно когда он пишет код который выглядит как то, что надо, а на практике работает вообще по-другому. В результате я не могу доверять инструменту, значит мне надо перепроверять. Проще ли это, чем написать самому? Не факт.
Дело так же в качестве. Я поймал эту проблему только потому, что у меня очень четкое представление о том, что я хочу получить. И то она вскрылась случайно. Как много программистов заботятся о том, чтобы каждая функция делала одну вещь? Может процентов десять. Как много не-программистов/вайбкодеров? Ноль. Значит 90% программистам и 100% вайбкодерам Cursor поможет написать код со скрытым приколом
В общем смешанные ощущения. Но скорее положительные. Однако точно не идет речи ни о каком "В 100Х РАЗ ЛУЧШЕ ПРОГРАММИСТЫ НЕ НУЖНЫ!1!11" Я напоминаю, что мы тут всё ещё пытаемся прочитать JSON с диска.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM