Нейронный Кот
Open in Telegram
Задай мне любой вопрос: https://t.me/StarsAskBot?start=89911782 by @fursov (Head of AI at exh.ai) https://www.linkedin.com/in/fursovia
Show more1 515
Subscribers
No data24 hours
-67 days
-730 days
Posts Archive
1 515
Репозиторий RM моделей
Код для обучения + блог посты
Реализации всех основных RM — Bradley-Terry (pointwise моделька), Pairwise RM, RRM, Odin RM (борются с байесом длинных ответов) и другие
https://github.com/RLHFlow/RLHF-Reward-Modeling
1 515
Robust Reward Model
При обучении реворд модели можно случайно выучить НЕ то.
Вместо обучения на предпочтения людей, можно переобучиться на артифакты ответов
Что это за артифакты?
В датасетах предпочтений более длинные ответы, ответы с эмодзи 🙄, дружелюбные ответы чаще встречаются в
chosen, чем в rejected
Очевидно, мы не хотим обучить классификатор, который оценивает длину ответа, мы хотим реально хорошие ответы, независимо от их длины 👮♂️
Предлагается делать простой трюк из статьи — аугментации
🔹 Делаем дополнительные примеры из текущего датасета
🔹 Наша задача избавиться от переобучения на артифакты
🔹 Поэтому мы составляем такие пары, где chosen ответ для i-го примера сравнивается с j-ым chosen примером
🔹 Такой трюк заставляет переставать обращать внимание на артифакты, потому что мы учим, что один длинный-красивый chosen пример лучше другого длинного-красивого chosen примера
🔹 Тоже самое для rejected примеров. В общем, смотрите иллюстрацию — там все понятно
Самый прикол в том, что с помощью артифкатов (длинных ответов/эмодзи/доброжелательности) можно захакать не только реворд модель, но и людей. Так сделала llama-4 например, лол 🤷♂️🤷♂️🤷♂️
📎 Статья1 515
Пользовались ли бы бесконечной лентой (Feed) с постами из телеграм каналов? 👊
1 515
Repost from shipshigram
Не могу точно понять, как интропретировать этот факт: Хасбик в полный рост выглядывает из окна офиса Google (этаж Google Research).
Мнения?
1 515
Урбанистические трюки
Вы, наверное, слышали, что урбанисты делают городскую среду более безопасной и приятной через простые трюки для автомобилистов/пешеходов
В Лондоне мне нравится трюк со светофорами
На зеленом сигнале светофора есть специальные лопасти, которые не дают понять, горит ли зеленый сигнал, если ты смотришь на светофор под углом (то есть, не находишься на зебре)
Соответственно, люди скорее не будут бежать откуда-то издалека под углом через дорогу, ведь они не видят, горит ли зеленый свет
НО! На самом деле пешеходу доступна вся информация, ведь если не горит красный сигнал, значит, горит зеленый 🍎 А на красном сигнале как раз нет никаких лопастей! Но люди не могут быстро сделать такой вывод
Такой же трюк с лопастями я встретил и для автомобилистов. Только там лопасти смотрят вниз => значит, издалека не увидишь, горит ли зеленый. Поэтому сначала надо медленно к светофору подъехать, чтобы убедиться, что там 🟢
Короче, крутой трюк, который особо не напрягает, но сильно повышает безопасность.
Как можно было бы сделать, если ты не особо умный? Потратить $$$ и поставить заборы вдоль всей проезжей части
Знаете примеры подобных трюков? Не обязательно в урбанистике
1 515
Вайб-кодить в формате "реализуй фичу ИКС" — тупо
Так вы даете полный контроль модели (например, через agentic cursor) над реализацией фичи.
Реализация может оказаться неэффективной, небезопасной и в ней потом фиг разберешься
Поэтому:
🤬 Если умеете кодить, то сначала составьте план, что и как где должно быть реализовано. Зафиксируйте все функции/абстракции/компоненты/файлы/API/etc, а потом уже давайте задачу курсору:
реализуй фичу ИКС ... Для этого сделай 1) bla-bla 2) bla-bla 3) bla-bla😒 Если не умеете, то сначала посоветуйтесь с o3-mini/gemini 2.5 pro/sonnet 3.7/etc — кидайте им вашу кодовую базу, говорите, что хотите в нее добавить и просите такой план по реализации фичи, чтобы все было кайфово, безопасно, эффективно, робастно и тд В конечном итоге, с этим подходом будете меньше тратить времени на поддержку/разработку фичей/фикс багов 🙂 С бездумным вайб-кодингом можно делать только что-то очень базовое (на данный момент)
1 515
+2
https://aistudio.google.com/prompts/new_chat (Gemini 2.0 Flash Experimental)
делать стикерпак? 🫤
1 515
Multi-Token Prediction
В DeepSeek учили предсказывать ДВА токена наперед
Подробнее почитайте, что такое MTP тут и тут
Отбросим мысль про ускорение генерации на инференсе
Мне интереснее, что предсказание двух токенов улучшает генерализацию модели (см. таблицу)
И это же логично? Мы, люди, не предсказываем только одно слово (токен), когда формируем мысли
Мы пытаемся предсказать сразу несколько основных токенов, которые будут в нашем ответе
Например, на вопрос про трансформер, мы сразу вспоминаем майкла бэя такие слова как атеншн, эмбединги, kv cache, etc
Так, вот. Почему бы не учить LLM предсказывать сразу две вещи:
1. next token 2. all next tokensТо есть в лосс добавить еще одно слагаемое, которое делает multi-label предсказание ВСЕХ следующих токенов для i-го шага. И предсказывать это одним слоем (матрицей d x |V|) Будет работать?
1 515
phi-4 released
И вот сегодня наконец-то зарелизили модель в открытый доступ с MIT лицензией
Идем заменять ваши лламы?
https://huggingface.co/microsoft/phi-4
1 515
+1
Боремся с проклятыми токенами 😎
Люблю статьи от авторов phi — очень простые с топорными методами, но работают хорошо.
В тех репорте phi-4 показали, что
🔹 Проклятые (и благословенные) токены существуют
🔹 Предложили, как с этим бороться
Для задач, где есть правильный ответ, мы можем найти токены, которые негативно или позитивно влияют на вероятность успешного ответа
p(success)
Как найти такие токены? — авторы называют их pivotal tokens
Считаем условную вероятность, что ответ будет правильным при заданном префиксе ответа. То есть просто эмпирически считаем, какой процент правильных ответов будет при префиксе `import Flask`
Таким макаром находим все pivotal tokens в нашем трейн сете. И учим модель различать хорошие токены от плохих. Для этого формируем пары
prompt = promt + answer prefix good response = good token bad response = bad tokenИ запускаем DPO на этих парах. Еще раз: мы учим предсказывать только один токен! ⚠️ Если бы мы просто делали SFT или DPO на полных ответах, то учились бы предсказывать эти проклятые токены, которые негативно влияют на вероятность успешного ответа. В таблице 9 можно посмотреть, как DPO на pivotal tokens (stage 1) накидывает в качестве по сравнению с обычным DPO и SFT 🤨 Меня удивило, что проклятыми токенами могут быть вполне безобидные токены в стиле предсказал "that" вместо "the" (см. скрины в треде) 📖 Статья @neural_cat
1 515
Проклятые токены 🤯
Замечали/задумывались, что всего один случайный токен может привести выход LLM к неправильному ответу или в случае с маленькими моделями — к бреду?
Условно, на запрос
Реализуй эндпоинт на FastAPI ...модель может случайно сгенерить токен "import Flask" вместо "import FastAPI" И дальше уже от этого проклятого токена никуда не деться — придется продолжать ответ с фласком. Как бы боролись с таким? На этапе обучения? На этапе инференса? CoT не предлагать 😁
1 515
Repost from Denis Sexy IT 🤖
В последнее время я все больше программирую с LLM, и теперь добавил в связку o1 Pro:
Когда Sonnet 3.6 с первого раза что-то не может починить, я беру ошибку и код который есть, и прошу o1 Pro разобраться – потом тупо копирую ее ответ в Cursor и он уже сам всё чинит/правит
И чем больше я использую O1 Pro для кода, тем больше замечаю, что ей очень важна разметка промпта и структура кода, поэтому я обновил немного свои тулы для LLM-программирования:
🗺️ Folder Map Generator – примитивно работает, вы ей папку, она вам дерево файлов и каталогов; нужно чтобы LLM правильно писала пути к файлам, так как любая модель путается; файлы не покидают вкладку браузера
📄 Text File Merger for LLM – эта штука стала еще умнее: можно руками указать какие типы файлов взять из папки, автоматом расставятся пути и открывающие/закрывающие теги имен файлов (нужно для думающих моделей), все это поможет быстро добавить нужный кусок проекта в LLM-контекст; файлы не покидают вкладку браузера
Но самое полезное, что если вы положите в папку пустой файл
.ignore, то оба тула ее проигнорируют – то есть лишние папки/файлы можно убрать из контекста
***
В подтверждение моих слов про контекст, вот недавняя статья где команда смогла сильно бустнуть производительность АИ-ассистента для написания кода.
Вот краткая выдержка, общими словами:
1. Сначала, до кода, они дают LLM контекст проекта и просят его понять
2. Группируют похожие файлы по контексту
3. Просят модель прогнозировать, что именно затронет изменение кода
4. Передают ей историю изменений кода1 515
Тоже прогромирую с LLM, но с О1-бомж-версией и руками всегда все файлы копировал и объяснял структуру проекта 😒
Буду пробовать эти тулзы, кажется, они решают мою боль!
1 515
Системные промпты отменяются
Оказывается, openai не добавили какое-то новое поле для следования инструкциям, а просто решили заменить слово
system на developer
Зачем? 😩1 515
OpenAI API лежал сегодня 4 часа
Это напоминание, что желательно настроить fallback на claude/gemini/etc, а не зависеть от одного провайдера
Openrouter, кстати, поддерживает автоматический фолбек — просто указываете список "запасных" моделей и он за вас все зароутит — https://openrouter.ai/docs/model-routing
