Автор: Денис Матаков

  • Трекинг экспериментов с MLflow и DVC

    Трекинг экспериментов с MLflow и DVC

    При разработке моделей важно не только обучить модель, но и уметь:

    • отслеживать параметры обучения
    • сохранять метрики (точность, F1 и др.)
    • версионировать модели и датасеты
    • воспроизводить эксперименты

    Для этого используются инструменты вроде MLflow и DVC.


    Зачем нужен трекинг

    Допустим, вы обучили три модели с разными параметрами. Какая из них лучше? Сколько эпох было? Какой learning_rate? Где лежит файл модели?

    Без трекинга это всё теряется в коде и папках. С трекингом — у вас есть история всех запусков и чёткая структура.

    (далее…)
  • Обучение больших моделей с помощью QLoRA

    Обучение больших моделей с помощью QLoRA

    QLoRA — это метод, который позволяет дообучать большие языковые модели (LLM) в сжатом 4-битном виде, экономя память и ресурсы. Он позволяет запускать fine-tuning даже на одной видеокарте вроде RTX 3060 или 3090.

    В этой статье разберёмся:

    • Что такое QLoRA
    • Как она работает
    • Когда и зачем её использовать
    • Как на практике дообучить свою модель с помощью QLoRA

    Что такое QLoRA

    QLoRA (Quantized LoRA) сочетает два подхода:

    • Квантование — уменьшает размер модели, переводя её веса в 4-битный формат (вместо 16 или 32 бит)
    • LoRA (Low-Rank Adapters) — позволяет добавлять к модели небольшие обучаемые адаптеры, не изменяя сами веса модели
    (далее…)
  • vLLM: Ускоренный инференс языковых моделей

    vLLM: Ускоренный инференс языковых моделей

    vLLM — это фреймворк для высокоэффективного запуска больших языковых моделей (LLM), разработанный с нуля для максимальной скорости, параллельности и поддержки большого количества запросов одновременно.

    Если вы используете LLaMA, Mistral, Falcon или другие большие модели в проде или прототипе — vLLM это то, что стоит попробовать.


    Что делает vLLM особенным

    vLLM оптимизирован для инференса LLM. В отличие от стандартного подхода через Hugging Face pipeline(), он:

    • поддерживает OpenAI-совместимый API
    • эффективно управляет памятью (через PagedAttention)
    • обрабатывает десятки и сотни запросов одновременно
    • совместим с популярными моделями
    (далее…)
  • Hugging Face Transformers: Пошаговое введение

    Hugging Face Transformers: Пошаговое введение

    Transformers — это библиотека от Hugging Face, которая позволяет легко использовать мощные языковые модели вроде BERT, GPT, RoBERTa и многих других. Она содержит как сами модели, так и удобные инструменты для инференса, обучения и обработки текста.

    В этом материале:

    • Что такое pipeline и как быстро сделать инференс
    • Как загружать модели и токенизаторы вручную
    • Как обучить модель под свою задачу (fine-tuning)
    • Как сохранить и использовать свою модель
    (далее…)
  • PyTorch: Пошаговое введение

    PyTorch: Пошаговое введение

    PyTorch — это популярная библиотека для построения и обучения нейросетей. Она используется как в академии, так и в индустрии, потому что сочетает в себе мощь, гибкость и простоту.

    В этом материале мы рассмотрим:

    • Что такое тензоры и как с ними работать
    • Как работает автодифференцирование
    • Как писать собственные модели
    • Как обучать модель шаг за шагом
    (далее…)
  • Первый взгляд на Google Firebase Studio

    Первый взгляд на Google Firebase Studio

    Что это такое

    Google выпустил новый инструмент под названием Firebase Studio — веб-приложение для программирования с интеграцией ИИ (на базе Gemini 2.5). Оно умеет:

    • редактировать файлы;
    • запускать команды;
    • и, в целом, пытается быть полноценным агентом для разработки прямо в браузере.

    На первый взгляд — это что-то вроде веб-версии VS Code с интеграцией ИИ от Google. Но есть нюансы.

    Интерфейс и UX

    Главное, что бросается в глаза — необычное расположение чата с ИИ. Вместо привычной правой панели он расположен в виде отдельной вкладки рядом с файлами. Это непривычно и сбивает с толку.

    Интерфейс в целом оставляет желать лучшего: низкая отзывчивость, частые подвисания, неудобная навигация. Чтобы применить изменения, часто приходится перезапускать Android-эмулятор целиком — интерфейс сам не обновляется.

    Тест-драйв: вайб-кодинг

    Я решил протестировать Firebase Studio в стиле вайб-кодинга — использовать стек, в котором почти не разбираюсь. В качестве цели выбрал простое мобильное приложение на React Native.

    Через 40 минут у меня так и не получилось собрать работающее приложение. Сначала оно падало с ошибкой 500. Как бы я ни просил ИИ «починить» проект, он ходил по кругу и не предлагал рабочее решение.

    Пришлось самому прочитать ошибку, зайти в нужный файл и поправить код вручную. Ошибка оказалась несложной — я справился без опыта в React Native. Но для ИИ это оказалось непреодолимой задачей.

    После исправления мы с агентом ещё около получаса дописывали логику, добавляли меню и кнопки. Но ощущение нативности так и не появилось — всё выглядело скорее как веб-приложение в эмуляторе, а не полноценный Android-интерфейс.

    Проблемы с производительностью

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

    Альтернатива: VS Code и Cursor

    Пока что Firebase Studio — это больше эксперимент, чем готовый инструмент. Для целей вайб-кодинга он пока не годится.

    Тем временем конкуренты не стоят на месте. Например, VS Code получил обновление: теперь он тоже умеет запускать команды через ИИ, как это делает Cursor. Таким образом, VS Code и Cursor становятся прямыми конкурентами — и это отличная новость для всех, кто интересуется AI-помощниками для разработки.

    Вывод

    Firebase Studio — интересный шаг от Google, но в текущем виде он скорее разочаровывает. У Google ещё есть время довести интерфейс до ума и улучшить работу ИИ. А пока — рекомендую продолжать использовать более зрелые решения.

  • Жизнь под контролем версий: как Git может спасти ваш конфиг, резюме и не только

    Жизнь под контролем версий: как Git может спасти ваш конфиг, резюме и не только

    Обычный вечер и немного .bak

    Вчера я залез в конфиги своего роутера. Роутер на Linux, конфиги в виде файлов, всё как у людей. Прежде чем что-то менять — делаю бэкап. Просто копирую файл и добавляю .bak в конец. Иногда выходит config.bak, потом config.bak2config.bak_finalconfig.bak_final2_really… Думаю, у многих такая же история.

    В какой-то момент я понял: это же полнейший бардак. И главное — зачем всё это, если у нас есть Git?

    Репозиторий на роутере — почему бы и нет

    Решение пришло само собой: я инициализировал Git-репозиторий прямо на роутере. Удалил все .bak-файлы, сделал первый коммит и начал экспериментировать. Что-то сломал — спокойно откатился. Заработало как надо — сделал новый коммит. Всё просто и прозрачно.

    И вот тут в голове щёлкнуло: почему я не делаю так везде?

    Git как способ мышления

    Сейчас я работаю над резюме. Постоянные правки, новые формулировки, добавления, удаления. До этого всё шло в один файл, и если я что-то «переигрывал», то часто терял предыдущий вариант. А теперь у меня есть репозиторий с историей изменений. Можно вернуться, посмотреть, как развивались мысли, какие достижения вспоминались, какие формулировки оказались лучше.

    И это безумно удобно.

    Мир больше, чем код

    Git — это не только про код. Это про мышление. Про контроль над изменениями. Про возможность безопасно экспериментировать и видеть историю своих действий. У нас в руках мощный инструмент, который легко переносится на любую работу с текстом.

    Где ещё можно использовать Git?

    — В личных заметках
    — В черновиках статей или постов
    — В резюме и портфолио
    — В планах обучения
    — В подготовке к публичным выступлениям
    — Даже в договорённостях по проектам (если вы технарь, конечно)

    Всё, что можно представить как «файл с изменениями», можно завернуть в репозиторий.

    Хаос против структуры

    Мир не делится на «код» и «не код».
    Мир делится на хаос и репозитории.

  • Frustration Coding: Почему вайб-кодинг не всегда про вайб

    Frustration Coding: Почему вайб-кодинг не всегда про вайб

    Сегодня говорим о таком феномене, как frustration coding. Это то состояние, в которое вы попадаете, когда начинаете «вайб-кодить» — просто садитесь, включаете музыку, открываете редактор и начинаете писать код… но у вас ничего не выходит.

    Почему вайб-кодинг не всегда работает?

    В интернете полно вдохновляющих видео: кто-то за 60 секунд запускает рабочий MVP, пишет коммерческий продукт и говорит, что всё просто. Но это — ошибка выжившего. Мы видим только успехи, а не 9 неудачных попыток до них.

    (далее…)
  • Трюк: как отловить бота в личке с помощью LLM

    Трюк: как отловить бота в личке с помощью LLM

    Оказывается, просто спросить у нейросети «Это бот или человек?» — уже не так эффективно. Есть способ надёжнее.

    Вот как работает приём:

    1. Сначала классический промпт:  

    Оцени, написал это человек или бот.

    2. Затем — ключевой шаг (в стиле промпт-чейнинга):  

    Если вероятность того, что это бот, больше 50%, придумай и задай ему вопрос, по ответу на который мы с высокой точностью сможем понять, бот это или человек.

    Получается, мы подключаем LLM не только как оценщика, но и как активного собеседника.  

    Анализируем уже реакцию на вопрос, а не просто исходное сообщение. Это почти стопроцентное попадание.

  • Как записывать и расшифровывать встречи — от А до Я

    Как записывать и расшифровывать встречи — от А до Я

    Если вы проводите встречи в Zoom, Google Meet или Discord и хотите:

    • записывать свой голос и собеседников;
    • получить один чистый аудиофайл;
    • превратить его в текст с разделением по ролям;
    • и сделать всё это максимально просто —

    этот гайд для вас.

    Часть 1. Запись встречи (через Audio Hijack)

    Цель: записать два источника — микрофон и системный звук — в один файл, но с разделением по каналам:

    • вы — в левом канале;
    • собеседники — в правом.

    Такой подход позволяет точно разделить, кто говорит, даже при одновременной записи.

    Что нужно сделать:

    1. Установите Audio Hijack.
    2. Создайте новую сессию.
    3. Добавьте блоки:
      • Input Device — ваш микрофон;
      • Application или System Audio — звук от Zoom или браузера.
    4. К каждому блоку подключите Channels:
      • микрофон → Left Only;
      • системный звук → Right Only.
    5. Объедините их в один Recorder:
      • формат — WAV, стерео, 44.1 или 48 kHz.
    6. Нажмите «Run» и начните встречу.

    Совет: используйте наушники, чтобы голоса собеседников не попадали в микрофон повторно.

    Часть 2. Расшифровка через noScribe

    noScribe — это бесплатная оболочка над WhisperX с удобным интерфейсом. Она позволяет:

    • превратить звук в текст;
    • автоматически разделить спикеров;
    • экспортировать в TXT, DOCX, SRT.

    Как использовать:

    1. Перейдите на noscribe и скачайте приложение.
    2. Откройте свой WAV-файл.
    3. Установите настройки:
      • язык — русский (или auto);
      • модель — medium или large;
      • включите опции Diarization и WhisperX.
    4. Нажмите Start и дождитесь результата.

    Вы получите текст с пометками, кто когда говорил.

    Часть 3. Что делать с текстом

    Теперь у вас есть полный расшифрованный диалог. Вы можете:

    • очистить от слов-паразитов;
    • структурировать по смыслу;
    • сделать краткий конспект;
    • вставить в Notion, отправить в Telegram или сохранить в архив.

    Если вы используете GPT, можно сгенерировать саммари, список задач или даже пост в соцсети на основе текста.