TGINSIGHT CHAT
AI-Driven Development. Родион Мостовой
@ai_driven
ТехнологииУвлекательно рассказываю про AI в разработке, про построение продуктов с LLM под капотом и иногда про .NET. Связь: @rodion_m_tg Чат: @ai_driven_chat
Последние посты
Стр. 9 из 11 · 131 постов
Опубликован 4 февр.
AI-Driven Development. Родион Мостовой pinned «А почему бы вам не сделать стартап или хотя бы пет-проект? Я убежден, что современные LLM и инструменты поверх них открывают огромные возможности не только для сиюминутного заработка, но и для построения на их основе крутых, дорогостоящих стартапов. С развитием…»
Опубликован 4 февр.
А почему бы вам не сделать стартап или хотя бы пет-проект? Я убежден, что современные LLM и инструменты поверх них открывают огромные возможности не только для сиюминутного заработка, но и для построения на их основе крутых, дорогостоящих стартапов. С развитием reasoning моделей, участие специалиста в решении разного рода, в т. ч. нетривиальных задач, резко сокращается - т. е., условно говоря, % хорошего, правильного выхлопа из LLM становится все выше, а reasoning модели способы его повысить в разы. Именно поэтому, модель типа DeepSeek-R1 или даже QwQ-32b - это большой шаг вперед и куча новых, уникальных возможностей для бизнеса - прежде всего, всевозможные задачи на анализ чего-либо теперь решаются сильно качественнее. Ну а то, что теперь есть open source reasoning модели означает, что всю работу можно выполнять в рамках закрытого контура - что очень важно для энтерпрайзов. В общем, к чему я это все? К тому, что если вам вдруг захочется попробовать что-нибудь сделать (стартап, пет-проект, какое-то полезное решение для вашего текущего места работы, whatever based on AI), добавляйтесь в чатик @ai_driven_chat, делитесь там своей идеей или спрашивайте идею и ищите единомышленников - приветствуются как люди из бизнеса, так и технические специалисты. Я постараюсь в этом чатик отвечать на ваши вопросы про создание продуктов с LLM под капотом и делиться своим опытом по построению стартапов. Кроме того, есть подозрение, что у меня накопилось куча лайф-хаков, существенно ускоряющих разработку, про которые я просто не успеваю структурировано рассказать в канале, но смогу рассказать в чате, отвечая на конкретные запросы. А пост этот меня побудило написать во-первых появление OpenAI DeepResearch - качественно нового инструмента не только для ресерча в интернете, но и для создания сложного кода, я позже расскажу как мне эта штука сама библиотеку написала - вещь мощнейшая, всем рекомендую к изучению уже сейчас, "день другой" и увидим опенсорсные аналоги с той же R1 под капотом. Во-вторых, вот этот пост Степана Гершуни из канала @cryptoEssay - всем энтузиастам рекомендую прочитать. Ну и, напоследок, оставлю здесь ссылку на свежий список от Y Combinator (акселератор №1) с их хит парадом перспективных идей для стартапов на весну 2025 - оттуда можно почерпнуть много интересного.
Опубликован 29 янв.
DeepSeek-R1 online + еще больше вариантов инференса Perplexity молодцы - выпустили свою DeepSeek-R1 based ризонинг модель с доступом к интернету - на первый взгляд работает прям хорошо - она и шустрая и с доступом к онлайн данным - перспективная штука, попробуйте: 1. В Perplexity в Pro режиме выбрать R1 (бесплатно 3 запроса в день) 2. В OpenRouter модель perplexity/sonar-reasoning - если кто-нибудь проведет эксперимент и поставит эту модельку в Cline/aider/Roo Code в кач-ве архитектора - возможно, результат будет великолепен (из-за мощной связки reasoning + online data). Отпишитесь тут если попробуете. Фишка в том, что она умеет не только сложные задачи решать (приятно, что она додумалась, что async не проканает внутри Parallel.ForEach), но и актуальный API подтягивать из интернета в реальном времени. Вот что получилось по моему, уже классическому запросу, Create an API client in .NET for OpenAI that supports parallel embeddings generation with a configurable dop - считаю, что хорошо справилась. Update: хорошо справилась только с логикой параллелизма, что касается API библиотеки OpenAI, то в нем она запуталась (вот мой коммент с пояснением). Спасибо многоуважаемому Владимиру Хорикову (кстати, его книгу по юнит-тестированию могу всем горячо рекомендовать) за то, что указал на неточность. Совершенно новый игрок появился в игре сервисов для инференса: Chutes.ai (чатик и API доступны прямо на их сайте, и отдеально по API можно юзать из OpenRouter, при чем пока бесплатно). Отличаются они довольно богатым набором разных моделек, в т. ч. embedding models (bge-m3, например). Там какая-то хитрая схема оплаты за секунды инференса, а не за токены (непонятно пока, на сколько это выгодно). Но интересно, что на текущий момент инференс в чате и в Playground работает бесплатно и без регистрации. Еще интересно, что там можно поэксперементировать с более мелкими reasoning DeepSeek моделями - например, с deepseek-ai/DeepSeek-R1-Distill-Qwen-32B. И еще Nebius.ai (подсмотрел тут): Поскольку официальное API Deepseek лежит уже 2 дня, поделюсь тем что Nebius добавил себе r1 с очень приятными ценами : $2.4 за миллион токенов на выходе («Война и Мир» на английском – 765 904 токенов, я проверил), при реге дают 1$ на баланс бесплатно Я проверил - действительно работает бодро, аж 25 токенов в секунду. Кстати, судя по статам из OpenRouter, Fireworks тоже разогнали R1 до 17 токенов в секунду. Update: В Azure AI Foundry тоже новый дипсик подвезли. И в GitHub Models (с доступом по API в том числе): https://github.com/marketplace/models/azureml-deepseek/DeepSeek-R1/playground Ну и варианты из предыдущего поста тоже не исключаем. В ближайших планах: обзор критики DeepSeek и мое мнение об этом, а также пост и код с "R1-Pro" на коленке. А расскажите в комментариях про свой опыт использования DeepSeek-R1 - мне пригодятся разные мнения для поста.
Опубликован 28 янв.
Ребят, судя по цифрам из OpenRouter, скорость генерации DeepSeek-R1 по API сейчас существенно деградировала. Если кто-то из моих читателей уже начал внедрять в свои рабочие пайплайны DeepSeek-R1, то обратите внимание на провайдера DeepInfra - на текущий момент R1 генерирует ответ на скорости 10 токенов в секунду (что в разы быстрее провайдеров в OR), только обратите внимание на ограничение контекста в 16к токенов. Обычный DeepSeek V3 в DeepInfra тоже доступен по скорости около 10 tok/s. Из веб интерфейса (не по API) DeepSeek по-прежнему доступен: 1. Бесплатно на официальном сайте. 2. Бесплатно в blackbox - тут надо выбрать модель DeepSeek-R1 (работает быстро, но ответ может оборваться по середине). 3. В сервисе DeepGPT по цене от 3$ в месяц.
Опубликован 26 янв.
Channel name was changed to «AI-Driven Development. Родион Мостовой»
Опубликован 26 янв.
Кстати, в бенчмарке aider появилась мощная связка, обходящая o1: DeepSeek R1 в качестве архитектора и Sonnet 3.5 в качестве редактора. Что уж говорить, что такая связка в итоге еще и сильно дешевле. Напомню, что aider это инструмент для парного программирования…
Опубликован 25 янв.
Кстати, в бенчмарке aider появилась мощная связка, обходящая o1: DeepSeek R1 в качестве архитектора и Sonnet 3.5 в качестве редактора. Что уж говорить, что такая связка в итоге еще и сильно дешевле. Напомню, что aider это инструмент для парного программирования с использованием языковых моделей (LLM), позволяющий редактировать код в вашем локальном git-репозитории. Про aider подробнее я рассказывал и показывал в этом посте.
Опубликован 25 янв.
DeepInfra выпустили свой "аналог" ChatGPT с доступом к Qwen-72B, к DeepSeek R1 и другим открытым LLM Фактически, ребята из DeepInfra просто сделали веб интерфейс для некоторых популярных OpenSource моделей - в принципе, ничего нового, но некоторые из топовых моделей можно поюзать бесплатно: Qwen2.5-72B, Llama 3.3 70B и новенькую DeepSeek R1 Distill Llama 70B - эта модель обходит Claude Sonnet 3.5 в LCB довольно существенно и почти в 2 раза на задачах CodeForces. DeepSeek R1 доступна по подписке за 3$ в месяц. Больше всего люблю DeepInfra за их щедрые лимиты по API (200 параллельных запросов и больше по заявке), за богатый выбор моделей и за их цены. Небольшое бизнесовое отступление Почему DeepInfra решили выпустить такой, казалось бы, лежащий на поверхности, продукт именно сейчас? Я подозреваю, что это напрямую связано с двумя факторами: 1. Существенное удешевление LLM (за 2024-й год цены на API многих моделей упали в разы) 2. Бурный рост качества открытых моделей и появление реальных конкурентов у лидирующий gpt-4o и sonnet 3.5: DeepSeek V3, Qwen 72B, ну и, конечно, R1 - как вишенка на торте. То есть, сейчас появилась реальная возможность делать условного конкурента ChatGPT, но полностью основанного на открытых моделях. Более того, я убежден, что если добавить определенной доли агентности в открытые модели (такие как банальное подтягивание актуального контекста из интернета - grounding, или агрегация ответа из нескольких разных LLM), то можно даже сделать лучше - чуть позже я расскажу как можно сделать условную R1-Pro :) И тут, конечно, успех подобного проекта будет упираться в первую очередь в степень талантливости его маркетологов и продажников. Кстати, напомню, что бесплатно поюзать мощные модели позволяют так же devv.ai (Gemini Pro) и blackbox.ai (GPT-4o, Gemini Pro, Sonnet 3.5).
Опубликован 20 янв.
DeepSeek-R1 - аналог o1, только для всех и бесплатно Не успел я вчера запоздало рассказать про reasoning модели и упомянуть модель DeepSeek-R1-Lite, так сегодня ребята из DeepSeek не только релизнули полную версию DeepSeek-R1, но и вместе с ней выпустили целую вереницу моделей поменьше (на основе Llama3, Qwen2.5), которые, если верить бенчмаркам, в задачах на написание кода работают не хуже GPT-4o и Sonnet 3.5 (даже 8b модели!). Надо проверять, т. к. с трудом верится. Ну, я не удержался и задал эту же задачу из поста про o1-pro (только в упрощенном виде) DeepSeek-R1. Любопытно, что она ее решила через System.Threading.Channels - один producer записывает все элементы, и множество consumer'ов (воркеров) эти элементы читают и обрабатывают. Код тут (не проверял). По API моделька так же доступна по ценам в разы ниже, чем у OpenAI. Веса тоже в опенсорсе, да еще и с открытой лицензией - то есть, при наличии железа достаточной мощности ваша организация теперь может разместить у себя в закрытом контуре модель, вероятно, сопоставимую по качеству с o1. Сейчас модель доступна всем и бесплатно тут (после регистрации). Не забудьте включить DeepThink.
Опубликован 20 янв.
Продолжение: o1-pro: Реализуем Parallel.ForEachAsync с регулируемым "на лету" параллелизмом Часть 1 тут. Но доверять LLM (даже с тестами) - чревато, особенно в такой сложной задаче, поэтому кроме собственного теста, я попросил Евгения Пешкова (автора библиотеки ConcurrencyToolkit и довольно экспертного чувака по многопоточке) поревьюить результат, за что ему большое спасибо. Вот его комментарии: 1. Сейчас пермит добывается заново на каждый обрабатываемый элемент, это убивает эффект от распараллеливания, если элементы обрабатываются быстро. Эффективнее захватывать пермит один раз при старте воркера, а при изменении лимита убивать воркеров с номерами >= NEW_LIMIT. 2. Используется обычный lock для MoveNext, а в оригинальном ForEachAsync — SemaphoreSlim(1) в качестве асинхронного лока, что предотвращает блокировку тредпула, если MoveNext медленный Во всяком случае, критических проблем обнаружено не было - и это уже хорошо. А PR с исправленными замечаниями приветсвуется :) Кстати, у Жени есть великоплепный Telegram-канал про .NET, а еще множество глубоких докладов, которые я тоже могу горячо рекомендовать - сейчас, с развитием нейронок, глубокие знания о том, как все устроено под капотом получают еще большую ценность. Код библиотеки и тесты тут. Итоги итогов Тандем лучших публичных нейронок на сегодня (o1-pro + Sonnet 3.5) в написании потокобезопасного кода проявил себя довольно достойно. Конечно, чтобы делать такие выводы уверенно необходимо, как минимум, повторить удачный эксперимент несколько раз в подряд, ну и желательно на разных задачах, но у нас просто нет столько времени. В принципе, если говорить конкретно о модели o1-pro, то одна из основных ее фишек именно в стабильности результата (в отличие от o1, которая может отдавать правильный ответ через раз), поэтому с высокой долей вероятности результат будет повторяемым. Что еще может o1-pro? Много чего. В целом, все самые сложные задачи на reasoning (НЕ на знание библиотек) o1-pro должна решать сильно лучше остальных моделей. Кроме того, у нее довольно большой контекст в 200к токенов на вход (впрочем, как и у o1), поэтому ей спокойно можно докидывать, например, всю документацию к вашей любимой библитеке и почти наверняка эта модель будет наиболее внимательна к деталям. Еще, я пытался решить с o1-pro довольно сложную задачу на графы, но в полной мере это сделать так и не удалось - после нескольких итераций (код, тесты, output тестов LLM, фикс и все по новой), она думала по ~10 минут и стабильно предлагала неверное решение. Там весьма хитрая и запутанная логика обработки циклов внутри графа и o1-pro в ней явно путается. Удивительно, но в итоге последний затык мне смогла разрешить только старая добрая Sonnet 3.5 - по моим наблюдением, у Sonnet вообще как-то все очень хорошо с графами. А какие самые сложные задачи на программирование доводилось решать вам с помощью LLM? — Пробелов.NET
Опубликован 20 янв.
o1-pro: Реализуем Parallel.ForEachAsync с регулируемым "на лету" параллелизмом Не все знают, но в .NET начиная с 6-й версии есть прекрасный метод Parallel.ForEachAsync, который позволяет распараллелить задачу на заданное количество воркеров. По умолчанию выполнение происходит на тредпуле, поэтому в случае использования асинхронных методов некоторые задачи можно решать в десятки, а то и в сотни раз быстрее. Одна из таких задач - это, например, генерация embeddings или любые другие обращения к облачной LLM или даже парсинг. Это здорово работает, но иногда возникает необходимость изменять количество воркеров (degree of parallelism) "на лету" - к примеру, в зависимости от пропускной способности LLM провайдера. Написать такую реализацию DynamicParallel.ForEachAsync самому, конечно, можно, но делать это нужно максимально внимательно с учетом всяких возможных дедлоков и race condition. Делегировать эту задачу LLMке я порываюсь еще с сентября, но тогда ни GPT-4o, ни Sonnet 3.5 ни в какую не могли с этим справиться, хотя бы даже частично. Шаги к решению 1. Итак, я попросил o1-pro сначала реализовать решение, позволяющее динамически регулировать параллелизм на лету. После примерно 5-ти минут раздумий, она выбрала решение на основе SemaphoreSlim (из цепочки рассуждений было видно, что так же в серьез рассматривалось решение с DataFlow, но в итоге было отметено ну и хорошо) 2. Затем, понимая комплексность задачи (многопоточный код жеж), я попросил Claude Sonnet 3.5 и обычную o1 поревьюить результат (ревью от Клода там во втором моем сообщении) - они нашли какие-то проблемы, на первый взгляд мне они показались адекватными и я правки принял. 3. Взял результат из шага 2, и попросил o1-pro на базе DynamicConcurrencyLimiter реализовать метод DynamicParallel.ForEachAsync. И тут важно отметить, что для упрощения нейросети задачи, я добавил ей в контекст исходник оригинального Parallel.ForEachAsync из актуальных сорсов .NET (оригинальный ForEachAsync НЕ поддерживает динамический параллелизм). Кстати, обратите внимание, что промпты в моих сообщениях довольно простые (для reasoning моделей это ок). 4. [важнейший шаг] Я попросил o1-pro написать тесты на получившиеся классы. Про валидацию решения Валидация сгенерированного кода тестами - это эдакий лайф-хак, особенно на случай когда код получается реально сложный и его трудно проверить глазами - тут уже важно, чтобы программист имел понимание возможных уязвимых мест разного сложного кода и всевозможных corner cases - в принципе, этот этап тоже можно практиковать совместно с LLM, но я бы все равно рекомендовал взять минутку и продумать какие-то сложные сценарии, которые должны быть покрыты. Возвращаюсь к нашему кейсу мне показалось важным убедиться в 3-х вещах: 1. В том, что при активной динамической регулировке параллелизма не возникает дедлоков (не хотелось бы где-то встрять навечно). 2. В том, что все элементы действительно обрабатываются. 3. В том, что каждый элемент списка обрабатывается ровно один раз. Поэтому, я сам спроектировал еще один дополнительный стресс-тест, который делает все эти вещи. В этом тесте сейчас 1M элементов - но когда речь идет о проверке потокобезопасности, этого может быть мало для надежного теста, больше того, по-хорошему подобные решения еще имеет смысл прогонять на разных архитектурах (x86, arm, ...), т. к. из-за различий в модели памяти поведение многопоточного кода может слегка отличаться. Кстати, здесь бывает полезным погонять тесты в цикле до провала (в течение дня, например) - в Rider для этого есть опция Run Unit Tests Until Failure. Что в итоге? После пары косметических правок (в тестах было 2 ошибки компиляции), к моему удивлению, все тесты прошли с первого раза. Код и тесты тут. Продолжение.
Опубликован 19 янв.
Reasoning models: o1, o1-pro, Gemini Flash Thinking, QwQ 32b, o3-mini Ну что, всех с наступившим! Если меня спросят какой тренд в AI мире наблюдается в 2025 году, то я смело отвечу, что это reasoning модели и AI-агенты. "Агентность" - это когда LLM наделяют волей самостоятельно принимать решение о том, каким должен быть следующий шаг для достижения успеха в решении задачи. Пример в контексте программирования - это системы типа Devin, Cursor Agent и автономный aider. AI-Агенты - это очень интересная тема, о которой я еще обязательно буду говорить, но сейчас сфокусируемся на reasoning моделях как средстве еще больше повысить нашу, программистскую продуктивность. Итак, OpenAI провели серию больших (и маленьких релизов) и в течение 12-ти дней что-то да выпускали - почитать саммари релиза каждого дня можно, например, в канале Игоря Акимова. Мы же здесь поговорим про самые важные релизы для программистов — это модельки о1 (pro) и o3. Описание моделей линейки o я уже приводил в этом посте, напомню лишь кратко, что это специальная линейка моделей от OpenAI, к котором прикручена способность к рефлексии - иными словами, интеллектуальные способности этих моделей (которые так важны для решения задач на программирование) существенно выше, чем все, что было до этого в LLM. Сразу скажу от себя, что эти модели действительно большой прорыв в решении задач на программирование, я могу это подтвердить и своим личном опытом их использования. Да, я опять буду показывать вам бенчмарки, но только те, которые в моем понимании хорошо мапятся на реальность. В LiveCodeBench видно, что o1-high превосходит Sonnet 3.5 в решении сложных алгоритмических задач примерно в x5 раз. Да, модель o1 по API доступна в 3-х вариациях reasoning effort: low, medium и high - чем выше это значение, тем дольше модель будет "думать" (кстати, у меня есть подозрение, что в Web версии ChatGPT reasoning effort определяется автоматически). И, напоследок, посмотрим бенчмарк от самой OpenAI - задачки на CodeForces (смотрим второй бенчмарк на 4/4 стабильных ответов): o1-preview - 26, о1 - 64, o1-pro - 75. o1 Pro - это самая продвинутая модель в линейке o1, которая "думает" больше (и дольше) всех остальных моделей, зато выдает более продуманные и стабильные ответы. На текущий момент модель o1-pro доступна для в подписке ChatGPT Pro за 200$. Доступ к модели o1-pro по API обещали открыть позже. Подробнее про o1 можно почитать в этом посте. Кстати, про о1 ребята из OpenAI+DeepLearning аж курс часовой сделали и блок про метапромптинг определенно стоит вашего внимания, т. к. он еще и имеет прямое отношение к реализации продвинутых AI-агентов. А на сколько хорошо o1-pro пишет многопоточный код я проверю на реальной задаче в следующем посте. Как попробовать? 1. В GitHub Models модели o1 и o1-mini доступны как из веб интерфейса, так и по API. Но чтобы воспользоваться, похоже, что нужна подписка на GitHub Copilot. 2. В веб/десктоп версии ChatGPT подписка Plus открывает доступ к модели o1. 3. По OpenAI API, но для этого понадобится аж Tier 5. 4. В Azure OpenAI, но только по заявке. Еще reasoning модели Китайцы активно догоняют OpenAI и уже сейчас можно отметить 2 модели, которые тоже очень хорошо умеют решать сложные задачи: 1. Qwen QwQ 32b - доступна в веб интерфейсе или через OpenRouter. 2. DeepSeek-R1-Lite-Preview - доступна в веб интерфейсе при включении опции "DeepThink". 3. Gemini Flash Thinking - Google тоже пытаются в reasoning и у них получается. По LiveCodeBench видно, что эти модели действительно хороши в решении задач уровня Medium и Hard. Еще, OpenAI анонсировали модель o3, результаты которой эквиваленты 175-му разработчику в мировом рейтинге CodeForces, но модель эта пока не доступна никому, кроме исследователей безопасности, а стоимость генерации там вообще какая-то заоблачная. Из более реального, в течение нескольких недель обещают зарелизить модель o3-mini примерно уровня o1-pro по словам Сэма Альтмана, но еще и с доступом по API. Будем ждать. И это еще не было ответа от Anthropic. 2025-й год обещает быть очень интересным. — Пробелов.NET