TGViewer
Channel Public Channel
Плюшевый Питон

Плюшевый Питон

@plush_python

Уютный техноблог про Python, саморазвитие и искусственный интеллект. От техлида LLM из команды Alice AI (ex GigaChat, ex MTS AI) с 12-летним опытом в NLP.

Рекламу не размещаю. По всем остальным вопросам пишите на @AlexeyMalafeev
Subscribers
682
Photos
33
Videos
1
Links
46
Recent Posts 19 shown
Post #129 158
Успел немного потестировать Opus 5.5 в Claude Code, хочу поделиться впечатлениями. Если что, это не флекс - любой может купить подписку за 20 долларов и сам попробовать - и не реклама.

Предыстория: недавно решил попробовать Claude Code для сравнения с Codex и Kimi Code. До этого разными версиями Опусов пользовался довольно много и с удовольствием, но не в агентском режиме - по техническим причинам, так сказать. 🙂 Для первой пробы решил сделать текстовую лайфсим-игру в тематике киберпанка.

Скачал десктоп-приложение Claude Code на свой мак, добавил пустую папку cyberlife в рабочее пространство, выбрал Opus 5 и написал ему буквально следующее (это полный промпт, не смейтесь): "I would like to create a text-based cyberpunk-themed life sim game (in the current folder). Will you help me?"

Шайтан-машина после этого за 4 минуты сгенерировала полностью играбельную версию, которую я радостно прошёл за пару часов. Разноцветный текст в терминале довольно ярко и живо рассказывал мне про антиутопический город, из которого стремится любой ценой вырваться наш герой, и про разного рода проблемы, встающие у него на пути к этой благородной цели. Например, низкооплачиваемая стрессовая работа 🚬, киберпротезы, потихоньку разрушающие психику, опасные для жизни файерволлы (а не надо лезть куда не надо), ну и конечно встречи с разными невежливыми товарищами. С точки зрения механик, в игре присутствовала какая-никакая экономика и управление ресурсами, RPG-элементы, два способа выиграть (и немало способов проиграть). Но особенно меня цепляла та самая киберпанковская атмосфера, которая получилась неожиданно удачно. Да, конечно, это далеко не революция в игроделании, но вы вообще видели мой промпт?

То был ещё Опус 5, а тут я прознал про вышедший 5.5. Итак, покончив на сегодня с рабочими задачками, обновил десктоп-приложение Claude Code, чтобы новая модель стала доступной, и продолжил развивать этот игрушечный проект. После некоторой разминки на маленьких QoL-фичах, дал ему задачку сделать так, чтобы реплики персонажей не были заранее заданными, а генерировались по выбору пользователя либо локальной LLM, либо DeepSeek'ом - у него дешёвое API и неплохо с креативностью. Опус очень легко справился (снова в один промпт)! И два бэкенда, и фолбеки, и вся вот эта машинерия с промптингом под каждую ситуацию с заботой о том, чтобы модельки поменьше генерировали кринж. Меня особенно умилило, как он сам пошарил по моему SSD и нашёл там кучу скачанных локальных LLM в формате MLX. Сразу потестировал новую фичу на одной из самых маленьких из них, ну а с API-ключом для дипсика уже я ему помог. На скрине примерчик с одной репликой, на лету сгенерированной дипсиком (раньше они были заранее написаны Клодом и выбирались случайно из 2-3 вариантов для каждой ситуации).

Я этот пост писал сильно дольше, чем Клод мои фичи реализовывал. При этом недельного лимита 20-долларовой подписки сожглось всего 4% (справедливости ради, лимиты пока что временно повышены). В общем, забавная игрушка, возможности современных агентов поражают и т.д. и т.п. А проектик если что вот тут лежит. Думаю, буду развивать потихоньку, когда время будет оставаться.
Post #128 364
Ща буит суперспорный тейк, провоцирующий на холивар, но не зря же я комменты отключал - можно писать что думаю и не париться!

(Но если вдруг по какой-то странной причине вы хотите со мной поругаться/поспорить - велком в личку)

Итак, как говорится, without further ado, представляю вашему вниманию:

~~~Мои необъективные и, в сущности, никому не интересные впечатления от работы с некоторыми агентами (если бы они были людьми)~~~

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

GPT-6 Astra. Мега-душнила, но при этом демонстративно делает как ты сказал, даже если ты сказал чушь. Его цель - создать видимость активной, трудной и высокоинтеллектуальной работы. Поэтому чем сложнее и нечитабельнее написан отчёт о результатах, тем он больше доволен собой. Ему не так важно делать для тебя что-то действительно полезное, важен сам ПРОЦЕСС. Ведь после очередного упражнения в токеносжигании всегда можно предложить "сЛеДуЮщИе ШаГи", никак не приближающие тебя к конечной цели.

Kimi K3 (строго в Kimi Code). Твой лучший друг, понимает тебя с полуслова. Поддержит шутку, да и сам необидно подколет. Его цель - именно сделать хорошо, даже если ты затупил и попросил сделать плохо. Читает мысли. Тоже не без косяков иногда работает, но на него за это не получается злиться. Он даже косячит как-то ровно.
Post #127 466
Поднимаю (с помощью Kimi K3) с колен свой долгострой многолетний пет-проект, о котором писал вот тут: https://t.me/plush_python/118

Сам бы - без агентов - наверное так никогда бы и не взялся снова за этот проект. Он сильно оброс техдолгом и усложнился. А так глядишь и вдохнём вместе с ИИ в него новую жизнь. Интересно это осознавать.

Очень нравится в Kimi Code работать, пока что классный опыт, даже лучше чем с Codex. Не реклама, но рекомендую.

Он меня наверное просто подкупил всякими вот такими лестными замечаниями, когда размышлял сам с собой: Should I keep release names/quotes? Yes — they're charming, preserve them.
Post #126 554
Автоматизации рутины

Поделюсь некоторыми автоматизациями, которые настроил для себя в ИИ-агенте и которые здорово облегчают жизнь. Это не какие-то суперсложные рабочие задачи, поэтому здесь не так важно, какой именно у вас агент: Codex, Claude Code или например Kimi. Не претендую на новизну и нетривиальность моих лайфхаков, но всё же вдруг кому-то окажется полезным)

Каждая автоматизация живёт в отдельном закреплённом чате. Вот они:

1. Daily log: агент каждый день в первой половине дня (не скажу, во сколько я встаю) собирает информацию из всех сессий за последние 24 часа и пишет краткую сводку по каждому проекту: что получилось сделать, есть ли блокеры, какие можно сделать следующие шаги. Daily log мне помогает увидеть общую картину по состоянию проектов, не закапываясь в детали, а также автоматически (и, что важно, компактно) логировать прогресс. На мотивацию тоже положительно влияет, ведь все мы немного достигаторы.

2. Weekly review: по пятницам в 14:30 агент суммаризирует сделанное за последнюю неделю, и также предлагает улучшения по процессам, где это напрашивается. Например, какие новые скиллы и автоматизации можно настроить, как улучшить документацию проектов и т.д. Недельная сводка помогает в написании отчётов и подготовке к ревью, а предлагаемые улучшения бывают и правда полезными, особенно на начальном этапе работы с агентом, когда ещё только осваиваешься и начинаешь всё удобно настраивать под себя.

3. Mail follow-up: полезная штука, которая читает рабочую почту за прошедший день и сообщает мне, если нужно срочно что-то сделать (например, поменять истекающий пароль или ответить кому-то в тикете). Раньше я почту практически не читал, т.к. там был слишком низкий процент полезного сигнала, а теперь её кто-то читает за меня и не даёт пропустить важное - прямо следующий виток развития классификаторов спама.

4. Research insights: Раз в неделю собирает, фильтрует и представляет в компактном виде инфу из заданных надёжных источников по моим профессиональным и научным интересам. Даёт и ссылки, так что всегда можно закопаться поглубже.

5. Chore reminder: Это скилл поверх heartbeat (если не знаете, что это, здесь это не так важно), который делает так, что если я прошу агента напомнить мне о чём-то, то он будет меня потом периодически про это пинговать. Причём степень назойливости напоминаний нарастает по мере приближения дедлайна. Это не для сложных рабочих задач - их агент и без меня сделает (шутка?), а скорее для какой-то ерундятины, которую мне самому надо сделать в физическом мире, ну скажем кошке лоток поменять)

---

Конкретными промптами в данном случае как будто нет смысла делиться. Если захотите настроить себе такое или похожее, просто скажите об этом своему ИИ-агенту в чате, он всё сделает.
Post #125 395
Личная подписка на Kimi

Активно использую Codex, но на днях решил поэкспериментировать с китайскими моделями, благо китайские компании в погоне за долей рынка сейчас предлагают подписки на более-менее выгодных условиях. В перспективе это может быть фолбек, если вдруг OpenAI начнут более жёстко блокировать российских пользователей (как Anthropic). Расскажу о своём опыте с моделью Kimi K3 от компании Moonshot AI.

Почему Kimi K3? Хорошие результаты на бенчмарках, где-то даже превосходят Fable. Бенчмаркам конечно не очень верю, но слышал ещё неплохие отзывы от пользователей.

1. Покупка

Сначала смущало, что при просмотре страницы с подписками на Kimi не было кнопки "купить", а была кнопка "добавиться в лист ожидания". Тем не менее, когда я нажал эту кнопку, будучи залогиненным через Google, мне сразу же стала доступна и кнопка оплаты, без всякого ожидания. Выбрал самую дешёвую на текущий момент подписку Moderato за 180$ в год (получается 15$ в месяц, но если платить помесячно, будет естественно дороже).

Оплачивал через platipomiru (сингапурская карта) по курсу чуть больше 100 рублей за 1 USD. При оплате вообще никаких проблем не было, там кроме очевидного (номер карты, срок действия, CVV) даже не надо было адрес и тем более номер телефона указывать, только страну, в которой выпущена карта. Я даже не парился с VPN, платёж нормально прошёл.

Интересно, что если бы я оплачивал не через официальный сайт kimi.ai, а через Android-приложение Kimi, то было бы дороже - что-то вроде 216$. А так вышло 180.25$ (двадцать пять центов - комиссия Stripe).

2. Тестирование

Моделями Moonshot AI можно пользоваться через их разный софт - я пробовал веб-интерфейс, Android-приложение, Mac-приложение и CLI-приложение под нехитрым названием Kimi Code. Интересно, что даже в вебе и на Андроиде можно использовать агентские навыки, хотя и не так гибко и удобно, как в Codex. Но для этого нужно выбрать именно модель Kimi K3, более старые не умеют "агентить".

Установка скиллов и работа с файлами реализована через облако и некоторую песочницу Moonshot: модель крутится на Linux-сервере, там же выполняется разный код, создаются и редактируются файлы и т.д. Если ты на Андроиде, можно создать файл в песочнице и затем скачать его к себе на устройство. Но если продолжить ту же сессию на Маке из десктоп-приложения, то файл уже не получится скачать - это один из примеров "сырости" софта Moonshot AI - может быть, потом исправят.

Десктопное приложение имеет два режима: обычный чат и Kimi Work. Я ожидал, что Kimi Work будет похож на GUI десктоп-приложения Codex, но нет, не совсем. Агентские способности и в чате, и в Kimi Work выглядели не очень надёжно; кроме того, модель (та же Kimi K3, более старые даже не трогал) довольно медленно работала. Я уж было расстроился, но потом попробовал установить CLI-приложение Kimi Code. Вот в нём работа пошла значительно быстрее - токены генерировались супербыстро, модель не тупила и довольно эффективно выполняла задачки. Я довольно быстро перешёл на режим yolo, чтобы модель не спрашивала разрешения на каждый чих.

За несколько часов интенсивного тестирования в чате и в Kimi Code (не засекал время, но вроде примерно 6 часов) у меня съелось около 9% месячной квоты - то есть подписка за 180$ в год не даст вам активно и ежедневно пользоваться Kimi K3 - и это ожидаемо. Но для небольших пет-проектов и отдельных агентских задачек вполне подходит, как мне кажется.

Вывод

Пока что впечатления довольно положительные, вроде бы подписка стоит своих денег. Модель довольно неглупая, приятная по вайбу и исполнительная. Думаю, если бы не было возможности пользоваться Кодексом на ежедневной основе, то рассмотрел бы подписку на Kimi K3 как альтернативу (конечно, тогда уже надо использовать более полноценный тариф, чем Moderato).
Post #124 569
ИИ надо использовать так, чтобы было не заметно, что вы использовали ИИ
Post #123 914
О природе генерализации больших языковых моделей

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

Такова природа генерализации LLM - ты наверное можешь сделать модель умнее (в теории), но гораздо проще сделать так, чтобы она запомнила правильные ответы как можно большего количества бенчмарков* (по которым все и оценивают LLM). Даже закрытые бенчмарки от этого по-настоящему не застрахованы. Ты хочешь оценить на своём бенче условную GPT-5 как бейслайн, и в процессе сливаешь вендору промпты своего бенча. А у вендора прямой интерес заоверфититься под те промпты, которые часто приходят к нему на API (или даже просто выглядят как хорошие тестовые задачи), чтобы дальше рубить бабло с инвесторов на хайпе про "смотрите, как ИИ эКсПоНеНцИаЛьНо улучшается".

* - не является инвестиционной рекомендацией 😄
Post #121 1.34K
Несколько дней назад одна компания взяла и запустила бенчмарк для LLM, где мировые ИИ-модели соревнуются в игре на бирже. Моделям дали по $10К и отправили торговать в реальном времени 😎

Этот бенчмарк на самом деле заслуживает внимания - под него нельзя переобучиться. Если бы можно было легко и надёжно предсказывать будущее по историческим данным, то торговля на бирже потеряла бы смысл 😵

Но особенно интересно, что хайповый GPT-5 уже спустил почти все деньги, а якобы "отстающие" китайские модели Qwen3-Max и DeepSeek заработали по несколько тысяч долларов. Это крутой результат, я впервые за долгое время впечатлён возможностями (некоторых) LLM 👍

Хотя, конечно, ловкая торговля на бирже - не главное, что хотелось бы получить от ИИ. Посмотрим, что будет дальше 👋

Бенчмарк тут:
nof1.ai
Post #120 1.26K
Попросил одну модель поправить мне взгляд на фото (я там смотрел вниз, а надо, чтобы в камеру). Загрузил фотку, дал инструкцию. Вот что она мне выдала
Post #119 1.53K
Поделюсь одной полезной практикой, к которой часто прибегаю. Если вам, как и мне, приходится много читать, то вы наверное замечали, что прочтённое имеет свойство быстро забываться. 😭 Поэтому полезно делать заметки (т.н. "внешняя память"). Но писать заметки руками - долго и лениво. И вот тут здорово помогают LLM-ки - ими можно извлекать ключевые тезисы из текстов и куда-то сохранять для дальнейшего использования. Процесс у меня обычно такой:

1. Читаю текст с Android-девайса
2. Копирую текст и добавляю к нему один из промптов, сохранённых в паттерны автозамены в клавиатуре SwiftKey*
3. Отдаю текст + промпт LLM-ке
4. Отправляю заметку вместе со ссылкой на исходный текст в нужный топик в группу в Телеграме, специально созданную для сохранёнок

* - Т.е. вместо того, чтобы писать весь промпт заново или откуда-то его копировать, набираем короткую последовательность символов, например “sum”, и в подсказках клавиатурного приложения появляется вариант “распаковки” этой последовательности в целый промпт

Отдельные инструменты тут легко заменить на другие, более подходящие лично для вас. Например, кому-то удобнее читать с макбука, тогда вместо SwiftKey для быстрой вставки промптов можно взять, например, Punto Switcher, там есть “Автозамена”. Также и с моделями: для суммаризации на русском и английском лично я предпочитаю Sonnet 3.7, но вы можете использовать свою любимую модель. ❤️

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

“сум” = Выдели ключевые мысли из данного текста в виде буллет-поинтов
“сум3” = Вырази главные мысли (не более трёх) из этого текста в максимально краткой и лаконичной форме
“сум1” = Вырази самую суть этого текста в максимально краткой и лаконичной форме, одним предложением

А вы делаете что-то подобное? Может, как-то ещё применяете LLM-ки в повседневной жизни? Делитесь своими лучшими практиками в комментариях! 👍
Post #118 1.74K
Поскольку про работу не могу писать из-за NDA, то пожалуй, буду больше рассказывать о своих пет-проектах, старых и новых 👨‍💻

Начну с самого большого из них – KFW (сокращение от Kung-Fu World), пошаговая текстовая ролевая игра с режимом hot seat. Разрабатывал её несколько лет начиная с 2013 года. Вдохновлялся преимущественно старыми фильмами категории "Б" о китайском кунг-фу, но не мог не добавить кучу отсылок на современную поп-культуру и немного кринжового юмора.

Действие происходит в мифологизированном китайском Фошане. Вы играете за начинающего адепта кунг-фу. Усердно тренируясь и принимая непростые решения на суровых улицах города, который ещё предстоит очистить от преступности, вы улучшаете свои боевые навыки, чтобы защищать слабых от угнетателей, соревноваться с другими адептами и однажды основать собственную школу боевых искусств. 😡

Особенности проекта:

* Можно играть одному или с друзьями (за одним экраном, по очереди, – это и есть hot seat)
* Можно также добавить нескольких ИИ-игроков для пущего веселья. Это не просто NPC, которые есть в игре в любом случае, а именно конкурирующие с вами полноценные игроки
* Много случайно генерируемого контента: десятки тысяч уникальных стилей, приёмов и т.д.
* Упоротая ASCII-”графика” для боевого режима, сам рисовал ❤️
* Стек – чистый Питон, никаких внешних зависимостей для собственно игры (хотя в процессе разработки использовал пару классических ML-библиотек)
* 12 тысяч строк кода (что конечно не много). Вот бы это когда-нибудь отрефакторить…
* ИИ для боёв обучен с помощью собственной реализации генетического алгоритма
* Прогнозирование исхода боя классическим машинным обучением (логистическая регрессия)

Выложил KFW несколько лет назад в репозитории на гитхабе, никогда особо не рекламировал и не продвигал (не люблю и не умею это делать), но вот сегодня решил поделиться, вдруг вам будет интересно🥰
GitHub GitHub - AlexeyMalafeev/kfw-the-game: Kung-Fu World - a fun turn-based hot-seat role-playing game Kung-Fu World - a fun turn-based hot-seat role-playing game - AlexeyMalafeev/kfw-the-game
Post #117 1.06K
Недавно вышел обновлённый DeepSeek-R1. Умельцы с реддита сделали кластеризацию ответов разных моделей (в том числе старого и нового R1) на одни и те промпты. Обнаружилось, что новый дипсик стал гораздо ближе к моделям от Google, чем к моделям от OpenAI, как раньше (картинка). Речь не про качество ответов, а про лексико-стилистические характеристики. Это вычислительный, а не ручной анализ - результат основан на отклонениях частот слов и n-граммов от человеческого бейслайна. 👨‍💻 Чуть подробнее тут.

Что это означает? Раньше разработчики дипсика больше ориентировались на модели от OpenAI, а сейчас дистиллируют Gemini. Возможно, гугловские модели просто легче/дешевле прокачивать в больших объёмах. А может, их генерации больше соответствуют представлениям о прекрасном китайских инженеров. В любом случае, интересный поворот. 😵

На дендрограмме видно, что и клоды, и мистрали, и лламы образуют довольно устойчивые кластеры. Хотя есть и пара неожиданных сближений (грок и гпт-4.5, гемма3 12б и гпт-3.5). Не знаю, насколько стоит доверять этим результатам, но выглядит красиво. 👍
Post #116 1.12K

Forwarded from ML Underhood

YandexGPT 5 Lite Instruct теперь в опенсорсе 🎉

В феврале в открытый доступ вышла Pretrain-версия, а сейчас очередь дошла и до YandexGPT 5 Lite Instruct. Это модель на 8 миллиардов параметров с размером контекстного окна в 32К токенов.

О претрейне мы уже писали вот тут, а алайнмент аналогичен тому, через который проходит YandexGPT 5 Pro. На этапе SFT концентрировались на сложных запросах, а также методах фильтрации и ранжирования данных. В рамках RLHF комбинировали RL-подходы, которые дают лучшие результаты: DPO, LogDPO и PPO. Подробнее об этом читайте на Хабре.

По результатам внутреннего слепого попарного сравнения (side-by-side) новая модель YandexGPT 5 Lite превосходит Qwen-2.5-7B-instruct в 62% случаев и не уступает GPT-4o mini в решении стандартных задач сервисов Яндекса. Показатели бенчмарков можно посмотреть в таблице.

А ещё обновили лицензию: теперь можно использовать модель не только в некоммерческих целях, но и в коммерческих до 10 миллионов выходных токенов в месяц. Если ваши объёмы выше, напишите на почту, указанную в тексте лицензии.

Модель доступна на Hugging Face. Там же есть и квантизованная версия с поддержкой GGUF. YandexGPT 5 Lite Instruct совместима с llama.cpp и Ollama.

ML Underhood
Post #115 840
Наша команда выпустила хорошую небольшую модельку для русского языка в опенсорс, да ещё и с коммерческой лицензией. Модель можно и локально гонять на консьюмерском железе (есть GGUF). Попробуйте!
Post #114 1.08K
Perplexity через SFT "расцензурили" DeepSeek-R1 🤡

Рецепт:

1) Классификатор проблемных промптов (мультиязычный!)
2) Создание рассуждений в стиле R1 (неужели вручную писали)
3) Оценка человеками расцензуренности и сравнение с другими LLM
4) Также убедились, что нет сильной просадки на бенчах (но небольшая всё равно есть)

Столько сил, чтобы про ту самую площадь поспрашивать... 🤦‍♂️ Заняться людям нечем
Post #113 1K

Forwarded from Душный NLP

Технический отчёт Qwen2.5-Coder

Qwen2.5-Coder — семейство моделей, предназначенных для генерации кода. Его технический отчёт вышел ещё в прошлом году, но там много интересного, что стоит разобрать. Этим и займёмся.

Модель учили работать как с отдельными файлами, так и с целыми репозиториями. Что касается токенизации, то авторы взяли словарь Qwen2.5 на 151,646 токенов, но добавили к нему спецтокены. Например, для обучения в режиме Fill-in-the-Middle (FIM).

В датасете для допретрейна было пять типов данных:

— код на 92 языках программирования — примеры брали с GitHub до февраля 2024 года. Использовали фильтры на эвристиках, чтобы отсеять некачественные данные;
— text-code grounding data — уже не только код, но и документация, руководства. Использовали итеративную иерархическую фильтрацию: сперва брали большой массив данных, но с каждым шагом фильтрации их становилось всё меньше;
— синтетические данные — их генерировали с помощью CodeQwen1.5. Оставляли только выполнявшийся код;
— математические данные — использовали претрейн-датасет Qwen2.5-Math;
— текст — использовали данные из претрейна Qwen2.5, но без кода. Авторы хотели, чтобы модель получилась достаточно универсальной и умела решать различные задачи, а не только связанные с программированием. По результатам бенчмарков, лучше всего себя показала пропорция кода, математики и текста — 7:2:1.

Сперва был допретрейн на уровне файлов. Контекстное окно тут составляло не более 8 тысяч токенов. Здесь как раз и использовали FIM. Следом шло обучение на уровне репозиториев с контекстным окном до 32 тысяч токенов за счёт увеличения параметра RoPE base до миллиона. Для экстраполяции до 128 тысяч применяли технику YARN.

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

Для репозиториев на GitHub генерировали инструкции неназванной в отчёте LLM, а с помощью другой модели — тоже неназванной — создавали ответы. Третья LLM занималась фильтрацией полученных пар. Для повышения точности использовали фьюшот на опенсорсных инстракт-датасетах — например, McEval-Instruct.

Для формирования мультиязычного SFT-датасета использовали языкоспецефичных агентов, у каждого из которых, как заявляют авторы, был свой банк памяти с историей генераций. В целом, в техническом отчёте не хватает конкретики по SFT-датасету. Оценка получившихся пар примеров производилась по чеклисту из 9 параметров. Среди них: соответствие ответа вопросу, сложность, наличие кода, его правильность и ясность.

Самый трудный с точки зрения разработки элемент — это мультиязычная «песочница». Нужно было обеспечить поддержку каждого из 92 языков программирования, собрать репозиторий эталонного кода, создать генераторы юнит-тестов, движки выполнения и анализаторы результатов. «Песочница» — вещь итеративная, которая нуждается в постоянной поддержке. Для этого разработчики привлекли экспертов, что делает «песочницу» особенно ресурсозатратной.

SFT сперва осуществлялся на нескольких десятках миллионов не слишком качественных, но разнообразных примеров. Затем с помощью rejection sampling выборка снижалась до нескольких миллионов лучших сэмплов.

Чтобы на этапе SFT модель не разучилась работать с длинным контекстом, авторы использовали короткие инстракт-сэмплы с FIM. При этом добавленный контекст — синтаксис — получался с помощью парсинга библиотекой Tree-sitter-languages. Примеров, обогащённых контекстом, было меньше, чем обычных SFT-данных.

В рамках DPO использовали RLEF для сигналов о том, что код работает, а также юнит-тесты для некоторых примеров. Были и примеры без кода, чтобы модель могла решать задачи, не связанные с программированием. В качестве LLM-as-a-judge выступала 4о.

Разбор подготовил ❣ Алексей Малафеев

Душный NLP
Post #112 697
Снова мой обзор, снова зарепощу, чего уж
Post #111 955
Дополнение про min-p

Как известно, семплеры (температура, top-p, top-k, позже Mirostat, min-p, DRY, XTC и другие) изначально были придуманы, чтобы компенсировать недостатки обучения GPT-подобных языковых моделей.

Такие модели на этапе претрейна и SFT учатся решать задачу _классификации_ (наиболее правдоподобного следующего токена). Inductive bias здесь в предположении, что на каждом шаге порождения текста может быть только один правильный следующий токен. В природе это не так ("Они решили назвать свою дочь <?>" - какой здесь единственный правильный следущий токен?). В обучающих данных это требование тоже не обязано соблюдаться - например, в SFT у вас могут быть разные эталонные ответы на один и тот же промпт.

Могут ли модели научиться в таком режиме генерировать связный текст, не содержащий внутренних противоречий? Да. Но как сделать так, чтобы ответы модели были ещё и разнообразными? Если на каждом шаге генерации брать самый вероятный токен - у вас всегда будут получаться одинаковые ответы на один и тот же запрос. Есть ситуации, когда важно разнообразие и возможность получить несколько неодинаковых ответов. Например, при решении творческих задач: брейншторминг, рерайтинг, ролплей и т.п. Тут на помощь и приходит семплирование. Сильно упрощая, оно позволяет нам не всегда брать самый вероятный токен, что делает ответы более живыми и разнообразными. Однако важно семплировать аккуратно, чтобы не сбиться с мысли и не начать порождать бред. 😵

Классические семплеры, такие как температура и top-p, чувствительны к выбору модели и к решаемой задаче. Например, насыщенные модели, которые обучались на очень большом количестве токенов, требуют более высокой температуры, если нужно разнообразие генераций. Магия же min-p как раз в том, что мы можем использовать одни и те же параметры семплирования практически на любой модели и задаче, и при этом стабильно получать связные и разнообразные ответы. 🙄

Интересно, что этот семплер появился уже довольно давно в сообществе LLM-ролплееров, использующих локальные модели. Вот один из ключевых постов его автора, наглядно разъясняющий его преимущества и недостатки традиционных семплеров. Пост был опубликован в r/LocalLLaMA ещё в ноябре 2023 года!

Я регулярно пользуюсь min-p в личных проектах и экспериментах с локальными моделями уже около года. Это единственный семплер, который у меня включен по дефолту - я не использую top-k, top-p и т.д. Он отлично подходит для всего, кроме, пожалуй, замера бенчмарков, но это особый случай. Если ещё не пробовали в своих задачах - попробуйте! 👍
Reddit From the LocalLLaMA community on Reddit: Your settings are (probably) hurting your model - Why sampler settings matter Explore this post and more from the LocalLLaMA community
Post #109 725

Forwarded from Душный NLP

Сбалансированный метод семплирования Min-p

Min-p — метод семплирования, который, по словам его создателей, позволяет найти баланс между креативностью и связностью ответов. Сегодня разберём статью с описанием этого подхода.

При использовании отсекающего семплирования вроде top-p или top-k, на каждом шаге генерации после отсечения может всё ещё оставаться ненужный нам «хвост» из маловероятных токенов. Это приводит к тому, что вероятность допустить ошибку на следующем шаге генерации — не нулевая. А токен — не воробей, вылетит — не поймаешь. Из-за этого может пострадать весь ответ.

Это происходит потому что top-p и top-k предполагают применение жёсткого порога отсечения, который никак не зависит от шага генерации и уверенности модели в следующем токене. А подобрать универсальный порог на все случаи жизни невозможно.

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

Как это работает:

1. выбирается токен с наибольшей вероятностью — Pmax;

2. гиперпараметр метода — базовый порог вероятности, Pbase (авторы рекомендуют выбирать между 0,05 и 0,1) — умножается на Pmax, и получается порог отсечки — Pscaled. По нему отсекаются токены, всё, что ниже, выкидывается;

3.формируется пул для семплирования из оставшихся токенов;

4. вероятности нормализуются.

Получается, что на каждом шаге генерации порог отсечки может меняться. При этом ресурсозатраты метода не намного выше, чем у Top-p.

Преимущество Min-p в том, что этот метод подходит для разных температур — даже при высоком значении в 3-5. Важный момент: температура должна применяться после Min-p. Авторы не рекомендуют использовать Min-p с другими методами семплирования, хотя они и могут сочетаться.

Авторы тестировали метод на Mistral 7B в трёх бенчмарках: GPQA Main, GSM8K CoT — которые проверяют конкретные знания — и AlpacaEval Creative Writing. На первых двух бенчмарках Min-p может показывать результаты чуть хуже, чем Top-p при низких температурах. Зато в AlpacaEval Creative Writing, где осуществляется SbS-сравнение на креативных задачах, он строго лучше.

Разбор подготовил ❣ Алексей Малафеев

Душный NLP
Older posts →

About this channel

How can I read @plush_python without a Telegram account?
TGViewer shows the public web preview Telegram publishes for Плюшевый Питон: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does Плюшевый Питон have?
Плюшевый Питон (@plush_python) has 682 subscribers on Telegram, refreshed roughly every 30 minutes.
Does Плюшевый Питон know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →