146
Ex-Head of Product из Авиасейлс об AI, продуктах и менеджменте @pavlovm
Сколько стоило провести PokerBattle
Как обещал, рассказываю.
Основные статьи расходов сложились такие:
- Инструменты разработки (только Cursor)
- Инфраструктура
- Инференс моделей
Инфраструктура
Я использовал Supabase для хранилища и REST API для фронтенда (читаем и не осуждаем), Vercel для деплоя фронтенда, Fly.io в качестве сервера для игры и сервера для сбора логов LLM-ок.
Vercel — $20. Кредиты, которые я почти не потратил (только около $4 на аналитику).
Supabase — $25. Добавил компьюта и реплик после падения в первый день.
Fly.io — $12.5 за 2 машины.
Итого: $57.5
Cursor.
$160 за 2 месяца. Из них $120 on-demand использование сверх тарифа
Инференс моделей.
Как и ожидалось, это основная статья расходов. Я использовал Openrouter, где за всё время я нагонял 375М токенов. В общей сложности на модели ушло $789. При этом на сам турнир ушло $480, всё остальное — многочисленные тесты.
Топ 3 по тратам — Gemini, Claude, OpenAI o3. Интересно, что Grok 4 (fast), который занял 3 место, на последнем месте по расходам. Был бы это бенчмарк, я бы сделал какой-нибудь вывод.
Общий итог: $1006.5
Не переживайте (ну вдруг вы переживали), благодаря рекламе я окупил проект и вышел в плюс.
Дальше хочу написать по поводу технического устройства проекта и болезненных нюансов вайб-кодинга.
«Даже у ИИ есть фиш, который все всем оплатит»: закончился покерный турнир среди языковых моделей
Экспериментальный покерный матч pokerbattle.ai среди нейросетей подошел к концу. Переживать, что искусственный интеллект скоро вытеснит со столов натуральный, пока не стоит — играли модели на уровне любителей с NL2, периодически путали карты и неправильно читали комбинации. Впрочем, следить было все равно интересно: каждое свое действие модели объясняли человеческим языком, нередко — довольно любопытно.
👉 Llama все-таки закаталась. Языковая модель от владельцев Facebook весь матч показывала настоящий уличный покер: держала 60% VPIP, вхолодную коллировала 3-беты и не сдавалась на агрессию. В одной из раздач она зашла под 5-бет с A♠️Т♠️, на доске 3♣️5♦️6♥️К♣️6♠️
дважды донкнула, а затем оплатила ривер с такими мыслями:
У меня хорошие пот-оддсы. По такой доске и линии розыгрыша у оппонента или велью, или блеф.
Против меня – тайтовый соперник, его линия явно указывает на флеш. Сыграл колд-колл префлоп, оплатил две улицы на скоординированном борде и поставил ривер. Почти весь диапазон состоит из флешей, мой сет теперь — всего лишь блаф-кетчер, а придумать здесь достаточно блефов или велью слабее для колла сложно. Дисциплинированный фолд.
Gemini очень хорошо все расписала, по такому анализу можно обучаться. Но не хватает объяснений в плане выбора сайзингов. Не покидает ощущение, что это постфактум подогнанный текст. Как будто их задание не расписать ход мысли, а просто описать уже сыгранную раздачу
Всё, ну и неделька!
Отдохну и сделаю несколько постов с итогами, мыслями и выводами.
Ну что, поехали. Турнир начинается :)
С текущего момента до вечера пятницы 9 LLM-игроков будут играть в покер за 4 столами.
Смотреть здесь: pokerbattle.ai
PokerBattle. Что случилось на прошлой неделе.
Главный итог (благодаря вам ❤) — за прошлую неделю на лендинге побывало 470 человек.
— Больше всего трафика пришло из телеги
— r/poker дал немного трафика
— К постам на HN надо готовиться лучше (знал ли я об этом? да)
— Люди не подписываются на твиттер, чтобы следить за датами
На этой неделе займусь аутричем разных покерных и AI/DL сми, комьюнити, блогеров, рассылок, стримеров и тд.
И сделаю контентный план для реддита, нескольких комьюнити и твиттера.
Из интересного:
— Получил одно письмо про спонсорство. Посмотрим, чем закончится.
— Запитчил проект основателю конфы AI.engineer на мероприятии в Париже. Говорит, забавный проект, keep going. Это вообще была самая популярная реакция на мой питч.
Poker Battle. Прогресс за третью, четвёртую и пятую недели.
Надеюсь ни у кого не осталось сомнений, что я не буду регулярно писать в канал ))
По ощущениям проект готов процентов на 80%. Значит, остались последние 80%.
Что готово:
* LLM-игроки
* Заметки игроков друг на друга
* Лог событий за столом
* Статистика сессии
* Поддержка нескольких столов
Осталось сделать всё сложить в красивый интерфейс для просмотра.
Тем не менее я определился с датой старта — 27 октября. Оставшийся месяц я потрачу на доделки, тесты и промо.
Сегодня сделал лендинг: https://www.pokerbattle.ai/
Если у вас есть контакты людей из AI или покер related компаний, которые могли бы стать спонсорами, делитесь :)
Я люблю покер и много копаюсь с моделями. Идея проекта родилась сама собой.
PokerBattle – сайт, где можно следить как разные LLM-ки играют в покер между собой. Целевое состояние — 7-дневный ивент где 6 разных сеток играют в кэш между собой, с возможностью смотреть игру в прямом эфире и историю раздач.
Задача мега нетривиальная. Я не разработчик, поэтому главный риск здесь это смогу ли я, обложившись разными AI-инструментами, довести идею до прода.
Если в двух словах, архитектура выглядит так:
* Сервер на питоне, управляет игровой сессией, столами и раздачами. Питон, потому что на нём написан единственный покерный движок PokerKit.
* Данные о живых раздачах и история раздач, статистика игроков хранятся в Supabase
* Фронтенд на Next.js в Vercel
Итоги первой недели:
* Выбраны все технологии, собран проект
* Есть архитектура проекта
* Готова база данных и слой для работы с ней
==== В процессе ====
* Логика ведения и сохранения раздачи
Рассчитываю сделать проект за месяц. Скоро напишу выводы из моего опыта вайб-кодинга.
На прошлой неделе пришёл комплект SO-100 Arm. Это робо-рука от HuggingFace, с моделями из LeRobot её можно научить выполнять простые задания, типа сортировки предметов в зоне видимости. Буду потихоньку собирать и разбираться.
Читать полностью…
Системный промпт, часть 2.
*If completing the user's task DOES NOT require writing or modifying files (e.g., the user asks a question about the code base):Читать полностью…
Respond in a friendly tune as a remote teammate, who is knowledgeable, capable and eager to help with coding.
When your task involves writing or modifying files:
**Do NOT tell the user to "save the file" or "copy the code into a file" if you already created or modified the file using apply_patch. Instead, reference the file as already saved.
**Do NOT show the full contents of large files you have already written, unless the user explicitly asks for them.
Как устроен OpenAI Codex Agent?
OpenAI на днях выпустили своего первого агента-разработчика. Идея не нова и экспериментов с подходами и архитектурами было уже довольно много, поэтому интересно какие решения они выберут для своей версии агента.
Удивительно, но основная часть очень простая — никакой хитрой системы планирования, только ризонинг модель и вызовы инструментов (редактирование файлов и выполнение команды в терминале). Никакой хитрой памяти, большого набора инструментов, индексации кода проекта — всё должна тащить модель.
Агента постарались сделать безопасным, дефолтный режим требует подтверждения действий пользователем, есть проверка на редактирование файла вне пути, вайтлист shell команд и сендбокс без интернета.
Спонсор диаграмм — Cursor + Claude 3.7
Протестировал Replit Agent, чтобы вам не нужно было этого делать.
Я люблю недоделывать пет проекты. Чаще всего мне не хватает навыков разработки, а идея не такая амбициозная, чтобы собирать команду. Поэтому я жадно смотрю на всё, что пишет код само или хотя бы помогает его писать.
Replit Agent обещает много. Это агент, который по твоему промпту пишет код на нужной технологии (но только веб), помогает с окружением (создаёт БД, хранит секретные ключи и тд) и деплоит проект в прод окружение.
Последовательность работы выглядит примерно так:
1. Пишешь описание проекта
2. Агент генерирует план реализации, с которым тебе нужно согласиться
3. Генерируется много кода
4. Агент запускает проект и просит тебя проверить, всё ли работает как заявлено
5. Если да — вы успешны, делаем коммит и идём дальше. Нет? По описанию проблемы и логам из консоли начинаем фикс бага.
И так много раз.
Что в этом классного?
— Агент покрывает всё, что не касается непосредственно написания кода — конфигурацию БД, миграции, анализ ошибок деплоя, установку недостающих пакетов на сервере и тд. Это единственное решение, которое делает всё.
— Лучшая вау-фича — он предлагает следующую фичу/улучшение для твоего проекта. Давай сделаем стейт загрузки для этой формы? А теперь сделаем аналитику для проекта? (на гифке оно)
— Он почти работает.
Я пробовал делать проект исключительно силами агента, без написания кода. И после где-то 10 попыток сделать с нуля то, что мне нужно, я забил. Я постоянно оказывался в ситуации, когда логика веб-приложения реализована не так как мне нужно и запросы на изменения приносят только новые циклы доработок.
Моя лучшая догадка, что это происходит потому что для работы такого агента в промпт нужно положить ооочень много контекста — структуру проекта, код, вывод консоли браузера и сервера, рассуждения, фидбек пользователя, кастомный системный промпт и тд. Качество генерации при наполнении контекстного окна деградирует очень быстро.
К сожалению, пока что этот инструмент подходит для генерации темплейта и базовой функциональности за один прогон. Буду следить за Replit дальше, потому что если он заработает как надо, то это будет пушка.
На видео я тестирую Aider Chat, а он с небольшими подсказками делает полнофункциональный клон игры Wordle.
Весь процесс занял 7 минут, потребовал ТЗ в одно предложение и несколько просьб исправить баги.
Пример, конечно, игрушечный, but it’s not nothing.
Из интересного в Aider Chat:
- Может работать с существующим репозиторием
- Все свои действия коммитит, можно легко откатиться
- Может запустить, что разработал, видит ошибки исполнения, следовательно может их исправить
Тестировал с Sonnet, пишут что с o1 ещё веселее.
Что дали главная HackerNews и твит Илона Маска?
Главные итоги и выводы по продвижению PokerBattle.ai
За время жизни проекта на сайт пришло 64 тысячи уникальных пользователей. Много это или мало? Если учесть, что это только органическое продвижение и время жизни всего 5 дней — много.
Как развивались события.
До старта проекта:
– За 6 недель старта я сделал лендинг
– Написал пост в этом канале
– Написал посты на HackerNews и в профильные сабредиты
– Написал на LinkedIn нескольким покерным журналистам
– Запостил анонс в нескольких покерных сообществах
Какие результаты:
– HackerNews и Reddit практически ничего не принесли
– Русскоязычный телеграм (репосты в AI/ML каналах) принёс около 250 посетителей на сайт ❤️
– Аутрич журналистов принёс одно интервью на Poker.org, которое разошлось по другим медиа (+1000 посетителей размазанные на неделю) и привело к партнёрству с GipsyTeam
День 1:
– Анонс в этом канале
– Телеграм принёс около 1.1 тысячи пользователей. В основном каналы про AI/ML
День 2:
– Кто-то опубликовал проект на HackerNews. Он попал на главную и несколько часов держался на первом месте. За всё время оттуда пришло 11 тысяч человек.
– В конце дня я опубликовал пост в r/LocalLlama. Пост набрал 71 тысячу просмотров, 46 комментов и 283 апвоута.
День 3:
– Илон твитит скриншот турнирной таблицы. +300 фоловеров в X, онлайн на сайте 150 человек, за сутки 19 тысяч пользователей, вместе с остальной органикой.
– Штук 5 щиткойнов про PokerBattle
День 4 и 5:
– Длинный хвост органики с HackerNews и твита. Посты в разных медиа, ньюслеттерах, сетках телеграм каналов, покерных и айти медиа. Ещё около 17 тысяч пользователей в сумме за два дня.
Какие выводы (сейчас я вам всё ретроспективно объясню):
В моём случае сработала идея, она цепляла людей. Пост на HackerNews появился благодаря тому что кому-то проект понравился, а дошёл до главной в том числе из-за треда на тему «Почему LLM не предназначены для игры в покер» (абсолютно согласен). Две недели назад хайповал бенчмарк, где LLM торгуют акциями, про него я вообще не слышал ничего хорошего.
Если выводить из этого какую-то формулу успеха органического промо, то я бы описал так: вы должны стремиться тому, чтобы части людей идея показалась интересной, а части — очевидно плохой. Когда я придумывал проект, я много думал про первых.
Это прям очень плохо перекладывается на for profit продукты (если вы не делаете весёлое консьюмерское приложение). Так что совет не особо рассчитывать на органический трафик всё ещё в силе.
Второй большой вывод — вы не особо управляете виральностью такого рода. Большая часть усилий до запуска принесли 0 результата. Но если бы я ничего не делал, вероятность такого успеха упала бы на порядок.
Следующий пост будет про то, сколько я потратил на проект
На Gipsy Team вышла хорошая статья с покерной аналитикой турнира.
Читать полностью…
Бойся своих желаний
https://x.com/elonmusk/status/1983441208287605114?s=46
Мы на первом месте на HackerNews 👍
Помогите удержаться, заходите голосовать и комментировать.
Теперь я знаю секрет успеха HN: кто-то без твоего ведома должен тебя запостить, много людей поставить апвоут, а в комментах обсуждать в чём минусы проекта. C вас $100.
Poker Battle: остался 21 день до старта
За прошлую неделю случился аутрич в покерные сми и комьюнити. Впрочем, достаточно ленивый и не слишком масштабный — списки за меня собирал ChatGPT.
В результате у меня взял интервью Adam Hampton из Poker.org
Остальное:
* Сделал просмотр истории раздач
* Скоро расскажу про итоговый список моделей-участников
* Готовлюсь к деплою бекенда и тестовому прогону
Запостил на HN, поддержите лайком, пожалуйста!
https://news.ycombinator.com/item?id=45357321
Нужно залогиниться и поставить апвоут ❤️
Poker Battle: прогресс за вторую неделю.
* Есть бэкэнд, на котором можно запустить покерный стол и вводить действия игроков вручную. Покерная логика полностью работает.
* Есть база данных, в которой сохраняются состояния стола. Supabase умеет создавать топики, по которым можно подписаться на изменения в БД. Это тоже настроено (больше всего времени заняло разбирательство как настроить такой механизм для неавторизованных пользователей)
* Есть фронтенд, который подписывается на обновления таблицы и показывает всё что происходит на бэкэнде.
То есть уже можно смотреть на вебе раздачи.
Следующие шаги:
* Подключить LLM-игроков
* Сделать остальной интерфейс сайта
* Сделать подсчёт статистики и графики
* Сделать раздел с историей раздач
Неплохо идёт.
Я не сидел сложа робо-руки (извините). Прошёл почти месяц, можно и продолжение написать.
SO-100 это набор для нежного погружения в мир робототехники. Всё продумано, туториалы есть, бери и делай. Ну, или так кажется
Для демо выбираем простую задачу, например, научить руку класть блок лего в коробку. Порядок шагов выглядит так:
1. Собираем руку-leader и руку-follower
2. Подключаем к компу и калибрируем все моторы
3. Записываем датасет из раз за разом успешно выполненных задач
4. Файнтюним на нём базовую нейройнку
5. Профит! Если не профит, повторяем шаги 3-4.
С первой сложностью я столкнулся сразу после калибровки. Попытавшись управлять ведомой рукой с клавиатуры (я опрометчиво оставил ноут в зоне её досягаемости и она чуть не столкнула его со стола), я услышал как один из моторов жужжит громче чем нужно. Сделать что-то я не успел: жужжание прекратилось, но зато появилась струйка дыма и запах гари 🧑🚒
Тогда я понял, что игнорировать сообщения о том, что температура одного из моторов высоковата (60 градусов), вероятно не стоило.
Жду новый мотор.
PS. Скорее всего дело в том, что я неправильно собрал тот сустав. Но это не точно. Поэтому заказал 2 мотора на всякий случай.
Life updates: у админа канала начался саббатикал.
Я ушёл из Авиасейлс и некоторое время планирую отдыхать. Уже придумал себе несколько проектов, буду рассказывать о них здесь.
Надо переименовать канал в «Макс пробует»
Ссылки за неделю: Scientific Edition 🧬
🔗 Research Gap Map
Convergent Research собрали карту ключевых барьеров для ускорения в каждом из крупных научных направлений.
Пост с описанием.
🔗Focused Research Organization (FRO)
Формат организации похожих на научный стартап — с чёткой целью на 3-7 лет, финансированием, гибкие и автономные.
Список FROs, основанных с помощью Convergent Research.
Каталог открытых научных программ DARPA и IARPA
Оказывается можно посмотреть открытый список исследований самых амбициозных (и возможно одних из самых эффективных) научно-исследовательских организаций мира. Сложно сказать, какой список интереснее, с текущими или закрытыми проектами.
🔗DARPA's List of Programs
🔗IARPA's List of Programs
🔗Research Leader's Playbook
Кто такие Research Leaders и как успешно запустить, вести и завершить научную программу.
Бонус, системный промпт OpenAI Codex (в двух частях):
You are operating as and within the Codex CLI, a terminal-based agentic coding assistant built by OpenAI. It wraps OpenAI models to enable natural language interaction with a local codebase. You are expected to be precise, safe, and helpful.Читать полностью…
You can:
*Receive user prompts, project context, and files.
*Stream responses and emit function calls (e.g., shell commands, code edits).
*Apply patches, run commands, and manage user approvals based on policy.
*Work inside a sandboxed, git-backed workspace with rollback support.
*Log telemetry so sessions can be replayed or inspected later.
*More details on your functionality are available at codex --help
The Codex CLI is open-sourced. Don't confuse yourself with the old Codex language model built by OpenAI many moons ago (this is understandably top of mind for you!). Within this context, Codex refers to the open-source agentic coding interface.
You are an agent - please keep going until the user's query is completely resolved, before ending your turn and yielding back to the user. Only terminate your turn when you are sure that the problem is solved. If you are not sure about file content or codebase structure pertaining to the user's request, use your tools to read files and gather the relevant information: do NOT guess or make up an answer.
Please resolve the user's task by editing and testing the code files in your current code execution session. You are a deployed coding agent. Your session allows for you to modify and run code. The repo(s) are already cloned in your working directory, and you must fully solve the problem for your answer to be considered correct.
You MUST adhere to the following criteria when executing the task:
*Working on the repo(s) in the current environment is allowed, even if they are proprietary.
*Analyzing code for vulnerabilities is allowed.
*Showing user code and tool call details is allowed.
*User instructions may overwrite the CODING GUIDELINES section in this developer message.
*Use apply_patch to edit files: {"cmd":["apply_patch","*** Begin Patch\n*** Update File: path/to/file.py\n@@ def example():\n- pass\n+ return 123\n*** End Patch"]}
*If completing the user's task requires writing or modifying files:
** Your code and final answer should follow these CODING GUIDELINES:
*** Fix the problem at the root cause rather than applying surface-level patches, when possible.
*** Avoid unneeded complexity in your solution.
***Ignore unrelated bugs or broken tests; it is not your responsibility to fix them.
***Update documentation as necessary.
***Keep changes consistent with the style of the existing codebase. Changes should be minimal and focused on the task.
****Use git log and git blame to search the history of the codebase if additional context is required; internet access is disabled.
***NEVER add copyright or license headers unless specifically requested.
***You do not need to git commit your changes; this will be done automatically for you.
***If there is a .pre-commit-config.yaml, use pre-commit run --files ... to check that your changes pass the pre-commit checks. However, do not fix pre-existing errors on lines you didn't touch.
****If pre-commit doesn't work after a few retries, politely inform the user that the pre-commit setup is broken.
***Once you finish coding, you must
****Check git status to sanity check your changes; revert any scratch files or changes.
****Remove all inline comments you added much as possible, even if they look normal. Check using git diff. Inline comments must be generally avoided, unless active maintainers of the repo, after long careful study of the code and the issue, will still misinterpret the code without the comments.
****Check if you accidentally add copyright or license headers. If so, remove them.
****Try to run pre-commit if it is available.
****For smaller tasks, describe in brief bullet points
****For more complex tasks, include brief high-level description, use bullet points, and include details that would be relevant to a code reviewer.
Если бы у вас была возможность тратить на AI инструменты $1000 в месяц, то что бы это было? Какую задачу решили бы?
Если вы медлите с ответом, то вам вероятно на такой бюджет сложно придумать не только задачу для искусственного интеллекта, но и для обычного человеческого. Вопрос можно сформулировать и так — за какой интеллектуальный труд вы бы заплатили $1000 в месяц?
Пока инструментов за такую стоимость нет, другой логичный ответ на этот вопрос — потратить $1000 (или хотя бы пару часов в неделю) на подготовку к их появлению. Для них всех потребуется много контекста — список дел, траты, планы и долгосрочные цели, расписание, контакты, переписки и тд. Похоже пора отнестись к Обсидиану серьёзно😏
Внутренний питч дек Figma Slides, которым команда продавала концепт продукта руководству.
Содержание показывает подход компании к работе над новыми направлениями:
— Идея появилась на внутреннем хакатоне
— После питча идеи, согласовали работу команды
— Команда из 4 человек работает месяц-два (не очень понятно из слайда)
— Они разрабатывают концепт, на основе качественных и количественных исследований, прототипирования в основном в дизайне
— В питч-деке ни слова про деньги
— Обоснование ценности для компании, вклад в метрику WANDE (Weekly Active Non-Design Editors)
В последние пару лет почти каждый раз, когда речь заходит о больших языковых моделях, разговор сводится к противоборству двух лагерей: одни считают, что модели «понимают», умеют «размышлять» и выводить новую информацию; другие смеются над ними, и сравнивают модели со статистическими попугаями, которые просто выкрикивают услышанное, без выработанного понимания. Обе стороны приводят множество аргументов, кажущихся убедительными, однако точка в вопросе никогда не ставится.
Разрешить дискуссию помогают методы механистической интерпретируемости. В канале я обозревал несколько статей, в каждой из которых маленькое открытие позволяло чуть больше понять внутрянку нейросетей и даже улучшить сам механизм работы.
Сегодня я предлагаю вам прочитать мой лонг для погружения в эту тему. В нём я применил классический приём «да ща быстро сяду напишу как попало, будет средней длинны пост» — и это оказалось самообманом 😭. В итоге вышло полно, плотно, некоторые объяснения переписывались, сопроводительные иллюстрации перерисовывались, но результатом доволен.
▀▀▀▀▀▀▀▀▀▀
Оценить самим можно тут: https://habr.com/ru/companies/ods/articles/839694/
▀▀▀▀▀▀▀▀▀▀
Отдельная благодарность Павлу Комаровскому @RationalAnswer за (уже далеко не первую) помощь в редактуре и подготовке материала — не забывайте подписываться и на него.