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
Forwarded from Сиолошная
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Техножрица 👩💻👩🏫👩🔧
🎉 Тем временем, мы с коллегами выложили на arXiv новый 4-страничный препринт про применение Sparse AutoEncoders (SAE, разреженные автоэнкодеры) для детекции искусственно сгенерированных текстов 🎉 (чтобы подробно разобраться, как работают SAE, можно начать, например, отсюда: https://transformer-circuits.pub/2022/toy_model/index.html ; если же говорить вкратце, SAE - это один из способов извлечь более "распутанные" и интерпретируемые фичи из эмбеддингов LLM-ки). В процессе работы над исследованием к моим постоянным соавторам присоединились два новых: Антон ( https://www.tg-me.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.tg-me.com/tech_priestess/1966 и https://www.tg-me.com/tech_priestess/1967 ).
Результаты интерпретации в целом вполне соответствуют тем интуитивным представлением о сгенерированных текстах, которое обычно формируется у людей, которые часто пользуются LLMками (см. https://www.tg-me.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.tg-me.com/tech_priestess/1966 и https://www.tg-me.com/tech_priestess/1967 ).
Результаты интерпретации в целом вполне соответствуют тем интуитивным представлением о сгенерированных текстах, которое обычно формируется у людей, которые часто пользуются LLMками (см. https://www.tg-me.com/abstractDL/320 ): согласно нашему анализу, сгенерированные тексты чаще оказывались водянистыми, заумными, чрезмерно формальными, чрезмерно самоуверенными, а также чаще содержали повторения, чем человеческие тексты. Также мы описали несколько легко интерпретируемых признаков сгенерированности для отдельных доменов и моделей и другие наблюдения (о которых подробнее можно почитать в тексте самого препринта).
#объяснения_статей
Please open Telegram to view this post
VIEW IN TELEGRAM
Это не только про ошибки, а про прозрачную коммуникацию в целом.
Например, сейчас много продуктов используют 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. Это применимо когда мы строим любые системы которые коммуницируют между собой. Меньшее, что мы можем сделать, это не вносить шум в коммуникацию.
Если тебе нечего добавить к сообщению, то передай его как есть. Если что-то добавляешь или убираешь, то убедись, что этим ты делаешь лучше.
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. Общие характеристики и результаты бенчмарков описывали в предыдущей...
Forwarded from КиберОлег 🦄🤖🙌
Делать стартап - это значит делать много вещей сразу, но обычно это значит делать все вещи плохо
Но GenAI многое поменял - теперь я могу делать ещё больше вещей и ещё хуже
Но GenAI многое поменял - теперь я могу делать ещё больше вещей и ещё хуже
Media is too big
VIEW IN TELEGRAM
# 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
Ниже опишу свои выводы
В целом опыт на три с плюсом, почти четыре.
Сначала про плюсы. Очень приятный интерфейс. 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
Так же Cursor практически не помогает думать. Я прошу написать тесты: он пишет тесты, где проверяет, что всё работает. Но пока не попросишь он не напишет негативные тесты. То есть он не будет без твоего пинка проверять, что то, что не должно работать, действительно не работает. И не скажет о том, что так нужно делать.
Так что программистский навык не обесценивается. Возможно, наоборот, теперь нужно два навыка:
1. Умение делать хорошо.
2. Умение распознать где LLM может тебя обмануть.
Так что программистский навык не обесценивается. Возможно, наоборот, теперь нужно два навыка:
1. Умение делать хорошо.
2. Умение распознать где LLM может тебя обмануть.
Forwarded from epsilon correct
Gemma 3
Выкатили семейство очень добротных моделек, нацеленных на локальных юзеров. Размеры 1, 4, 12, 27B, но зато 4-27B модельки со зрением и 128к контекста! По MMMU обогнали Gemini 1.5 Flash и вплотную подобрались ко второму флешу.
По бенчмаркам не так сильно обогнали Gemma 2, но моделька сильно лучше разбирается в социальных науках, бизнесе, психологии. Особенно хороший прирост на европейских языках, но под шумок я долил и русского.👉
Блогпост
Tech report
HuggingFace
Потыкать модель можно тут
Выкатили семейство очень добротных моделек, нацеленных на локальных юзеров. Размеры 1, 4, 12, 27B, но зато 4-27B модельки со зрением и 128к контекста! По MMMU обогнали Gemini 1.5 Flash и вплотную подобрались ко второму флешу.
По бенчмаркам не так сильно обогнали Gemma 2, но моделька сильно лучше разбирается в социальных науках, бизнесе, психологии. Особенно хороший прирост на европейских языках, но под шумок я долил и русского.
Блогпост
Tech report
HuggingFace
Потыкать модель можно тут
Please open Telegram to view this post
VIEW IN TELEGRAM
https://x.com/emollick/status/1901431681279475808
🔹LLMs produce funnier memes than the average human, as judged by humans.
🔹Humans working with AI get no boost.
🔶The best human memers still beat AI, however. 💪💪💪
Лучшие хьюман мемеры, вся надежда на вас🫡
🔹LLMs produce funnier memes than the average human, as judged by humans.
🔹Humans working with AI get no boost.
🔶The best human memers still beat AI, however. 💪💪💪
Лучшие хьюман мемеры, вся надежда на вас
Please open Telegram to view this post
VIEW IN TELEGRAM