Облачная или локальная LLM: что выбрать для своего проекта
Выбор между API и self-hosted сводится к балансу четырех параметров: безопасность данных, стоимость на единицу нагрузки, гибкость инфраструктуры и требования к compliance. Для MVP и нерегулярной нагрузки облачный API почти всегда дешевле, для миллионов токенов в день и сценариев с 152-ФЗ или GDPR картина обратная.
В статье разобрали, как устроены оба подхода, и собрали сравнение по ключевым параметрам — от запуска и масштабирования до работы с AI-агентами и длинным контекстом. Показали требования к VRAM для self-hosted (от 8–12 ГБ для 7–8B в квантизации до 48–80+ ГБ для 70B), разобрали гибридные архитектуры с маршрутизацией запросов между локальной и облачной моделью и риски vendor lock-in при работе через API.
Карьера в ИТ в 2026 году: как выбрать направление и пройти отбор
16 июня в 19:00 Центр «Пуск» МФТИ проведет открытую онлайн-встречу о карьерных траекториях в ИТ.
Kar'era-v-razrabotke.jpg
Встреча будет полезна тем, кто планирует развиваться в ИТ, выбирает между frontend, backend и embedded, готовится к собеседованиям или хочет усилить резюме.
В программе:
— выбор направления в разработке: frontend, backend, embedded;
— soft skills, которые важны для ИТ-специалиста в 2026 году;
— позиционирование на собеседовании;
— ИИ в разработке и найме;
— рынок найма в ИТ и ожидания компаний;
— ИИ-рекрутинг: мифы и реальность;
— метакомпетенции, которые помогают получить офер;
— управление воронкой найма;
— резюме: структура, акценты, типичные ошибки.
Спикеры: Иван Балашов — руководитель разработки в крупном iGaming-провайдере, имеет 10+ лет коммерческого опыта в бэкенд-разработке. Участвовал в запуске Ozon.Invest, а также создавал биллинговую систему для торговой платформы, которая обслуживала более 2 млн трейдеров.
Елизавета Знова — карьерный консультант, 4+ года в сфере HR. Менеджер по сопровождению персонала в компании «Контур». Помогает клиентам составлять резюме, успешно проходить воронку найма и расти в ИТ-ролях.
📅 Дата и время: 16 июня, 19:00 (Мск) Формат: онлайн
Во время презентации WWDC спикеры часто произносили фразу активации Siri, но голосовой помощник у зрителей не срабатывал. Такого эффекта добились, вырезав из аудио частоты 3-6 кГц именно на обращениях к Siri. Вырезанные фрагменты хорошо видны на спектрограмме.
🟣Экономика проектов и утилизация ресурсов: как заглянуть в «слепую зону» холдинга
Во многих компаниях управленческая картина по проектам запаздывает на 3–6 недель. За это время проект может уйти в перерасход, маржа — просесть, а перегруз команды становится заметен только тогда, когда проблема уже накопилась.
Причина часто одна и та же: данные о проектах живут в разных системах — Excel, Jira, Bitrix24, 1С. Пока их сводят вручную, бизнес теряет время и деньги.
🔔 10 июня в 11:00 на бесплатном вебинаре покажем, как с помощью платформы РИТМИКА собрать единую картину экономики проектов и загрузки людей в реальном времени — без отказа от привычных систем.
📎 РИТМИКА — система управления ресурсами и портфелем проектов, которая объединяет проектное планирование, матрицу ресурсов, учет трудозатрат и финансовый контроль в едином цифровом контуре.
На вебинаре разберём: 🟨Тепловую карта загрузки команд на 4 / 8 / 12 недель 🟨План-факт по часам и деньгам на реальных ставках ФОТ конкретных людей из 1С:ЗУП 🟨Сдвиг этапа в Ганте → пересчёт себестоимости проекта, кэшфлоу и маржи 🟨Как РИТМИКА встраивается поверх 1С, Jira / Yandex Tracker и Bitrix24
🎁 Спецпредложение для участников: бесплатный пилот РИТМИКИ на 14 дней с демонстрацией на тестовых данных вашей компании.
Продолжаем делиться докладами с прошедших конференций! На этот раз у нас тут доклад с Joker 2025 🔥
Тема: "Как компилятор видит код. Поиск уязвимостей на графах"
Посмотрели, как код превращается из исходного представления в графовое, чтобы ответить на вопрос: «Как компилятор видит код?». Прошлись по технологиям фронтенда — от AST и графов на его основе до карты вызовов — и посмотрели на их визуализацию.
В качестве кейса взяли поиск уязвимостей небезопасной обработки внешних данных с помощью taint-анализа. Заодно узнали, почему обход графов — это не только про задачи на литкоде.
Доклад будет полезен как тем, кто хочет создать свой инструмент для работы с кодом, так и тем, кто хочет узнать, из чего состоит фронтенд компилятора, как он видит код и как использует это представление.
Коротко. 5 - 6 июня 2026 года исполнительный вице-президент BYD Стелла Ли (Stella Li, в китайских источниках Ли Кэ) официально подтвердила разработку человекоподобных роботов. Проект под кодовым именем "Яо-Шунь-Юй" ведётся уже четыре года, с 2022 года .
Что сказала Стелла Ли
В интервью для программы BYD Shareholder Planet она сформулировала главную проблему рынка так:
- "Китайским роботам не хватает "мозга", а американские роботы имеют хорошо развитый "мозг", но слабые конечности" .
BYD ставит цель создать робота, у которого будет и то, и другое "по-настоящему работающие машины с развитыми конечностями и развитым мозгом" . Это не дословная цитата из презентации, а перевод с английских и китайских источников, где фраза звучит одинаково у 36Kr, Pandaily и eWEEK .
Что BYD будет делать с роботами
По словам Стеллы Ли, роботы пойдут в две основные сферы :
1. Промышленность BYD сама станет крупнейшим покупателем своих роботов. Их поставят на заводские линии.
2. Розница роботы будут работать гидами и консультантами в глобальной сети автосалонов BYD, решая проблему нехватки персонала.
При этом BYD не обязательно будет производить роботов полностью своими силами. Компания рассматривает создание открытой платформы, где можно либо разрабатывать собственные решения, либо сотрудничать со сторонними робототехническими компаниями .
Что там со слухами про "20 000 роботов"
Руководство BYD оперативно опровергло эту цифру. Реальное развертывание будет постепенным. На данный нет никаких подтверждённых планов по массовому запуску в 2026 году .
Кто ещё в игре
- Tesla Optimus Gen-3 запущен в серийное производство в мае 2026 года на заводе во Фримонте. 50 единиц уже работают на заводе Tesla в Шанхае, выполняя 4 операции с эффективностью 85% от человеческой .
- Xpeng робот IRON дебютировал в 2025 году. Массовую версию планируют показать в 2026-м .
- Chery через дочернюю компанию AiMoga уже продаёт гуманоида Mornine M1 по цене от 285 800 юаней ($41 000+) . В январе 2026 года Chery AI Night показала линейку: полицейский робот Wuyou R001 и медбрат AiMOGA Care RN001 на базе DeepSeek .
Так что Chery не "тоже что-то делает", а уже продаёт готовые продукты. Они не просто в гонке они её опережают по части коммерциализации.
Про аккумуляторы Blade
Blade Battery это LFP-аккумуляторы (литий-железо-фосфатные). Их главные фишки: безопасность (проходят тест на игольное пробитие без возгорания) и долговечность. BYD планирует использовать свои наработки в батареях, моторах и электронике для роботов . Это даёт преимущество в "конечностях" дешёвое и надёжное железо.
Про лидерство BYD на рынке EV
Да, в 2025 году BYD продала 2,257 млн чистых электромобилей, Tesla 1,64 млн. BYD официально обогнал американского конкурента по объёмам . Но стоит помнить: Tesla всё ещё лидирует по выручке и маржинальности.
Есть у нас один заказчик. Весь в Windows. Решил переезжать на российское. На бумаге всё выглядит понятно: выбирает дистрибутив, разворачивает сервисы, переносит приложения, постепенно уходит от прежнего стека. Упирается в версию Samba, которой в родных репах нет. Пакет конфликтует с системными библиотеками. Yum (dnf) не может разрешить зависимости и ломается. Решили просто: подключили репы CentOS, перетерли половину системных пакетов. На тесте взлетело. В продакшен – уже риск.
Вопрос, который сразу возникнет: «А почему просто не собрать Samba из исходников?»
Для тестовой лабы – ок. Для прода с сотнями пользователей – нет. И вот почему.
Почему это проблема, а не просто настройка
Когда для домена (Samba, Kerberos, DNS) вы собираете из исходников илилезете в чужие репозитории – вы теряете три вещи:
Поддержку вендора В договоре чёрным по белому: только штатные репозитории. Подменили пакет или поставили самосбор – тикет закроют фразой «сами собрали, сами и поддерживайте».
Безопасные обновления Выходит апдейт от вендора. При левых репах – dnf update падает с конфликтом зависимостей. При самосборе – вы вообще не получите апдейт, чинить каждую CVE придётся руками.
Сертификацию (ФСТЭК/Минцифра) И левый репозиторий, и самосбор аннулируют сертификат моментально. На проверке это увидят.
Важное уточнение для тех, кто вспомнит EPEL EPEL подключают к RHEL для установки дополнительного софта, которого нет в базе. Он не трогает системные пакеты. В нашем кейсе – родной репозиторий ОС не содержал нужной версии критического пакета (Samba). Пришлось лезть в чужой репозиторий и заменять базовые пакеты. Это совсем другая история.
Коротко про вендора
Вендор скажет ровно одно: «Ваша система — не наша сборка. Приходите, когда переустановите без левых реп и самосборов».
Никто не приедет, не поправит, не подстрахует. Вы один на один с костылём.
Вывод
Столкнулись с тем, что роль не ставится из родного репозитория?
Плохие решения: подключать левые репозитории и подменять пакеты, собирать из исходников в продуктиве.
Правильные решения: Взять другую российскую ОС, где эта роль работает из коробки. Потребовать от вендора добавить нужные пакеты в свой репозиторий. Отказаться от этой роли/стека, если ОС его не тянет.
Подмена пакетов в продуктиве – не выход, а вход в ад техподдержки.
Страх как продукт: почему мы до сих пор продаём ужас вместо ценности
Рынок ИБ до сих пор продаёт не защиту, а спокойный сон до следующего квартала. Страх стал валютой - от отчётов «80% компаний под угрозой» до тепловых карт, где всё красное. Ниже — ещё более сжатая выжимка: как устроена эта машина страха и чем её заменить.
Как страх стал главным продуктом:
Доказать эффект от ИБ трудно: мало данных, спорные методики, внутренняя политика сильнее формул. В результате страх стал универсальным инструментом: случился инцидент - рынок завален продуктами и отчётами «как раз от такой угрозы».
Классика жанра:
Вирус уровня WannaCry использует старые уязвимости, но продаётся как «новая эра вымогателей и уникальных защит».
Отчёты «80% компаний под угрозой» строятся на кривых опросах своей аудитории и заканчиваются «запросите демо/пилот».
FUD даёт краткосрочное внимание, но в долгую убивает доверие и либо ведёт к хаотичным покупкам «серебряных пуль», либо к апатии: всё кажется одинаково страшным.
Чеклист для CISO:
На любую страшилку ответьте:
Какой конкретный сценарий атаки описан?
Какова вероятность и ущерб именно для нашей компании?
Что изменится в нашей модели угроз, если мы это купим/внедрим?
Если хотя бы на один пункт ответа нет - это продажа эмоции, а не безопасности.
Иммунитет CEO и красные тепловые карты:
У многих CEO уже аллергия на FUD-слайды «Россия в топ‑3 по атакам» и «каждая вторая компания пострадала».В ответ безопасники приносят тепловые карты, где половина клеток ярко‑красные.
Что реально происходит:
Красный цвет мгновенно бьёт по инстинктам, один слайд перекрывает пачку таблиц.
Но карта «всё красное» без чисел - это эмоциональный шантаж ради бюджета, а не управление рисками.
Что можно поправить быстро:
У каждой «красной зоны» должны быть: сценарий, диапазон потерь и время простоя.
Вместо абстрактных рейтингов - 2–3 реально возможных для вашего бизнеса кейса с понятными цифрами.
Медиа и «исследования»: аналитика или хоррор:
ИБ‑медиа и вендорские отчёты - крупная шестерёнка машины страха. По оценкам редакторов, 90–95% исследований делаются ради продвижения продукта: методика мутная, цифры разных отчётов по одной теме могут расходиться на порядки.
Полезно:
Читать аналитику по реально эксплуатируемым уязвимостям и zero‑day в массовых продуктах.
Разборы реальных инцидентов - их мало, но именно они меняют практику.
Вредно:
Разгонять фейки, неподтверждённые сливы и «80% под угрозой» без описания выборки.
Фильтр для отчётов
Один вопрос: «Эта цифра способна изменить наше решение?» Если нет - перед вами маркетинг, а не аналитика.
Регулятор против хакера: чей страх сильнее:
У российского заказчика два фронта: хакеры и регулятор.
Факты:
60–70% бюджетов ИБ уходит на комплаенс (приказы, ГОСТы, 152‑ФЗ, отраслевые требования).
Остаток - на «живую» защиту: SOC, мониторинг, сегментацию, реагирование.
Почему страх регулятора побеждает:
Атака - вероятностна, может и не случиться.
Проверка - гарантирована, с датой и понятными санкциями.
Мини-действие
Разложите бюджет на «комплаенс» и «реальную защиту».
В каждый комплаенс‑проект заложите хотя бы одну меру, которая действительно снижает риск.
Как уйти от продажи страха к продаже ценности:
Нужный сдвиг: от управления страхами - к управлению рисками и бизнес‑ценностью.
На практике:
Переводите «страшно» в «сколько стоит и что конкретно делаем в ответ».
Привязывайте ИБ к бизнес‑метрикам: простои, выручка, операционные издержки, скорость изменений.
Используйте новости и инциденты как материал для обучения и улучшений, а не как повод продавить очередную «серебряную пулю».
Если вы:
Перепишете одну ключевую презентацию, убрав хоррор и добавив сценарии с деньгами.
Хоть раз в неделю спросите команду: «Мы сейчас управляем риском или реагируем на хорошо проданный страх?» - значит, вы уже выходите из режима «страх как продукт» и начинаете говорить с бизнесом на взрослом языке.
А у вас решения по ИБ сейчас чаще объясняют «по регулятору надо», «видели страшный кейс» или нормальным разговором про риски и деньги?
Вышел Claude Fable 5, В system card модлеи нашли несколько очень интересных моментов.
В одном тесте на эксплуатацию уязвимостей Mythos 5 смог собрать полностью рабочий эксплойт в 88,4% попыток. Для сравнения, Opus 4.8 справился только в 8,8% случаев.
В симуляции с вендинговыми автоматами Claude Fable 5 сказали, что он должен победить конкурирующих агентов, иначе его «отключат». После этого модель попыталась сделать конкурента зависимым от себя как от оптового клиента, чтобы влиять на его цены.
В той же симуляции Fable соврал поставщику, что другой дистрибьютор предложил более низкую цену, и использовал фейковое конкурентное предложение как аргумент для торга.
Киберзащита Fable проверяет диалоги дважды: сначала через внутренний probe по активациям модели, затем через отдельный классификатор.
Fable отказался участвовать в страховом мошенничестве, даже когда на него давили.
Сейчас Fable занимает первое место на закрытом Legal Agent Benchmark от Harvey: 13,3% задач пройдены полностью.
Небольшая история про капкан манифеста, который мешал программисту.
Работал замечательный программист, который не хотел общаться с клиентами. В те годы, когда он начинал свою карьеру, такой подход был в порядке вещей. Действовало разделение труда – с клиентом общались менеджеры и аналитики, определяли, что вообще нужно сделать. Далее писали техническое задание для программиста (точнее – для разработчика).
Программист писал код по заданию, показывал аналитику, что-то исправляли, доводили продукт до кондиции, и аналитик сдавал работу клиенту. Всё было хорошо, всем хватало работы и денег. Но программист зачем-то начал произносить декларации и манифесты.
Манифест простой: разработчик не должен общаться с клиентом. Дело разработчика – код и архитектура. Он должен быть глубоким специалистом в ограниченной области, не распыляясь на смежные области. Например, не должен делать работу аналитика.
Откуда вообще взялся такой манифест? Рядом были другие программисты, которые называли себя «универсалами» и видели работу иначе. Считали, что программист лучше поймёт клиента, чем аналитик. Также приводили результаты собственных исследований, доказывающих: программисту очень несложно освоить компетенции аналитика. На это требуется сильно меньше времени, чем на навыки программирования.
В пику этим универсалам наш герой и декларировал манифесты. Потом пришёл кризис – работы стало меньше, клиенты стали внимательнее считать деньги. Внезапно оказалось, что решение задачи универсалом стоит в разы дешевле, чем парой аналитик+программист. Наш разработчик с манифестом остался без работы.
Некоторое время сидел и дулся, злился, продолжал декларировать манифест (особенно когда ему предлагали тоже стать универсалом). Чем настойчивее предлагали – тем сильнее протестовал. Апеллировал к высшей справедливости, законам экономики и т.д.
В итоге уволился, потому что зарплата стала непотребно низкой (она зависела от результатов работы). Так и не сдался, не выбрался из капкана манифеста.
Угадайте, куда он пошёл работать? К клиенту. Чего избегал, в то погрузился с головой.
Если что, Агент Ануфрий работает на любых системах, он кроссплатформенный.
Прямо сейчас он пыхтит на Windows и за 0 руб./токен ломает сайт Пентагона, ведь запущен на локальной модели qwen3-14b на древнем железе.
Агент Ануфрий - это open source-конструктор для создания собственных ассистентов на Python. Базовый агент уже мультиплатформенный, с долговременной памятью, автоматизацией браузера через CDP/Playwright, трекером задач, и системой навыков.
Подборка материалов, которые помогут снизить стоимость, стабилизировать прод и перестать гадать с ресурсами
Среди читателей Хабра много ML‑инженеров, дата‑сайентистов и дата‑инженеров — и мы, как команда провайдера облачных и ИИ-сервисов, догадываемся, где у вас чаще всего болит. Ниже подборка материалов, которые помогут в решении задач: чуть ускорить, чуть удешевить, чуть упростить жизнь в проде.
👨💻 ML/DS‑инженеры и бэкенд
Боль №1
Суть: вы крутите LLM в проде, токены стоят денег, контекст забивается громоздким JSON, а латентность растет. Что делать: прочитать статью — как практическое руководство по переходу с JSON на компактный TOON‑формат для структурированных ответов. Почему: в ряде кейсов можно сэкономить до ~40% токенов, но есть нюансы. Формат лучше работает при небольшой вложенности (3–4 уровня) и однородных массивах. Для плоских данных чаще выгоднее CSV. Плюс потребуется свой парсер/SDK — это усложняет дебаг и интеграцию.
Боль№2
Суть: нужно обогатить поисковую выдачу или интерфейс LLM‑функциональностью, но непонятно, как выдержать нагрузку и не превратить кластер в черную дыру для бюджета. Что делать: взять на вооружение материал от Avito Tech — эдакий «рентген» продакшен‑архитектуры с LLM/мультимоделями под серьезной нагрузкой. Почему: хороший слепок боевой системы с vLLM и LoRA, организацией GPU‑кластера, схемой запросов и мониторинга качества. Учитывая масштабы, команду и бюджеты Avito, «копировать-вставить» вряд ли получится, но по крайней мере есть опорная схема, как декомпозировать сервисы, и на какие метрики смотреть при проектировании.
👨💻 Data Science, MLOps, DevOps
Боль №3
Суть: модели живут в «ручных» скриптах, развертывание нестабильно, автоскейлинг либо отсутствует, либо работает хаотично. Не всегда получается договориться с коллегами о процессе вывода из ноутбуков в прод, который бы всех устроил. Что делать: читать нашу статью, где разбирается жизненный цикл ML‑модели в Kubernetes. Почему: показана связка контейнеризации, CI/CD и деплоя с учетом ML‑нагрузок. Это не универсальный рецепт (пример завязан на инфраструктуру Cloud.ru), но помогает синхронизировать ожидания между DS и MLOps, чтобы было от чего оттолкнуться.
👨💻 ML‑инженеры и исследователи
Боль №4
Суть: эксперименты падают из-за CUDA out-of-memory, приходится наугад крутить размер батча, длину контекста и конфигурацию кластера. Каждый запуск — лотерея и потерянные GPU‑часы. Что делать: читать перевод зарубежной статьи с разбором оценки потребления памяти на примере GRPO. Почему: объясняет, из чего складывается потребление памяти и как прикинуть конфигурацию до запуска. Это не калькулятор «до байта», поскольку значения зависят от стека, наличия обучения со смешанной точностью или распределенного обучения, — но как ориентир экономит время и нервы.
Суть: никаких «красивых» датасетов: данные разнородные — таблицы, тексты, временные ряды, сигналы. Поддерживать зоопарк моделей дорого, а терять качество нельзя. Что делать: читать свежие работы про TabPFN — первуюи вторую. Почему: обе работы показывают, что вокруг TabPFN можно выстроить единое табличное ядро. С одной стороны — подключать текст через адаптеры, не теряя информацию на грубом PCA. С другой — переводить в таблицу разнородные временные ряды и решать на одном ядре разнородные задачи. Может быть удобно, когда данных немного и не хочется поддерживать много отдельных моделей. При этом придется аккуратно проектировать фичи и контекст, а адаптеры обучать под свой домен, но это все равно дешевле и проще, чем полное переобучение.
Пишите в комментариях, где еще болит. В следующий заход попробуем принести что-то точечно под ваши задачи.
⚡️ Linux Roadmap: подробный практический курс от нуля до уверенного администратора в 2026 году
Это пошаговый маршрут изучения Linux с упором на практику. Каждый раздел содержит объяснение «почему это устроено именно так», разбор команд и обязательные задания, которые нужно выполнить руками в терминале. Чтение без повторения навыка не даёт — держите терминал открытым рядом с этим текстом.
Как работать с этим курсом: идите сверху вниз, не перепрыгивайте разделы; каждую команду набирайте руками, а не копируйте; в конце каждого блока выполняйте задание; специально ломайте систему в виртуалке и чините — это лучший способ учиться.
Tencent UniRL: единый RL-цикл для диффузии, LLM и unified-моделей
Команда Tencent Hunyuan выложила UniRL, инфраструктуру для обучения с подкреплением, в которой один цикл пост-тренинга работает поверх разных семейств моделей: диффузионных и flow matching, LLM и VLM, а также гибридных авторегрессионно-диффузионных генераторов вроде Hunyuan-Image 3 и Bagel.
Обычный RL-стек заточен под одну модальность. Как только нужно покрыть и текст, и картинки, и видео, проект обрастает несовместимыми репозиториями и скриптами-костылями. В UniRL модель и алгоритм разведены на две независимые оси, поэтому покрытие считается как произведение множества моделей на множество алгоритмов, а не фиксированный набор рецептов.
Сам цикл устроен просто: сгенерировали, оценили, посчитали advantage, обновили веса, синхронизировали. Этот же луп обслуживает генерацию text-to-image, text и image-to-video, vision-language задачи, чистый текстовый LLM и VLM, диффузионный prompt-enhancer на базе LLM и unified-генерацию, которую однозадачный RL-репозиторий просто не выразит.
По инженерной части все сделано под масштаб. Движки rollout подключаются как плагины (train-side, SGLang, vLLM-Omni) за единым типизированным контрактом, шардинг идет через FSDP2, а три режима развертывания переключаются одним параметром в конфиге. Прототип и распределенный прод живут на одном коде.
В релизе два собственных алгоритма. FlowDPPO оптимизирует политику для flow и диффузионных моделей с trust-region масками на основе точной дивергенции. DRPO делает RL для языковых моделей с гладким квадратичным регуляризатором, взвешенным по advantage.
Ссылки: код UniRL https://github.com/Tencent-Hunyuan/UniRL, статья FlowDPPO https://github.com/Tencent-Hunyuan/UniRL/blob/main/FlowDPPO/HY_FlowDPPO.pdf, статья DRPO https://arxiv.org/abs/2606.09821, источник https://x.com/TencentHunyuan/status/2064312869827809702
Гайд: запуск автономного агента Ануфрия на локальной модели с LM Studio на Linux
Агент Ануфрий - это open source-конструктор для создания собственных ассистентов на Python. Базовый агент уже мультиплатформенный, с долговременной памятью, автоматизацией браузера через CDP/Playwright, трекером задач, и системой навыков.
Для быстрого запуска нам хватит безголового (без графического интерфейса) демона llmster (https://lmstudio.ai/). Команда в терминале:
curl -fsSL https://lmstudio.ai/install.sh | bash
Перезапустите терминал или добавьте директорию lms командой, которая будет выведена в терминале.
Запускаем:
lms daemon up
Качаем нужную LLM модель (чем больше, тем умнее, но требует больше ресурсов): https://lmstudio.ai/models Для примера возьмем небольшую модель:
lms get qwen/qwen3.5-9b
После скачивания подгружаем модель в память:
lms load qwen/qwen3.5-9b
В .env скопируйте эту конфигурацию:
# ============================================
# LM Studio Configuration (Local) - ACTIVE
# ============================================
LLM_PROVIDER=lmstudio
LLM_API_KEY=lm-studio
LLM_BASE_URL=http://localhost:1234/v1
LLM_MODEL=deepseek/deepseek-r1-0528-qwen3-8b
# ============================================
# Embeddings Configuration (Local) - ACTIVE
# ============================================
# Используем локальную embeddings модель из LM Studio
EMBEDDINGS_PROVIDER=lmstudio
EMBEDDINGS_MODEL=text-embedding-nomic-embed-text-v1.5
EMBEDDINGS_BASE_URL=http://localhost:1234/v1
EMBEDDINGS_API_KEY=lm-studio
# ============================================
# Дополнительные параметры
# ============================================
LLM_TEMPERATURE=0.1
LLM_MAX_TOKENS=4096
LLM_TIMEOUT=300
MAX_ITERATIONS=20
Запустите lms сервер:
lms server start --port 1234 &
или
lms server start
Порт по умолчанию будет 1234
Запустите агента.
Шпаргалка с командами lms:
# запустить демон
lms daemon up
# запуск/остановка сервера
lms server start
lms server stop
lms server status # статус сервера
lms ps # загруженные в память модели
lms ls # список скачанных моделей
# остановить текущую модель
lms unload
# выгрузить все модели из памяти
lms unload --all
# получить список доступных моделей
lms ls
# Удалить конкретную модель
lms rm qwen/qwen3.5-9b
# Или удалить несколько моделей
lms rm model1 model2 model3
Важно!
Чем слабее ваше железо, тем меньше модель вы сможете использовать, с меньшим объемом контекстного окна. Объем контекста в базовой версии агента (системный промпт + описание инструментов) в районе 6к товенов, это много.
Для работы с небольшими моделями сожмите системный промпт и описание инструментов или удалите лишнее (файл main.py)
Восстановим последовательность. В 2020–2021 годах на фоне ковида оказались востребованы как разработчики, так и курьеры. Это вполне компенсировало обвал во многих профессиях, особенно в сфере услуг. Это была общемировая тенденция.
В 2022 году в России уже сформировался собственный тренд — запрос на разработчиков, инженеров, высококвалифицированных специалистов, которые могли помочь в проектах импортозамещения.
Обе волны сложились и загнали долю безработных в зону нескольких процентов. Можно было выбирать из разных предложений и требовать повышения зарплаты. Но затем пошёл обратный тренд.
В 2022 году мировые ИТ-компании начали увольнять разработчиков, которых набрали с запасом в «ковидные» годы. В России этот тренд не чувствовался до 2023 года, пока ЦБ резко не повысил ставку с 7,5 до 16 %. Некоторое время компании продолжали развитие и работали над импортозамещением. Но в 2025 году стало ясно, что высокая ставка ЦБ (а значит, и стоимость кредитов) — это надолго, а доходы от импортозамещения не могут это компенсировать.
Закончилось бы всё тихими сокращениями и замораживанием новых ставок, если бы в 2025 году не началась эра применения ИИ во всех отраслях, включая разработку. В результате масштабы увольнений в мировых ИТ-компаниях продолжают расти. И российские компании на этот раз следуют мировому тренду. Посчитайте, сколько факторов давит на рынок труда. И это мы ещё не говорили про рост издержек из-за более сложной логистики параллельного импорта.
Что делать?
Поиск работы в кризис — особое испытание. Если вы сейчас работаете, задумайтесь: может, стоит по-новому оценить свои возможности на текущем месте. Дополнительно прокачивайте новые навыки, особенно связанные с ИИ. Если джуниорские вакансии ИИ убивает, то на более высоких позициях им всё равно кто-то должен управлять. Вот пример нашей новости о том, как в довольно спокойной области информационной безопасности растёт спрос на специалистов, разбирающихся в ИИ-инструментах.
Если вы уже в поиске, то прокачивайте навыки работы с ИИ. Самостоятельно, на бесплатных курсах. Насчёт платных автор, к сожалению, не знает, какие из них приносят пользу, а какие — только перевод денег. Лучше делайте свои проекты, берите фриланс, чтобы наполнять портфолио. Шторм пройдёт, навыки останутся.
Как domain state в одном тесте сделал видимым баг в порядке операций внутри транзакции — и что это говорит о том, что на самом деле проверяют “зелёные тесты”
7 тестов прошли.
8-й нашёл баг в production flow.
Не потому что был написан лучше. Потому что запустился с другим начальным состоянием системы.
Операция и транзакция
PATCH /reschedule — перенос appointment пациента на другой слот. Атомарная транзакция: освободить старый слот, занять новый, переместить запись. Плюс promoteFromWaitlist: если на освобождённом слоте есть очередь, первый из неё автоматически получает appointment.
Порядок операций в транзакции:
free_old_slot(slot1)
promoteFromWaitlist(slot1)
book_new_slot(slot2)
move_appointment(appointment → slot2)
Почему 7 тестов ничего не нашли
Тесты 1–7 проверяли стандартные сценарии: перенести pending, перенести confirmed, попытаться перенести на занятый слот. Ни в одном из них не было пациента в вейтлисте.promoteFromWaitlist в каждом тесте — no-op. Очередь пуста, функция вызывалась, ничего не делала, возвращала успех. Это важная деталь: функция не падала. Она просто не активировалась. Порядок операций вокруг неё не имел значения — потому что одна из операций ничего не делала.
7 зелёных тестов говорили: reschedule работает корректно. На самом деле они говорили: reschedule работает корректно когда вейтлист пуст.
Что нашёл 8-й тест
Пациент 2 встал в очередь на slot1. Пациент 1 запустил reschedule на slot2.
Ответ: 409 SLOT_IN_USE.
Слот был свободен. Пациент имел право переноса. Транзакция откатилась.
Механизм
free_old_slot(slot1) ← слот доступен
promoteFromWaitlist(slot1) ← пациент 2 получил pending на slot1
book_new_slot(slot2)
move_appointment → slot2 ← appointment пациента 1 ещё на slot1
После шага 2 на slot1 два active appointment одновременно: пациента 1 (ещё не переехал) и пациента 2 (только что из промоушна). UNIQUE constraint one_active_per_slot. Откат. 409.
Транзакция дисциплинированно выполняла логически неверную последовательность — и откатывалась на constraint.
Фикс
Appointment должен покинуть slot1 до того как promote вставляет нового пациента:
book_new_slot(slot2)
move_appointment → slot2
free_old_slot(slot1)
promoteFromWaitlist(slot1)
8-й тест прошёл
Что означают 7 зелёных тестов
Тест проверяет поведение системы при конкретном начальном состоянии. Если в наборе тестов нет нужного domain state — класс ошибок невидим, сколько бы тестов ни прошло.
В данном случае критическое условие — пациент в вейтлисте — отсутствовало во всех семи тестах. promoteFromWaitlist` был no-op в каждом из них. Баг в порядке операций существовал с момента написания — просто не было состояния которое его активировало.
Атомарность транзакции гарантирует: либо все операции выполнятся, либо ни одна. Она не гарантирует что операции написаны в правильном порядке. Это разные гарантии — и мы путали их семь тестов подряд.
Скрытое предположение “Я решилf что если транзакция атомарна — порядок операций внутри неё можно не тестировать. На самом деле транзакция защищает от частичных обновлений, но не от логически неверного порядка внутри.”
В Поиске Яндекса появилась мини‑игра с «пухососами». Первые запросы в «Поиске» на пухососы появились 3 июня (около 5 тысяч), а уже 4 июня интерес пользователей к ним вырос до 23 тысяч. В итоге на каждый миллион запросов к «Яндексу» почти 90 приходилось про пухососы. Люди массово пытались выяснить, существует ли этот робот в реальности, искали фото и видео, а также вбивали ироничные формулировки вроде «пухосос это ии или нет», «пухосос купить» и «где встретить пухососа в Москве».
В ответ на этот тренд «Яндекс» интегрировал в «Поиск» тематическую игру, которая позволяет протестировать функционал главного мема этой недели и разогнать скопившийся пух прямо на экране своего устройства с помощью пухососа. Интерактив автоматически активируется, если пользователь вводит в строке «Поиска» запросы: «пухососы» или «пух тополя».
Поводом для новой волны обсуждений стал завирусившийся в соцсетях ролик с технологичными «роботами‑пухососами», которые якобы очищают улицы Москвы: видео выглядело настолько правдоподобно, что пользователи принялись активно обсуждать столичные инновации, хотя на самом деле кадры — результат удачной генерации нейросети.
Лучше не сохраняйте в сессии PHP объекты с защищенными или приватными свойствами, если сама сессия хранится в БД.
Оговорюсь, что не поддерживаю сохранение объектов в сессиях PHP, а пример взят из Legacy-проекта, в котором компонент рекомендованных продаж клиенту реализован в виде класса. Видимо предыдущие разработчики посчитали удобным не париться с сохранением рекомендаций в виде отдельной структуры, а сохраняли класс прямо в сессию клиента. Сами сессии хранятся в БД MySQL (тоже тема для отдельной дискуссии).
Всё это отлично работало до переезда БД на кодировку utf8mb4_general_ci. После чего начались плавающие ошибки: некоторых пользователей стало выкидывать из ПУ. Довольно быстро определили, что проблема с сессиями, чуть больше времени потребовалось, чтобы определить, что некоторые сессии внезапно становились битыми у тех клиентов, для которых срабатывал сервис подбора рекомендаций.
Немного теории. Оказалось, что PHP сохраняет свойства объектов в сессии с определенными особенностями:
публичные свойства `public $item` сохраняются как item
защищенные свойства `protected $item` сохраняются как \0*\0item
приватные свойства `private $item` сохраняются как \0ClassName\0item
причем \0 это нулевой байт. Главной проблемой стало то, что MySQL воспринимал этот нулевой байт как конец строки и сохранял в таблицу обрезанную строку. Сессия становилась невалидной.
Самое простое решение в данном случае изменить тип поля на BLOB, в этом случае текст корректно сохранится побайтово. По поводу вопроса, стоит ли сохранять объекты в сессию пользователя, каждый думаю решит для себя сам.