Forwarded from Ebout Data Science | Дима Савелко
Андрюша Карпатый снова навалил базы: nanochat miniseries v1 Андрей Карпатый не перестаёт радовать нас годным контентом. Он выкатил жирный апдейт в своём репозитории nanochat - проекте, который учит создавать свой ChatLGBT с полного нуля.
Если раньше мы просто учились запускать пайплайн, чтобы оно работало, то теперь Андрюха погружает нас именно в сам процесс обучения. Главный вопрос апдейта: как тратить вычислительные ресурсы (бабосиксаны) максимально эффективно?
Разбираем, что там внутри:
Для многих новичков подбор параметров модели звучит как что-то непонятное, но Карпатый показывает, что это - строгая и понятная математика. Суть проста: хватит гадать на кофейной гуще, какую архитектуру выбрать и сколько данных скормить. Бро использует законы масштабирования.
Эксперимент: Карпатый запустил серию обучений (miniseries) с фиксированным бюджетом (~$100 на H100) и потратил его по-разному:
Результат: Все модели стоили одинаково, но одна конкретная конфигурация дала лучшее качество
Вы не играете в казик, когда запускаете обучение. Вы можете провести дешёвые эксперименты за сотку баксов, найти идеальную формулу, а затем просто увеличить масштаб (вложить $100k или $1M) и гарантированно получить ожидаемый прирост качества. Инженеры OpenAI/Anthropic не тыкают пальцем в небо, они так считает деньги и масштабы
В первой версии nanochat фишкой был «полный цикл» до веб-интерфейса. В miniseries v1 акцент сместился на Pretraining. Запомните: именно здесь закладывается фундамент интеллекта. Если вы обосрались на претрейне, то никакой файн-тюн (SFT/RLHF) это уже не исправит
Что с этим делать? Если хотите реально понимать, как работают LLM , а не просто импортировать либы:
• Залетайте в обсуждение: github.com/karpathy/nanochat/discussions/420
• Смотрите на графики Loss vs Compute
• Ковыряйте код скрипта miniseries.sh - это эталон того, как нужно организовывать эксперименты
Итог
Масштабирование - это сплошная инженерка. Андрюха дал вам песочницу, чтобы освоить её за копейки, прежде чем лезть в серьёзные бюджеты. Поэтому тыкаем это обсуждение с ЛЛМ-кой, чтобы понять его
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Vibecon / вайбкодим вместе (Andrei Muntanion)
Собрал для себя шаблон структуры вайбкод-проекта, с которого удобно стартануть на привычных мне стеках
У меня уже несколько раз просили поделиться подобным, наконец добрался и попросил Claude Code собрать во что-то более менее универсальное опыт моих production проектов
https://github.com/Muntello/vibe-project-template/
Можете пользоваться, форкать ну или предлагать какие-то улучшения через PR
У меня уже несколько раз просили поделиться подобным, наконец добрался и попросил Claude Code собрать во что-то более менее универсальное опыт моих production проектов
https://github.com/Muntello/vibe-project-template/
Можете пользоваться, форкать ну или предлагать какие-то улучшения через PR
GitHub
GitHub - Muntello/vibe-project-template
Contribute to Muntello/vibe-project-template development by creating an account on GitHub.
Forwarded from Душный NLP
Рекурсивные языковые модели
В последнее время всё чаще обсуждают проблему длинного контекста. Большое количество токенов просто физически не помещается в модели, а с увеличением контекста зачастую падает качество. Авторы сегодняшней статьи предлагают решение: дать моделям правильные инструменты.
Как это устроено: у модели есть промпт с описанием задачи и доступных тулов. Первый — это Python REPL. Модель может исполнить произвольный код, где в переменной
Второй тул — это вызов языковой модели на глубине 1 (
Суть метода, предложенного авторами статьи, в том, чтобы дать модели возможность запускать себя рекурсивно в той же программной среде (изображение 1). Среди бейзлайнов авторы рассматривают вариант без самовызовов (только модель с большим промптом и REPL), summary agent (суммаризация контекста, не поместившегося в модель) и CodeAct (код плюс ретривал через BM25).
Нюансы разницы RLM и типичных кодовых агентов до сих пор вызывают дискуссии с авторами в твиттере, и хайп вокруг статьи и идеи только растёт. Примеры тут, тут и тут.
Эксперименты проводили на Qwen3 и GPT-5 (изображение 2). На бенчмарке BrowseComp+ (контекст 6–11 миллиона токенов, нужно найти один релевантный документ из тысячи и ответить на вопрос) базовые модели невозможно запустить — контекст просто не влезает. RLM здесь работает.
Но поиск по длинному контексту — не единственная задача, которую решают RLM. Бенчмарк OOLONG требует семантической обработки фрагментов текста и их агрегации. Сложность линейная относительно длины входа. Здесь RLM без самовызовов уступает даже базовой модели, потому что задача требует «видеть» весь контекст. RLM с самовызовами заметно выигрывает у всех бейзлайнов.
Самый показательный результат на OOLONG-Pairs. Здесь нужно сравнивать пары фрагментов, то есть сложность задачи квадратичная. Базовая модель и summary agent выдают результат около нуля. RLM с самовызовами решает эту задачу, программно организуя квадратичное число вызовов через код в REPL. Это класс задач, недоступный другим подходам.
По стоимости RLM с самовызовами зачастую сопоставима с базовой моделью, хотя со сложностью задачи стоимость растёт (изображение 3).
Разбор подготовил❣ Иван Рубачёв
Душный NLP
В последнее время всё чаще обсуждают проблему длинного контекста. Большое количество токенов просто физически не помещается в модели, а с увеличением контекста зачастую падает качество. Авторы сегодняшней статьи предлагают решение: дать моделям правильные инструменты.
Как это устроено: у модели есть промпт с описанием задачи и доступных тулов. Первый — это Python REPL. Модель может исполнить произвольный код, где в переменной
prompt сохранён весь длинный промпт.Второй тул — это вызов языковой модели на глубине 1 (
depth=1) с поданным фрагментом длинного промпта. Это напоминает субагентов в агентах для написания кода (Claude Code, Codex), но есть важное отличие. Вызов llm_query живёт «внутри» REPL, а значит модель может встроить его в цикл, условие или любую другую программную конструкцию. В Claude Code или Codex субагент — это отдельный тул-колл, который модель вызывает из контекста напрямую, без программного контроля. Такая модель называется рекурсивной (RLM), и их может быть несколько в рамках одного цикла. RLM не обязательно должна быть идентична изначальной. Главное, что у неё пустой контекст.Суть метода, предложенного авторами статьи, в том, чтобы дать модели возможность запускать себя рекурсивно в той же программной среде (изображение 1). Среди бейзлайнов авторы рассматривают вариант без самовызовов (только модель с большим промптом и REPL), summary agent (суммаризация контекста, не поместившегося в модель) и CodeAct (код плюс ретривал через BM25).
Нюансы разницы RLM и типичных кодовых агентов до сих пор вызывают дискуссии с авторами в твиттере, и хайп вокруг статьи и идеи только растёт. Примеры тут, тут и тут.
Эксперименты проводили на Qwen3 и GPT-5 (изображение 2). На бенчмарке BrowseComp+ (контекст 6–11 миллиона токенов, нужно найти один релевантный документ из тысячи и ответить на вопрос) базовые модели невозможно запустить — контекст просто не влезает. RLM здесь работает.
Но поиск по длинному контексту — не единственная задача, которую решают RLM. Бенчмарк OOLONG требует семантической обработки фрагментов текста и их агрегации. Сложность линейная относительно длины входа. Здесь RLM без самовызовов уступает даже базовой модели, потому что задача требует «видеть» весь контекст. RLM с самовызовами заметно выигрывает у всех бейзлайнов.
Самый показательный результат на OOLONG-Pairs. Здесь нужно сравнивать пары фрагментов, то есть сложность задачи квадратичная. Базовая модель и summary agent выдают результат около нуля. RLM с самовызовами решает эту задачу, программно организуя квадратичное число вызовов через код в REPL. Это класс задач, недоступный другим подходам.
По стоимости RLM с самовызовами зачастую сопоставима с базовой моделью, хотя со сложностью задачи стоимость растёт (изображение 3).
Разбор подготовил
Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Маверик печатает …
Готовый SaaS за 2730 рублей
📝 Какое-то время назад я писал про то, как тащить ML сервис в прод, а потом про то как пытались сделать свое веб приложение для обработки новостей. И что первая история, что вторая рушились на моменте продуктивизации кода. Не понятно было тогда, как настроить автодеплой с гита на vps, как менеджерить несколько контейнеров руками, как смотреть сколько ресурсов приложение потребляет. То есть оно как бы работало, но только чтобы самим посмотреть, сделать
⛳️ Общие слова закончены, давай к сути. Вот ты молодой, перспективный чел, который хочет написать свой веб сервис и заработать денег. У тебя есть идея, ты проверил, она востребована, есть product market fit, юзеры готовы платить за решение их боли. Что дальше ?
Готовый пайплайн выглядит так:
1️⃣ Арендуешь VPS с убунтой на борту. Покупаешь домен. Стоит 15$.
2️⃣ Ставишь туда любую платформу управления докер контейнерами. Dokploy, Coolify, Dokku, не имеет значения. Эту штука закроет большую часть инфраструктурных задач. Автодеплой из гита, сбор логов, масштабирование, мониторинг, резервное копирование. Стоит 0 денег.
3️⃣ Тебе понадобится база данных, поднимаешь докер контейнер с Supabase. Из коробки будет доступно и обычные таблички и s3 хранилище и real time очереди и аутентификация пользователей. Стоит 0 денег.
4️⃣ Пишешь код своего приложения с помощью любых агентов. Не забывай составить план приложения с агентом в plan mode, настроить промты проекта и прочее что написано в доке этого агента, это важно !
5️⃣ Настраиваешь интеграции базы с приложение, автодеплой по пушу в репозиторий, использование домена
🏁 У тебя готово публичное приложение. Остается самое сложное, маркетинг, привлечение пользователей, продуктовая аналитика.
🤔 Я это все к чему ? Да к тому, что сейчас уже нет вопроса, как мне сделать приложение. У тебя есть все инструменты, которые сделают все за тебя. Сделают быстро и качественно. Качественно настолько, что еще несколько лет назад для этого нужна была команда, бюджеты, инвестиции. Сейчас твои инвестиции это 2730 рублей и твое свободное время по вечерам. Остается только начать делать.
👨💻 В общем, если ты хочешь "что-то свое, что приносит деньги", хочешь попробовать сделать бизнес из этого. Начни с этого. Напиши что нибудь, покажи это людям, посмотри что получилось.
Cпециально подробно не писал про инструменты, хотел поделиться общим подходом. А конкретные инструменты можно погуглить, найти что-то что будет лучше подходить под твои задачи
docker stop $(docker ps -aq) и больше к этому не подходить.Но теперь все поменялось с приходом self-host лихорадки и ИИ агентов. Сейчас чтобы сделать то, для чего нужна была команда девпсов и сисадминов делается в одну строчку кода и 10 минут настройки. А агентский подход к разработке, экономит десятки часов разработки.
Готовый пайплайн выглядит так:
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Всеволод Викулин | AI разбор
Контекст — всему голова. Почему In-Context Learning — единственный способ строить надежные AI-продукты
Я ненавижу галлюцинации. Я хочу их все уничтожить. Но чтобы победить врага, мне нужно научиться его определять.
Сама LLMсгаллюцинировала дала такое определение галлюцинаций: «Феномен, при котором LLM генерирует уверенные, но фактически неверные, вымышленные ответы». Мне это совсем не помогает. Что значит «фактически неверный» в вакууме? Где источник правды, что есть верные факты?
Но мы можем уточнить правила работы с LLM: всегда давать контент и требуем отвечать строго по нему. Тогда враг становится осязаемым: галлюцинация — это любой ответ, который не строится на выданном тексте. А если мы знаем, как искать врага, мы сможем его уничтожить. И сейчас я покажу как.
Что такое In-Context Learning
Мы закладываем все ожидаемое поведение LLM (то есть обучаем) прямо в контекстное окно (промпт). Без классического обучения.
- Нужно, чтобы модель узнала информацию? Закинули RAG в контекст.
- Модель делает ошибку? Написали в промпте корнер-кейс (от души прошу, не делай так»).
- Нужно рассуждение? Просто попросили подумать шаг за шагом.
- Модель тупит? Почистили контекст от мусора.
Это в разы быстрее и дешевле, чем дообучать саму модель. Скорость итераций взлетает. А главное — это легко оценивать и контролировать.
Как теперь мы уничтожаем галлюцинации
Как только мы зафиксировали чудовище, его очень просто победить. Алгоритм прямолинейный:
1. Мы делаем строгую метрику, которая автоматически детектирует: модель взяла ответ из выданного текста или выдумала его из своих «весов»? (вот тут написано как делать)
2. Мы начинаем мочить модель, чтобы она не отвечала из весов. Как обычно, 3-мя способами: промтинг, раг, дообучение (тут особенно круто раскрывается методы Reinforcment Learning)
Минусы подхода очевидны. Придется строить инфраструктуру, чтобы этот контекст собирать. Ходить в нужные системы, доставать информацию и пихать ее в промпт. Контекст будет «пухнуть», а модели на больших объемах данных могут терять фокус. Благо, с каждым днем они справляются с этим всё лучше. Тренд играет за нас.
LLM — движок рассуждений, а не энциклопедия
Эта логика в будущем сможет уменьшить размеры базовых моделей. LLM такие L (большие), потому что тащат в свои веса и нужное и всякий мусор. Посмотрите на бенчмарки: LLM знают кучу энциклопедических знаний, который любой инженер посмотрит в любимом справочнике. Они кодируют все эти знания в веса, чтобы хорошо предсказывать следующее слова.
Для моих кейсов не важно, чтобы LLM знала анатомию горилл. Можно, пожалуйста, не платить за горилл стоимостью инференса?
Я верю, что модели должны стать исключительно процессорами информации. Запомнить базовое — да. Всё остальное делать только логическими операциями на основе доверенных источников (но не стоит брать за источник правды текущие LLM, иначе весь этот схематоз развалится)
Нудное резюме
Хотите делать надежные AI-продукты? Нудно, системно и последовательно собирайте информацию, которая будете скармливать моделям нужный контекст.
Да, вам придется хорошенько подумать, какую именно информацию и когда вставлять. Зато, если не подумаете вы, LLM с радостью «подумает» за вас. И эта галлюцинация вам точно не понравится.
Я ненавижу галлюцинации. Я хочу их все уничтожить. Но чтобы победить врага, мне нужно научиться его определять.
Сама LLM
Но мы можем уточнить правила работы с LLM: всегда давать контент и требуем отвечать строго по нему. Тогда враг становится осязаемым: галлюцинация — это любой ответ, который не строится на выданном тексте. А если мы знаем, как искать врага, мы сможем его уничтожить. И сейчас я покажу как.
Что такое In-Context Learning
Мы закладываем все ожидаемое поведение LLM (то есть обучаем) прямо в контекстное окно (промпт). Без классического обучения.
- Нужно, чтобы модель узнала информацию? Закинули RAG в контекст.
- Модель делает ошибку? Написали в промпте корнер-кейс (от души прошу, не делай так»).
- Нужно рассуждение? Просто попросили подумать шаг за шагом.
- Модель тупит? Почистили контекст от мусора.
Это в разы быстрее и дешевле, чем дообучать саму модель. Скорость итераций взлетает. А главное — это легко оценивать и контролировать.
Как теперь мы уничтожаем галлюцинации
Как только мы зафиксировали чудовище, его очень просто победить. Алгоритм прямолинейный:
1. Мы делаем строгую метрику, которая автоматически детектирует: модель взяла ответ из выданного текста или выдумала его из своих «весов»? (вот тут написано как делать)
2. Мы начинаем мочить модель, чтобы она не отвечала из весов. Как обычно, 3-мя способами: промтинг, раг, дообучение (тут особенно круто раскрывается методы Reinforcment Learning)
Минусы подхода очевидны. Придется строить инфраструктуру, чтобы этот контекст собирать. Ходить в нужные системы, доставать информацию и пихать ее в промпт. Контекст будет «пухнуть», а модели на больших объемах данных могут терять фокус. Благо, с каждым днем они справляются с этим всё лучше. Тренд играет за нас.
LLM — движок рассуждений, а не энциклопедия
Эта логика в будущем сможет уменьшить размеры базовых моделей. LLM такие L (большие), потому что тащат в свои веса и нужное и всякий мусор. Посмотрите на бенчмарки: LLM знают кучу энциклопедических знаний, который любой инженер посмотрит в любимом справочнике. Они кодируют все эти знания в веса, чтобы хорошо предсказывать следующее слова.
Для моих кейсов не важно, чтобы LLM знала анатомию горилл. Можно, пожалуйста, не платить за горилл стоимостью инференса?
Я верю, что модели должны стать исключительно процессорами информации. Запомнить базовое — да. Всё остальное делать только логическими операциями на основе доверенных источников (но не стоит брать за источник правды текущие LLM, иначе весь этот схематоз развалится)
Нудное резюме
Хотите делать надежные AI-продукты? Нудно, системно и последовательно собирайте информацию, которая будете скармливать моделям нужный контекст.
Да, вам придется хорошенько подумать, какую именно информацию и когда вставлять. Зато, если не подумаете вы, LLM с радостью «подумает» за вас. И эта галлюцинация вам точно не понравится.
Forwarded from partially unsupervised
Чтобы гора сгенеренного кода меня не поглотила, к процессу вайбкодинга AI assisted разработки нужно было добавить и AI-based ревью. Но ожидаемо Клод слишком любит код, написанный Клодом, и мышей ловил недостаточно.
Так я начал использовать opencode с Gemini для ревью. Сначала все было хорошо, Gemini - такая странная модель, которую нельзя подпускать к написанию кода (мой любимый комментарий про это), но критиковать умеет по делу. Opencode был всем неплох, но жрал тонны памяти и периодически зависал в неинтерактивном режиме (в т.ч. на CI). Короче, not invented here синдром назревал.
https://github.com/arsenyinfo/nitpicker - just another code review agent. Быстрый, маленький, умеет в LLM council (хоть где-то пригодится подписка на z.ai и minimax), и за счет этого ловит довольно много ошибок (хотя и ценой ложных срабатываний).
Так я начал использовать opencode с Gemini для ревью. Сначала все было хорошо, Gemini - такая странная модель, которую нельзя подпускать к написанию кода (мой любимый комментарий про это), но критиковать умеет по делу. Opencode был всем неплох, но жрал тонны памяти и периодически зависал в неинтерактивном режиме (в т.ч. на CI). Короче, not invented here синдром назревал.
https://github.com/arsenyinfo/nitpicker - just another code review agent. Быстрый, маленький, умеет в LLM council (хоть где-то пригодится подписка на z.ai и minimax), и за счет этого ловит довольно много ошибок (хотя и ценой ложных срабатываний).
Forwarded from Ночной Писаревский
Из последних моих развлечений — отправлять письма и ставить встречи через сообщения в Телеграмчике.
«Напиши Miss R на английском что Машу сегодня заберет мама А» — и письмо улетает
Как сделать:
1) арендовать VPS за $4-6 в мес
DigitalOcean или Hetzner, просто логинимся там, привязываем карточку и даём API ключ Клоду, дальше он всё сделает сам
2) поставить на эту VPS Claude Code
Сам Claude Code с этим справится за пару промптов
3) развернуть там takopi.dev
(Один промпт Клоду)
Это позволит общаться с Клодом через телегу
4) развернуть там https://github.com/googleworkspace/cli
Это офиц сервис от самого Гугла, чтобы дать агенту доступ к Google Drive, Gmail, Google Calendar и др
В принципе, всё.
Только для безопасности лучше IP этой VPS-ки больше нигде не светить, а то мало ли что. Слишком много доступов у неё
«Напиши Miss R на английском что Машу сегодня заберет мама А» — и письмо улетает
Как сделать:
1) арендовать VPS за $4-6 в мес
DigitalOcean или Hetzner, просто логинимся там, привязываем карточку и даём API ключ Клоду, дальше он всё сделает сам
2) поставить на эту VPS Claude Code
Сам Claude Code с этим справится за пару промптов
3) развернуть там takopi.dev
(Один промпт Клоду)
Это позволит общаться с Клодом через телегу
4) развернуть там https://github.com/googleworkspace/cli
Это офиц сервис от самого Гугла, чтобы дать агенту доступ к Google Drive, Gmail, Google Calendar и др
В принципе, всё.
Только для безопасности лучше IP этой VPS-ки больше нигде не светить, а то мало ли что. Слишком много доступов у неё
Forwarded from Заметки Computer Vision инженера
Давно что-то на Хабр ничего не постил.
Решил собрать прошлые три статьи в стройную статью и бахнуть туда
https://habr.com/ru/companies/recognitor/articles/992476/
Решил собрать прошлые три статьи в стройную статью и бахнуть туда
https://habr.com/ru/companies/recognitor/articles/992476/
Хабр
VLM / VLA / World Models / Physical AI
Нейроночки в последнее время заполонили всё. Ну, почти всё. Вот, сейчас подбираются к роботам. И реального прогресса там почти так же много как нейрослопа, пиара и преувеличений . Короче, прогресс...
Forwarded from Заметки Computer Vision инженера
Сделал небольшое видео по вопросу который у меня часто спрашивают. На удивление много народу до сих пор не разобрались когда надо использовать OpenRouter а когда самохостить:)
Я не поднимаю тут вопрос про секьюрити из прошлого поста. Но про остальное достаточно подробно.
Я не поднимаю тут вопрос про секьюрити из прошлого поста. Но про остальное достаточно подробно.