{
 "categories": [
  {
   "id": "ml-basics",
   "title": "Основы машинного обучения"
  },
  {
   "id": "statistics",
   "title": "Статистика для ML"
  },
  {
   "id": "neural-nets",
   "title": "Нейронные сети"
  },
  {
   "id": "language-models",
   "title": "Языковые модели: от n-грамм до трансформера"
  },
  {
   "id": "llm",
   "title": "LLM: обучение и инференс"
  },
  {
   "id": "multimodal",
   "title": "Мультимодальные модели"
  },
  {
   "id": "infra",
   "title": "Железо и развёртывание"
  },
  {
   "id": "agents",
   "title": "Агенты и инструменты"
  },
  {
   "id": "rag",
   "title": "RAG: поиск + генерация"
  },
  {
   "id": "production",
   "title": "Продакшн и качество"
  }
 ],
 "terms": [
  {
   "slug": "3d-parallelism",
   "term": "3D-параллелизм",
   "en": "3d parallelism",
   "def": "Комбинация трёх осей для обучения фронтир-моделей: tensor parallelism внутри узла с NVLink, pipeline parallelism между узлами и data parallelism поверх получившихся копий.",
   "category": "infra",
   "topics": [
    {
     "id": "distributed-training",
     "title": "Распределённое обучение: DP, TP, PP и ZeRO"
    }
   ]
  },
  {
   "slug": "automatic-differentiation",
   "term": "Автоматическое дифференцирование",
   "en": "automatic differentiation",
   "def": "Механизм фреймворков, который строит граф вычислений и сам считает производные любой композиции операций. Благодаря ему backprop работает для любой архитектуры без ручного вывода формул.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "backprop",
     "title": "Обратное распространение ошибки"
    }
   ]
  },
  {
   "slug": "autoencoder",
   "term": "Автоэнкодер",
   "en": "autoencoder",
   "def": "Пара сетей: энкодер сжимает объект в короткий латентный вектор, декодер восстанавливает его обратно, лосс — ошибка реконструкции. Для генерации непригоден: латентное пространство «дырявое».",
   "category": "multimodal",
   "topics": [
    {
     "id": "vae-gan",
     "title": "VAE и GAN: генерация до диффузии"
    }
   ]
  },
  {
   "slug": "agent",
   "term": "Агент",
   "en": "agent",
   "def": "LLM, запущенная в цикле «думай — действуй — наблюдай»: модель сама решает, какие шаги нужны и сколько их будет, вызывая инструменты до достижения цели. В отличие от пайплайна, последовательность шагов не задана заранее.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-loop",
     "title": "Агентный цикл и критерий остановки"
    }
   ]
  },
  {
   "slug": "alternative-hypothesis-h1",
   "term": "Альтернативная гипотеза",
   "en": "alternative hypothesis, H1",
   "def": "Утверждение, принимаемое при отвержении нулевой: эффект есть, среднее больше заявленного. Задаётся до просмотра данных; её направление определяет, одно- или двусторонним будет тест.",
   "category": "statistics",
   "topics": [
    {
     "id": "p-value",
     "title": "P-value и проверка гипотез"
    }
   ]
  },
  {
   "slug": "ensemble",
   "term": "Ансамбль",
   "en": "ensemble",
   "def": "Объединение многих моделей, чьи ответы усредняются или голосуют. Разные модели ошибаются по-разному, ошибки частично гасятся — вместе они точнее любой по отдельности.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "trees-ensembles",
     "title": "Деревья решений и ансамбли"
    }
   ]
  },
  {
   "slug": "posterior",
   "term": "Апостериорная вероятность",
   "en": "posterior",
   "def": "Обновлённая вероятность гипотезы после учёта улик — результат применения теоремы Байеса: приор, умноженный на правдоподобие, с нормировкой.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "naive-bayes",
     "title": "Теорема Байеса и наивный Байес"
    }
   ]
  },
  {
   "slug": "audio-tokens",
   "term": "Аудиотокены",
   "en": "audio tokens",
   "def": "Дискретные токены из конечного словаря, в которые нейрокодек сжимает звуковую волну. Звук становится «языком», и модель может слушать и генерировать его как обычный текст.",
   "category": "multimodal",
   "topics": [
    {
     "id": "audio-models",
     "title": "Звук: распознавание и синтез речи"
    }
   ]
  },
  {
   "slug": "bayesian-optimization",
   "term": "Байесовская оптимизация",
   "en": "Bayesian optimization",
   "def": "Подбор гиперпараметров через суррогатную модель «настройки → качество»: следующую пробу выбирают по ожидаемому улучшению, балансируя исследование и использование. Основа Optuna (TPE) и Hyperopt.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "cross-validation-tuning",
     "title": "Кросс-валидация и подбор гиперпараметров"
    }
   ]
  },
  {
   "slug": "batch-normalization",
   "term": "Батч-нормализация",
   "en": "batch normalization",
   "def": "Нормировка активаций по статистикам текущего батча с обучаемыми сдвигом и масштабом. Ускоряет обучение CNN, но зависит от размера батча и требует бегущих статистик на инференсе.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "training-practice",
     "title": "Практика обучения: батчи, dropout, batchnorm"
    }
   ]
  },
  {
   "slug": "baseline",
   "term": "Бейзлайн",
   "en": "baseline",
   "def": "Простое стартовое решение: правила, логистическая регрессия, «рекомендуем популярное». Даёт точку отсчёта, проверяет пайплайн данных и честно отвечает, нужен ли здесь ML вообще.",
   "category": "production",
   "topics": [
    {
     "id": "ml-system-design",
     "title": "Дизайн ML-систем на собеседовании"
    },
    {
     "id": "digits-mnist",
     "title": "Распознавание цифр из пикселей"
    }
   ]
  },
  {
   "slug": "benchmark",
   "term": "Бенчмарк",
   "en": "benchmark",
   "def": "Стандартный набор задач с проверяемыми ответами для сравнения моделей: MMLU (тесты по 57 предметам), GSM8K (математика), HumanEval (код с тестами). Дёшево и воспроизводимо, но грозят контаминация и насыщение.",
   "category": "llm",
   "topics": [
    {
     "id": "llm-evals",
     "title": "Оценка LLM: бенчмарки и LLM-as-judge"
    }
   ]
  },
  {
   "slug": "bigram-model",
   "term": "Биграммная модель",
   "en": "bigram model",
   "def": "Простейшая языковая модель: вероятность следующего слова считается как доля случаев, когда оно шло за текущим словом в корпусе. По сути таблица счётчиков пар.",
   "category": "language-models",
   "topics": [
    {
     "id": "bigram-ngram",
     "title": "Биграммы и n-граммы"
    }
   ]
  },
  {
   "slug": "binarization",
   "term": "Бинаризация",
   "en": "binarization",
   "def": "Шаг препроцессинга OCR: пиксели темнее порога считаются «чернилами», светлее — «бумагой». Порог подбирают автоматически, например методом Оцу по гистограмме яркостей.",
   "category": "multimodal",
   "topics": [
    {
     "id": "ocr",
     "title": "OCR: от классики до распознавания через LLM"
    }
   ]
  },
  {
   "slug": "binning",
   "term": "Биннинг",
   "en": "binning",
   "def": "Разбиение непрерывного признака на корзины-интервалы, чтобы линейная модель смогла поймать нелинейную зависимость.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "feature-engineering",
     "title": "Фичи и утечки данных (data leakage)"
    }
   ]
  },
  {
   "slug": "bootstrap",
   "term": "Бутстреп",
   "en": "bootstrap",
   "def": "Случайная выборка с возвращением того же размера, что исходная. Основа бэггинга, а также универсальный способ получить доверительный интервал для любой метрики: пересчитать её на тысяче ресэмплов и взять перцентили.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "confidence-intervals",
     "title": "Доверительные интервалы"
    },
    {
     "id": "trees-ensembles",
     "title": "Деревья решений и ансамбли"
    }
   ]
  },
  {
   "slug": "bagging",
   "term": "Бэггинг",
   "en": "bagging",
   "def": "Обучение множества моделей на бутстреп-выборках с последующим усреднением ответов. Снижает разброс нестабильных моделей вроде глубоких деревьев, почти не меняя смещение.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "trees-ensembles",
     "title": "Деревья решений и ансамбли"
    }
   ]
  },
  {
   "slug": "validation-set",
   "term": "Валидационная выборка",
   "en": "validation set",
   "def": "Часть данных, отложенная для подбора гиперпараметров и отслеживания момента, когда модель начинает переобучаться. Модель на ней не обучается, но решения под неё подстраиваются.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "intro-ml",
     "title": "Что такое машинное обучение"
    }
   ]
  },
  {
   "slug": "vector-database",
   "term": "Векторная база данных",
   "en": "vector database",
   "def": "Хранилище эмбеддингов с ANN-индексом: за миллисекунды находит ближайшие по смыслу векторы среди миллионов, храня вместе с ними метаданные и исходный текст. Отвечает на вопрос «что похоже по смыслу».",
   "category": "rag",
   "topics": [
    {
     "id": "vector-databases",
     "title": "Векторные базы данных и их типы"
    }
   ]
  },
  {
   "slug": "gate",
   "term": "Вентиль",
   "en": "gate",
   "def": "Маленький сигмоидный слой со значениями от 0 до 1, управляющий потоком информации в рекуррентной сети: что стереть из памяти, что записать, что показать наружу. Основной механизм LSTM и GRU.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "rnn",
     "title": "Рекуррентные сети (RNN, LSTM)"
    }
   ]
  },
  {
   "slug": "verification",
   "term": "Верификация результата агента",
   "en": "verification",
   "def": "Внешняя проверка после «готово»: запуск тестов, компиляция, валидация схемы или модель-критик. Превращает мнение агента об успехе в наблюдаемый факт и резко поднимает надёжность.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-loop",
     "title": "Агентный цикл и критерий остановки"
    }
   ]
  },
  {
   "slug": "weight",
   "term": "Вес",
   "en": "weight",
   "def": "Обучаемый коэффициент, на который нейрон умножает входной сигнал. Веса подбираются градиентным спуском и определяют, какие признаки и насколько сильно влияют на выход.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "perceptron-mlp",
     "title": "От нейрона к многослойному перцептрону"
    }
   ]
  },
  {
   "slug": "exploding-gradients",
   "term": "Взрывающиеся градиенты",
   "en": "exploding gradients",
   "def": "Экспоненциальный рост градиента по цепочке умножений, из-за которого лосс скачет или уходит в NaN. Стандартное лекарство — обрезка градиентов.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "backprop",
     "title": "Обратное распространение ошибки"
    }
   ]
  },
  {
   "slug": "nested-cross-validation",
   "term": "Вложенная кросс-валидация",
   "en": "nested cross-validation",
   "def": "Схема с двумя циклами: внешний честно оценивает пайплайн, внутренний на каждой его итерации отдельно подбирает гиперпараметры. Убирает завышение оценки, вызванное самим фактом выбора лучшего варианта.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "cross-validation-tuning",
     "title": "Кросс-валидация и подбор гиперпараметров"
    }
   ]
  },
  {
   "slug": "vocoder",
   "term": "Вокодер",
   "en": "vocoder",
   "def": "Сеть, восстанавливающая звуковую волну из мел-спектрограммы: спектрограмма хранит только энергии частот без фазы, поэтому вокодер учится дорисовывать правдоподобную волну.",
   "category": "multimodal",
   "topics": [
    {
     "id": "audio-models",
     "title": "Звук: распознавание и синтез речи"
    }
   ]
  },
  {
   "slug": "time-series",
   "term": "Временной ряд",
   "en": "time series",
   "def": "Наблюдения, упорядоченные во времени: продажи по дням, нагрузка по минутам. Порядок важен, а соседние точки зависимы — это меняет и подготовку признаков, и валидацию.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "time-series",
     "title": "Временные ряды и прогнозирование"
    }
   ]
  },
  {
   "slug": "model-selection-bic-aic",
   "term": "Выбор числа компонент",
   "en": "model selection, BIC/AIC",
   "def": "Задача подбора числа гауссиан k: правдоподобие растёт с k само по себе, поэтому используют критерии BIC и AIC, которые штрафуют лишние параметры и ищут баланс между качеством подгонки и сложностью.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "em-gmm",
     "title": "EM-алгоритм и смеси гауссиан (GMM)"
    }
   ]
  },
  {
   "slug": "sample",
   "term": "Выборка",
   "en": "sample",
   "def": "Наблюдаемая часть генеральной совокупности, по которой оценивают её свойства. Любая статистика по выборке — среднее, accuracy, конверсия — случайна и меняется от выборки к выборке.",
   "category": "statistics",
   "topics": [
    {
     "id": "sampling-clt",
     "title": "Выборка, ЦПТ и стандартная ошибка"
    }
   ]
  },
  {
   "slug": "sampling-distribution",
   "term": "Выборочное распределение",
   "en": "sampling distribution",
   "def": "Распределение статистики (например, среднего) при многократном повторении выборки того же размера. Его ширина показывает, насколько оценке можно доверять.",
   "category": "statistics",
   "topics": [
    {
     "id": "sampling-clt",
     "title": "Выборка, ЦПТ и стандартная ошибка"
    }
   ]
  },
  {
   "slug": "outlier",
   "term": "Выброс",
   "en": "outlier",
   "def": "Аномальная точка, сильно выбивающаяся из общей закономерности данных. Из-за квадрата ошибки в MSE даже один выброс может заметно развернуть линейную модель.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "linear-regression",
     "title": "Линейная регрессия"
    }
   ]
  },
  {
   "slug": "convex-function",
   "term": "Выпуклая функция",
   "en": "convex function",
   "def": "Функция с единственной «долиной»: любой локальный минимум является глобальным, поэтому градиентный спуск гарантированно находит оптимум. Поверхности потерь нейросетей невыпуклы.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "gradient-descent",
     "title": "Градиентный спуск"
    }
   ]
  },
  {
   "slug": "tool-hallucination",
   "term": "Галлюцинация инструмента",
   "en": "tool hallucination",
   "def": "Ситуация, когда модель вызывает инструмент, которого нет в списке доступных. Правильная реакция кода — вернуть модели сообщение об ошибке с перечнем доступных инструментов, а не исполнять «похожий».",
   "category": "agents",
   "topics": [
    {
     "id": "tool-calling",
     "title": "Tool calling: как модель вызывает инструменты"
    }
   ]
  },
  {
   "slug": "population",
   "term": "Генеральная совокупность",
   "en": "population",
   "def": "Всё множество объектов, о котором мы хотим сделать вывод: все запросы к модели, все пользователи, все возможные тестовые примеры. Целиком её никогда не наблюдают — судят по выборке.",
   "category": "statistics",
   "topics": [
    {
     "id": "sampling-clt",
     "title": "Выборка, ЦПТ и стандартная ошибка"
    }
   ]
  },
  {
   "slug": "generative-model",
   "term": "Генеративная модель",
   "en": "generative model",
   "def": "Модель, которая учит совместное распределение данных и меток — «как выглядят объекты каждого класса» — и выводит ответ через теорему Байеса. Пример — наивный Байес.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "naive-bayes",
     "title": "Теорема Байеса и наивный Байес"
    },
    {
     "id": "vae-gan",
     "title": "VAE и GAN: генерация до диффузии"
    }
   ]
  },
  {
   "slug": "grounded-generation",
   "term": "Генерация с опорой на контекст",
   "en": "grounded generation",
   "def": "Режим, при котором модель отвечает по переданным в промпт фрагментам документов, а не по памяти. Снижает галлюцинации и позволяет цитировать источники, делая ответы проверяемыми.",
   "category": "rag",
   "topics": [
    {
     "id": "rag-basics",
     "title": "Что такое RAG и зачем он нужен"
    }
   ]
  },
  {
   "slug": "hybrid-search",
   "term": "Гибридный поиск",
   "en": "hybrid search",
   "def": "Параллельный запуск лексического и векторного поиска со слиянием списков результатов. Слабости методов не пересекаются, поэтому гибрид почти всегда выигрывает у каждого по отдельности.",
   "category": "rag",
   "topics": [
    {
     "id": "hybrid-rerank",
     "title": "Гибридный поиск и реранкинг"
    }
   ]
  },
  {
   "slug": "tanh",
   "term": "Гиперболический тангенс",
   "en": "tanh",
   "def": "Активация с диапазоном от минус единицы до единицы: центрирована вокруг нуля, что удобнее для оптимизации, чем сигмоида, но точно так же насыщается на больших входах.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "activations",
     "title": "Функции активации"
    }
   ]
  },
  {
   "slug": "hyperparameters",
   "term": "Гиперпараметры",
   "en": "hyperparameters",
   "def": "Настройки модели и процесса обучения, которые задаёт человек (сложность модели, скорость обучения), в отличие от параметров, которые модель подбирает сама. Выбираются по валидационной выборке.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "intro-ml",
     "title": "Что такое машинное обучение"
    }
   ]
  },
  {
   "slug": "principal-component",
   "term": "Главная компонента",
   "en": "principal component",
   "def": "Направление в пространстве признаков, вдоль которого дисперсия проекций максимальна; каждая следующая ортогональна предыдущим. Математически — собственные векторы ковариационной матрицы.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "dimensionality-pca",
     "title": "Снижение размерности и PCA"
    }
   ]
  },
  {
   "slug": "deep-learning",
   "term": "Глубокое обучение",
   "en": "deep learning",
   "def": "Обучение нейросетей со многими слоями, где каждый слой строит признаки поверх предыдущих. Композиция даёт иерархию признаков и требует куда меньше нейронов, чем один широкий слой.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "perceptron-mlp",
     "title": "От нейрона к многослойному перцептрону"
    }
   ]
  },
  {
   "slug": "gradient",
   "term": "Градиент",
   "en": "gradient",
   "def": "Вектор производных функции по всем параметрам; указывает направление наискорейшего роста функции. Чтобы уменьшать ошибку, шаг оптимизации делают против градиента.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "gradient-descent",
     "title": "Градиентный спуск"
    }
   ]
  },
  {
   "slug": "gradient-boosting",
   "term": "Градиентный бустинг",
   "en": "gradient boosting",
   "def": "Ансамбль, где неглубокие деревья строятся последовательно и каждое исправляет ошибки предыдущих, приближая антиградиент лосса. Чемпион на табличных данных: XGBoost, LightGBM, CatBoost.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "trees-ensembles",
     "title": "Деревья решений и ансамбли"
    }
   ]
  },
  {
   "slug": "gradient-descent",
   "term": "Градиентный спуск",
   "en": "gradient descent",
   "def": "Итеративный алгоритм оптимизации: на каждом шаге параметры сдвигаются против градиента функции потерь — в сторону наискорейшего убывания ошибки. Им обучают почти всё, от регрессии до LLM.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "gradient-descent",
     "title": "Градиентный спуск"
    }
   ]
  },
  {
   "slug": "knowledge-cutoff",
   "term": "Дата отсечения знаний",
   "en": "knowledge cutoff",
   "def": "Момент, на котором заморожены знания LLM: о событиях после даты обучения модель не знает и может отвечать выдумкой. Одна из главных причин использовать RAG.",
   "category": "rag",
   "topics": [
    {
     "id": "rag-basics",
     "title": "Что такое RAG и зачем он нужен"
    }
   ]
  },
  {
   "slug": "double-descent",
   "term": "Двойной спуск",
   "en": "double descent",
   "def": "Феномен, при котором ошибка сильно перепараметризованных моделей после пика у точки интерполяции снова падает, нарушая классическую U-образную картину. Объясняет успех больших нейросетей.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "bias-variance",
     "title": "Bias–variance: разложение ошибки"
    }
   ]
  },
  {
   "slug": "deduplication",
   "term": "Дедупликация",
   "en": "deduplication",
   "def": "Удаление повторов из претрейн-данных: дубликаты заставляют модель заучивать тексты наизусть и завышают результаты на бенчмарках, утёкших в обучающую выборку.",
   "category": "llm",
   "topics": [
    {
     "id": "pretraining",
     "title": "Претрейнинг и scaling laws"
    }
   ]
  },
  {
   "slug": "decoder",
   "term": "Декодер",
   "en": "decoder",
   "def": "Трансформер с каузальной маской (как GPT): генерирует текст слева направо, предсказывая следующий токен. Основа всех современных генеративных LLM.",
   "category": "language-models",
   "topics": [
    {
     "id": "transformer",
     "title": "Архитектура трансформера"
    }
   ]
  },
  {
   "slug": "prompt-decomposition",
   "term": "Декомпозиция промптов",
   "en": "prompt decomposition",
   "def": "Принцип «одна задача — один промпт»: цепочка маленьких промптов вместо монстра на десять задач. Каждое звено отлаживается и оценивается отдельно, а инструкции не конкурируют за внимание модели.",
   "category": "llm",
   "topics": [
    {
     "id": "prompt-patterns",
     "title": "Промпт-паттерны и structured outputs"
    }
   ]
  },
  {
   "slug": "decomposition",
   "term": "Декомпозиция ряда",
   "en": "decomposition",
   "def": "Разложение временного ряда на тренд (медленное движение уровня), сезонность (повторяющийся узор) и остаток (необъяснённый шум). Хорошая модель ловит первые две компоненты и не учит третью.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "time-series",
     "title": "Временные ряды и прогнозирование"
    }
   ]
  },
  {
   "slug": "decision-tree",
   "term": "Дерево решений",
   "en": "decision tree",
   "def": "Модель из последовательных вопросов «признак больше порога?», разрезающих пространство признаков на прямоугольные области. Интерпретируема, но нестабильна и на большой глубине переобучается.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "trees-ensembles",
     "title": "Деревья решений и ансамбли"
    }
   ]
  },
  {
   "slug": "text-detection",
   "term": "Детекция текста",
   "en": "text detection",
   "def": "Поиск областей с текстом на изображении (рамки строк и слов) — первый этап современного DL-OCR; идею реализуют модели типа CRAFT и EAST.",
   "category": "multimodal",
   "topics": [
    {
     "id": "ocr",
     "title": "OCR: от классики до распознавания через LLM"
    }
   ]
  },
  {
   "slug": "jailbreak",
   "term": "Джейлбрейк",
   "en": "jailbreak",
   "def": "Попытка самого пользователя уговорить модель нарушить её правила. Отличается от prompt injection, где вредоносные инструкции спрятаны в читаемых моделью данных, а пользователь — жертва.",
   "category": "production",
   "topics": [
    {
     "id": "safety-guardrails",
     "title": "Безопасность: guardrails и prompt injection"
    }
   ]
  },
  {
   "slug": "speaker-diarization",
   "term": "Диаризация",
   "en": "speaker diarization",
   "def": "Разметка аудиозаписи по говорящим: «кто и когда говорит» в записи с несколькими людьми.",
   "category": "multimodal",
   "topics": [
    {
     "id": "audio-models",
     "title": "Звук: распознавание и синтез речи"
    }
   ]
  },
  {
   "slug": "dynamic-discovery",
   "term": "Динамическое обнаружение",
   "en": "dynamic discovery",
   "def": "Свойство MCP: клиент запрашивает у сервера список инструментов в рантайме и узнаёт о новых тулах без перекомпиляции и правок кода приложения.",
   "category": "agents",
   "topics": [
    {
     "id": "mcp",
     "title": "MCP: стандарт подключения инструментов"
    }
   ]
  },
  {
   "slug": "class-imbalance",
   "term": "Дисбаланс классов",
   "en": "class imbalance",
   "def": "Ситуация, когда классов сильно не поровну, например один больной на сто здоровых. Делает accuracy и ROC-AUC обманчивыми; честнее смотреть precision, recall и PR-AUC.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "metrics",
     "title": "Метрики качества"
    }
   ]
  },
  {
   "slug": "discriminative-model",
   "term": "Дискриминативная модель",
   "en": "discriminative model",
   "def": "Модель, которая сразу учит вероятность класса при данном входе — границу между классами, не тратя силы на моделирование самих данных. Пример — логистическая регрессия.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "naive-bayes",
     "title": "Теорема Байеса и наивный Байес"
    }
   ]
  },
  {
   "slug": "discriminator",
   "term": "Дискриминатор",
   "en": "discriminator",
   "def": "Сеть в GAN, которая учится отличать настоящие примеры от сгенерированных; её вердикт служит генератору сигналом качества вместо попиксельного лосса.",
   "category": "multimodal",
   "topics": [
    {
     "id": "vae-gan",
     "title": "VAE и GAN: генерация до диффузии"
    }
   ]
  },
  {
   "slug": "knowledge-distillation",
   "term": "Дистилляция знаний",
   "en": "knowledge distillation",
   "def": "Перенос качества большой модели-учителя в маленькую модель-ученика: ученик обучается воспроизводить предсказания учителя, а не только правильные ответы, и усваивает больше, чем из сырых данных.",
   "category": "llm",
   "topics": [
    {
     "id": "distillation",
     "title": "Дистилляция и сжатие моделей"
    }
   ]
  },
  {
   "slug": "distributional-hypothesis",
   "term": "Дистрибутивная гипотеза",
   "en": "distributional hypothesis",
   "def": "Идея, что смысл слова определяется его типичными контекстами: слова с похожими соседями по тексту близки по смыслу. Теоретическая основа word2vec и эмбеддингов вообще.",
   "category": "language-models",
   "topics": [
    {
     "id": "embeddings",
     "title": "Эмбеддинги и word2vec"
    }
   ]
  },
  {
   "slug": "diffusion-model",
   "term": "Диффузионная модель",
   "en": "diffusion model",
   "def": "Генеративная модель, обученная убирать шум маленькими шагами: сеть предсказывает подмешанный шум, а генерация — цепочка шагов расшумления, превращающая чистый шум в картинку.",
   "category": "multimodal",
   "topics": [
    {
     "id": "diffusion-models",
     "title": "Диффузионные модели: как рисует Stable Diffusion"
    }
   ]
  },
  {
   "slug": "confidence-interval-ci",
   "term": "Доверительный интервал",
   "en": "confidence interval, CI",
   "def": "Диапазон вокруг оценки, построенный так, что при многократном повторении эксперимента заданная доля таких интервалов (обычно 95 %) накрывает истинное значение. Для среднего: x̄ ± t·s/√n.",
   "category": "statistics",
   "topics": [
    {
     "id": "confidence-intervals",
     "title": "Доверительные интервалы"
    }
   ]
  },
  {
   "slug": "explained-variance-ratio",
   "term": "Доля объяснённой дисперсии",
   "en": "explained variance ratio",
   "def": "Часть общей дисперсии данных, приходящаяся на главную компоненту. По накопленной доле выбирают число компонент — обычно столько, чтобы суммарно объяснить 90–95% дисперсии.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "dimensionality-pca",
     "title": "Снижение размерности и PCA"
    }
   ]
  },
  {
   "slug": "accuracy",
   "term": "Доля правильных ответов",
   "en": "accuracy",
   "def": "Доля объектов, для которых модель угадала класс. Обманчива при дисбалансе классов: константа «все здоровы» даёт 99% на выборке, где болен один из ста.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "metrics",
     "title": "Метрики качества"
    }
   ]
  },
  {
   "slug": "data-drift-covariate-shift",
   "term": "Дрифт данных",
   "en": "data drift, covariate shift",
   "def": "Изменение распределения входных данных при прежней связи входов с целевой переменной: модель смотрит на данные, не похожие на обучающие, но продолжает уверенно предсказывать.",
   "category": "production",
   "topics": [
    {
     "id": "monitoring-drift",
     "title": "Мониторинг и дрифт данных"
    }
   ]
  },
  {
   "slug": "concept-drift",
   "term": "Дрифт концепции",
   "en": "concept drift",
   "def": "Изменение самой связи между входами и целевой переменной — например, мошенники сменили схему. Самый коварный вид дрифта: входы могут выглядеть как раньше, и мониторинг распределений молчит.",
   "category": "production",
   "topics": [
    {
     "id": "monitoring-drift",
     "title": "Мониторинг и дрифт данных"
    }
   ]
  },
  {
   "slug": "label-drift-prior-shift",
   "term": "Дрифт лейблов",
   "en": "label drift, prior shift",
   "def": "Изменение распределения целевой переменной: доля спама выросла с 5% до 20%, и откалиброванные пороги модели поплыли.",
   "category": "production",
   "topics": [
    {
     "id": "monitoring-drift",
     "title": "Мониторинг и дрифт данных"
    }
   ]
  },
  {
   "slug": "randomization-unit",
   "term": "Единица рандомизации",
   "en": "randomization unit",
   "def": "Кто попадает в группу эксперимента целиком — обычно пользователь, а не сессия или запрос. Иначе один человек увидит обе версии, и эффекты смешаются.",
   "category": "production",
   "topics": [
    {
     "id": "ab-testing",
     "title": "A/B-тесты и продуктовые метрики"
    }
   ]
  },
  {
   "slug": "greedy-decoding",
   "term": "Жадная генерация",
   "en": "greedy decoding",
   "def": "Стратегия, всегда берущая самый вероятный токен. На длинном открытом тексте вырождается: модель зацикливается и повторяет фразы, потому что локально вероятный токен не значит глобально хороший текст.",
   "category": "llm",
   "topics": [
    {
     "id": "sampling",
     "title": "Сэмплирование: temperature, top-k, top-p"
    }
   ]
  },
  {
   "slug": "margin",
   "term": "Зазор",
   "en": "margin",
   "def": "Расстояние от разделяющей границы до ближайших точек классов. SVM его максимизирует: чем шире «улица» между классами, тем устойчивее классификация слегка сдвинутых новых точек.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "svm-kernels",
     "title": "SVM и kernel trick"
    }
   ]
  },
  {
   "slug": "law-of-large-numbers",
   "term": "Закон больших чисел",
   "en": "law of large numbers",
   "def": "Среднее по выборке сходится к истинному среднему совокупности с ростом числа наблюдений. Говорит, куда сходится оценка; как быстро и с каким разбросом — уточняет ЦПТ.",
   "category": "statistics",
   "topics": [
    {
     "id": "sampling-clt",
     "title": "Выборка, ЦПТ и стандартная ошибка"
    }
   ]
  },
  {
   "slug": "query-key-value",
   "term": "Запрос, ключ и значение",
   "en": "query, key, value",
   "def": "Три проекции токена во внимании: запрос — что токен ищет, ключ — по чему его находят, значение — что он отдаёт. Похожесть запроса и ключа задаёт вес значения в итоговой смеси.",
   "category": "language-models",
   "topics": [
    {
     "id": "attention",
     "title": "Механизм внимания (attention)"
    }
   ]
  },
  {
   "slug": "weight-decay",
   "term": "Затухание весов",
   "en": "weight decay",
   "def": "Регуляризация, на каждом шаге слегка уменьшающая веса, чтобы они не разрастались. В AdamW применяется отдельным слагаемым, а не как L2-штраф в лоссе.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "optimizers",
     "title": "Оптимизаторы: SGD, Momentum, Adam"
    }
   ]
  },
  {
   "slug": "vanishing-gradients",
   "term": "Затухающие градиенты",
   "en": "vanishing gradients",
   "def": "Экспоненциальное уменьшение градиента к ранним слоям, когда множители в цепочке производных меньше единицы. Классическая причина — насыщающиеся активации; лечат ReLU, нормализация и остаточные связи.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "backprop",
     "title": "Обратное распространение ошибки"
    }
   ]
  },
  {
   "slug": "golden-set",
   "term": "Золотой сет",
   "en": "golden set",
   "def": "Набор из 100–500 реальных запросов продукта с эталонными ответами или человеческими оценками. Главный актив eval-инфраструктуры: им калибруют судью и по нему гоняют регрессионные прогоны на каждый релиз.",
   "category": "rag",
   "topics": [
    {
     "id": "rag-eval",
     "title": "Оценка качества RAG"
    },
    {
     "id": "llm-evals",
     "title": "Оценка LLM: бенчмарки и LLM-as-judge"
    }
   ]
  },
  {
   "slug": "translation-invariance",
   "term": "Инвариантность к сдвигу",
   "en": "translation invariance",
   "def": "Способность модели узнавать признак независимо от его положения на картинке. У свёрток встроена благодаря скольжению одного ядра; у полносвязных сетей отсутствует.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "cnn",
     "title": "Свёрточные сети (CNN)"
    }
   ]
  },
  {
   "slug": "gini-impurity",
   "term": "Индекс Джини",
   "en": "Gini impurity",
   "def": "Мера «грязности» узла дерева: ноль, когда в узле объекты одного класса, максимум при равной смеси. Дерево жадно выбирает разрезы, сильнее всего снижающие эту грязность.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "trees-ensembles",
     "title": "Деревья решений и ансамбли"
    }
   ]
  },
  {
   "slug": "indexing",
   "term": "Индексация",
   "en": "indexing",
   "def": "Офлайн-фаза RAG: документы нарезаются на чанки, каждый превращается в вектор-эмбеддинг, векторы складываются в векторную базу данных для последующего поиска.",
   "category": "rag",
   "topics": [
    {
     "id": "rag-basics",
     "title": "Что такое RAG и зачем он нужен"
    }
   ]
  },
  {
   "slug": "inductive-bias",
   "term": "Индуктивное смещение",
   "en": "inductive bias",
   "def": "Встроенные в архитектуру априорные предположения о данных — например, локальность и разделяемые веса свёрток. Помогает учиться на малых данных, но ограничивает гибкость.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "cnn",
     "title": "Свёрточные сети (CNN)"
    }
   ]
  },
  {
   "slug": "inertia",
   "term": "Инерция",
   "en": "inertia",
   "def": "Сумма квадратов расстояний от точек до центров их кластеров — величина, которую минимизирует k-means. Монотонно падает с ростом числа кластеров, поэтому по ней одной число кластеров не выбрать.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "clustering-knn",
     "title": "kNN и кластеризация"
    }
   ]
  },
  {
   "slug": "feature-engineering",
   "term": "Инженерия признаков",
   "en": "feature engineering",
   "def": "Придумывание и преобразование признаков — перевод знаний о задаче на язык чисел, понятный модели. На табличных данных удачная фича даёт больше, чем смена алгоритма.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "feature-engineering",
     "title": "Фичи и утечки данных (data leakage)"
    }
   ]
  },
  {
   "slug": "weight-initialization",
   "term": "Инициализация весов",
   "en": "weight initialization",
   "def": "Задание стартовых весов случайными числами правильного масштаба (схемы Xavier и He). Нулевая инициализация вырождает слой: из-за симметрии все нейроны навсегда остаются копиями друг друга.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "training-practice",
     "title": "Практика обучения: батчи, dropout, batchnorm"
    }
   ]
  },
  {
   "slug": "wilson-score-interval",
   "term": "Интервал Уилсона",
   "en": "Wilson score interval",
   "def": "Доверительный интервал для доли (accuracy, конверсии), который корректно ведёт себя при малых n и долях около 0 или 1, в отличие от простого интервала Вальда p̂ ± z·√(p̂(1−p̂)/n).",
   "category": "statistics",
   "topics": [
    {
     "id": "confidence-intervals",
     "title": "Доверительные интервалы"
    }
   ]
  },
  {
   "slug": "interleaving",
   "term": "Интерливинг",
   "en": "interleaving",
   "def": "Чувствительный способ сравнить два ранкера: их результаты перемешиваются в одну выдачу, и по кликам видно, чьи документы предпочитают. Каждый пользователь сравнивает обе модели сразу.",
   "category": "production",
   "topics": [
    {
     "id": "ab-testing",
     "title": "A/B-тесты и продуктовые метрики"
    }
   ]
  },
  {
   "slug": "artificial-neuron",
   "term": "Искусственный нейрон",
   "en": "artificial neuron",
   "def": "Базовый элемент нейросети: взвешивает входы, суммирует их со смещением и пропускает результат через функцию активации. Из таких блоков, соединённых слоями, строится любая нейросеть.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "perceptron-mlp",
     "title": "От нейрона к многослойному перцептрону"
    }
   ]
  },
  {
   "slug": "exploration-vs-exploitation",
   "term": "Исследование против использования",
   "en": "exploration vs exploitation",
   "def": "Ключевая дилемма обучения с подкреплением: пробовать новые действия ради потенциально большей награды или эксплуатировать уже найденную хорошую стратегию.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "learning-paradigms",
     "title": "Типы обучения: с учителем, без и с подкреплением"
    },
    {
     "id": "reinforcement-learning",
     "title": "Обучение с подкреплением: Q-learning и PPO"
    }
   ]
  },
  {
   "slug": "feature-map",
   "term": "Карта признаков",
   "en": "feature map",
   "def": "Выход свёрточного фильтра: карта откликов детектора на каждом участке изображения. Слой из многих фильтров выдаёт по отдельной карте на каждый искомый признак.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "cnn",
     "title": "Свёрточные сети (CNN)"
    }
   ]
  },
  {
   "slug": "model-cascade",
   "term": "Каскад моделей",
   "en": "model cascade",
   "def": "Продакшн-схема: дешёвая маленькая модель обрабатывает простые запросы, а роутер отправляет сложные к большой. Средняя цена запроса падает в разы при почти той же метрике качества.",
   "category": "llm",
   "topics": [
    {
     "id": "distillation",
     "title": "Дистилляция и сжатие моделей"
    }
   ]
  },
  {
   "slug": "catastrophic-forgetting",
   "term": "Катастрофическое забывание",
   "en": "catastrophic forgetting",
   "def": "Потеря общих способностей модели после агрессивного дообучения на узкой задаче: новые веса «переписывают» старые навыки. Смягчается малым learning rate, подмешиванием общих данных и LoRA.",
   "category": "llm",
   "topics": [
    {
     "id": "finetuning",
     "title": "Fine-tuning: SFT, LoRA, PEFT"
    }
   ]
  },
  {
   "slug": "causal-mask",
   "term": "Каузальная маска",
   "en": "causal mask",
   "def": "Запрет токену смотреть на позиции правее себя в декодере: скоры будущих позиций зануляются до softmax. Без неё модель при обучении «подглядывала» бы ответ и не училась предсказывать.",
   "category": "language-models",
   "topics": [
    {
     "id": "attention",
     "title": "Механизм внимания (attention)"
    }
   ]
  },
  {
   "slug": "quantization",
   "term": "Квантизация",
   "en": "quantization",
   "def": "Сжатие весов модели в числа меньшей точности (fp16 → int8/int4): память падает в 2–4 раза, и генерация ускоряется почти пропорционально, потому что decode упирается в трафик памяти. Методы GPTQ и AWQ минимизируют потерю качества.",
   "category": "llm",
   "topics": [
    {
     "id": "inference",
     "title": "Инференс: KV-cache, квантизация, спекулятивный декодинг"
    },
    {
     "id": "gpu-vram",
     "title": "Видеокарты и VRAM: железо для нейросетей"
    }
   ]
  },
  {
   "slug": "kernel-trick",
   "term": "Кернел-трюк",
   "en": "kernel trick",
   "def": "Приём, неявно переводящий данные в пространство большей размерности, где они линейно разделимы: ядро дёшево считает там скалярные произведения, не строя само отображение.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "svm-kernels",
     "title": "SVM и kernel trick"
    }
   ]
  },
  {
   "slug": "classification",
   "term": "Классификация",
   "en": "classification",
   "def": "Задача предсказания дискретного класса объекта: спам или нет, кошка или собака. Отличается от регрессии, где предсказывается непрерывное число.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "intro-ml",
     "title": "Что такое машинное обучение"
    }
   ]
  },
  {
   "slug": "clustering",
   "term": "Кластеризация",
   "en": "clustering",
   "def": "Задача обучения без учителя: сгруппировать похожие объекты без готовых меток — сегменты клиентов, темы документов, дубликаты данных.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "clustering-knn",
     "title": "kNN и кластеризация"
    }
   ]
  },
  {
   "slug": "collaborative-filtering",
   "term": "Коллаборативная фильтрация",
   "en": "collaborative filtering",
   "def": "Рекомендации по поведению: люди с похожими вкусами любят похожее. Признаки контента не нужны — только история взаимодействий; варианты user-based и item-based.",
   "category": "production",
   "topics": [
    {
     "id": "recsys",
     "title": "Рекомендательные системы"
    }
   ]
  },
  {
   "slug": "compaction",
   "term": "Компакция",
   "en": "compaction",
   "def": "Сжатие старой истории агента в короткое резюме: многословные результаты инструментов заменяются парой фраз с сутью. Освобождает контекстное окно, сохраняя ключевые факты.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-memory",
     "title": "Память, планирование и мультиагентные системы"
    }
   ]
  },
  {
   "slug": "error-compounding",
   "term": "Компаундинг ошибок",
   "en": "error compounding",
   "def": "Накопление ошибок в многошаговой траектории агента: даже при 95% успеха на каждом шаге задача из 20 шагов доходит до конца лишь примерно в трети случаев. Лечится верификацией и короткими подзадачами.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-loop",
     "title": "Агентный цикл и критерий остановки"
    }
   ]
  },
  {
   "slug": "bias-variance-trade-off",
   "term": "Компромисс смещения и разброса",
   "en": "bias-variance trade-off",
   "def": "Правило, по которому рост сложности модели снижает смещение, но раздувает разброс. Их сумма образует U-образную кривую ошибки; лучшее качество — на её дне.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "bias-variance",
     "title": "Bias–variance: разложение ошибки"
    },
    {
     "id": "overfitting-regularization",
     "title": "Переобучение и регуляризация"
    }
   ]
  },
  {
   "slug": "contamination",
   "term": "Контаминация",
   "en": "contamination",
   "def": "Утечка задач бенчмарка в обучающие данные модели: она «помнит» ответы, а не решает. Красивая цифра на контаминированном бенчмарке ничего не говорит о реальных способностях.",
   "category": "llm",
   "topics": [
    {
     "id": "llm-evals",
     "title": "Оценка LLM: бенчмарки и LLM-as-judge"
    }
   ]
  },
  {
   "slug": "context-engineering",
   "term": "Контекст-инжиниринг",
   "en": "context engineering",
   "def": "Сборка и разметка всего входа модели: роли, порядок блоков, разделители, бюджет токенов. Шире промпт-инжиниринга, который отвечает только за формулировку конкретной инструкции.",
   "category": "llm",
   "topics": [
    {
     "id": "context-engineering",
     "title": "Работа с контекстом и разметка сообщений"
    }
   ]
  },
  {
   "slug": "context-window",
   "term": "Контекстное окно",
   "en": "context window",
   "def": "Максимальная длина входа модели в токенах — жёсткий бюджет, который расходует каждый блок контекста: инструкции, примеры, документы, история. При переполнении приходится урезать наименее важное.",
   "category": "llm",
   "topics": [
    {
     "id": "context-engineering",
     "title": "Работа с контекстом и разметка сообщений"
    }
   ]
  },
  {
   "slug": "contextual-embeddings",
   "term": "Контекстные эмбеддинги",
   "en": "contextual embeddings",
   "def": "Векторы токенов, пересчитываемые с учётом всего предложения через внимание: многозначное слово получает разные векторы в разных фразах — в отличие от статических эмбеддингов word2vec.",
   "category": "language-models",
   "topics": [
    {
     "id": "embeddings",
     "title": "Эмбеддинги и word2vec"
    }
   ]
  },
  {
   "slug": "content-based-filtering",
   "term": "Контентная фильтрация",
   "en": "content-based filtering",
   "def": "Рекомендации по признакам самого объекта: жанр, текст описания, эмбеддинг обложки. Работает даже для объектов, которые ещё никто не видел, — спасение при холодном старте.",
   "category": "production",
   "topics": [
    {
     "id": "recsys",
     "title": "Рекомендательные системы"
    }
   ]
  },
  {
   "slug": "contrastive-learning",
   "term": "Контрастивное обучение",
   "en": "contrastive learning",
   "def": "Обучение эмбеддинг-моделей: векторы пары «запрос — релевантный документ» стягиваются, а с нерелевантными негативами расталкиваются. Качество модели определяется тем, что было негативом.",
   "category": "rag",
   "topics": [
    {
     "id": "embedding-models",
     "title": "Эмбеддинг-модели: как их обучают"
    },
    {
     "id": "multimodal-llm",
     "title": "Как LLM видят изображения"
    }
   ]
  },
  {
   "slug": "cosine-similarity",
   "term": "Косинусная близость",
   "en": "cosine similarity",
   "def": "Мера сходства векторов через угол между ними: похожие по смыслу тексты дают близкие направления. Стандартная метрика близости эмбеддингов в семантическом поиске.",
   "category": "rag",
   "topics": [
    {
     "id": "vector-search",
     "title": "Векторный поиск и ANN-индексы"
    },
    {
     "id": "embeddings",
     "title": "Эмбеддинги и word2vec"
    }
   ]
  },
  {
   "slug": "stopping-criterion",
   "term": "Критерий остановки",
   "en": "stopping criterion",
   "def": "Правило завершения агентного цикла: ответ модели без вызова инструмента, проверяемое условие успеха, лимит итераций или детекция зацикливания. Внешняя проверка надёжнее самооценки модели.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-loop",
     "title": "Агентный цикл и критерий остановки"
    }
   ]
  },
  {
   "slug": "cross-validation",
   "term": "Кросс-валидация",
   "en": "cross-validation",
   "def": "Оценка качества по k разбиениям: данные делят на k частей, k раз обучаются на всех, кроме одной, и валидируются на оставшейся, метрики усредняют. Надёжнее одного сплита на малых данных.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "overfitting-regularization",
     "title": "Переобучение и регуляризация"
    }
   ]
  },
  {
   "slug": "cross-entropy",
   "term": "Кросс-энтропия",
   "en": "cross-entropy",
   "def": "Функция потерь для классификации, сравнивающая предсказанные вероятности с истинными метками. Почти бесконечно наказывает уверенные ошибки; с сигмоидой даёт выпуклую задачу, в отличие от MSE.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "logistic-regression",
     "title": "Логистическая регрессия и классификация"
    },
    {
     "id": "digits-mnist",
     "title": "Распознавание цифр из пикселей"
    }
   ]
  },
  {
   "slug": "lag-features",
   "term": "Лаговые признаки",
   "en": "lag features",
   "def": "Значения ряда в прошлые моменты — вчера, неделю назад, — поданные модели как признаки. Превращают прогноз ряда в обычную табличную задачу, например для градиентного бустинга.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "time-series",
     "title": "Временные ряды и прогнозирование"
    }
   ]
  },
  {
   "slug": "latent-variable",
   "term": "Латентная переменная",
   "en": "latent variable",
   "def": "Скрытая, не наблюдаемая величина, которую модель домысливает. В GMM это номер гауссианы, породившей точку: мы его не знаем, а EM оценивает вероятности каждого варианта.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "em-gmm",
     "title": "EM-алгоритм и смеси гауссиан (GMM)"
    }
   ]
  },
  {
   "slug": "latent-space",
   "term": "Латентное пространство",
   "en": "latent space",
   "def": "Пространство сжатых векторов-кодов, в которое энкодер отображает данные. У VAE оно гладкое: соседние точки декодируются в похожие объекты, между кодами можно плавно интерполировать.",
   "category": "multimodal",
   "topics": [
    {
     "id": "vae-gan",
     "title": "VAE и GAN: генерация до диффузии"
    }
   ]
  },
  {
   "slug": "lazy-learning",
   "term": "Ленивое обучение",
   "en": "lazy learning",
   "def": "Подход без фазы обучения: модель просто запоминает выборку, а все вычисления откладывает до момента предсказания. Классический пример — kNN с его дорогим поиском соседей на каждый запрос.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "clustering-knn",
     "title": "kNN и кластеризация"
    }
   ]
  },
  {
   "slug": "linear-separability",
   "term": "Линейная разделимость",
   "en": "linear separability",
   "def": "Свойство данных, при котором классы можно идеально разделить прямой или гиперплоскостью. При полной разделимости веса логистической регрессии без регуляризации раздуваются бесконечно.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "logistic-regression",
     "title": "Логистическая регрессия и классификация"
    },
    {
     "id": "perceptron-mlp",
     "title": "От нейрона к многослойному перцептрону"
    }
   ]
  },
  {
   "slug": "linear-regression",
   "term": "Линейная регрессия",
   "en": "linear regression",
   "def": "Модель, предсказывающая число как взвешенную сумму признаков плюс сдвиг. Обучение — подбор весов, при которых средняя ошибка на обучающих данных минимальна. Фундамент, на котором строится весь ML.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "linear-regression",
     "title": "Линейная регрессия"
    }
   ]
  },
  {
   "slug": "linear-classifier",
   "term": "Линейный классификатор",
   "en": "linear classifier",
   "def": "Модель, считающая скор каждого класса как взвешенную сумму признаков плюс смещение. Границы классов — гиперплоскости; для картинок веса можно увидеть как выученные «шаблоны» классов.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "digits-mnist",
     "title": "Распознавание цифр из пикселей"
    }
   ]
  },
  {
   "slug": "logistic-regression",
   "term": "Логистическая регрессия",
   "en": "logistic regression",
   "def": "Линейная модель классификации: считает взвешенную сумму признаков и пропускает её через сигмоиду, получая вероятность класса. Обучается минимизацией кросс-энтропии.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "logistic-regression",
     "title": "Логистическая регрессия и классификация"
    }
   ]
  },
  {
   "slug": "logits",
   "term": "Логиты",
   "en": "logits",
   "def": "Сырые числа, которые модель выдаёт для каждого токена словаря до нормализации; softmax превращает их в вероятности. Именно с логитами работают температура и другие параметры сэмплирования.",
   "category": "llm",
   "topics": [
    {
     "id": "sampling",
     "title": "Сэмплирование: temperature, top-k, top-p"
    },
    {
     "id": "transformer",
     "title": "Архитектура трансформера"
    }
   ]
  },
  {
   "slug": "false-negatives",
   "term": "Ложные негативы",
   "en": "false negatives",
   "def": "Релевантные, но неразмеченные документы, случайно попавшие в негативы при майнинге: модель учат отталкивать правильные ответы. Кандидатов фильтруют, например отбрасывая высокие скоры кросс-энкодера.",
   "category": "rag",
   "topics": [
    {
     "id": "embedding-models",
     "title": "Эмбеддинг-модели: как их обучают"
    }
   ]
  },
  {
   "slug": "local-minimum",
   "term": "Локальный минимум",
   "en": "local minimum",
   "def": "Точка, где функция потерь меньше, чем во всех соседних, но не обязательно минимальна глобально. Чисто градиентным шагом из такой «долины» не выбраться; помогают шум SGD и момент.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "gradient-descent",
     "title": "Градиентный спуск"
    }
   ]
  },
  {
   "slug": "lambda-parameter",
   "term": "Лямбда-параметр MMR",
   "en": "lambda parameter",
   "def": "Коэффициент баланса в MMR: ближе к единице — чистая релевантность с риском дублей, ближе к нулю — чистое разнообразие с риском нерелевантности. На практике держат около 0.5–0.7.",
   "category": "rag",
   "topics": [
    {
     "id": "mmr-diversity",
     "title": "MMR и разнообразие выдачи"
    }
   ]
  },
  {
   "slug": "marginal-relevance",
   "term": "Маргинальная релевантность",
   "en": "marginal relevance",
   "def": "Прирост полезности документа с учётом уже отобранных: фрагмент, повторяющий выбранное, почти ничего не добавляет, даже если сам по себе релевантен запросу.",
   "category": "rag",
   "topics": [
    {
     "id": "mmr-diversity",
     "title": "MMR и разнообразие выдачи"
    }
   ]
  },
  {
   "slug": "markov-assumption",
   "term": "Марковское предположение",
   "en": "markov assumption",
   "def": "Допущение, что будущее зависит только от короткого недавнего прошлого, а не от всей истории. Для языка заведомо неверно, но делает языковую модель счётной.",
   "category": "language-models",
   "topics": [
    {
     "id": "bigram-ngram",
     "title": "Биграммы и n-граммы"
    }
   ]
  },
  {
   "slug": "matryoshka-representation-learning",
   "term": "Матрёшка-эмбеддинги",
   "en": "matryoshka representation learning",
   "def": "Обучение, при котором первые k координат вектора — самостоятельный рабочий эмбеддинг. Вектор на 1024 измерения можно обрезать до 256 под бюджет памяти, почти не теряя качества и ничего не переобучая.",
   "category": "rag",
   "topics": [
    {
     "id": "embedding-models",
     "title": "Эмбеддинг-модели: как их обучают"
    }
   ]
  },
  {
   "slug": "confusion-matrix",
   "term": "Матрица ошибок",
   "en": "confusion matrix",
   "def": "Таблица четырёх исходов бинарной классификации: истинно и ложно положительные, истинно и ложно отрицательные. Из этих четырёх чисел собираются precision, recall и другие метрики.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "metrics",
     "title": "Метрики качества"
    }
   ]
  },
  {
   "slug": "matrix-factorization",
   "term": "Матричное разложение",
   "en": "matrix factorization",
   "def": "Приближение разреженной матрицы «пользователи × объекты» произведением двух узких матриц: у каждого пользователя и объекта появляется латентный вектор, предсказание — их скалярное произведение.",
   "category": "production",
   "topics": [
    {
     "id": "recsys",
     "title": "Рекомендательные системы"
    }
   ]
  },
  {
   "slug": "machine-learning",
   "term": "Машинное обучение",
   "en": "machine learning",
   "def": "Подход, при котором программа не следует написанным вручную правилам, а выводит их из данных: подбирает параметры модели так, чтобы качество на задаче росло с накоплением опыта.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "intro-ml",
     "title": "Что такое машинное обучение"
    }
   ]
  },
  {
   "slug": "mel-spectrogram",
   "term": "Мел-спектрограмма",
   "en": "mel spectrogram",
   "def": "«Картинка» время×частота: волну режут на окна, в каждом считают спектр, а частотную ось сжимают по мел-шкале под чувствительность человеческого уха. Стандартный вход речевых моделей.",
   "category": "multimodal",
   "topics": [
    {
     "id": "audio-models",
     "title": "Звук: распознавание и синтез речи"
    }
   ]
  },
  {
   "slug": "dead-neurons",
   "term": "Мёртвые нейроны",
   "en": "dead neurons",
   "def": "ReLU-нейроны, застрявшие в отрицательной зоне на всех входах: их выход и градиент — тождественный ноль, и обучение их уже не вернёт. Лечится Leaky ReLU, GELU и аккуратным learning rate.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "activations",
     "title": "Функции активации"
    }
   ]
  },
  {
   "slug": "flickering",
   "term": "Мерцание",
   "en": "flickering",
   "def": "Артефакт генерации видео независимыми кадрами: цвет, размер и позиция объектов заново выбираются в каждом кадре, при проигрывании картинка мигает, а объекты «телепортируются».",
   "category": "multimodal",
   "topics": [
    {
     "id": "video-models",
     "title": "Видео-модели: генерация с временной согласованностью"
    }
   ]
  },
  {
   "slug": "payload-metadata",
   "term": "Метаданные",
   "en": "payload, metadata",
   "def": "Структурированные поля записи векторной базы: автор, дата, отдел, язык, права доступа. По ним фильтруют кандидатов при семантическом поиске.",
   "category": "rag",
   "topics": [
    {
     "id": "vector-databases",
     "title": "Векторные базы данных и их типы"
    }
   ]
  },
  {
   "slug": "elbow-method",
   "term": "Метод локтя",
   "en": "elbow method",
   "def": "Способ выбрать число кластеров: рисуют зависимость инерции от k и ищут излом, после которого добавление кластера почти ничего не улучшает.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "clustering-knn",
     "title": "kNN и кластеризация"
    }
   ]
  },
  {
   "slug": "k-means",
   "term": "Метод k-средних",
   "en": "k-means",
   "def": "Алгоритм кластеризации: чередует приписывание точек к ближайшим центроидам и пересчёт центроидов как средних. Сходится всегда, но лишь к локальному минимуму; число кластеров задаётся заранее.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "clustering-knn",
     "title": "kNN и кластеризация"
    }
   ]
  },
  {
   "slug": "attention",
   "term": "Механизм внимания",
   "en": "attention",
   "def": "Механизм, позволяющий каждому токену смотреть на все остальные с разными весами: дифференцируемый «мягкий словарь», где ответ — взвешенная сумма значений по похожести запроса на ключи.",
   "category": "language-models",
   "topics": [
    {
     "id": "attention",
     "title": "Механизм внимания (attention)"
    }
   ]
  },
  {
   "slug": "micro-batch",
   "term": "Микробатч",
   "en": "micro-batch",
   "def": "Малая часть батча, на которые его режут при pipeline parallelism, чтобы стадии конвейера работали внахлёст (схемы GPipe, 1F1B): чем больше микробатчей, тем меньше доля простоя.",
   "category": "infra",
   "topics": [
    {
     "id": "distributed-training",
     "title": "Распределённое обучение: DP, TP, PP и ZeRO"
    }
   ]
  },
  {
   "slug": "mini-batch",
   "term": "Мини-батч",
   "en": "mini-batch",
   "def": "Случайная пачка примеров (обычно 32–1024), по которой оценивается градиент на одном шаге. Компромисс между шумной оценкой по одному примеру и дорогим подсчётом по всему датасету.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "training-practice",
     "title": "Практика обучения: батчи, dropout, batchnorm"
    }
   ]
  },
  {
   "slug": "multi-head-attention",
   "term": "Многоголовое внимание",
   "en": "multi-head attention",
   "def": "Несколько параллельных «голов» внимания со своими проекциями меньшей размерности; результаты конкатенируются. Головы специализируются: синтаксис, кореференции, соседние токены.",
   "category": "language-models",
   "topics": [
    {
     "id": "attention",
     "title": "Механизм внимания (attention)"
    }
   ]
  },
  {
   "slug": "multi-armed-bandits",
   "term": "Многорукие бандиты",
   "en": "multi-armed bandits",
   "def": "Алгоритмы баланса разведки и эксплуатации: часть трафика тратится на исследование новых вариантов, остальное — на проверенно лучшие. Формализуют разведку в рекомендациях и экспериментах.",
   "category": "production",
   "topics": [
    {
     "id": "recsys",
     "title": "Рекомендательные системы"
    }
   ]
  },
  {
   "slug": "multilayer-perceptron",
   "term": "Многослойный перцептрон",
   "en": "multilayer perceptron",
   "def": "Нейросеть из чередующихся линейных слоёв и нелинейных активаций. Простейшая полносвязная архитектура, способная приближать очень сложные функции.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "perceptron-mlp",
     "title": "От нейрона к многослойному перцептрону"
    }
   ]
  },
  {
   "slug": "multiple-comparisons",
   "term": "Множественные сравнения",
   "en": "multiple comparisons",
   "def": "Проверка многих гипотез сразу, из-за которой часть «значимых» результатов оказывается случайной: из 20 тестов на уровне 0,05 один в среднем ложный. Лечится поправкой Бонферрони или контролем FDR.",
   "category": "statistics",
   "topics": [
    {
     "id": "p-value",
     "title": "P-value и проверка гипотез"
    }
   ]
  },
  {
   "slug": "statistical-power",
   "term": "Мощность",
   "en": "statistical power",
   "def": "Вероятность эксперимента обнаружить эффект, когда он действительно есть; обычно целятся в 80%. При маленькой выборке и слабом эффекте реальное улучшение утонет в шуме.",
   "category": "statistics",
   "topics": [
    {
     "id": "ab-testing",
     "title": "A/B-тесты и продуктовые метрики"
    },
    {
     "id": "p-value",
     "title": "P-value и проверка гипотез"
    }
   ]
  },
  {
   "slug": "multicollinearity",
   "term": "Мультиколлинеарность",
   "en": "multicollinearity",
   "def": "Сильная корреляция между признаками, из-за которой отдельные веса линейной модели становятся нестабильными и теряют интерпретируемость. Лечится регуляризацией или отбором признаков.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "linear-regression",
     "title": "Линейная регрессия"
    }
   ]
  },
  {
   "slug": "soft-labels",
   "term": "Мягкие метки",
   "en": "soft labels",
   "def": "Полное распределение вероятностей учителя вместо one-hot ответа: «кошка 0.8, рысь 0.13, волк 0.01». Несут информацию об отношениях между классами — какие варианты почти верны, а какие абсурдны.",
   "category": "llm",
   "topics": [
    {
     "id": "distillation",
     "title": "Дистилляция и сжатие моделей"
    }
   ]
  },
  {
   "slug": "soft-margin",
   "term": "Мягкий зазор",
   "en": "soft margin",
   "def": "Версия SVM для зашумлённых данных: отдельным точкам разрешают нарушать зазор за штраф. Компромисс между шириной улицы и числом нарушений регулирует гиперпараметр C.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "svm-kernels",
     "title": "SVM и kernel trick"
    }
   ]
  },
  {
   "slug": "soft-assignment-responsibility",
   "term": "Мягкое отнесение",
   "en": "soft assignment, responsibility",
   "def": "Вероятность принадлежности точки каждому кластеру: вместо жёсткого «этот» точка получает набор долей, сумма которых равна 1. Точки на границе честно делятся между кластерами, а не приписываются одному силой.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "em-gmm",
     "title": "EM-алгоритм и смеси гауссиан (GMM)"
    }
   ]
  },
  {
   "slug": "reward-and-return",
   "term": "Награда и отдача",
   "en": "reward and return",
   "def": "Награда — скалярный отклик среды на шаг. Отдача — сумма будущих наград с дисконтом γ: G=r+γ·r′+γ²·r″+…. Агент максимизирует именно отдачу, а не сиюминутную награду.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "reinforcement-learning",
     "title": "Обучение с подкреплением: Q-learning и PPO"
    }
   ]
  },
  {
   "slug": "naive-bayes",
   "term": "Наивный Байес",
   "en": "naive Bayes",
   "def": "Классификатор на теореме Байеса с «наивным» допущением, что признаки условно независимы при данном классе. Обучается подсчётом частот за один проход; классика текстов и быстрый бейзлайн.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "naive-bayes",
     "title": "Теорема Байеса и наивный Байес"
    }
   ]
  },
  {
   "slug": "naive-forecast",
   "term": "Наивный прогноз",
   "en": "naive forecast",
   "def": "Бейзлайн «завтра = сегодня» или «завтра = неделю назад» (сезонная версия). Обязательная планка качества: модель, не бьющая сезонный наивный прогноз, не даёт ценности.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "time-series",
     "title": "Временные ряды и прогнозирование"
    }
   ]
  },
  {
   "slug": "least-privilege",
   "term": "Наименьшие привилегии",
   "en": "least privilege",
   "def": "Принцип: у инструмента агента ровно те права, что нужны задаче — читать одну папку, а не всю почту; создать черновик, а не отправить письмо. Лишние полномочия атакующий найдёт как применить.",
   "category": "production",
   "topics": [
    {
     "id": "safety-guardrails",
     "title": "Безопасность: guardrails и prompt injection"
    }
   ]
  },
  {
   "slug": "saturation",
   "term": "Насыщение",
   "en": "saturation",
   "def": "Зона активации, где её производная почти нулевая, — например, большие по модулю входы сигмоиды. Градиент через насыщенный нейрон не проходит, и слой перестаёт учиться.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "activations",
     "title": "Функции активации"
    }
   ]
  },
  {
   "slug": "benchmark-saturation",
   "term": "Насыщение бенчмарка",
   "en": "benchmark saturation",
   "def": "Состояние, когда топовые модели выбивают почти максимум, и бенчмарк перестаёт различать их между собой: разница тонет в шуме. Поэтому сообщество постоянно строит более трудные наборы задач.",
   "category": "llm",
   "topics": [
    {
     "id": "llm-evals",
     "title": "Оценка LLM: бенчмарки и LLM-as-judge"
    }
   ]
  },
  {
   "slug": "underfitting",
   "term": "Недообучение",
   "en": "underfitting",
   "def": "Модель слишком проста, чтобы уловить закономерность: ошибка высока и на обучающих, и на новых данных. Лечится более выразительной моделью или лучшими признаками.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "overfitting-regularization",
     "title": "Переобучение и регуляризация"
    }
   ]
  },
  {
   "slug": "neural-codec",
   "term": "Нейрокодек",
   "en": "neural codec",
   "def": "Модель сжатия звука (идея EnCodec): энкодер, квантизация RVQ (несколько словарей, каждый следующий кодирует остаток предыдущего) и декодер, восстанавливающий волну из дискретных токенов.",
   "category": "multimodal",
   "topics": [
    {
     "id": "audio-models",
     "title": "Звук: распознавание и синтез речи"
    }
   ]
  },
  {
   "slug": "irreducible-error",
   "term": "Неустранимый шум",
   "en": "irreducible error",
   "def": "Дисперсия σ² случайности в самих данных — нижний предел ошибки, который не победить ни сложностью модели, ни объёмом данных. Ошибка на новых данных не опускается ниже него.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "bias-variance",
     "title": "Bias–variance: разложение ошибки"
    }
   ]
  },
  {
   "slug": "implicit-feedback",
   "term": "Неявный фидбек",
   "en": "implicit feedback",
   "def": "Сигналы вместо явных оценок: клики, просмотры, дочитывания, покупки. Отсутствие клика не значит «не нравится» — объект могли просто не показать, поэтому пропуски взвешивают осторожно.",
   "category": "production",
   "topics": [
    {
     "id": "recsys",
     "title": "Рекомендательные системы"
    }
   ]
  },
  {
   "slug": "layer-normalization",
   "term": "Нормализация слоя",
   "en": "layer normalization",
   "def": "Нормировка активаций по признакам одного примера, без участия батча. Дружит с последовательностями переменной длины и стала стандартом трансформеров.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "training-practice",
     "title": "Практика обучения: батчи, dropout, batchnorm"
    }
   ]
  },
  {
   "slug": "normal-distribution",
   "term": "Нормальное распределение",
   "en": "normal distribution",
   "def": "Симметричное колоколообразное распределение, заданное средним μ и стандартным отклонением σ. По ЦПТ к нему стремятся выборочные средние, поэтому на нём построены интервалы и тесты.",
   "category": "statistics",
   "topics": [
    {
     "id": "sampling-clt",
     "title": "Выборка, ЦПТ и стандартная ошибка"
    }
   ]
  },
  {
   "slug": "normal-equation",
   "term": "Нормальное уравнение",
   "en": "normal equation",
   "def": "Аналитическое решение линейной регрессии: оптимальные веса считаются одной матричной формулой без итераций. Непрактично при большом числе признаков из-за дорогого обращения матрицы.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "linear-regression",
     "title": "Линейная регрессия"
    }
   ]
  },
  {
   "slug": "null-hypothesis-h0",
   "term": "Нулевая гипотеза",
   "en": "null hypothesis, H0",
   "def": "«Скучное» объяснение данных, которое проверяет тест: эффекта нет, среднее равно заявленному, модели не различаются. P-value измеряет, насколько данные с ней несовместимы.",
   "category": "statistics",
   "topics": [
    {
     "id": "p-value",
     "title": "P-value и проверка гипотез"
    }
   ]
  },
  {
   "slug": "generalization",
   "term": "Обобщение",
   "en": "generalization",
   "def": "Способность модели правильно работать на данных, которых она не видела при обучении, — главная цель ML. Разрыв между качеством на обучающей и новых выборках — основной диагностический сигнал.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "intro-ml",
     "title": "Что такое машинное обучение"
    }
   ]
  },
  {
   "slug": "backpropagation",
   "term": "Обратное распространение ошибки",
   "en": "backpropagation",
   "def": "Алгоритм вычисления градиента лосса по всем весам сети за один обратный проход через повторное применение правила цепочки. Считает градиенты, но не обновляет веса — это работа оптимизатора.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "backprop",
     "title": "Обратное распространение ошибки"
    }
   ]
  },
  {
   "slug": "backward-pass",
   "term": "Обратный проход",
   "en": "backward pass",
   "def": "Проход от лосса к входам, на котором градиент каждого узла получается умножением входящего градиента на локальную производную. Стоит примерно как два прямых прохода.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "backprop",
     "title": "Обратное распространение ошибки"
    }
   ]
  },
  {
   "slug": "gradient-clipping",
   "term": "Обрезка градиентов",
   "en": "gradient clipping",
   "def": "Масштабирование градиента вниз, если его норма превышает порог: один аномальный батч не сможет разнести веса. Стандартная практика для рекуррентных сетей и LLM.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "training-practice",
     "title": "Практика обучения: батчи, dropout, batchnorm"
    }
   ]
  },
  {
   "slug": "unsupervised-learning",
   "term": "Обучение без учителя",
   "en": "unsupervised learning",
   "def": "Обучение без меток: сигналом служит сама структура данных. Модель группирует похожие объекты, сжимает признаки, находит аномалии — описывает, как устроены данные, а не проверяет ответы.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "learning-paradigms",
     "title": "Типы обучения: с учителем, без и с подкреплением"
    }
   ]
  },
  {
   "slug": "reinforcement-learning",
   "term": "Обучение с подкреплением",
   "en": "reinforcement learning",
   "def": "Обучение через действия: агент не получает правильных ответов, а действует в среде и получает награду, иногда отложенную. Методом проб и ошибок он учится действовать так, чтобы награды было больше.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "learning-paradigms",
     "title": "Типы обучения: с учителем, без и с подкреплением"
    },
    {
     "id": "reinforcement-learning",
     "title": "Обучение с подкреплением: Q-learning и PPO"
    }
   ]
  },
  {
   "slug": "supervised-learning",
   "term": "Обучение с учителем",
   "en": "supervised learning",
   "def": "Обучение на парах «вход — правильный ответ»: модель минимизирует ошибку между своим предсказанием и меткой. Даёт точность, но требует дорогой ручной разметки данных.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "learning-paradigms",
     "title": "Типы обучения: с учителем, без и с подкреплением"
    }
   ]
  },
  {
   "slug": "support-vectors",
   "term": "Опорные векторы",
   "en": "support vectors",
   "def": "Точки обучающей выборки, лежащие на краю зазора: только они определяют положение границы SVM. Остальные объекты можно удалить — граница не изменится.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "svm-kernels",
     "title": "SVM и kernel trick"
    }
   ]
  },
  {
   "slug": "orchestrator",
   "term": "Оркестратор",
   "en": "orchestrator",
   "def": "Главный агент мультиагентной системы: декомпозирует задачу, раздаёт подзадачи субагентам и собирает их короткие результаты, не засоряя свой контекст деталями их работы.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-memory",
     "title": "Память, планирование и мультиагентные системы"
    }
   ]
  },
  {
   "slug": "residual-connection",
   "term": "Остаточная связь",
   "en": "residual connection",
   "def": "Прибавление выхода подслоя к его входу вместо замены: градиент течёт по этому «шоссе» сквозь десятки блоков не затухая. Без остаточных связей глубокие сети практически не обучаются.",
   "category": "language-models",
   "topics": [
    {
     "id": "transformer",
     "title": "Архитектура трансформера"
    }
   ]
  },
  {
   "slug": "type-i-error",
   "term": "Ошибка I рода",
   "en": "type I error",
   "def": "Отвержение верной нулевой гипотезы — ложная тревога: «увидели эффект, которого нет». Её вероятность задаётся уровнем значимости α.",
   "category": "statistics",
   "topics": [
    {
     "id": "p-value",
     "title": "P-value и проверка гипотез"
    }
   ]
  },
  {
   "slug": "type-ii-error",
   "term": "Ошибка II рода",
   "en": "type II error",
   "def": "Пропуск реального эффекта: нулевая гипотеза ложна, но данных не хватило её отвергнуть. Её вероятность β; мощность теста равна 1 − β и растёт с размером выборки.",
   "category": "statistics",
   "topics": [
    {
     "id": "p-value",
     "title": "P-value и проверка гипотез"
    }
   ]
  },
  {
   "slug": "cascaded-voice-pipeline",
   "term": "Пайплайн ASR→LLM→TTS",
   "en": "cascaded voice pipeline",
   "def": "Голосовой ассистент из трёх отдельных моделей: распознавание речи, языковая модель, синтез речи. Задержки блоков складываются в секунды, а на стыках теряются интонация и эмоции.",
   "category": "multimodal",
   "topics": [
    {
     "id": "omni-models",
     "title": "Omni-модели: все модальности в одной"
    }
   ]
  },
  {
   "slug": "parallel-tool-calls",
   "term": "Параллельные вызовы инструментов",
   "en": "parallel tool calls",
   "def": "Способность модели вернуть в одном ответе сразу несколько вызовов инструментов, чтобы код исполнил их одновременно — например, запросить погоду в двух городах за один шаг.",
   "category": "agents",
   "topics": [
    {
     "id": "tool-calling",
     "title": "Tool calling: как модель вызывает инструменты"
    }
   ]
  },
  {
   "slug": "patch",
   "term": "Патч",
   "en": "patch",
   "def": "Квадратный фрагмент изображения (обычно 14×14 или 16×16 пикселей), который после линейной проекции становится одним визуальным токеном. Чем меньше патч, тем больше токенов и дороже обработка.",
   "category": "multimodal",
   "topics": [
    {
     "id": "multimodal-llm",
     "title": "Как LLM видят изображения"
    }
   ]
  },
  {
   "slug": "cross-attention",
   "term": "Перекрёстное внимание",
   "en": "cross-attention",
   "def": "Внимание, где запросы приходят из декодера, а ключи и значения — из энкодера: так декодер «подглядывает» во входную последовательность в encoder-decoder моделях вроде T5.",
   "category": "language-models",
   "topics": [
    {
     "id": "transformer",
     "title": "Архитектура трансформера"
    }
   ]
  },
  {
   "slug": "overlap",
   "term": "Перекрытие чанков",
   "en": "overlap",
   "def": "Соседние чанки перекрываются на несколько токенов, чтобы мысль на границе целиком попала хотя бы в один из них. Цена — дубли в индексе и почти одинаковые кандидаты в выдаче.",
   "category": "rag",
   "topics": [
    {
     "id": "chunking",
     "title": "Чанкинг и подготовка данных"
    }
   ]
  },
  {
   "slug": "overfitting",
   "term": "Переобучение",
   "en": "overfitting",
   "def": "Модель заучивает обучающие данные вместе с шумом вместо закономерности: почти нулевая ошибка на трейне и большая на новых данных. Признак — заметный разрыв между train- и validation-ошибкой.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "overfitting-regularization",
     "title": "Переобучение и регуляризация"
    }
   ]
  },
  {
   "slug": "perplexity",
   "term": "Перплексия",
   "en": "perplexity",
   "def": "Метрика качества языковой модели: экспонента средней кросс-энтропии, интуитивно — число равновероятных вариантов, между которыми модель колеблется на каждом шаге. Меньше — лучше.",
   "category": "language-models",
   "topics": [
    {
     "id": "bigram-ngram",
     "title": "Биграммы и n-граммы"
    }
   ]
  },
  {
   "slug": "perceptron",
   "term": "Перцептрон",
   "en": "perceptron",
   "def": "Один нейрон с пороговой активацией — простейший линейный классификатор. Проводит гиперплоскость в пространстве признаков и потому решает только линейно разделимые задачи.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "perceptron-mlp",
     "title": "От нейрона к многослойному перцептрону"
    }
   ]
  },
  {
   "slug": "sandbox",
   "term": "Песочница",
   "en": "sandbox",
   "def": "Изолированное воспроизводимое окружение с фиксированным начальным состоянием, в котором прогоняют агента. Без неё оценка «флакает»: внешний мир меняется, и метрики прыгают без изменений в агенте.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-evals",
     "title": "Оценка агентов: pass@k и траектории"
    }
   ]
  },
  {
   "slug": "feedback-loop",
   "term": "Петля обратной связи",
   "en": "feedback loop",
   "def": "Модель учится на кликах по собственным рекомендациям: что показали, то и кликают, и лог всё меньше отражает истинные вкусы. Без разведки и поправок на позицию система застревает в самоподтверждении.",
   "category": "production",
   "topics": [
    {
     "id": "recsys",
     "title": "Рекомендательные системы"
    }
   ]
  },
  {
   "slug": "margin-of-error",
   "term": "Погрешность",
   "en": "margin of error",
   "def": "Полуширина доверительного интервала: критическое значение, умноженное на стандартную ошибку. Уменьшается как корень из объёма данных — вдвое уже стоит вчетверо больше наблюдений.",
   "category": "statistics",
   "topics": [
    {
     "id": "confidence-intervals",
     "title": "Доверительные интервалы"
    }
   ]
  },
  {
   "slug": "peeking",
   "term": "Подглядывание",
   "en": "peeking",
   "def": "Ежедневная проверка p-value с остановкой теста при первом значимом результате. Раздувает долю ложных срабатываний с 5% до десятков процентов; длительность фиксируют до запуска.",
   "category": "production",
   "topics": [
    {
     "id": "ab-testing",
     "title": "A/B-тесты и продуктовые метрики"
    }
   ]
  },
  {
   "slug": "subword-tokenization",
   "term": "Подсловная токенизация",
   "en": "subword tokenization",
   "def": "Золотая середина между символами и словами: частые слова остаются целыми токенами, редкие собираются из кусочков. Убирает проблему OOV при умеренной длине последовательностей.",
   "category": "language-models",
   "topics": [
    {
     "id": "tokenization",
     "title": "Токенизация и BPE"
    }
   ]
  },
  {
   "slug": "late-fusion",
   "term": "Поздняя фузия",
   "en": "late fusion",
   "def": "Объединение модальностей в конце: отдельные модели обрабатывают каждая свою модальность, а результаты склеиваются. Крайний случай — пайплайн из распознавания речи, LLM и синтеза речи.",
   "category": "multimodal",
   "topics": [
    {
     "id": "omni-models",
     "title": "Omni-модели: все модальности в одной"
    }
   ]
  },
  {
   "slug": "positional-encoding",
   "term": "Позиционное кодирование",
   "en": "positional encoding",
   "def": "Добавление информации о позиции токена к его вектору, поскольку внимание само по себе не знает порядка слов. Варианты: синусоиды, обучаемые векторы, RoPE в современных моделях.",
   "category": "language-models",
   "topics": [
    {
     "id": "transformer",
     "title": "Архитектура трансформера"
    }
   ]
  },
  {
   "slug": "policy",
   "term": "Политика",
   "en": "policy",
   "def": "Правило поведения агента — отображение состояния в действие (или в распределение действий). Именно политику RL и оптимизирует; при выученной Q-функции она сводится к выбору действия с максимальным Q.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "reinforcement-learning",
     "title": "Обучение с подкреплением: Q-learning и PPO"
    }
   ]
  },
  {
   "slug": "recall",
   "term": "Полнота",
   "en": "recall",
   "def": "Доля найденных моделью положительных объектов среди всех настоящих положительных: «скольких больных мы поймали». Важна, когда дороже всего пропуск.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "metrics",
     "title": "Метрики качества"
    }
   ]
  },
  {
   "slug": "full-fine-tuning",
   "term": "Полный файнтюн",
   "en": "full fine-tuning",
   "def": "Дообучение, при котором обновляются все веса модели. Требует около 16 байт памяти на параметр (веса, градиенты, состояния Adam), поэтому даже для 7B-модели нужен кластер или PEFT.",
   "category": "llm",
   "topics": [
    {
     "id": "finetuning",
     "title": "Fine-tuning: SFT, LoRA, PEFT"
    }
   ]
  },
  {
   "slug": "decision-threshold",
   "term": "Порог классификации",
   "en": "decision threshold",
   "def": "Значение скора, выше которого модель относит объект к положительному классу. Понижение порога растит полноту, но роняет точность; положение порога диктует цена ошибок в бизнесе.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "metrics",
     "title": "Метрики качества"
    }
   ]
  },
  {
   "slug": "post-filtering",
   "term": "Пост-фильтрация",
   "en": "post-filtering",
   "def": "Стратегия фильтров: сначала найти топ-k по близости, потом отсеять по метаданным. Строгий фильтр может выбить почти все результаты, оставив два из десяти.",
   "category": "rag",
   "topics": [
    {
     "id": "vector-databases",
     "title": "Векторные базы данных и их типы"
    }
   ]
  },
  {
   "slug": "likelihood",
   "term": "Правдоподобие",
   "en": "likelihood",
   "def": "Вероятность наблюдаемых данных при текущих параметрах модели. EM максимизирует лог-правдоподобие и гарантированно не уменьшает его на каждом шаге, но сходится лишь к локальному оптимуму.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "em-gmm",
     "title": "EM-алгоритм и смеси гауссиан (GMM)"
    },
    {
     "id": "naive-bayes",
     "title": "Теорема Байеса и наивный Байес"
    }
   ]
  },
  {
   "slug": "68-95-99-7-rule",
   "term": "Правило 68–95–99.7",
   "en": "68-95-99.7 rule",
   "def": "Для нормального распределения около 68 % значений лежат в пределах ±1σ от среднего, 95 % — в пределах ±2σ (точнее 1,96σ), 99,7 % — в пределах ±3σ.",
   "category": "statistics",
   "topics": [
    {
     "id": "sampling-clt",
     "title": "Выборка, ЦПТ и стандартная ошибка"
    }
   ]
  },
  {
   "slug": "chain-rule",
   "term": "Правило цепочки",
   "en": "chain rule",
   "def": "Правило дифференцирования сложной функции: чувствительности перемножаются по цепочке зависимостей. Математическая основа обратного распространения ошибки.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "backprop",
     "title": "Обратное распространение ошибки"
    }
   ]
  },
  {
   "slug": "pre-filtering",
   "term": "Пре-фильтрация",
   "en": "pre-filtering",
   "def": "Стратегия фильтров в векторном поиске: сначала сузить кандидатов по метаданным, потом искать по близости. Точнее пост-фильтрации, но дороже для индекса.",
   "category": "rag",
   "topics": [
    {
     "id": "vector-databases",
     "title": "Векторные базы данных и их типы"
    }
   ]
  },
  {
   "slug": "predskazanie-sleduyuschego-tokena",
   "term": "Предсказание следующего токена",
   "en": "next token prediction",
   "def": "Постановка задачи языкового моделирования: по контексту выдать распределение вероятностей следующего токена. Одна и та же задача у биграммы Шеннона и у GPT.",
   "category": "language-models",
   "topics": [
    {
     "id": "bigram-ngram",
     "title": "Биграммы и n-граммы"
    }
   ]
  },
  {
   "slug": "pretraining",
   "term": "Претрейнинг",
   "en": "pretraining",
   "def": "Первый и самый дорогой этап обучения LLM: модель на триллионах токенов текста учится предсказывать следующий токен, попутно усваивая грамматику, факты, логику и код.",
   "category": "llm",
   "topics": [
    {
     "id": "pretraining",
     "title": "Претрейнинг и scaling laws"
    }
   ]
  },
  {
   "slug": "query-document-features",
   "term": "Признаки запрос-документ",
   "en": "query-document features",
   "def": "Входы LTR-модели: лексические совпадения (BM25, TF-IDF), семантическая близость эмбеддингов, свежесть, авторитетность, историческая кликабельность. Модель работает с ними, а не с сырым текстом.",
   "category": "production",
   "topics": [
    {
     "id": "learning-to-rank",
     "title": "Ранжирование: learning-to-rank"
    }
   ]
  },
  {
   "slug": "prior",
   "term": "Приор",
   "en": "prior",
   "def": "Априорная вероятность гипотезы — вера в неё до появления улик, например базовая частота болезни в популяции. Один из двух множителей в теореме Байеса.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "naive-bayes",
     "title": "Теорема Байеса и наивный Байес"
    }
   ]
  },
  {
   "slug": "warmup",
   "term": "Прогрев",
   "en": "warmup",
   "def": "Начальный этап обучения, когда learning rate линейно растёт от нуля. Защищает хрупкую свежеинициализированную модель от разноса, пока статистики моментов оптимизатора не накопились.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "optimizers",
     "title": "Оптимизаторы: SGD, Momentum, Adam"
    }
   ]
  },
  {
   "slug": "projector-adapter",
   "term": "Проектор",
   "en": "projector, adapter",
   "def": "Небольшой модуль (MLP или cross-attention) между vision-энкодером и LLM: переводит визуальные эмбеддинги в пространство эмбеддингов языковой модели, выравнивая и размерность, и «язык» векторов.",
   "category": "multimodal",
   "topics": [
    {
     "id": "multimodal-llm",
     "title": "Как LLM видят изображения"
    }
   ]
  },
  {
   "slug": "curse-of-dimensionality",
   "term": "Проклятие размерности",
   "en": "curse of dimensionality",
   "def": "Эффект высоких размерностей: расстояния между всеми парами точек становятся почти одинаковыми, и «ближайший сосед» теряет смысл. Ломает kNN и k-means; лечится снижением размерности.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "dimensionality-pca",
     "title": "Снижение размерности и PCA"
    }
   ]
  },
  {
   "slug": "proxy-metrics",
   "term": "Прокси-сигналы",
   "en": "proxy metrics",
   "def": "Наблюдаемые сразу показатели вместо запаздывающих лейблов: дрифт входных фичей, распределение предсказаний, доля пропусков и отказов. Качество модели в проде напрямую не видно — мониторят входы и выходы.",
   "category": "production",
   "topics": [
    {
     "id": "monitoring-drift",
     "title": "Мониторинг и дрифт данных"
    }
   ]
  },
  {
   "slug": "prompt-engineering",
   "term": "Промпт-инжиниринг",
   "en": "prompt engineering",
   "def": "Формулировка инструкций так, чтобы желаемое продолжение стало статистически самым вероятным: роль и явные критерии вместо «сделай хорошо», примеры, декомпозиция, явный формат выхода.",
   "category": "llm",
   "topics": [
    {
     "id": "prompt-patterns",
     "title": "Промпт-паттерны и structured outputs"
    }
   ]
  },
  {
   "slug": "memory-bandwidth",
   "term": "Пропускная способность памяти",
   "en": "memory bandwidth",
   "def": "Скорость, с которой память отдаёт данные чипу. У VRAM — порядка терабайта в секунду, у обычной RAM — в 10–30 раз меньше; для инференса LLM это важнее объёма и терафлопсов.",
   "category": "infra",
   "topics": [
    {
     "id": "gpu-vram",
     "title": "Видеокарты и VRAM: железо для нейросетей"
    }
   ]
  },
  {
   "slug": "spatio-temporal-patches",
   "term": "Пространственно-временные патчи",
   "en": "spatio-temporal patches",
   "def": "Токены видео-моделей Sora-класса: сжатый видео-VAE латент режется на «кубики» по ширине, высоте и времени, и каждый кубик становится токеном для диффузионного трансформера.",
   "category": "multimodal",
   "topics": [
    {
     "id": "video-models",
     "title": "Видео-модели: генерация с временной согласованностью"
    }
   ]
  },
  {
   "slug": "pruning",
   "term": "Прунинг",
   "en": "pruning",
   "def": "Сжатие модели удалением её частей: неструктурный обнуляет отдельные «неважные» веса, структурный выбрасывает целые головы внимания, каналы или слои — модель реально уменьшается и ускоряется.",
   "category": "llm",
   "topics": [
    {
     "id": "distillation",
     "title": "Дистилляция и сжатие моделей"
    }
   ]
  },
  {
   "slug": "forward-pass",
   "term": "Прямой проход",
   "en": "forward pass",
   "def": "Вычисление выхода сети от входа к лоссу с сохранением промежуточных активаций — они понадобятся на обратном проходе для подсчёта локальных производных.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "backprop",
     "title": "Обратное распространение ошибки"
    }
   ]
  },
  {
   "slug": "pooling",
   "term": "Пулинг",
   "en": "pooling",
   "def": "Сборка контекстных векторов всех токенов в один вектор текста: усреднение (mean pooling) или вектор служебного CLS-токена. Так трансформер-энкодер выдаёт эмбеддинг целого запроса или документа.",
   "category": "rag",
   "topics": [
    {
     "id": "embedding-models",
     "title": "Эмбеддинг-модели: как их обучают"
    },
    {
     "id": "cnn",
     "title": "Свёрточные сети (CNN)"
    }
   ]
  },
  {
   "slug": "working-memory",
   "term": "Рабочая память агента",
   "en": "working memory",
   "def": "Контекстное окно агента, куда попадает всё: системный промпт, план, вызовы инструментов и их результаты. Она конечна, а качество использования деградирует ещё до переполнения.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-memory",
     "title": "Память, планирование и мультиагентные системы"
    }
   ]
  },
  {
   "slug": "variance",
   "term": "Разброс",
   "en": "variance",
   "def": "Чувствительность модели к конкретной обучающей выборке: насколько её предсказания меняются от выборки к выборке. Велик у слишком гибких моделей, которые цепляются за шум и переобучаются.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "bias-variance",
     "title": "Bias–variance: разложение ошибки"
    }
   ]
  },
  {
   "slug": "weight-sharing",
   "term": "Разделяемые веса",
   "en": "weight sharing",
   "def": "Использование одного и того же ядра во всех позициях изображения: признак детектируется где угодно одними весами, а параметров нужно в тысячи раз меньше, чем полносвязному слою.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "cnn",
     "title": "Свёрточные сети (CNN)"
    }
   ]
  },
  {
   "slug": "bias-variance-decomposition",
   "term": "Разложение ошибки",
   "en": "bias-variance decomposition",
   "def": "Представление ожидаемой квадратичной ошибки модели как суммы трёх слагаемых: смещение² + разброс + неустранимый шум. Основной язык для анализа недо- и переобучения.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "bias-variance",
     "title": "Bias–variance: разложение ошибки"
    }
   ]
  },
  {
   "slug": "diversity",
   "term": "Разнообразие выдачи",
   "en": "diversity",
   "def": "Свойство набора результатов покрывать разные грани темы вместо повторов одного тезиса. Важно для широких обзорных вопросов и вредно для узких фактовых, где решает точность первого результата.",
   "category": "rag",
   "topics": [
    {
     "id": "mmr-diversity",
     "title": "MMR и разнообразие выдачи"
    }
   ]
  },
  {
   "slug": "sparse-reward",
   "term": "Разрежённая награда",
   "en": "sparse reward",
   "def": "Ситуация, когда награда приходит редко — обычно лишь в конце длинной цепочки действий (мат, победа). Обучающего сигнала почти нет; частично лечится reward shaping, но с ним легко научить агента не тому.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "reinforcement-learning",
     "title": "Обучение с подкреплением: Q-learning и PPO"
    }
   ]
  },
  {
   "slug": "early-stopping",
   "term": "Ранняя остановка",
   "en": "early stopping",
   "def": "Остановка обучения в момент минимума ошибки на валидационной выборке — до того, как модель перейдёт от выучивания закономерности к запоминанию шума.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "overfitting-regularization",
     "title": "Переобучение и регуляризация"
    },
    {
     "id": "training-practice",
     "title": "Практика обучения: батчи, dropout, batchnorm"
    }
   ]
  },
  {
   "slug": "early-fusion",
   "term": "Ранняя фузия",
   "en": "early fusion",
   "def": "Объединение модальностей на входе: токены текста, аудио и изображений смешиваются в один поток, и одна модель учится связям между ними глубоко внутри.",
   "category": "multimodal",
   "topics": [
    {
     "id": "omni-models",
     "title": "Omni-модели: все модальности в одной"
    }
   ]
  },
  {
   "slug": "learning-rate-schedule",
   "term": "Расписание скорости обучения",
   "en": "learning rate schedule",
   "def": "План изменения learning rate по ходу обучения: типично линейный прогрев в начале и косинусное затухание к концу. Постоянный шаг почти никогда не оптимален.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "training-practice",
     "title": "Практика обучения: батчи, dropout, batchnorm"
    }
   ]
  },
  {
   "slug": "noise-schedule",
   "term": "Расписание шума",
   "en": "noise schedule",
   "def": "Кривая, задающая долю сигнала исходной картинки на каждом шаге зашумления — от единицы (чистая картинка) до почти нуля (чистый шум). Форму подбирают для равномерного разрушения информации.",
   "category": "multimodal",
   "topics": [
    {
     "id": "diffusion-models",
     "title": "Диффузионные модели: как рисует Stable Diffusion"
    }
   ]
  },
  {
   "slug": "regularization",
   "term": "Регуляризация",
   "en": "regularization",
   "def": "Штраф за большие веса, добавляемый к функции потерь, чтобы ограничить сложность модели и снизить переобучение, не упрощая саму модель. Сила штрафа управляется отдельным коэффициентом.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "overfitting-regularization",
     "title": "Переобучение и регуляризация"
    }
   ]
  },
  {
   "slug": "recommender-system",
   "term": "Рекомендательная система",
   "en": "recommender system",
   "def": "Система, предсказывающая, что понравится пользователю, и отбирающая для него десяток объектов из каталога в миллионы за десятки миллисекунд.",
   "category": "production",
   "topics": [
    {
     "id": "recsys",
     "title": "Рекомендательные системы"
    }
   ]
  },
  {
   "slug": "recursive-character-splitter",
   "term": "Рекурсивный сплиттер",
   "en": "recursive character splitter",
   "def": "Стратегия нарезки: резать по самым крупным разделителям (абзац, предложение, слово), спускаясь ниже, только если кусок не влезает в лимит. Практичный дефолт чанкинга.",
   "category": "rag",
   "topics": [
    {
     "id": "chunking",
     "title": "Чанкинг и подготовка данных"
    }
   ]
  },
  {
   "slug": "reranker",
   "term": "Реранкер",
   "en": "reranker",
   "def": "Вторая ступень поиска: точная модель пересортировывает топ кандидатов от быстрого ретривера. Отвечает за precision, но не вернёт документ, который первая ступень потеряла.",
   "category": "rag",
   "topics": [
    {
     "id": "hybrid-rerank",
     "title": "Гибридный поиск и реранкинг"
    }
   ]
  },
  {
   "slug": "retraining",
   "term": "Ретрейнинг",
   "en": "retraining",
   "def": "Обновление модели на свежих данных: по расписанию (просто, но модель стареет между циклами) или по триггеру от дрифт-алертов (экономнее, но требует зрелой автоматики).",
   "category": "production",
   "topics": [
    {
     "id": "monitoring-drift",
     "title": "Мониторинг и дрифт данных"
    }
   ]
  },
  {
   "slug": "retriever",
   "term": "Ретривер",
   "en": "retriever",
   "def": "Первая ступень поиска, быстро отбирающая кандидатов из миллионов документов. Её recall — жёсткий потолок качества всей системы: что не найдено на этом этапе, не спасёт никакой реранкер.",
   "category": "rag",
   "topics": [
    {
     "id": "hybrid-rerank",
     "title": "Гибридный поиск и реранкинг"
    }
   ]
  },
  {
   "slug": "receptive-field",
   "term": "Рецептивное поле",
   "en": "receptive field",
   "def": "Область входного изображения, влияющая на данный нейрон. С глубиной сети растёт: верхние слои «видят» крупные фрагменты и собирают из простых признаков сложные.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "cnn",
     "title": "Свёрточные сети (CNN)"
    }
   ]
  },
  {
   "slug": "decision-boundary",
   "term": "Решающая граница",
   "en": "decision boundary",
   "def": "Поверхность в пространстве признаков, разделяющая области, где модель предсказывает разные классы. У логистической регрессии граница всегда линейна, несмотря на нелинейную сигмоиду.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "logistic-regression",
     "title": "Логистическая регрессия и классификация"
    }
   ]
  },
  {
   "slug": "supply-chain-risk",
   "term": "Риск цепочки поставок",
   "en": "supply chain risk",
   "def": "Угроза от стороннего MCP-сервера: это чужой код с реальными полномочиями, который может красть данные или подменять описания инструментов. Лечится доверенными источниками и наименьшими привилегиями.",
   "category": "agents",
   "topics": [
    {
     "id": "mcp",
     "title": "MCP: стандарт подключения инструментов"
    }
   ]
  },
  {
   "slug": "routing",
   "term": "Роутинг запросов",
   "en": "routing",
   "def": "Гибридная схема: дешёвая локальная модель обрабатывает простые и приватные запросы, а сложные уходят в мощный API — экономия на объёме плюс доступ к frontier-качеству там, где оно нужно.",
   "category": "infra",
   "topics": [
    {
     "id": "local-vs-saas",
     "title": "Локальные модели против SaaS и API"
    }
   ]
  },
  {
   "slug": "self-attention",
   "term": "Самовнимание",
   "en": "self-attention",
   "def": "Внимание, где запросы, ключи и значения делаются из одних и тех же токенов: каждый токен строит новое представление из всей последовательности. Память и вычисления квадратичны по длине.",
   "category": "language-models",
   "topics": [
    {
     "id": "attention",
     "title": "Механизм внимания (attention)"
    }
   ]
  },
  {
   "slug": "self-supervised-learning",
   "term": "Самообучение",
   "en": "self-supervised learning",
   "def": "Режим обучения, при котором метки создаются из самих данных без разметчиков: в претрейне LLM следующий токен текста и есть правильный ответ, поэтому обучающей выборкой становится весь интернет.",
   "category": "llm",
   "topics": [
    {
     "id": "pretraining",
     "title": "Претрейнинг и scaling laws"
    },
    {
     "id": "learning-paradigms",
     "title": "Типы обучения: с учителем, без и с подкреплением"
    }
   ]
  },
  {
   "slug": "smoothing",
   "term": "Сглаживание",
   "en": "smoothing",
   "def": "Приёмы борьбы с нулевыми вероятностями невиданных сочетаний: от прибавления единицы ко всем счётчикам (Лаплас) до отката к коротким контекстам и метода Кнесера–Нея.",
   "category": "language-models",
   "topics": [
    {
     "id": "bigram-ngram",
     "title": "Биграммы и n-граммы"
    }
   ]
  },
  {
   "slug": "laplace-smoothing",
   "term": "Сглаживание Лапласа",
   "en": "Laplace smoothing",
   "def": "Добавление виртуального счётчика +1 при оценке частот в наивном Байесе, чтобы слово, не встречавшееся в классе, не давало нулевую вероятность и не зануляло всё произведение.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "naive-bayes",
     "title": "Теорема Байеса и наивный Байес"
    }
   ]
  },
  {
   "slug": "character-segmentation",
   "term": "Сегментация символов",
   "en": "character segmentation",
   "def": "Шаг классического OCR: страница режется на строки, слова и символы, например по проекциям — пустые столбцы пикселей считаются границами. Ломается на слипшихся буквах.",
   "category": "multimodal",
   "topics": [
    {
     "id": "ocr",
     "title": "OCR: от классики до распознавания через LLM"
    }
   ]
  },
  {
   "slug": "saddle-point",
   "term": "Седловая точка",
   "en": "saddle point",
   "def": "Точка с почти нулевым градиентом, не являющаяся минимумом: по одним направлениям функция растёт, по другим убывает. В высоких размерностях именно сёдла чаще всего тормозят обучение.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "gradient-descent",
     "title": "Градиентный спуск"
    }
   ]
  },
  {
   "slug": "semantic-chunking",
   "term": "Семантический чанкинг",
   "en": "semantic chunking",
   "def": "Нарезка по смыслу: считаются эмбеддинги соседних предложений, и граница ставится там, где близость резко падает. Точнее фиксированной нарезки, но дороже на этапе индексации.",
   "category": "rag",
   "topics": [
    {
     "id": "chunking",
     "title": "Чанкинг и подготовка данных"
    }
   ]
  },
  {
   "slug": "sigmoid",
   "term": "Сигмоида",
   "en": "sigmoid",
   "def": "Гладкая S-образная функция, сжимающая любое число в интервал от 0 до 1. Превращает линейный скор в вероятность класса в логистической регрессии и нейросетях.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "logistic-regression",
     "title": "Логистическая регрессия и классификация"
    },
    {
     "id": "activations",
     "title": "Функции активации"
    }
   ]
  },
  {
   "slug": "system-prompt",
   "term": "Системный промпт",
   "en": "system prompt",
   "def": "Сообщение с ролью system — правила поведения модели: модель обучена относиться к нему как к приоритетной рамке, в отличие от реплик user (запросы) и assistant (её собственные прошлые ответы).",
   "category": "llm",
   "topics": [
    {
     "id": "context-engineering",
     "title": "Работа с контекстом и разметка сообщений"
    }
   ]
  },
  {
   "slug": "sliding-window-attention",
   "term": "Скользящее окно внимания",
   "en": "sliding window attention",
   "def": "Ограничение внимания последними w токенами: стоимость становится линейной, а дальняя информация всё равно доходит — рецептивное поле растёт со стопкой слоёв. Используется в Mistral.",
   "category": "language-models",
   "topics": [
    {
     "id": "modern-architectures",
     "title": "Современные архитектуры: RoPE, MoE, GQA"
    }
   ]
  },
  {
   "slug": "learning-rate",
   "term": "Скорость обучения",
   "en": "learning rate",
   "def": "Множитель, задающий длину шага градиентного спуска. Слишком маленький — обучение мучительно медленное, слишком большой — ошибка начинает расти и процесс расходится.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "gradient-descent",
     "title": "Градиентный спуск"
    },
    {
     "id": "optimizers",
     "title": "Оптимизаторы: SGD, Momentum, Adam"
    }
   ]
  },
  {
   "slug": "hidden-state",
   "term": "Скрытое состояние",
   "en": "hidden state",
   "def": "Вектор фиксированного размера, в который RNN ужимает всю прочитанную историю и который обновляется на каждом шаге. Константная память — и сила, и бутылочное горлышко рекуррентных сетей.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "rnn",
     "title": "Рекуррентные сети (RNN, LSTM)"
    }
   ]
  },
  {
   "slug": "hidden-layer",
   "term": "Скрытый слой",
   "en": "hidden layer",
   "def": "Слой нейронов между входом и выходом сети. Строит новые признаки из исходных, благодаря чему сеть решает линейно неразделимые задачи вроде XOR.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "perceptron-mlp",
     "title": "От нейрона к многослойному перцептрону"
    }
   ]
  },
  {
   "slug": "vocabulary",
   "term": "Словарь токенизатора",
   "en": "vocabulary",
   "def": "Набор всех токенов, которые знает модель, обычно 50–200 тысяч. Размер — компромисс: больше словарь — короче последовательности, но тяжелее эмбеддинг-матрица и хуже обучены редкие токены.",
   "category": "language-models",
   "topics": [
    {
     "id": "tokenization",
     "title": "Токенизация и BPE"
    }
   ]
  },
  {
   "slug": "random-forest",
   "term": "Случайный лес",
   "en": "random forest",
   "def": "Бэггинг над глубокими деревьями плюс случайное подмножество признаков в каждом узле: деревья разнообразнее, усреднение сильнее гасит разброс. Крепкий бейзлайн на табличных данных.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "trees-ensembles",
     "title": "Деревья решений и ансамбли"
    }
   ]
  },
  {
   "slug": "lethal-trifecta",
   "term": "Смертельная триада",
   "en": "lethal trifecta",
   "def": "Опасное сочетание у агента: доступ к приватным данным, обработка недоверенного контента и возможность внешних действий. Когда есть все три, утечка — вопрос времени; убирайте хотя бы один угол.",
   "category": "production",
   "topics": [
    {
     "id": "safety-guardrails",
     "title": "Безопасность: guardrails и prompt injection"
    }
   ]
  },
  {
   "slug": "gaussian-mixture-model-gmm",
   "term": "Смесь гауссиан",
   "en": "Gaussian Mixture Model, GMM",
   "def": "Вероятностная модель кластеризации: данные считаются смесью нескольких гауссиан, каждая со своим центром, ковариацией (форма и наклон эллипса) и весом. В отличие от k-means умеет вытянутые и наклонённые кластеры разного размера.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "em-gmm",
     "title": "EM-алгоритм и смеси гауссиан (GMM)"
    }
   ]
  },
  {
   "slug": "bias",
   "term": "Смещение",
   "en": "bias",
   "def": "Систематическая ошибка модели: отклонение её усреднённого по выборкам предсказания от истины. Велико у слишком простых моделей — они не способны поймать закономерность и недообучаются.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "bias-variance",
     "title": "Bias–variance: разложение ошибки"
    },
    {
     "id": "perceptron-mlp",
     "title": "От нейрона к многослойному перцептрону"
    }
   ]
  },
  {
   "slug": "position-bias",
   "term": "Смещение позиции",
   "en": "position bias",
   "def": "Верхние документы кликают чаще из-за самой позиции, а не большей релевантности. Обучаясь на сырых кликах, LTR-модель консервирует старый порядок. Лечится IPW и моделями клика.",
   "category": "production",
   "topics": [
    {
     "id": "learning-to-rank",
     "title": "Ранжирование: learning-to-rank"
    }
   ]
  },
  {
   "slug": "dimensionality-reduction",
   "term": "Снижение размерности",
   "en": "dimensionality reduction",
   "def": "Сжатие пространства признаков с сохранением главной структуры данных — ради визуализации, скорости, борьбы с шумом и проклятием размерности.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "dimensionality-pca",
     "title": "Снижение размерности и PCA"
    }
   ]
  },
  {
   "slug": "template-matching",
   "term": "Сопоставление с шаблонами",
   "en": "template matching",
   "def": "Интерпретация линейного классификатора картинок: веса каждого класса — картинка-шаблон, а предсказание — выбор шаблона, с которым вход дал наибольшее скалярное произведение.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "digits-mnist",
     "title": "Распознавание цифр из пикселей"
    }
   ]
  },
  {
   "slug": "speculative-decoding",
   "term": "Спекулятивный декодинг",
   "en": "speculative decoding",
   "def": "Ускорение генерации: маленькая draft-модель предлагает несколько токенов вперёд, а большая проверяет их одним параллельным прогоном. Правило принятия сохраняет распределение большой модели — качество не страдает.",
   "category": "llm",
   "topics": [
    {
     "id": "inference",
     "title": "Инференс: KV-cache, квантизация, спекулятивный декодинг"
    }
   ]
  },
  {
   "slug": "special-tokens",
   "term": "Спецтокены",
   "en": "special tokens",
   "def": "Служебные токены chat-шаблона, размечающие границы ходов и роли в диалоге. Модель видела их миллионы раз при обучении — именно они сообщают ей, где инструкция, а где её очередь отвечать.",
   "category": "llm",
   "topics": [
    {
     "id": "context-engineering",
     "title": "Работа с контекстом и разметка сообщений"
    }
   ]
  },
  {
   "slug": "time-based-split",
   "term": "Сплит по времени",
   "en": "time-based split",
   "def": "Валидация моделей на временных данных: обучение на прошлом, тест на будущем. Случайное перемешивание подсовывает модели будущее — метрики завышены, в проде провал.",
   "category": "production",
   "topics": [
    {
     "id": "ml-system-design",
     "title": "Дизайн ML-систем на собеседовании"
    }
   ]
  },
  {
   "slug": "standardization",
   "term": "Стандартизация",
   "en": "standardization",
   "def": "Приведение признака к нулевому среднему и единичному разбросу. Обязательна перед методами на расстояниях и регуляризацией; параметры считаются только по обучающей выборке.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "feature-engineering",
     "title": "Фичи и утечки данных (data leakage)"
    }
   ]
  },
  {
   "slug": "standard-error-se",
   "term": "Стандартная ошибка",
   "en": "standard error, SE",
   "def": "Стандартное отклонение оценки (обычно среднего) от выборки к выборке: SE = σ/√n. В отличие от стандартного отклонения данных, уменьшается с ростом выборки, но только как корень из n.",
   "category": "statistics",
   "topics": [
    {
     "id": "sampling-clt",
     "title": "Выборка, ЦПТ и стандартная ошибка"
    }
   ]
  },
  {
   "slug": "standard-deviation-sd",
   "term": "Стандартное отклонение",
   "en": "standard deviation, SD",
   "def": "Мера разброса отдельных наблюдений вокруг среднего — корень из дисперсии. Свойство самих данных: от размера выборки не зависит, в отличие от стандартной ошибки.",
   "category": "statistics",
   "topics": [
    {
     "id": "sampling-clt",
     "title": "Выборка, ЦПТ и стандартная ошибка"
    }
   ]
  },
  {
   "slug": "statistical-significance",
   "term": "Статистическая значимость",
   "en": "statistical significance",
   "def": "Результат, при котором p-value не превышает уровня значимости и нулевая гипотеза отвергается. Не означает практической важности: при большом n значимым становится любое отклонение.",
   "category": "statistics",
   "topics": [
    {
     "id": "p-value",
     "title": "P-value и проверка гипотез"
    }
   ]
  },
  {
   "slug": "stratified-k-fold",
   "term": "Стратифицированная k-fold",
   "en": "stratified k-fold",
   "def": "Разбиение на фолды, сохраняющее долю классов в каждом фолде. Нужно при несбалансированных классах, иначе редкий класс может целиком провалиться в один фолд и оценка станет нестабильной.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "cross-validation-tuning",
     "title": "Кросс-валидация и подбор гиперпараметров"
    }
   ]
  },
  {
   "slug": "subagent",
   "term": "Субагент",
   "en": "subagent",
   "def": "Агент с собственным чистым контекстом, которому делегируют подзадачу. Может прочитать десятки файлов и перебрать гипотезы — весь шум останется у него, наверх вернётся только результат.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-memory",
     "title": "Память, планирование и мультиагентные системы"
    }
   ]
  },
  {
   "slug": "sampling",
   "term": "Сэмплирование",
   "en": "sampling",
   "def": "Выбор следующего токена из распределения вероятностей, которое выдаёт модель: можно всегда брать самый вероятный, а можно «кидать кубик». От стратегии зависит, будет текст скучным, живым или бессвязным.",
   "category": "llm",
   "topics": [
    {
     "id": "sampling",
     "title": "Сэмплирование: temperature, top-k, top-p"
    }
   ]
  },
  {
   "slug": "target-encoding",
   "term": "Таргет-кодирование",
   "en": "target encoding",
   "def": "Замена категории средним значением целевой переменной по ней. Компактно и мощно, но без out-of-fold-схемы редкие категории запоминают свой таргет — получается микро-утечка.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "feature-engineering",
     "title": "Фичи и утечки данных (data leakage)"
    }
   ]
  },
  {
   "slug": "temperature",
   "term": "Температура",
   "en": "temperature",
   "def": "Параметр сэмплирования: логиты делятся на T до softmax. При T меньше 1 распределение обостряется к самому вероятному токену, при T больше 1 сглаживается — растёт разнообразие, а с ним и доля случайного мусора.",
   "category": "llm",
   "topics": [
    {
     "id": "sampling",
     "title": "Сэмплирование: temperature, top-k, top-p"
    }
   ]
  },
  {
   "slug": "distillation-temperature",
   "term": "Температура дистилляции",
   "en": "distillation temperature",
   "def": "Деление логитов учителя на T перед softmax при дистилляции: при T около 3–5 почти one-hot распределение размягчается, и отношения между классами становятся видимыми для лосса ученика.",
   "category": "llm",
   "topics": [
    {
     "id": "distillation",
     "title": "Дистилляция и сжатие моделей"
    }
   ]
  },
  {
   "slug": "bayes-theorem",
   "term": "Теорема Байеса",
   "en": "Bayes' theorem",
   "def": "Правило пересчёта вероятности гипотезы при появлении новых данных: апостериорная вероятность пропорциональна приору, умноженному на правдоподобие улик.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "naive-bayes",
     "title": "Теорема Байеса и наивный Байес"
    }
   ]
  },
  {
   "slug": "universal-approximation-theorem",
   "term": "Теорема об универсальной аппроксимации",
   "en": "universal approximation theorem",
   "def": "Утверждение, что MLP даже с одним достаточно широким скрытым слоем может приблизить любую непрерывную функцию. Не гарантирует ни разумный размер сети, ни то, что обучение найдёт нужные веса.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "perceptron-mlp",
     "title": "От нейрона к многослойному перцептрону"
    }
   ]
  },
  {
   "slug": "test-set",
   "term": "Тестовая выборка",
   "en": "test set",
   "def": "«Неприкосновенная» часть данных, которую трогают один раз в самом конце — для честной итоговой оценки модели. Многократная подстройка решений под тест завышает оценку качества.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "intro-ml",
     "title": "Что такое машинное обучение"
    }
   ]
  },
  {
   "slug": "token",
   "term": "Токен",
   "en": "token",
   "def": "Минимальная единица текста для модели: символ, слово или чаще подслово из фиксированного словаря. Модель видит только номера токенов, а не буквы.",
   "category": "language-models",
   "topics": [
    {
     "id": "tokenization",
     "title": "Токенизация и BPE"
    }
   ]
  },
  {
   "slug": "tokenization",
   "term": "Токенизация",
   "en": "tokenization",
   "def": "Превращение текста в последовательность номеров токенов из конечного словаря. Определяет цену запроса, эффективную длину контекста и слабости модели в посимвольных задачах.",
   "category": "language-models",
   "topics": [
    {
     "id": "tokenization",
     "title": "Токенизация и BPE"
    }
   ]
  },
  {
   "slug": "point-estimate",
   "term": "Точечная оценка",
   "en": "point estimate",
   "def": "Одно число, оценивающее параметр совокупности по выборке: выборочное среднее, accuracy на тесте, доля конверсий. Без интервала не показывает, насколько ей можно верить.",
   "category": "statistics",
   "topics": [
    {
     "id": "confidence-intervals",
     "title": "Доверительные интервалы"
    }
   ]
  },
  {
   "slug": "crossover-point",
   "term": "Точка перелома",
   "en": "crossover point",
   "def": "Объём использования, на котором один вариант затрат становится дешевле другого: линейно растущая стоимость API пересекает почти фиксированную стоимость собственного железа.",
   "category": "infra",
   "topics": [
    {
     "id": "local-vs-saas",
     "title": "Локальные модели против SaaS и API"
    }
   ]
  },
  {
   "slug": "precision",
   "term": "Точность",
   "en": "precision",
   "def": "Доля действительно положительных среди всех объектов, которые модель назвала положительными: «сколько из наших тревог — настоящие». Важна, когда дорога ложная тревога.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "metrics",
     "title": "Метрики качества"
    },
    {
     "id": "gpu-vram",
     "title": "Видеокарты и VRAM: железо для нейросетей"
    }
   ]
  },
  {
   "slug": "trajectory",
   "term": "Траектория",
   "en": "trajectory",
   "def": "Полная последовательность «мысль — действие — наблюдение» за один прогон агента. Главный материал для отладки: читают её целиком, а не только финальный ответ.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-loop",
     "title": "Агентный цикл и критерий остановки"
    }
   ]
  },
  {
   "slug": "transfer-learning",
   "term": "Трансферное обучение",
   "en": "transfer learning",
   "def": "Перенос знаний с одной задачи на другую: берут модель, обученную на большой выборке, и дообучают на своей задаче. Позволяет учиться на малых данных быстрее и точнее, чем с нуля.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "learning-paradigms",
     "title": "Типы обучения: с учителем, без и с подкреплением"
    }
   ]
  },
  {
   "slug": "transformer",
   "term": "Трансформер",
   "en": "transformer",
   "def": "Архитектура из стопки одинаковых блоков «внимание плюс MLP» поверх эмбеддингов токенов. Обучается параллельно по всей длине последовательности — скелет GPT, Llama и почти всех современных LLM.",
   "category": "language-models",
   "topics": [
    {
     "id": "transformer",
     "title": "Архитектура трансформера"
    }
   ]
  },
  {
   "slug": "bellman-equation",
   "term": "Уравнение Беллмана",
   "en": "Bellman equation",
   "def": "Рекурсия, связывающая ценность действия сейчас с ценностью следующего шага: Q(s,a)=r+γ·max Q(s′,·). Q-learning подгоняет оценки Q к этому равенству на опыте, минимизируя TD-ошибку.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "reinforcement-learning",
     "title": "Обучение с подкреплением: Q-learning и PPO"
    }
   ]
  },
  {
   "slug": "confidence-level",
   "term": "Уровень доверия",
   "en": "confidence level",
   "def": "Надёжность процедуры построения интервалов: доля интервалов, накрывающих истину при повторениях. Выше уровень — шире интервал; 95 % соответствует критическому z = 1,96.",
   "category": "statistics",
   "topics": [
    {
     "id": "confidence-intervals",
     "title": "Доверительные интервалы"
    }
   ]
  },
  {
   "slug": "significance-level-alpha",
   "term": "Уровень значимости",
   "en": "significance level, alpha",
   "def": "Порог для p-value, выбранный до эксперимента (обычно 0,05): при p ≤ α нулевую гипотезу отвергают. Равен допустимой частоте ложных тревог — ошибок I рода.",
   "category": "statistics",
   "topics": [
    {
     "id": "p-value",
     "title": "P-value и проверка гипотез"
    }
   ]
  },
  {
   "slug": "task-success",
   "term": "Успех задачи",
   "en": "task success",
   "def": "Автоматически проверяемый исход прогона агента: тесты прошли, файл создан, ответ совпал с эталоном. Фундамент оценки агентов — внешняя проверка вместо мнения модели.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-evals",
     "title": "Оценка агентов: pass@k и траектории"
    }
   ]
  },
  {
   "slug": "data-leakage",
   "term": "Утечка данных",
   "en": "data leakage",
   "def": "Попадание в признаки информации, которой в момент предсказания ещё нет: поля, заполненные после события, предобработка до сплита, будущее в трейне. Симптом — блестящая оффлайн-метрика и провал в проде.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "feature-engineering",
     "title": "Фичи и утечки данных (data leakage)"
    }
   ]
  },
  {
   "slug": "tuning-data-leakage",
   "term": "Утечка при подборе",
   "en": "tuning data leakage",
   "def": "Подбор гиперпараметров по тестовой выборке или подготовка признаков по всем данным до разбиения. Информация из проверки просачивается в обучение и завышает оценку качества.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "cross-validation-tuning",
     "title": "Кросс-валидация и подбор гиперпараметров"
    }
   ]
  },
  {
   "slug": "fallback",
   "term": "Фолбэк",
   "en": "fallback",
   "def": "Запасное поведение продукта при отказе ML-сервиса: правила, кэш или «популярное». План на отказ — обязательная часть дизайна системы; ответ «лента будет пустой» не принимается.",
   "category": "production",
   "topics": [
    {
     "id": "ml-system-design",
     "title": "Дизайн ML-систем на собеседовании"
    }
   ]
  },
  {
   "slug": "activation-function",
   "term": "Функция активации",
   "en": "activation function",
   "def": "Нелинейное преобразование выхода нейрона. Без активаций стопка линейных слоёв схлопывается в один линейный слой, а производная активации определяет, как течёт градиент при обучении.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "activations",
     "title": "Функции активации"
    }
   ]
  },
  {
   "slug": "loss-function",
   "term": "Функция потерь",
   "en": "loss function",
   "def": "Число, измеряющее, насколько предсказания модели плохи на данных. Обучение любой модели — поиск параметров, при которых функция потерь минимальна.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "linear-regression",
     "title": "Линейная регрессия"
    }
   ]
  },
  {
   "slug": "cold-start",
   "term": "Холодный старт",
   "en": "cold start",
   "def": "Проблема нового объекта или пользователя без истории взаимодействий. Лечится контентными признаками, показом популярного, онбордингом и разведочными показами.",
   "category": "production",
   "topics": [
    {
     "id": "recsys",
     "title": "Рекомендательные системы"
    }
   ]
  },
  {
   "slug": "host",
   "term": "Хост",
   "en": "host",
   "def": "Приложение с LLM внутри — чат, IDE, ассистент. Внутри хоста живёт MCP-клиент, который держит соединение с MCP-серверами и получает от них инструменты, ресурсы и промпты.",
   "category": "agents",
   "topics": [
    {
     "id": "mcp",
     "title": "MCP: стандарт подключения инструментов"
    }
   ]
  },
  {
   "slug": "cost-of-fp-vs-fn",
   "term": "Цена ошибки",
   "en": "cost of fp vs fn",
   "def": "Соотношение ущерба от ложного срабатывания и от пропуска, определяющее метрики и пороги системы. Во фроде ложное срабатывание — заблокированный честный клиент, пропуск — украденные деньги.",
   "category": "production",
   "topics": [
    {
     "id": "ml-system-design",
     "title": "Дизайн ML-систем на собеседовании"
    }
   ]
  },
  {
   "slug": "central-limit-theorem-clt",
   "term": "Центральная предельная теорема",
   "en": "central limit theorem, CLT",
   "def": "Среднее по выборке из n независимых наблюдений с конечной дисперсией распределено приближённо нормально с центром μ и разбросом σ/√n, какой бы ни была форма исходного распределения.",
   "category": "statistics",
   "topics": [
    {
     "id": "sampling-clt",
     "title": "Выборка, ЦПТ и стандартная ошибка"
    }
   ]
  },
  {
   "slug": "centroid",
   "term": "Центроид",
   "en": "centroid",
   "def": "Центр кластера — среднее всех его точек. В k-means центроиды пересчитываются на каждой итерации, а точки приписываются к ближайшему из них.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "clustering-knn",
     "title": "kNN и кластеризация"
    }
   ]
  },
  {
   "slug": "chunk",
   "term": "Чанк",
   "en": "chunk",
   "def": "Фрагмент документа — единица индексации в RAG: его эмбеддинг участвует в поиске, его текст попадает в промпт. Хороший чанк понятен сам по себе, без остального документа.",
   "category": "rag",
   "topics": [
    {
     "id": "chunking",
     "title": "Чанкинг и подготовка данных"
    }
   ]
  },
  {
   "slug": "chunking",
   "term": "Чанкинг",
   "en": "chunking",
   "def": "Нарезка документов на фрагменты перед индексацией. От того, где пройдут границы, качество поиска зависит сильнее, чем от выбора модели эмбеддингов.",
   "category": "rag",
   "topics": [
    {
     "id": "chunking",
     "title": "Чанкинг и подготовка данных"
    }
   ]
  },
  {
   "slug": "semi-supervised-learning",
   "term": "Частичное обучение",
   "en": "semi-supervised learning",
   "def": "Комбинация малого числа размеченных примеров и большого объёма неразмеченных: модель учится структуре на неразмеченных данных и уточняет ответы по редким меткам.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "learning-paradigms",
     "title": "Типы обучения: с учителем, без и с подкреплением"
    }
   ]
  },
  {
   "slug": "human-in-the-loop",
   "term": "Человек в контуре",
   "en": "human-in-the-loop",
   "def": "Требование явного подтверждения человеком для необратимых и внешних действий агента: отправки письма, платежа, удаления данных. Граница, которую prompt injection обойти не может.",
   "category": "production",
   "topics": [
    {
     "id": "safety-guardrails",
     "title": "Безопасность: guardrails и prompt injection"
    }
   ]
  },
  {
   "slug": "data-exfiltration",
   "term": "Экзфильтрация данных",
   "en": "data exfiltration",
   "def": "Вывод приватных данных наружу через действия скомпрометированного агента: инъекция в письме заставляет агента с доступом к почте самому переслать переписку атакующему.",
   "category": "production",
   "topics": [
    {
     "id": "safety-guardrails",
     "title": "Безопасность: guardrails и prompt injection"
    }
   ]
  },
  {
   "slug": "exponential-smoothing",
   "term": "Экспоненциальное сглаживание",
   "en": "exponential smoothing",
   "def": "Прогноз как взвешенное среднее прошлых значений ряда, где свежие точки весят больше. Версии с трендом и сезонностью известны как метод Холта-Уинтерса.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "time-series",
     "title": "Временные ряды и прогнозирование"
    }
   ]
  },
  {
   "slug": "embedding",
   "term": "Эмбеддинг",
   "en": "embedding",
   "def": "Плотный вектор, представляющий слово или токен так, что близость векторов отражает близость смысла. Фундамент семантического поиска, RAG и первый слой любого трансформера.",
   "category": "language-models",
   "topics": [
    {
     "id": "embeddings",
     "title": "Эмбеддинги и word2vec"
    }
   ]
  },
  {
   "slug": "emergent-abilities",
   "term": "Эмерджентные способности",
   "en": "emergent abilities",
   "def": "Навыки, «внезапно» появляющиеся у моделей с ростом масштаба: многошаговая арифметика, следование инструкциям. Часть «скачков» — артефакт жёстких метрик, но непредсказуемость новых навыков реальна.",
   "category": "llm",
   "topics": [
    {
     "id": "pretraining",
     "title": "Претрейнинг и scaling laws"
    }
   ]
  },
  {
   "slug": "encoder",
   "term": "Энкодер",
   "en": "encoder",
   "def": "Трансформер без каузальной маски (как BERT): каждый токен видит всё предложение в обе стороны. Хорош для понимания текста — классификации, поиска, извлечения сущностей.",
   "category": "language-models",
   "topics": [
    {
     "id": "transformer",
     "title": "Архитектура трансформера"
    }
   ]
  },
  {
   "slug": "epoch",
   "term": "Эпоха",
   "en": "epoch",
   "def": "Один полный проход обучения по всем примерам датасета. Обучение обычно длится десятки эпох, а прогресс отслеживают по кривым ошибки на трейне и валидации.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "training-practice",
     "title": "Практика обучения: батчи, dropout, batchnorm"
    }
   ]
  },
  {
   "slug": "defense-in-depth",
   "term": "Эшелонированная оборона",
   "en": "defense in depth",
   "def": "Несколько независимых слоёв защиты: валидация входов и выходов, разметка границ данных, ограничение прав, подтверждения человека. Пропущенное одним слоем ловит следующий.",
   "category": "production",
   "topics": [
    {
     "id": "safety-guardrails",
     "title": "Безопасность: guardrails и prompt injection"
    }
   ]
  },
  {
   "slug": "kernel",
   "term": "Ядро",
   "en": "kernel",
   "def": "Функция от пары объектов, равная скалярному произведению их образов в спрямляющем пространстве, — по сути мера похожести. Позволяет SVM строить нелинейные границы.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "svm-kernels",
     "title": "SVM и kernel trick"
    }
   ]
  },
  {
   "slug": "convolution-kernel",
   "term": "Ядро свёртки",
   "en": "convolution kernel",
   "def": "Маленькая матрица весов (например, 3 на 3), скользящая по изображению и считающая скалярное произведение с каждым окном. Один обучаемый детектор признака, применяемый во всех позициях.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "cnn",
     "title": "Свёрточные сети (CNN)"
    }
   ]
  },
  {
   "slug": "language-model-head",
   "term": "Языковая голова",
   "en": "language model head",
   "def": "Финальный линейный слой трансформера, превращающий вектор токена в логиты по всему словарю, — из них softmax даёт вероятности следующего токена.",
   "category": "language-models",
   "topics": [
    {
     "id": "transformer",
     "title": "Архитектура трансформера"
    }
   ]
  },
  {
   "slug": "language-model",
   "term": "Языковая модель",
   "en": "language model",
   "def": "Модель распределения вероятностей следующего токена при заданном контексте. Всё различие между n-граммной таблицей и GPT — в том, чем это распределение параметризовано.",
   "category": "language-models",
   "topics": [
    {
     "id": "bigram-ngram",
     "title": "Биграммы и n-граммы"
    }
   ]
  },
  {
   "slug": "cell-state",
   "term": "Ячейка памяти",
   "en": "cell state",
   "def": "Отдельный «конвейер» памяти в LSTM, по которому информация течёт сквозь шаги почти без изменений и обновляется аддитивно — благодаря этому градиенты затухают куда медленнее.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "rnn",
     "title": "Рекуррентные сети (RNN, LSTM)"
    }
   ]
  },
  {
   "slug": "a-b-testing",
   "term": "A/B-тест",
   "en": "a/b testing",
   "def": "Контролируемый эксперимент: пользователи случайно делятся на контроль и тест, и различие метрик можно приписать изменению продукта, а не составу групп. Единственный честный судья онлайн-эффекта.",
   "category": "production",
   "topics": [
    {
     "id": "ab-testing",
     "title": "A/B-тесты и продуктовые метрики"
    }
   ]
  },
  {
   "slug": "access-control-list",
   "term": "ACL",
   "en": "access control list",
   "def": "Список прав доступа, который обязательно прокидывают в метаданные чанков. Без фильтрации по ACL на этапе поиска RAG отдаст содержимое закрытых документов любому, кто задал подходящий вопрос.",
   "category": "rag",
   "topics": [
    {
     "id": "chunking",
     "title": "Чанкинг и подготовка данных"
    }
   ]
  },
  {
   "slug": "adaptive-moment-estimation",
   "term": "Adam",
   "en": "adaptive moment estimation",
   "def": "Оптимизатор, объединяющий momentum и RMSProp: ведёт скользящие средние градиента и его квадрата с поправкой смещения. Дефолтный выбор для большинства задач.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "optimizers",
     "title": "Оптимизаторы: SGD, Momentum, Adam"
    }
   ]
  },
  {
   "slug": "adam-with-decoupled-weight-decay",
   "term": "AdamW",
   "en": "adam with decoupled weight decay",
   "def": "Adam с исправленным weight decay: штраф за большие веса применяется отдельным слагаемым, а не через градиент, где его исказила бы адаптивная нормировка. Стандарт обучения трансформеров.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "optimizers",
     "title": "Оптимизаторы: SGD, Momentum, Adam"
    }
   ]
  },
  {
   "slug": "alignment",
   "term": "Alignment",
   "en": "alignment",
   "def": "Этап обучения, делающий модель полезной, безвредной и честной: вместо эталонных ответов используются сравнения («из этих двух ответов этот лучше»), на которых модель выучивает человеческие предпочтения.",
   "category": "llm",
   "topics": [
    {
     "id": "alignment",
     "title": "Alignment: RLHF и DPO"
    }
   ]
  },
  {
   "slug": "all-reduce",
   "term": "All-reduce",
   "en": "all-reduce",
   "def": "Коллективная операция обмена, усредняющая или суммирующая значения со всех GPU и раздающая результат каждой; так синхронизируются градиенты при data parallelism.",
   "category": "infra",
   "topics": [
    {
     "id": "distributed-training",
     "title": "Распределённое обучение: DP, TP, PP и ZeRO"
    }
   ]
  },
  {
   "slug": "approximate-nearest-neighbors",
   "term": "ANN",
   "en": "approximate nearest neighbors",
   "def": "Приближённый поиск ближайших соседей: находит «почти наверняка ближайшие» векторы на порядки быстрее полного перебора ценой небольшой потери полноты. Основа векторного поиска на миллионах документов.",
   "category": "rag",
   "topics": [
    {
     "id": "vector-search",
     "title": "Векторный поиск и ANN-индексы"
    }
   ]
  },
  {
   "slug": "answer-relevance",
   "term": "Answer relevance",
   "en": "answer relevance",
   "def": "Метрика генерации: отвечает ли сгенерированный текст на заданный вопрос. Ответ может быть верен контексту, но не о том, что спрашивали.",
   "category": "rag",
   "topics": [
    {
     "id": "rag-eval",
     "title": "Оценка качества RAG"
    }
   ]
  },
  {
   "slug": "autoregressive-integrated-moving-average",
   "term": "ARIMA",
   "en": "autoregressive integrated moving average",
   "def": "Классическая модель прогнозирования: следующая точка — линейная комбинация прошлых значений ряда и прошлых ошибок после устранения тренда разностями. Ряд объясняется собственным прошлым.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "time-series",
     "title": "Временные ряды и прогнозирование"
    }
   ]
  },
  {
   "slug": "automatic-speech-recognition",
   "term": "ASR",
   "en": "automatic speech recognition",
   "def": "Распознавание речи — превращение аудио в текст. Современный подход в духе Whisper: мел-спектрограмма подаётся в трансформер encoder-decoder, декодер авторегрессионно выводит текст.",
   "category": "multimodal",
   "topics": [
    {
     "id": "audio-models",
     "title": "Звук: распознавание и синтез речи"
    }
   ]
  },
  {
   "slug": "area-under-curve",
   "term": "AUC",
   "en": "area under curve",
   "def": "Площадь под ROC-кривой: вероятность того, что случайный положительный объект получит скор выше случайного отрицательного. 0.5 — уровень монетки, 1 — идеальное ранжирование.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "metrics",
     "title": "Метрики качества"
    }
   ]
  },
  {
   "slug": "base-model",
   "term": "Base model",
   "en": "base model",
   "def": "Модель сразу после претрейнинга: она гениально продолжает текст, но не умеет «отвечать» и выполнять просьбы. Формат полезного ассистента ей прививают позже — на SFT и alignment.",
   "category": "llm",
   "topics": [
    {
     "id": "pretraining",
     "title": "Претрейнинг и scaling laws"
    }
   ]
  },
  {
   "slug": "beam-search",
   "term": "Beam search",
   "en": "beam search",
   "def": "Лучевой поиск: декодер держит несколько лучших префиксов и ищет последовательность с максимальной суммарной вероятностью. Хорош для перевода и распознавания речи, но для открытой генерации даёт однообразный текст.",
   "category": "llm",
   "topics": [
    {
     "id": "sampling",
     "title": "Сэмплирование: temperature, top-k, top-p"
    }
   ]
  },
  {
   "slug": "best-of-n-sampling",
   "term": "Best-of-N",
   "en": "best-of-n sampling",
   "def": "Стратегия инференса: сгенерировать N вариантов ответа и выбрать лучший с помощью отдельной модели-оценщика. Обмен вычислений на точность «вширь», в отличие от длинного рассуждения «вглубь».",
   "category": "llm",
   "topics": [
    {
     "id": "reasoning-models",
     "title": "Reasoning-модели и test-time compute"
    }
   ]
  },
  {
   "slug": "bi-encoder",
   "term": "Bi-encoder",
   "en": "bi-encoder",
   "def": "Модель поиска, кодирующая запрос и документ по отдельности: векторы документов предвычислены заранее, поэтому поиск по миллионам занимает миллисекунды. Раздельное кодирование — потеря точности.",
   "category": "rag",
   "topics": [
    {
     "id": "hybrid-rerank",
     "title": "Гибридный поиск и реранкинг"
    }
   ]
  },
  {
   "slug": "bm25",
   "term": "BM25",
   "en": "bm25",
   "def": "Классический алгоритм лексического поиска по взвешенному совпадению слов, наследник TF-IDF. Мгновенно находит точные термины — артикулы, коды ошибок, имена, — но пасует перед синонимами и перефразировками.",
   "category": "rag",
   "topics": [
    {
     "id": "hybrid-rerank",
     "title": "Гибридный поиск и реранкинг"
    }
   ]
  },
  {
   "slug": "byte-pair-encoding",
   "term": "BPE",
   "en": "byte pair encoding",
   "def": "Алгоритм построения подсловного словаря: жадно сливает самую частую пару соседних токенов, пока словарь не вырастет до нужного размера. Частые слова — целые токены, редкие собираются из кусков.",
   "category": "language-models",
   "topics": [
    {
     "id": "tokenization",
     "title": "Токенизация и BPE"
    }
   ]
  },
  {
   "slug": "backpropagation-through-time",
   "term": "BPTT",
   "en": "backpropagation through time",
   "def": "Обучение RNN через «развёртку» цепочки шагов в глубокую сеть с общими весами и обратное распространение по ней. Именно здесь градиенты затухают или взрываются с ростом длины последовательности.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "rnn",
     "title": "Рекуррентные сети (RNN, LSTM)"
    }
   ]
  },
  {
   "slug": "capital-expenditure",
   "term": "Capex",
   "en": "capital expenditure",
   "def": "Капитальные затраты — разовые вложения, например покупка GPU. Модель затрат собственного кластера: дорого на старте, зато цена за токен при высокой утилизации крошечная.",
   "category": "infra",
   "topics": [
    {
     "id": "local-vs-saas",
     "title": "Локальные модели против SaaS и API"
    }
   ]
  },
  {
   "slug": "continuous-bag-of-words",
   "term": "CBOW",
   "en": "continuous bag of words",
   "def": "Режим word2vec: предсказать центральное слово по «мешку» его соседей. Быстрее skip-gram, но хуже справляется с редкими словами.",
   "category": "language-models",
   "topics": [
    {
     "id": "embeddings",
     "title": "Эмбеддинги и word2vec"
    }
   ]
  },
  {
   "slug": "classifier-free-guidance",
   "term": "CFG",
   "en": "classifier-free guidance",
   "def": "Управление диффузией: на каждом шаге модель делает предсказание с промптом и без, итог экстраполируется в сторону условного. Больше сила — точнее следование промпту, перебор «пережаривает» картинку.",
   "category": "multimodal",
   "topics": [
    {
     "id": "diffusion-models",
     "title": "Диффузионные модели: как рисует Stable Diffusion"
    }
   ]
  },
  {
   "slug": "chain-of-thought",
   "term": "Chain-of-thought",
   "en": "chain-of-thought",
   "def": "Приём «думай пошагово»: модель пишет промежуточные шаги рассуждения перед ответом. Каждый токен — дополнительный компьют, а записанные шаги работают рабочей памятью для следующих.",
   "category": "llm",
   "topics": [
    {
     "id": "reasoning-models",
     "title": "Reasoning-модели и test-time compute"
    }
   ]
  },
  {
   "slug": "chat-template",
   "term": "Chat-шаблон",
   "en": "chat template",
   "def": "Формат оборачивания реплик диалога спецтокенами (например, ChatML), размечающий роли и границы ходов так, как модель видела при обучении. Склейка реплик простым текстом заметно роняет качество.",
   "category": "llm",
   "topics": [
    {
     "id": "context-engineering",
     "title": "Работа с контекстом и разметка сообщений"
    }
   ]
  },
  {
   "slug": "chinchilla-optimal-training",
   "term": "Chinchilla-оптимум",
   "en": "chinchilla-optimal training",
   "def": "Вывод работы Chinchilla: при фиксированном бюджете компьюта параметры и токены надо растить вместе, примерно по 20 токенов на параметр. Продакшн-модели часто сознательно «перетренировывают» ради дешёвого инференса.",
   "category": "llm",
   "topics": [
    {
     "id": "pretraining",
     "title": "Претрейнинг и scaling laws"
    }
   ]
  },
  {
   "slug": "contrastive-language-image-pretraining",
   "term": "CLIP",
   "en": "contrastive language-image pretraining",
   "def": "Модель, обученная контрастивно на сотнях миллионов пар «картинка–подпись»: эмбеддинги изображений и текстов живут в общем пространстве, что даёт zero-shot классификацию.",
   "category": "multimodal",
   "topics": [
    {
     "id": "multimodal-llm",
     "title": "Как LLM видят изображения"
    }
   ]
  },
  {
   "slug": "cloud-bursting",
   "term": "Cloud bursting",
   "en": "cloud bursting",
   "def": "Гибридная схема размещения: базовая стабильная нагрузка обслуживается собственным железом, а пики трафика отдаются в облако.",
   "category": "infra",
   "topics": [
    {
     "id": "local-vs-saas",
     "title": "Локальные модели против SaaS и API"
    }
   ]
  },
  {
   "slug": "convolutional-neural-network",
   "term": "CNN",
   "en": "convolutional neural network",
   "def": "Свёрточная нейросеть: архитектура для изображений, где маленькие ядра-детекторы скользят по картинке. Локальность и разделяемые веса дают экономию параметров и устойчивость к сдвигам.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "cnn",
     "title": "Свёрточные сети (CNN)"
    }
   ]
  },
  {
   "slug": "constrained-decoding",
   "term": "Constrained decoding",
   "en": "constrained decoding",
   "def": "Генерация с маскированием токенов, нарушающих заданную грамматику или схему. Так модель гарантированно выдаёт синтаксически валидный формат, например JSON для вызова инструмента.",
   "category": "agents",
   "topics": [
    {
     "id": "tool-calling",
     "title": "Tool calling: как модель вызывает инструменты"
    },
    {
     "id": "prompt-patterns",
     "title": "Промпт-паттерны и structured outputs"
    }
   ]
  },
  {
   "slug": "contextual-retrieval",
   "term": "Contextual retrieval",
   "en": "contextual retrieval",
   "def": "Обогащение чанков: LLM читает весь документ и дописывает к каждому фрагменту одно-два предложения контекста — откуда он и о чём. Дороже на индексации, но заметно поднимает точность поиска.",
   "category": "rag",
   "topics": [
    {
     "id": "chunking",
     "title": "Чанкинг и подготовка данных"
    }
   ]
  },
  {
   "slug": "continuous-batching",
   "term": "Continuous batching",
   "en": "continuous batching",
   "def": "Серверный батчинг, при котором запросы входят и выходят из батча на каждом шаге генерации, не дожидаясь самого длинного ответа. Заметно повышает пропускную способность GPU.",
   "category": "llm",
   "topics": [
    {
     "id": "inference",
     "title": "Инференс: KV-cache, квантизация, спекулятивный декодинг"
    }
   ]
  },
  {
   "slug": "convolutional-recurrent-neural-network",
   "term": "CRNN",
   "en": "convolutional recurrent neural network",
   "def": "Сеть для распознавания строки текста: свёртки превращают строку в последовательность кадров-признаков, рекуррентный слой читает её, а CTC-лосс выравнивает кадры с буквами без посимвольной сегментации.",
   "category": "multimodal",
   "topics": [
    {
     "id": "ocr",
     "title": "OCR: от классики до распознавания через LLM"
    }
   ]
  },
  {
   "slug": "cross-encoder",
   "term": "Cross-encoder",
   "en": "cross-encoder",
   "def": "Модель, читающая пару «запрос плюс документ» целиком одним проходом и выдающая точный скор релевантности. На порядки дороже bi-encoder, поэтому применяется только к топу выдачи.",
   "category": "rag",
   "topics": [
    {
     "id": "hybrid-rerank",
     "title": "Гибридный поиск и реранкинг"
    }
   ]
  },
  {
   "slug": "connectionist-temporal-classification",
   "term": "CTC",
   "en": "connectionist temporal classification",
   "def": "Лосс для распознавания речи, решающий проблему выравнивания без разметки границ звуков: модель предсказывает букву или пустой токен на каждый кадр, повторы схлопываются, blank выбрасывается.",
   "category": "multimodal",
   "topics": [
    {
     "id": "audio-models",
     "title": "Звук: распознавание и синтез речи"
    }
   ]
  },
  {
   "slug": "dark-knowledge",
   "term": "Dark knowledge",
   "en": "dark knowledge",
   "def": "Термин Хинтона: структура малых вероятностей в предсказаниях учителя, кодирующая его понимание мира. Именно это «тёмное знание» перенимает ученик при дистилляции на мягких метках.",
   "category": "llm",
   "topics": [
    {
     "id": "distillation",
     "title": "Дистилляция и сжатие моделей"
    }
   ]
  },
  {
   "slug": "data-parallelism",
   "term": "Data parallelism",
   "en": "data parallelism",
   "def": "Параллелизм по данным: на каждой GPU полная копия модели, батчи разные; градиенты усредняются операцией all-reduce на каждом шаге. Ускоряет обучение почти линейно, но память не экономит.",
   "category": "infra",
   "topics": [
    {
     "id": "distributed-training",
     "title": "Распределённое обучение: DP, TP, PP и ZeRO"
    }
   ]
  },
  {
   "slug": "density-based-spatial-clustering-of-applications-with-noise",
   "term": "DBSCAN",
   "en": "density-based spatial clustering of applications with noise",
   "def": "Плотностная кластеризация: растит кластеры из плотных областей, сама определяет их число и помечает выбросы как шум. Справляется с невыпуклыми формами, на которых k-means ломается.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "clustering-knn",
     "title": "kNN и кластеризация"
    }
   ]
  },
  {
   "slug": "discounted-cumulative-gain",
   "term": "DCG",
   "en": "discounted cumulative gain",
   "def": "Сумма выигрышей документов топ-k с дисконтом по позиции: чем ниже позиция, тем больше делитель log2(i+1), поэтому релевантное внизу приносит мало пользы.",
   "category": "production",
   "topics": [
    {
     "id": "learning-to-rank",
     "title": "Ранжирование: learning-to-rank"
    }
   ]
  },
  {
   "slug": "denoising-diffusion-implicit-models",
   "term": "DDIM",
   "en": "denoising diffusion implicit models",
   "def": "Детерминированный сэмплер диффузии, позволяющий шагать крупнее: 20–50 шагов расшумления вместо тысячи, без переобучения модели.",
   "category": "multimodal",
   "topics": [
    {
     "id": "diffusion-models",
     "title": "Диффузионные модели: как рисует Stable Diffusion"
    }
   ]
  },
  {
   "slug": "decode",
   "term": "Decode",
   "en": "decode",
   "def": "Фаза генерации: по одному токену за шаг, ради каждого через чип гонятся все веса модели и весь KV-cache. Упирается не в арифметику, а в пропускную способность памяти — и определяет скорость генерации.",
   "category": "llm",
   "topics": [
    {
     "id": "inference",
     "title": "Инференс: KV-cache, квантизация, спекулятивный декодинг"
    }
   ]
  },
  {
   "slug": "diffusion-transformer",
   "term": "DiT",
   "en": "diffusion transformer",
   "def": "Диффузионный трансформер: замена U-Net на трансформер над патчами латента. Лучше масштабируется и стал стандартом новых моделей генерации изображений и видео.",
   "category": "multimodal",
   "topics": [
    {
     "id": "diffusion-models",
     "title": "Диффузионные модели: как рисует Stable Diffusion"
    }
   ]
  },
  {
   "slug": "direct-preference-optimization",
   "term": "DPO",
   "en": "direct preference optimization",
   "def": "Метод выравнивания без RL: оптимум RLHF-задачи выражается аналитически, и политика обучается напрямую на парах предпочтений обычным supervised-лоссом — без reward model, PPO и онлайн-генерации.",
   "category": "llm",
   "topics": [
    {
     "id": "alignment",
     "title": "Alignment: RLHF и DPO"
    }
   ]
  },
  {
   "slug": "dropout",
   "term": "Dropout",
   "en": "dropout",
   "def": "Регуляризация: при обучении каждый нейрон случайно выключается с заданной вероятностью, чтобы признаки стали избыточными. На инференсе выключен — отсюда различие режимов train и eval.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "training-practice",
     "title": "Практика обучения: батчи, dropout, batchnorm"
    }
   ]
  },
  {
   "slug": "expectation-step",
   "term": "E-шаг",
   "en": "Expectation step",
   "def": "Шаг EM, на котором при текущих параметрах модели для каждой точки пересчитываются ответственности — мягкие вероятности её принадлежности каждому кластеру.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "em-gmm",
     "title": "EM-алгоритм и смеси гауссиан (GMM)"
    }
   ]
  },
  {
   "slug": "elo-rating",
   "term": "Elo-рейтинг",
   "en": "elo rating",
   "def": "Рейтинг моделей из парных «дуэлей», как в шахматах: пользователи вслепую голосуют за лучший из двух анонимных ответов (LMArena), и миллионы сравнений сворачиваются в общий ранг.",
   "category": "llm",
   "topics": [
    {
     "id": "llm-evals",
     "title": "Оценка LLM: бенчмарки и LLM-as-judge"
    }
   ]
  },
  {
   "slug": "expectation-maximization",
   "term": "EM-алгоритм",
   "en": "Expectation-Maximization",
   "def": "Итеративная схема обучения моделей со скрытыми переменными: E-шаг при фиксированных параметрах считает ответственности, M-шаг при фиксированных ответственностях обновляет параметры. Каждый цикл не уменьшает правдоподобие.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "em-gmm",
     "title": "EM-алгоритм и смеси гауссиан (GMM)"
    }
   ]
  },
  {
   "slug": "f1-score",
   "term": "F1-мера",
   "en": "f1 score",
   "def": "Гармоническое среднее precision и recall: сворачивает обе метрики в одно число и жёстко штрафует сильный перекос в любую из сторон.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "metrics",
     "title": "Метрики качества"
    }
   ]
  },
  {
   "slug": "faiss",
   "term": "FAISS",
   "en": "faiss",
   "def": "Библиотека векторных индексов, работающая в памяти процесса без отдельного сервера. Максимум контроля и скорости, но персистентность, репликация и фильтры — забота разработчика.",
   "category": "rag",
   "topics": [
    {
     "id": "vector-databases",
     "title": "Векторные базы данных и их типы"
    }
   ]
  },
  {
   "slug": "faithfulness-groundedness",
   "term": "Faithfulness",
   "en": "faithfulness, groundedness",
   "def": "Метрика генерации в RAG: опирается ли ответ на переданный контекст или содержит выдуманные утверждения. Именно она ловит галлюцинации; обычно считается LLM-судьёй.",
   "category": "rag",
   "topics": [
    {
     "id": "rag-eval",
     "title": "Оценка качества RAG"
    }
   ]
  },
  {
   "slug": "few-shot-prompting",
   "term": "Few-shot",
   "en": "few-shot prompting",
   "def": "Включение в контекст нескольких пар «вход → эталонный выход»: примеры задают формат и стиль ответа мощнее словесных инструкций, потому что модель — машина продолжения паттернов.",
   "category": "llm",
   "topics": [
    {
     "id": "context-engineering",
     "title": "Работа с контекстом и разметка сообщений"
    }
   ]
  },
  {
   "slug": "fine-tuning",
   "term": "Fine-tuning",
   "en": "fine-tuning",
   "def": "Дообучение готовой LLM под конкретную задачу: стиль, формат, домен или манеру отвечать. Оправдан, когда промптинг и RAG уже исчерпаны, а нужен устойчивый специфичный результат на большом потоке запросов.",
   "category": "llm",
   "topics": [
    {
     "id": "finetuning",
     "title": "Fine-tuning: SFT, LoRA, PEFT"
    }
   ]
  },
  {
   "slug": "flash-attention",
   "term": "FlashAttention",
   "en": "flash attention",
   "def": "Точная реализация внимания с другим порядком вычислений: скоры считаются блоками в быстрой памяти GPU без материализации квадратной матрицы. Кратное ускорение и почти линейная память.",
   "category": "language-models",
   "topics": [
    {
     "id": "modern-architectures",
     "title": "Современные архитектуры: RoPE, MoE, GQA"
    }
   ]
  },
  {
   "slug": "flat-index",
   "term": "Flat-индекс",
   "en": "flat index",
   "def": "Точный перебор всех векторов при поиске: стопроцентная полнота, но линейная стоимость на каждый запрос. Годится для небольших баз и как эталон при измерении качества ANN-индексов.",
   "category": "rag",
   "topics": [
    {
     "id": "vector-databases",
     "title": "Векторные базы данных и их типы"
    }
   ]
  },
  {
   "slug": "forward-process",
   "term": "Forward-процесс",
   "en": "forward process",
   "def": "Прямой процесс диффузии: в картинку за много шагов постепенно замешивается гауссов шум по расписанию, пока не останется чистый шум. Так создаются обучающие пары для сети-расшумлятора.",
   "category": "multimodal",
   "topics": [
    {
     "id": "diffusion-models",
     "title": "Диффузионные модели: как рисует Stable Diffusion"
    }
   ]
  },
  {
   "slug": "frequency-penalty",
   "term": "Frequency penalty",
   "en": "frequency penalty",
   "def": "Штраф за повторы: логиты уже использованных токенов понижаются, и модели становится «дороже» ходить по кругу. Основное средство против зацикливания при генерации.",
   "category": "llm",
   "topics": [
    {
     "id": "sampling",
     "title": "Сэмплирование: temperature, top-k, top-p"
    }
   ]
  },
  {
   "slug": "fully-sharded-data-parallel",
   "term": "FSDP",
   "en": "fully sharded data parallel",
   "def": "Реализация идей ZeRO в PyTorch: веса, градиенты и состояния оптимизатора шардируются по GPU, а полные веса слоя собираются только на время его вычисления и сразу отбрасываются.",
   "category": "infra",
   "topics": [
    {
     "id": "distributed-training",
     "title": "Распределённое обучение: DP, TP, PP и ZeRO"
    }
   ]
  },
  {
   "slug": "generative-adversarial-network",
   "term": "GAN",
   "en": "generative adversarial network",
   "def": "Генеративно-состязательная сеть: генератор превращает шум в картинку, дискриминатор учится отличать настоящее от сгенерированного. Минимакс-игра даёт резкие картинки, но обучение нестабильно.",
   "category": "multimodal",
   "topics": [
    {
     "id": "vae-gan",
     "title": "VAE и GAN: генерация до диффузии"
    }
   ]
  },
  {
   "slug": "gaussian-error-linear-unit",
   "term": "GELU",
   "en": "gaussian error linear unit",
   "def": "Гладкая версия ReLU, взвешивающая вход по функции нормального распределения. Вместе с SiLU — стандартная активация FFN-блоков современных трансформеров.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "activations",
     "title": "Функции активации"
    }
   ]
  },
  {
   "slug": "graphics-processing-unit",
   "term": "GPU",
   "en": "graphics processing unit",
   "def": "Графический процессор: тысячи простых ядер, параллельно перемалывающих однотипную арифметику. Нейросети — потоки умножений матриц, поэтому на GPU они в десятки раз быстрее, чем на CPU.",
   "category": "infra",
   "topics": [
    {
     "id": "gpu-vram",
     "title": "Видеокарты и VRAM: железо для нейросетей"
    }
   ]
  },
  {
   "slug": "grouped-query-attention",
   "term": "GQA",
   "en": "grouped-query attention",
   "def": "Компромисс между обычным вниманием и MQA: запросные головы делятся на группы, каждая делит одну пару «ключ-значение». Сжимает KV-кэш в разы почти без потери качества; используется в Llama.",
   "category": "language-models",
   "topics": [
    {
     "id": "modern-architectures",
     "title": "Современные архитектуры: RoPE, MoE, GQA"
    }
   ]
  },
  {
   "slug": "grid-search",
   "term": "Grid search",
   "en": "grid search",
   "def": "Подбор гиперпараметров полным перебором по заданной сетке значений. Прост и воспроизводим, но число комбинаций растёт экспоненциально с числом гиперпараметров.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "cross-validation-tuning",
     "title": "Кросс-валидация и подбор гиперпараметров"
    }
   ]
  },
  {
   "slug": "gated-recurrent-unit",
   "term": "GRU",
   "en": "gated recurrent unit",
   "def": "Упрощённая альтернатива LSTM с двумя вентилями вместо трёх и без отдельной ячейки памяти. Быстрее, а по качеству обычно сопоставима.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "rnn",
     "title": "Рекуррентные сети (RNN, LSTM)"
    }
   ]
  },
  {
   "slug": "guardrail-metrics",
   "term": "Guardrail-метрики",
   "en": "guardrail metrics",
   "def": "Метрики-предохранители эксперимента, которые не должны просесть: латентность, жалобы, отток. Рост конверсии ценой удвоившейся задержки — не победа.",
   "category": "production",
   "topics": [
    {
     "id": "ab-testing",
     "title": "A/B-тесты и продуктовые метрики"
    }
   ]
  },
  {
   "slug": "guardrails",
   "term": "Guardrails",
   "en": "guardrails",
   "def": "Защитные механизмы вокруг LLM-приложения: модерационные классификаторы, валидация схем входов и выходов, ограничение тем и полномочий. Главное — что агент может сделать, а не что сказать.",
   "category": "production",
   "topics": [
    {
     "id": "safety-guardrails",
     "title": "Безопасность: guardrails и prompt injection"
    }
   ]
  },
  {
   "slug": "hard-negatives",
   "term": "Hard negatives",
   "en": "hard negatives",
   "def": "Похожие, но нерелевантные документы, которые майнят через BM25 или прошлую версию модели. Учат тонким различиям внутри темы; случайные негативы слишком лёгкие и почти не дают градиента.",
   "category": "rag",
   "topics": [
    {
     "id": "embedding-models",
     "title": "Эмбеддинг-модели: как их обучают"
    }
   ]
  },
  {
   "slug": "hierarchical-navigable-small-world",
   "term": "HNSW",
   "en": "hierarchical navigable small world",
   "def": "Многослойный граф-индекс для ANN: верхние слои — редкие «хайвеи» для дальних прыжков по пространству, нижние — плотные «улицы» для точной доводки. Быстрый и точный, но требует много памяти.",
   "category": "rag",
   "topics": [
    {
     "id": "vector-search",
     "title": "Векторный поиск и ANN-индексы"
    }
   ]
  },
  {
   "slug": "image-to-video",
   "term": "Image-to-video",
   "en": "image-to-video",
   "def": "Режим видео-генерации с кондиционированием на стартовый кадр: картинка фиксирует композицию и стиль, а модель дорисовывает согласованное движение.",
   "category": "multimodal",
   "topics": [
    {
     "id": "video-models",
     "title": "Видео-модели: генерация с временной согласованностью"
    }
   ]
  },
  {
   "slug": "in-batch-negatives",
   "term": "In-batch negatives",
   "en": "in-batch negatives",
   "def": "Приём контрастивного обучения: для каждого запроса негативами служат документы остальных пар того же батча — без отдельной разметки.",
   "category": "rag",
   "topics": [
    {
     "id": "embedding-models",
     "title": "Эмбеддинг-модели: как их обучают"
    }
   ]
  },
  {
   "slug": "infonce-loss",
   "term": "InfoNCE",
   "en": "infonce loss",
   "def": "Лосс контрастивного обучения: softmax-классификация «найди свой документ среди чужих в батче». Скор позитива тянется вверх относительно негативов, температура задаёт резкость распределения.",
   "category": "rag",
   "topics": [
    {
     "id": "embedding-models",
     "title": "Эмбеддинг-модели: как их обучают"
    }
   ]
  },
  {
   "slug": "interleaved-data",
   "term": "Interleaved-данные",
   "en": "interleaved data",
   "def": "Обучающие последовательности, где токены разных модальностей чередуются в одном потоке — как текст со вставленными картинками на веб-странице. На них omni-модель учится связям между модальностями.",
   "category": "multimodal",
   "topics": [
    {
     "id": "omni-models",
     "title": "Omni-модели: все модальности в одной"
    }
   ]
  },
  {
   "slug": "inverted-file-index",
   "term": "IVF",
   "en": "inverted file index",
   "def": "ANN-индекс, в котором база заранее разбита на ячейки вокруг центроидов кластеризации. Поиск идёт только в нескольких ближайших ячейках; их число балансирует полноту и скорость.",
   "category": "rag",
   "topics": [
    {
     "id": "vector-search",
     "title": "Векторный поиск и ANN-индексы"
    }
   ]
  },
  {
   "slug": "json-mode",
   "term": "JSON mode",
   "en": "json mode",
   "def": "Режим инференса у провайдера, при котором выход гарантированно является валидным JSON. Без схемы структура полей не фиксируется, а правильность значений не проверяется.",
   "category": "llm",
   "topics": [
    {
     "id": "prompt-patterns",
     "title": "Промпт-паттерны и structured outputs"
    }
   ]
  },
  {
   "slug": "json-schema",
   "term": "JSON-схема инструмента",
   "en": "json schema",
   "def": "Формальное описание параметров инструмента: имена аргументов, их типы и обязательность. По ней модель заполняет вызов, а код приложения валидирует аргументы перед исполнением.",
   "category": "agents",
   "topics": [
    {
     "id": "tool-calling",
     "title": "Tool calling: как модель вызывает инструменты"
    }
   ]
  },
  {
   "slug": "json-rpc-2-0",
   "term": "JSON-RPC",
   "en": "json-rpc 2.0",
   "def": "Формат сообщений протокола MCP: запросы вида «метод плюс параметры» поверх stdio для локальных серверов или HTTP/SSE для удалённых.",
   "category": "agents",
   "topics": [
    {
     "id": "mcp",
     "title": "MCP: стандарт подключения инструментов"
    }
   ]
  },
  {
   "slug": "k-fold-cross-validation",
   "term": "k-fold кросс-валидация",
   "en": "k-fold cross-validation",
   "def": "Данные делят на k частей и k раз обучаются на k−1 из них, проверяясь на оставшейся. Итог — среднее метрик и их разброс; каждая точка ровно один раз побывает в валидации.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "cross-validation-tuning",
     "title": "Кросс-валидация и подбор гиперпараметров"
    }
   ]
  },
  {
   "slug": "kl-penalty",
   "term": "KL-штраф",
   "en": "kl penalty",
   "def": "Слагаемое в лоссе RLHF, штрафующее политику за отход от исходной reference-модели. «Поводок», который не даёт модели выродиться, эксплуатируя дыры несовершенной reward model.",
   "category": "llm",
   "topics": [
    {
     "id": "alignment",
     "title": "Alignment: RLHF и DPO"
    },
    {
     "id": "vae-gan",
     "title": "VAE и GAN: генерация до диффузии"
    }
   ]
  },
  {
   "slug": "k-nearest-neighbors",
   "term": "kNN",
   "en": "k-nearest neighbors",
   "def": "Метод k ближайших соседей: класс нового объекта определяется голосованием меток k самых близких точек обучающей выборки, для регрессии значения усредняются. Обязательна нормализация признаков.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "clustering-knn",
     "title": "kNN и кластеризация"
    }
   ]
  },
  {
   "slug": "kv-kesh",
   "term": "KV-кэш",
   "en": "key-value cache",
   "def": "Кэш ключей и значений всех прошлых токенов при генерации, чтобы не пересчитывать их на каждом шаге. Растёт линейно с длиной контекста и на больших длинах съедает память GPU быстрее весов.",
   "category": "language-models",
   "topics": [
    {
     "id": "modern-architectures",
     "title": "Современные архитектуры: RoPE, MoE, GQA"
    }
   ]
  },
  {
   "slug": "key-value-cache",
   "term": "KV-cache",
   "en": "key-value cache",
   "def": "Кэш ключей и значений внимания всех обработанных токенов: они не меняются, поэтому пересчитывать их не нужно. Снижает стоимость шага генерации с квадратичной до линейной, но память растёт линейно с контекстом.",
   "category": "llm",
   "topics": [
    {
     "id": "inference",
     "title": "Инференс: KV-cache, квантизация, спекулятивный декодинг"
    }
   ]
  },
  {
   "slug": "lasso",
   "term": "L1-регуляризация",
   "en": "lasso",
   "def": "Штраф в виде суммы модулей весов: из-за «острого угла» модуля в нуле выталкивает часть весов ровно в ноль, за счёт чего работает как встроенный отбор признаков.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "overfitting-regularization",
     "title": "Переобучение и регуляризация"
    }
   ]
  },
  {
   "slug": "ridge",
   "term": "L2-регуляризация",
   "en": "ridge",
   "def": "Штраф в виде суммы квадратов весов: равномерно прижимает все веса к нулю, не обнуляя их. Гладкая и удобная для оптимизации, стабилизирует модель при скоррелированных признаках.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "overfitting-regularization",
     "title": "Переобучение и регуляризация"
    }
   ]
  },
  {
   "slug": "latent-diffusion-model",
   "term": "Latent diffusion",
   "en": "latent diffusion model",
   "def": "Диффузия не в пикселях, а в компактном латенте VAE: энкодер сжимает картинку в десятки раз, расшумление идёт в латенте, декодер возвращает пиксели. Основа Stable Diffusion.",
   "category": "multimodal",
   "topics": [
    {
     "id": "diffusion-models",
     "title": "Диффузионные модели: как рисует Stable Diffusion"
    }
   ]
  },
  {
   "slug": "learning-to-rank-ltr",
   "term": "Learning-to-rank",
   "en": "learning to rank, LTR",
   "def": "Обучение модели упорядочивать документы под запрос. В отличие от регрессии, важен относительный порядок внутри запроса, а не абсолютная величина скора.",
   "category": "production",
   "topics": [
    {
     "id": "learning-to-rank",
     "title": "Ранжирование: learning-to-rank"
    }
   ]
  },
  {
   "slug": "leave-one-out-loo",
   "term": "Leave-one-out",
   "en": "leave-one-out (LOO)",
   "def": "Крайний случай кросс-валидации, где число фолдов равно числу объектов: каждый объект по очереди служит валидацией. Оценка почти несмещённая, но вычислительно дорогая и с большим разбросом.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "cross-validation-tuning",
     "title": "Кросс-валидация и подбор гиперпараметров"
    }
   ]
  },
  {
   "slug": "length-bias",
   "term": "Length bias",
   "en": "length bias",
   "def": "Предвзятость LLM-судьи: любовь к длинным, развёрнутым ответам, даже водянистым. Из-за неё раздувание текста выглядит как рост качества; проверяется корреляцией вердиктов с длиной ответа.",
   "category": "llm",
   "topics": [
    {
     "id": "llm-evals",
     "title": "Оценка LLM: бенчмарки и LLM-as-judge"
    }
   ]
  },
  {
   "slug": "listwise",
   "term": "Listwise-подход",
   "en": "listwise",
   "def": "Семейство LTR, оптимизирующее метрику всего списка целиком. LambdaMART (бустинг плюс лямбды под NDCG) — рабочая лошадка индустрии; ListNet сравнивает распределения перестановок.",
   "category": "production",
   "topics": [
    {
     "id": "learning-to-rank",
     "title": "Ранжирование: learning-to-rank"
    }
   ]
  },
  {
   "slug": "llm-as-judge",
   "term": "LLM-as-judge",
   "en": "llm-as-judge",
   "def": "Оценка ответов сильной LLM вместо людей: судья получает вопрос, пару ответов и рубрику, выдаёт вердикт. Дёшево и масштабируемо, но судья систематически предвзят и требует калибровки по человеческим вердиктам.",
   "category": "llm",
   "topics": [
    {
     "id": "llm-evals",
     "title": "Оценка LLM: бенчмарки и LLM-as-judge"
    }
   ]
  },
  {
   "slug": "logit-distillation",
   "term": "Logit-дистилляция",
   "en": "logit distillation",
   "def": "Классическая потокенная дистилляция LLM: ученик приближает распределение учителя над словарём на каждом шаге генерации. Требует общей токенизации и доступа к логитам учителя.",
   "category": "llm",
   "topics": [
    {
     "id": "distillation",
     "title": "Дистилляция и сжатие моделей"
    }
   ]
  },
  {
   "slug": "low-rank-adaptation",
   "term": "LoRA",
   "en": "low-rank adaptation",
   "def": "Метод дообучения: сдвиг весов представляют произведением двух узких матриц низкого ранга и учат только их. После обучения добавку вливают в исходные веса, поэтому инференс не замедляется.",
   "category": "llm",
   "topics": [
    {
     "id": "finetuning",
     "title": "Fine-tuning: SFT, LoRA, PEFT"
    }
   ]
  },
  {
   "slug": "lost-in-the-middle",
   "term": "Lost in the middle",
   "en": "lost in the middle",
   "def": "Эффект, при котором модель хуже использует информацию из середины длинного контекста, чем из его начала и конца. Поэтому «напихать всё в окно» — не стратегия управления памятью.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-memory",
     "title": "Память, планирование и мультиагентные системы"
    },
    {
     "id": "context-engineering",
     "title": "Работа с контекстом и разметка сообщений"
    }
   ]
  },
  {
   "slug": "long-short-term-memory",
   "term": "LSTM",
   "en": "long short-term memory",
   "def": "Рекуррентная архитектура с ячейкой памяти и тремя вентилями, управляющими записью, стиранием и чтением. Аддитивное обновление памяти позволяет градиенту течь на сотни шагов без затухания.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "rnn",
     "title": "Рекуррентные сети (RNN, LSTM)"
    }
   ]
  },
  {
   "slug": "maximization-step",
   "term": "M-шаг",
   "en": "Maximization step",
   "def": "Шаг EM, на котором при зафиксированных ответственностях обновляются параметры кластеров: центры, ковариации и веса пересчитываются как взвешенные средние по всем точкам.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "em-gmm",
     "title": "EM-алгоритм и смеси гауссиан (GMM)"
    }
   ]
  },
  {
   "slug": "mean-absolute-percentage-error",
   "term": "MAPE",
   "en": "mean absolute percentage error",
   "def": "Средняя абсолютная ошибка в процентах от фактического значения — удобно сравнивать ряды разного масштаба. Взрывается на рядах около нуля; тогда берут MAE или sMAPE.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "time-series",
     "title": "Временные ряды и прогнозирование"
    }
   ]
  },
  {
   "slug": "model-context-protocol",
   "term": "MCP",
   "en": "model context protocol",
   "def": "Открытый стандарт подключения LLM-приложений к инструментам и источникам данных: вместо N×M самодельных интеграций — N+M подключений к общему протоколу. Опубликован Anthropic в конце 2024 года.",
   "category": "agents",
   "topics": [
    {
     "id": "mcp",
     "title": "MCP: стандарт подключения инструментов"
    }
   ]
  },
  {
   "slug": "mcp-server",
   "term": "MCP-сервер",
   "en": "mcp server",
   "def": "Обёртка над источником возможностей — файловой системой, базой данных, браузером, — которая описывает свои инструменты по стандарту MCP. Любой совместимый клиент может ими пользоваться.",
   "category": "agents",
   "topics": [
    {
     "id": "mcp",
     "title": "MCP: стандарт подключения инструментов"
    }
   ]
  },
  {
   "slug": "memory-bandwidth-bound",
   "term": "Memory-bandwidth-bound",
   "en": "memory-bandwidth-bound",
   "def": "Режим, когда скорость упирается не в вычисления, а в перекачку данных: на каждый токен генерации через чип прогоняются все веса и кэш, а арифметики при этом мало.",
   "category": "infra",
   "topics": [
    {
     "id": "gpu-vram",
     "title": "Видеокарты и VRAM: железо для нейросетей"
    }
   ]
  },
  {
   "slug": "milestone-evaluation",
   "term": "Milestone-оценка",
   "en": "milestone evaluation",
   "def": "Частичный зачёт по чекпоинтам траектории: «нашёл нужный файл», «воспроизвёл баг», «написал фикс». На сложных задачах различает «почти решил» и «не понял задачу».",
   "category": "agents",
   "topics": [
    {
     "id": "agent-evals",
     "title": "Оценка агентов: pass@k и траектории"
    }
   ]
  },
  {
   "slug": "min-p-sampling",
   "term": "Min-p",
   "en": "min-p sampling",
   "def": "Отсечение хвоста относительно лидера: остаются токены с вероятностью не ниже заданной доли от максимальной. Ещё один адаптивный метод, популярный в open-source-инференсе.",
   "category": "llm",
   "topics": [
    {
     "id": "sampling",
     "title": "Сэмплирование: temperature, top-k, top-p"
    }
   ]
  },
  {
   "slug": "ml-system-design",
   "term": "ML system design",
   "en": "ml system design",
   "def": "Дисциплина и тип интервью: довести ML от продуктовой цели до работающей системы. Порядок — цель, метрики, данные, бейзлайн, модель, валидация, деплой, мониторинг; модель лишь пятый шаг из восьми.",
   "category": "production",
   "topics": [
    {
     "id": "ml-system-design",
     "title": "Дизайн ML-систем на собеседовании"
    }
   ]
  },
  {
   "slug": "maximal-marginal-relevance",
   "term": "MMR",
   "en": "maximal marginal relevance",
   "def": "Жадный отбор документов, на каждом шаге балансирующий близость к запросу и непохожесть на уже выбранные. Превращает «k копий лучшего ответа» в «k разных граней темы».",
   "category": "rag",
   "topics": [
    {
     "id": "mmr-diversity",
     "title": "MMR и разнообразие выдачи"
    }
   ]
  },
  {
   "slug": "modified-national-institute-of-standards-and-technology-data",
   "term": "MNIST",
   "en": "modified national institute of standards and technology database",
   "def": "Классический датасет из 70 тысяч рукописных цифр 28 на 28 пикселей — «hello world» компьютерного зрения и стандартная песочница для отладки пайплайна обучения.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "digits-mnist",
     "title": "Распознавание цифр из пикселей"
    }
   ]
  },
  {
   "slug": "mode-collapse",
   "term": "Mode collapse",
   "en": "mode collapse",
   "def": "Хроническая болезнь GAN: генератор находит несколько примеров, стабильно обманывающих дискриминатора, и выдаёт почти одно и то же на любые входы — разнообразие распределения потеряно.",
   "category": "multimodal",
   "topics": [
    {
     "id": "vae-gan",
     "title": "VAE и GAN: генерация до диффузии"
    }
   ]
  },
  {
   "slug": "mixture-of-experts",
   "term": "MoE",
   "en": "mixture of experts",
   "def": "Смесь экспертов: MLP-блок заменяется на несколько параллельных «экспертов», из которых роутер выбирает пару на каждый токен. Экономит вычисления, но память нужна под все параметры сразу.",
   "category": "language-models",
   "topics": [
    {
     "id": "modern-architectures",
     "title": "Современные архитектуры: RoPE, MoE, GQA"
    }
   ]
  },
  {
   "slug": "momentum",
   "term": "Momentum",
   "en": "momentum",
   "def": "Приём оптимизации, накапливающий экспоненциальное скользящее среднее градиентов — «скорость». Гасит колебания поперёк оврага и разгоняет движение вдоль него.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "optimizers",
     "title": "Оптимизаторы: SGD, Momentum, Adam"
    }
   ]
  },
  {
   "slug": "multi-query-attention",
   "term": "MQA",
   "en": "multi-query attention",
   "def": "Вариант внимания, где запросных голов много, а пара «ключ-значение» одна на всех: KV-кэш худеет в число голов раз, но качество заметно проседает.",
   "category": "language-models",
   "topics": [
    {
     "id": "modern-architectures",
     "title": "Современные архитектуры: RoPE, MoE, GQA"
    }
   ]
  },
  {
   "slug": "mean-reciprocal-rank",
   "term": "MRR",
   "en": "mean reciprocal rank",
   "def": "Средний обратный ранг первого релевантного результата по множеству запросов. Учитывает позицию: релевантный фрагмент на первом месте ценнее, чем на пятом.",
   "category": "rag",
   "topics": [
    {
     "id": "rag-eval",
     "title": "Оценка качества RAG"
    },
    {
     "id": "learning-to-rank",
     "title": "Ранжирование: learning-to-rank"
    }
   ]
  },
  {
   "slug": "mean-squared-error",
   "term": "MSE",
   "en": "mean squared error",
   "def": "Среднеквадратичная ошибка: средний квадрат разницы между предсказанием и правдой. Гладкая и удобная для оптимизации, сильнее штрафует большие промахи, поэтому чувствительна к выбросам.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "linear-regression",
     "title": "Линейная регрессия"
    }
   ]
  },
  {
   "slug": "massive-text-embedding-benchmark",
   "term": "MTEB",
   "en": "massive text embedding benchmark",
   "def": "Большой бенчмарк задач с эмбеддингами, по которому сравнивают и выбирают эмбеддинг-модели. Лишь ориентир: решает полнота поиска на золотом сете из собственных запросов и документов.",
   "category": "rag",
   "topics": [
    {
     "id": "embedding-models",
     "title": "Эмбеддинг-модели: как их обучают"
    }
   ]
  },
  {
   "slug": "n-gram",
   "term": "N-грамма",
   "en": "n-gram",
   "def": "Последовательность из n подряд идущих токенов; n-граммная модель предсказывает следующий токен по статистике таких цепочек в корпусе. С ростом n число контекстов растёт экспоненциально.",
   "category": "language-models",
   "topics": [
    {
     "id": "bigram-ngram",
     "title": "Биграммы и n-граммы"
    }
   ]
  },
  {
   "slug": "normalized-discounted-cumulative-gain",
   "term": "nDCG",
   "en": "normalized discounted cumulative gain",
   "def": "Метрика качества ранжирования, учитывающая позиции: релевантные результаты наверху списка дают больше очков, чем внизу. Используется в оценке поиска и рекомендаций.",
   "category": "rag",
   "topics": [
    {
     "id": "rag-eval",
     "title": "Оценка качества RAG"
    },
    {
     "id": "learning-to-rank",
     "title": "Ранжирование: learning-to-rank"
    }
   ]
  },
  {
   "slug": "near-duplicates",
   "term": "Near-дубликаты",
   "en": "near-duplicates",
   "def": "Почти совпадающие фрагменты корпуса, которые забивают топ выдачи перефразировками одного и того же. Отсеиваются MMR: документ, слишком похожий на уже выбранный, теряет ценность.",
   "category": "rag",
   "topics": [
    {
     "id": "mmr-diversity",
     "title": "MMR и разнообразие выдачи"
    }
   ]
  },
  {
   "slug": "next-token-prediction",
   "term": "Next token prediction",
   "en": "next token prediction",
   "def": "Базовая задача языковой модели: по началу текста предсказать распределение вероятностей следующего токена. Из этой «тупой» задачи при огромном масштабе вырастают все способности LLM.",
   "category": "llm",
   "topics": [
    {
     "id": "pretraining",
     "title": "Претрейнинг и scaling laws"
    }
   ]
  },
  {
   "slug": "nvlink",
   "term": "NVLink",
   "en": "nvlink",
   "def": "Быстрая шина для обмена данными между GPU внутри узла, в разы быстрее обычного PCIe. Необходима тензорному параллелизму, где карты обмениваются активациями на каждом слое.",
   "category": "infra",
   "topics": [
    {
     "id": "gpu-vram",
     "title": "Видеокарты и VRAM: железо для нейросетей"
    }
   ]
  },
  {
   "slug": "optical-character-recognition",
   "term": "OCR",
   "en": "optical character recognition",
   "def": "Распознавание текста на изображении: из пикселей — машиночитаемая строка. Три поколения инструментов: правила и шаблоны, свёрточные сети, мультимодальные LLM.",
   "category": "multimodal",
   "topics": [
    {
     "id": "ocr",
     "title": "OCR: от классики до распознавания через LLM"
    }
   ]
  },
  {
   "slug": "offloading",
   "term": "Offload",
   "en": "offloading",
   "def": "Выгрузка части слоёв модели из VRAM в оперативную память или на диск с подкачкой по мере надобности: модель запускается на слабом железе, но каждый выгруженный слой замедляет генерацию.",
   "category": "infra",
   "topics": [
    {
     "id": "gpu-vram",
     "title": "Видеокарты и VRAM: железо для нейросетей"
    }
   ]
  },
  {
   "slug": "natively-multimodal-model",
   "term": "Omni-модель",
   "en": "natively multimodal model",
   "def": "Модель, с претрейна обученная на перемешанных последовательностях токенов разных модальностей: единый трансформер принимает и генерирует текст, аудио и изображения как один поток.",
   "category": "multimodal",
   "topics": [
    {
     "id": "omni-models",
     "title": "Omni-модели: все модальности в одной"
    }
   ]
  },
  {
   "slug": "one-hot-vector",
   "term": "One-hot вектор",
   "en": "one-hot vector",
   "def": "Разреженное представление слова: вектор длиной со словарь с единицей на позиции слова и нулями в остальных. Геометрически бессмысленно: все слова равноудалены друг от друга.",
   "category": "language-models",
   "topics": [
    {
     "id": "embeddings",
     "title": "Эмбеддинги и word2vec"
    }
   ]
  },
  {
   "slug": "one-hot-encoding",
   "term": "One-hot кодирование",
   "en": "one-hot encoding",
   "def": "Кодирование категориального признака набором бинарных колонок — по одной на каждое возможное значение. Просто и безопасно, но взрывается на признаках с тысячами категорий.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "feature-engineering",
     "title": "Фичи и утечки данных (data leakage)"
    }
   ]
  },
  {
   "slug": "out-of-vocabulary",
   "term": "OOV",
   "en": "out-of-vocabulary",
   "def": "Проблема слов, отсутствующих в словаре токенизатора: в пословных словарях они превращались в бесполезный токен UNK. Подсловная и байтовая токенизации снимают её полностью.",
   "category": "language-models",
   "topics": [
    {
     "id": "tokenization",
     "title": "Токенизация и BPE"
    }
   ]
  },
  {
   "slug": "open-weight-model",
   "term": "Open-weight модель",
   "en": "open-weight model",
   "def": "Модель с опубликованными весами: её можно скачать, запустить на своём железе и дообучить — в отличие от проприетарной frontier-модели, доступной только через API провайдера.",
   "category": "infra",
   "topics": [
    {
     "id": "local-vs-saas",
     "title": "Локальные модели против SaaS и API"
    }
   ]
  },
  {
   "slug": "operational-expenditure",
   "term": "Opex",
   "en": "operational expenditure",
   "def": "Операционные затраты — регулярные платежи, например почасовая аренда GPU: гибко масштабируется вверх и вниз, но платить приходится и за простаивающие часы.",
   "category": "infra",
   "topics": [
    {
     "id": "local-vs-saas",
     "title": "Локальные модели против SaaS и API"
    }
   ]
  },
  {
   "slug": "p-value",
   "term": "P-value",
   "en": "p-value",
   "def": "Вероятность увидеть такую или ещё более экстремальную разницу между группами, если на самом деле эффекта нет. Это не вероятность того, что эффекта нет, — частая ловушка на собеседовании.",
   "category": "statistics",
   "topics": [
    {
     "id": "ab-testing",
     "title": "A/B-тесты и продуктовые метрики"
    },
    {
     "id": "p-value",
     "title": "P-value и проверка гипотез"
    }
   ]
  },
  {
   "slug": "pagedattention",
   "term": "PagedAttention",
   "en": "pagedattention",
   "def": "Механизм vLLM: KV-cache хранится страницами, как виртуальная память ОС. Убирает фрагментацию памяти и позволяет держать в GPU намного больше параллельных запросов.",
   "category": "llm",
   "topics": [
    {
     "id": "inference",
     "title": "Инференс: KV-cache, квантизация, спекулятивный декодинг"
    }
   ]
  },
  {
   "slug": "pairwise",
   "term": "Pairwise-подход",
   "en": "pairwise",
   "def": "Семейство LTR, где модель учится для пары документов определять, какой релевантнее, минимизируя число инверсий. Классика — RankNet и LambdaRank.",
   "category": "production",
   "topics": [
    {
     "id": "learning-to-rank",
     "title": "Ранжирование: learning-to-rank"
    }
   ]
  },
  {
   "slug": "pass-at-1",
   "term": "pass@1",
   "en": "pass at 1",
   "def": "Доля задач, решённых агентом с первой попытки. Метрика пользовательского опыта: именно её видит человек, запустивший агента один раз.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-evals",
     "title": "Оценка агентов: pass@k и траектории"
    }
   ]
  },
  {
   "slug": "pass-at-k",
   "term": "pass@k",
   "en": "pass at k",
   "def": "Доля задач, решённых агентом хотя бы раз из k попыток. Показывает потолок способностей: решение в принципе достижимо, но не гарантировано в каждом прогоне.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-evals",
     "title": "Оценка агентов: pass@k и траектории"
    }
   ]
  },
  {
   "slug": "pass-hat-k",
   "term": "pass^k",
   "en": "pass hat k",
   "def": "Доля задач, решённых агентом во всех k прогонах подряд. Метрика надёжности для продакшна: агент, которому можно доверять без присмотра.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-evals",
     "title": "Оценка агентов: pass@k и траектории"
    }
   ]
  },
  {
   "slug": "principal-component-analysis",
   "term": "PCA",
   "en": "principal component analysis",
   "def": "Метод главных компонент: поворачивает систему координат так, чтобы максимум дисперсии собрался в первых осях, и отбрасывает остальные. Лучшее линейное сжатие по среднеквадратичной ошибке.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "dimensionality-pca",
     "title": "Снижение размерности и PCA"
    }
   ]
  },
  {
   "slug": "parameter-efficient-fine-tuning",
   "term": "PEFT",
   "en": "parameter-efficient fine-tuning",
   "def": "Семейство методов дообучения, при которых базовая модель заморожена, а обучается лишь небольшая добавка параметров — доли процента от всех весов. Самый популярный представитель — LoRA.",
   "category": "llm",
   "topics": [
    {
     "id": "finetuning",
     "title": "Fine-tuning: SFT, LoRA, PEFT"
    }
   ]
  },
  {
   "slug": "pgvector",
   "term": "pgvector",
   "en": "pgvector",
   "def": "Расширение PostgreSQL, добавляющее вектор-колонку и ANN-индекс в обычную базу. Лучший старт до миллиона векторов, если Postgres уже в стеке: одна система, транзакции, привычные бэкапы.",
   "category": "rag",
   "topics": [
    {
     "id": "vector-databases",
     "title": "Векторные базы данных и их типы"
    }
   ]
  },
  {
   "slug": "pipeline-bubble",
   "term": "Pipeline bubble",
   "en": "pipeline bubble",
   "def": "Простой стадий конвейера при pipeline parallelism: в начале шага последние стадии ждут данных, в конце первые уже закончили. Лечится разбиением батча на много микробатчей.",
   "category": "infra",
   "topics": [
    {
     "id": "distributed-training",
     "title": "Распределённое обучение: DP, TP, PP и ZeRO"
    }
   ]
  },
  {
   "slug": "pipeline-parallelism",
   "term": "Pipeline parallelism",
   "en": "pipeline parallelism",
   "def": "Разрез модели «вдоль»: разным GPU достаются разные группы слоёв, данные идут по конвейеру, между стадиями передаются только активации. Плата — пузырь простоя в начале и конце шага.",
   "category": "infra",
   "topics": [
    {
     "id": "distributed-training",
     "title": "Распределённое обучение: DP, TP, PP и ZeRO"
    }
   ]
  },
  {
   "slug": "pointwise",
   "term": "Pointwise-подход",
   "en": "pointwise",
   "def": "Семейство LTR, где релевантность каждого документа предсказывается по отдельности обычной регрессией или классификацией, а список сортируется по предсказанию. Просто, но лосс игнорирует порядок.",
   "category": "production",
   "topics": [
    {
     "id": "learning-to-rank",
     "title": "Ранжирование: learning-to-rank"
    }
   ]
  },
  {
   "slug": "policy-gradient",
   "term": "Policy gradient",
   "en": "policy gradient",
   "def": "Семейство методов, напрямую параметризующих политику π_θ и сдвигающих её веса в сторону большей отдачи. Базовый REINFORCE повышает вероятности действий из удачных эпизодов; актор-критик снижает дисперсию опорой.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "reinforcement-learning",
     "title": "Обучение с подкреплением: Q-learning и PPO"
    }
   ]
  },
  {
   "slug": "position-bias-2",
   "term": "Position bias",
   "en": "position bias",
   "def": "Предвзятость LLM-судьи: склонность выбирать ответ, показанный первым или последним, независимо от содержания. Ловится контрольным прогоном каждой пары с переставленными местами A и B.",
   "category": "llm",
   "topics": [
    {
     "id": "llm-evals",
     "title": "Оценка LLM: бенчмарки и LLM-as-judge"
    }
   ]
  },
  {
   "slug": "proximal-policy-optimization",
   "term": "PPO",
   "en": "proximal policy optimization",
   "def": "Алгоритм обучения с подкреплением, стандартный для RL-этапа RLHF: модель генерирует ответы, reward model их оценивает, и веса обновляются так, чтобы награда росла. Капризен к гиперпараметрам и дорог.",
   "category": "llm",
   "topics": [
    {
     "id": "alignment",
     "title": "Alignment: RLHF и DPO"
    },
    {
     "id": "reinforcement-learning",
     "title": "Обучение с подкреплением: Q-learning и PPO"
    }
   ]
  },
  {
   "slug": "product-quantization",
   "term": "PQ",
   "en": "product quantization",
   "def": "Сжатие векторов для ANN-индексов: вектор режется на части, каждая кодируется номером ближайшего эталона из маленького словаря. Память падает в десятки раз при небольшой потере точности.",
   "category": "rag",
   "topics": [
    {
     "id": "vector-search",
     "title": "Векторный поиск и ANN-индексы"
    }
   ]
  },
  {
   "slug": "precision-at-k",
   "term": "Precision@k",
   "en": "precision at k",
   "def": "Доля действительно релевантных среди k подтянутых фрагментов. Показывает, сколько мусора едет в контекст модели вместе с полезным.",
   "category": "rag",
   "topics": [
    {
     "id": "rag-eval",
     "title": "Оценка качества RAG"
    }
   ]
  },
  {
   "slug": "prefill",
   "term": "Prefill",
   "en": "prefill",
   "def": "Фаза инференса, обрабатывающая промпт: все его токены известны заранее и прогоняются через модель параллельно одной матричной операцией. Быстрая, ограничена вычислениями; определяет время до первого токена.",
   "category": "llm",
   "topics": [
    {
     "id": "inference",
     "title": "Инференс: KV-cache, квантизация, спекулятивный декодинг"
    }
   ]
  },
  {
   "slug": "prompt-injection",
   "term": "Prompt injection",
   "en": "prompt injection",
   "def": "Вредоносные инструкции, спрятанные в данных — письме, веб-странице, результате вызова инструмента, — которые перехватывают управление моделью. Пользователь при этом жертва, атакует автор контента.",
   "category": "production",
   "topics": [
    {
     "id": "safety-guardrails",
     "title": "Безопасность: guardrails и prompt injection"
    }
   ]
  },
  {
   "slug": "population-stability-index",
   "term": "PSI",
   "en": "population stability index",
   "def": "Классическая метрика сдвига распределения: значения фичи разбивают на корзины и сравнивают доли в проде и в обучении. Ориентиры из кредитного скоринга: меньше 0.1 — спокойно, больше 0.2 — распределение уехало.",
   "category": "production",
   "topics": [
    {
     "id": "monitoring-drift",
     "title": "Мониторинг и дрифт данных"
    }
   ]
  },
  {
   "slug": "q-learning",
   "term": "Q-learning",
   "en": "Q-learning",
   "def": "Метод на основе ценности: учит Q(s,a) обновлением Q ← Q+α·[r+γ·max Q(s′,·)−Q] к цели Беллмана. Off-policy — обновляется по лучшему следующему действию, даже если реально сходил наугад.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "reinforcement-learning",
     "title": "Обучение с подкреплением: Q-learning и PPO"
    }
   ]
  },
  {
   "slug": "quantized-low-rank-adaptation",
   "term": "QLoRA",
   "en": "quantized low-rank adaptation",
   "def": "Вариант LoRA, где замороженная базовая модель квантуется в 4 бита, а адаптеры обучаются в обычной точности. Позволяет дообучать модели на 70 млрд параметров на одной GPU.",
   "category": "llm",
   "topics": [
    {
     "id": "finetuning",
     "title": "Fine-tuning: SFT, LoRA, PEFT"
    }
   ]
  },
  {
   "slug": "coefficient-of-determination",
   "term": "R²",
   "en": "coefficient of determination",
   "def": "Доля дисперсии целевой переменной, которую объясняет модель: единица — идеальное предсказание, ноль — не лучше, чем всегда предсказывать среднее значение.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "linear-regression",
     "title": "Линейная регрессия"
    }
   ]
  },
  {
   "slug": "retrieval-augmented-generation",
   "term": "RAG",
   "en": "retrieval-augmented generation",
   "def": "Паттерн, дающий LLM знания вне её весов: перед генерацией система находит в базе знаний релевантные фрагменты и подставляет их в промпт. Обновить знания — значит переиндексировать документы, а не переобучать модель.",
   "category": "rag",
   "topics": [
    {
     "id": "rag-basics",
     "title": "Что такое RAG и зачем он нужен"
    }
   ]
  },
  {
   "slug": "random-search",
   "term": "Random search",
   "en": "random search",
   "def": "Подбор гиперпараметров случайными пробами из заданных диапазонов. При том же бюджете пробует больше разных значений важного параметра, чем сетка, — эффективнее в многомерном пространстве (Бергстра, Бенжио).",
   "category": "ml-basics",
   "topics": [
    {
     "id": "cross-validation-tuning",
     "title": "Кросс-валидация и подбор гиперпараметров"
    }
   ]
  },
  {
   "slug": "radial-basis-function",
   "term": "RBF-ядро",
   "en": "radial basis function",
   "def": "Самое популярное ядро SVM: похожесть, экспоненциально падающая с расстоянием между точками. Параметр gamma задаёт радиус влияния точки; слишком большой — переобучение «островками».",
   "category": "ml-basics",
   "topics": [
    {
     "id": "svm-kernels",
     "title": "SVM и kernel trick"
    }
   ]
  },
  {
   "slug": "reasoning-and-acting",
   "term": "ReAct",
   "en": "reasoning and acting",
   "def": "Классическая формулировка агентного цикла: модель чередует рассуждение и действие — думает, вызывает инструмент, наблюдает результат и рассуждает снова.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-loop",
     "title": "Агентный цикл и критерий остановки"
    }
   ]
  },
  {
   "slug": "reasoning-model",
   "term": "Reasoning-модель",
   "en": "reasoning model",
   "def": "LLM, обученная через RL с проверяемыми наградами «думать» перед ответом: генерировать длинное рассуждение с декомпозицией, самопроверкой и откатами. Примеры: o1, DeepSeek R1, Claude с extended thinking.",
   "category": "llm",
   "topics": [
    {
     "id": "reasoning-models",
     "title": "Reasoning-модели и test-time compute"
    }
   ]
  },
  {
   "slug": "recall-at-k",
   "term": "Recall@k",
   "en": "recall at k",
   "def": "Доля вопросов, для которых релевантный фрагмент попал в топ-k выдачи. Главная метрика ретривера: если нужного чанка нет в контексте, генератор бессилен.",
   "category": "rag",
   "topics": [
    {
     "id": "rag-eval",
     "title": "Оценка качества RAG"
    }
   ]
  },
  {
   "slug": "rectified-linear-unit",
   "term": "ReLU",
   "en": "rectified linear unit",
   "def": "Активация, возвращающая ноль для отрицательного входа и сам вход для положительного. С ней глубокие сети впервые стали стабильно обучаться, но нейроны могут «умирать» в нулевой зоне.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "activations",
     "title": "Функции активации"
    }
   ]
  },
  {
   "slug": "reparameterization-trick",
   "term": "Reparameterization trick",
   "en": "reparameterization trick",
   "def": "Приём в VAE: сэмпл записывают как среднее плюс разброс, умноженный на стандартный шум. Случайность вынесена в отдельную переменную, и градиент проходит через параметры распределения.",
   "category": "multimodal",
   "topics": [
    {
     "id": "vae-gan",
     "title": "VAE и GAN: генерация до диффузии"
    }
   ]
  },
  {
   "slug": "reward-hacking",
   "term": "Reward hacking",
   "en": "reward hacking",
   "def": "Агент формально проходит проверку, взломав её: находит ответ в файлах тестов, ослабляет проверку или подгоняет вывод под грейдер. Подозрительно резкий рост метрики — повод читать траектории.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-evals",
     "title": "Оценка агентов: pass@k и траектории"
    },
    {
     "id": "alignment",
     "title": "Alignment: RLHF и DPO"
    }
   ]
  },
  {
   "slug": "reward-model",
   "term": "Reward model",
   "en": "reward model",
   "def": "Отдельная модель-судья в RLHF: обучается на парных сравнениях разметчиков и выдаёт число-награду за ответ. Это несовершенный прокси предпочтений, поэтому её нельзя оптимизировать без ограничений.",
   "category": "llm",
   "topics": [
    {
     "id": "alignment",
     "title": "Alignment: RLHF и DPO"
    }
   ]
  },
  {
   "slug": "reinforcement-learning-from-ai-feedback",
   "term": "RLAIF",
   "en": "reinforcement learning from ai feedback",
   "def": "Замена человеческой разметки в RLHF на ИИ-фидбек: пары ответов сравнивает сильная модель. Вариант — Constitutional AI, где модель критикует свои ответы по явному списку принципов.",
   "category": "llm",
   "topics": [
    {
     "id": "alignment",
     "title": "Alignment: RLHF и DPO"
    }
   ]
  },
  {
   "slug": "reinforcement-learning-from-human-feedback",
   "term": "RLHF",
   "en": "reinforcement learning from human feedback",
   "def": "Конвейер выравнивания из трёх шагов: SFT, обучение reward model на человеческих сравнениях ответов и RL (обычно PPO), где политика максимизирует награду с KL-штрафом за отход от исходной модели.",
   "category": "llm",
   "topics": [
    {
     "id": "alignment",
     "title": "Alignment: RLHF и DPO"
    }
   ]
  },
  {
   "slug": "reinforcement-learning-with-verifiable-rewards",
   "term": "RLVR",
   "en": "reinforcement learning with verifiable rewards",
   "def": "Обучение с подкреплением, где награда — объективная проверка: сошёлся ли ответ по математике, прошли ли тесты код. Такую награду нельзя «взломать» красивым, но неверным текстом; двигатель reasoning-моделей.",
   "category": "llm",
   "topics": [
    {
     "id": "reasoning-models",
     "title": "Reasoning-модели и test-time compute"
    }
   ]
  },
  {
   "slug": "root-mean-square-normalization",
   "term": "RMSNorm",
   "en": "root mean square normalization",
   "def": "Упрощённая нормализация: только приведение масштаба вектора, без вычитания среднего. Проще и быстрее LayerNorm; стандарт современных LLM.",
   "category": "language-models",
   "topics": [
    {
     "id": "modern-architectures",
     "title": "Современные архитектуры: RoPE, MoE, GQA"
    }
   ]
  },
  {
   "slug": "root-mean-square-propagation",
   "term": "RMSProp",
   "en": "root mean square propagation",
   "def": "Оптимизатор с адаптивным шагом: делит обновление на корень скользящего среднего квадратов градиента, выравнивая масштаб шага у параметров с разными по величине градиентами.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "optimizers",
     "title": "Оптимизаторы: SGD, Momentum, Adam"
    }
   ]
  },
  {
   "slug": "recurrent-neural-network",
   "term": "RNN",
   "en": "recurrent neural network",
   "def": "Рекуррентная сеть: обрабатывает последовательность шаг за шагом, храня «конспект» прочитанного в скрытом состоянии. Один и тот же слой с общими весами применяется на каждом шаге.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "rnn",
     "title": "Рекуррентные сети (RNN, LSTM)"
    }
   ]
  },
  {
   "slug": "receiver-operating-characteristic-curve",
   "term": "ROC-кривая",
   "en": "receiver operating characteristic curve",
   "def": "График доли пойманных позитивов против доли ложных тревог при всех порогах сразу. Идеальная модель прижимается к левому верхнему углу, случайная идёт по диагонали.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "metrics",
     "title": "Метрики качества"
    }
   ]
  },
  {
   "slug": "rotary-position-embedding",
   "term": "RoPE",
   "en": "rotary position embedding",
   "def": "Позиционное кодирование вращением векторов запросов и ключей на угол, пропорциональный позиции: их скалярное произведение зависит только от относительного сдвига токенов. Основа удлинения контекста.",
   "category": "language-models",
   "topics": [
    {
     "id": "modern-architectures",
     "title": "Современные архитектуры: RoPE, MoE, GQA"
    }
   ]
  },
  {
   "slug": "reciprocal-rank-fusion",
   "term": "RRF",
   "en": "reciprocal rank fusion",
   "def": "Слияние ранжированных списков по позициям документов, а не по скорам: чем выше документ в каждом списке, тем больше очков. Не требует калибровки несравнимых шкал BM25 и косинусной близости.",
   "category": "rag",
   "topics": [
    {
     "id": "hybrid-rerank",
     "title": "Гибридный поиск и реранкинг"
    }
   ]
  },
  {
   "slug": "scaling-laws",
   "term": "Scaling laws",
   "en": "scaling laws",
   "def": "Эмпирические степенные законы: лосс модели предсказуемо падает с ростом параметров, данных и компьюта. Позволяют по дешёвым маленьким прогонам заранее выбрать оптимальный размер большой модели.",
   "category": "llm",
   "topics": [
    {
     "id": "pretraining",
     "title": "Претрейнинг и scaling laws"
    }
   ]
  },
  {
   "slug": "scratchpad",
   "term": "Scratchpad",
   "en": "scratchpad",
   "def": "Внешний файл-блокнот агента для находок, решений и списка дел. Живёт вне контекстного окна, поэтому переживает компакцию и переполнение — это долговременная память агента.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-memory",
     "title": "Память, планирование и мультиагентные системы"
    }
   ]
  },
  {
   "slug": "self-consistency",
   "term": "Self-consistency",
   "en": "self-consistency",
   "def": "Параллельное test-time compute: модель сэмплирует несколько независимых цепочек рассуждений, и ответ выбирается большинством голосов — верные решения сходятся к одному ответу чаще, чем ошибки.",
   "category": "llm",
   "topics": [
    {
     "id": "reasoning-models",
     "title": "Reasoning-модели и test-time compute"
    }
   ]
  },
  {
   "slug": "self-hosted",
   "term": "Self-hosted",
   "en": "self-hosted",
   "def": "Запуск модели на собственном железе: данные не покидают периметр, есть полный контроль и свой файнтюн, а затраты капитальные — выгодно при большом стабильном потоке запросов.",
   "category": "infra",
   "topics": [
    {
     "id": "local-vs-saas",
     "title": "Локальные модели против SaaS и API"
    }
   ]
  },
  {
   "slug": "self-preference-bias",
   "term": "Self-preference bias",
   "en": "self-preference bias",
   "def": "Предвзятость LLM-судьи: завышение оценок ответам, похожим на его собственный стиль, особенно ответам своей же модели. Поэтому модель не судят судьёй того же семейства.",
   "category": "llm",
   "topics": [
    {
     "id": "llm-evals",
     "title": "Оценка LLM: бенчмарки и LLM-as-judge"
    }
   ]
  },
  {
   "slug": "sentencepiece",
   "term": "SentencePiece",
   "en": "sentencepiece",
   "def": "Токенизатор, работающий с сырой строкой без предварительного деления по пробелам — пробел считается обычным символом. Удобен для языков без пробелов, например японского.",
   "category": "language-models",
   "topics": [
    {
     "id": "tokenization",
     "title": "Токенизация и BPE"
    }
   ]
  },
  {
   "slug": "sequence-level-distillation",
   "term": "Sequence-level дистилляция",
   "en": "sequence-level distillation",
   "def": "Дистилляция LLM через данные: учитель генерирует ответы и цепочки рассуждений, а ученик дообучается на них обычным SFT. Так рассуждения DeepSeek R1 перенесли в модели размера 7B.",
   "category": "llm",
   "topics": [
    {
     "id": "distillation",
     "title": "Дистилляция и сжатие моделей"
    }
   ]
  },
  {
   "slug": "supervised-fine-tuning",
   "term": "SFT",
   "en": "supervised fine-tuning",
   "def": "Дообучение модели на парах «промпт → эталонный ответ» тем же предсказанием следующего токена, но лосс считается только по токенам ответа: модель учат отвечать, а не воспроизводить вопросы.",
   "category": "llm",
   "topics": [
    {
     "id": "finetuning",
     "title": "Fine-tuning: SFT, LoRA, PEFT"
    }
   ]
  },
  {
   "slug": "stochastic-gradient-descent",
   "term": "SGD",
   "en": "stochastic gradient descent",
   "def": "Стохастический градиентный спуск: градиент оценивается не по всему датасету, а по одному примеру или небольшому мини-батчу. Шаги шумные, но дешёвые; шум помогает выскакивать из плохих минимумов.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "gradient-descent",
     "title": "Градиентный спуск"
    },
    {
     "id": "optimizers",
     "title": "Оптимизаторы: SGD, Momentum, Adam"
    }
   ]
  },
  {
   "slug": "shadow-mode",
   "term": "Shadow mode",
   "en": "shadow mode",
   "def": "Теневой запуск: новая модель получает реальный трафик и пишет предсказания в лог, но пользователям их не показывает. Позволяет сравнить поведение моделей без риска перед A/B-тестом.",
   "category": "production",
   "topics": [
    {
     "id": "monitoring-drift",
     "title": "Мониторинг и дрифт данных"
    }
   ]
  },
  {
   "slug": "skip-gram",
   "term": "Skip-gram",
   "en": "skip-gram",
   "def": "Режим word2vec: по центральному слову предсказать слова-соседи в окне. Работает для редких слов лучше, чем обратный режим CBOW.",
   "category": "language-models",
   "topics": [
    {
     "id": "embeddings",
     "title": "Эмбеддинги и word2vec"
    }
   ]
  },
  {
   "slug": "softmax",
   "term": "Softmax",
   "en": "softmax",
   "def": "Обобщение сигмоиды на много классов: превращает произвольные числа-скоры в распределение вероятностей — все положительны и в сумме дают единицу. Стоит в выходном слое классификаторов и LLM.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "logistic-regression",
     "title": "Логистическая регрессия и классификация"
    },
    {
     "id": "activations",
     "title": "Функции активации"
    }
   ]
  },
  {
   "slug": "sample-ratio-mismatch",
   "term": "SRM",
   "en": "sample ratio mismatch",
   "def": "Расхождение фактического деления трафика с ожидаемым — 52/48 вместо 50/50. Значит, рандомизация сломана (баг трекинга, фильтрация ботов), и результатам верить нельзя при любом p-value.",
   "category": "production",
   "topics": [
    {
     "id": "ab-testing",
     "title": "A/B-тесты и продуктовые метрики"
    }
   ]
  },
  {
   "slug": "state-space-model",
   "term": "SSM",
   "en": "state space model",
   "def": "Модели пространства состояний (например, Mamba) — современные линейные рекуррентные сети: дешёвый пошаговый инференс как у RNN при параллельном обучении как у трансформера.",
   "category": "neural-nets",
   "topics": [
    {
     "id": "rnn",
     "title": "Рекуррентные сети (RNN, LSTM)"
    }
   ]
  },
  {
   "slug": "structured-extraction",
   "term": "Structured extraction",
   "en": "structured extraction",
   "def": "Извлечение структурированных полей из документа («номер счёта», «сумма», «дата») сразу в машиночитаемом виде — типичная задача для чтения документов мультимодальной LLM.",
   "category": "multimodal",
   "topics": [
    {
     "id": "ocr",
     "title": "OCR: от классики до распознавания через LLM"
    }
   ]
  },
  {
   "slug": "structured-output-json-mode",
   "term": "Structured output",
   "en": "structured output, json mode",
   "def": "Режим, в котором модель принуждают выдавать строго валидный JSON по заданной схеме, без последующего исполнения. Tool calling — та же механика плюс цикл «вызов — исполнение — результат».",
   "category": "agents",
   "topics": [
    {
     "id": "tool-calling",
     "title": "Tool calling: как модель вызывает инструменты"
    }
   ]
  },
  {
   "slug": "structured-outputs",
   "term": "Structured outputs",
   "en": "structured outputs",
   "def": "Получение от LLM машиночитаемого выхода (обычно JSON) с гарантией формата. Лестница надёжности: просьба → few-shot → JSON mode → constrained decoding по схеме; только последний уровень даёт гарантию.",
   "category": "llm",
   "topics": [
    {
     "id": "prompt-patterns",
     "title": "Промпт-паттерны и structured outputs"
    }
   ]
  },
  {
   "slug": "support-vector-machine",
   "term": "SVM",
   "en": "support vector machine",
   "def": "Метод опорных векторов — классификатор, проводящий границу с максимальным зазором до ближайших точек обоих классов. Широкий зазор даёт запас прочности и лучшее обобщение.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "svm-kernels",
     "title": "SVM и kernel trick"
    }
   ]
  },
  {
   "slug": "swe-bench",
   "term": "SWE-bench",
   "en": "swe-bench",
   "def": "Бенчмарк агентов на реальных issue из GitHub-репозиториев: агент должен написать патч, успех проверяется скрытыми тестами.",
   "category": "agents",
   "topics": [
    {
     "id": "agent-evals",
     "title": "Оценка агентов: pass@k и траектории"
    }
   ]
  },
  {
   "slug": "swish-gated-linear-unit",
   "term": "SwiGLU",
   "en": "swish-gated linear unit",
   "def": "Гейтированная активация MLP-блоков, заменившая ReLU в современных LLM: одна ветвь слоя умножается на «ворота» из другой, что стабильно даёт чуть лучшее качество.",
   "category": "language-models",
   "topics": [
    {
     "id": "modern-architectures",
     "title": "Современные архитектуры: RoPE, MoE, GQA"
    }
   ]
  },
  {
   "slug": "sycophancy",
   "term": "Sycophancy",
   "en": "sycophancy",
   "def": "Подхалимство модели — склонность соглашаться с пользователем даже в ущерб правде. Возникает из перекоса данных предпочтений: разметчики чаще выбирают ответы, которые с ними соглашаются.",
   "category": "llm",
   "topics": [
    {
     "id": "alignment",
     "title": "Alignment: RLHF и DPO"
    }
   ]
  },
  {
   "slug": "student-s-t-distribution",
   "term": "t-распределение Стьюдента",
   "en": "Student's t-distribution",
   "def": "Распределение с более тяжёлыми хвостами, чем у нормального, используемое вместо него, когда σ оценена по выборке. Задаётся числом степеней свободы n − 1; при больших n совпадает с нормальным.",
   "category": "statistics",
   "topics": [
    {
     "id": "confidence-intervals",
     "title": "Доверительные интервалы"
    }
   ]
  },
  {
   "slug": "t-distributed-stochastic-neighbor-embedding",
   "term": "t-SNE",
   "en": "t-distributed stochastic neighbor embedding",
   "def": "Нелинейный метод визуализации: вкладывает данные в 2D, сохраняя локальные окрестности точек. Расстояния между кластерами на картинке не интерпретируются — инструмент разглядывания, а не измерения.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "dimensionality-pca",
     "title": "Снижение размерности и PCA"
    }
   ]
  },
  {
   "slug": "total-cost-of-ownership",
   "term": "TCO",
   "en": "total cost of ownership",
   "def": "Полная стоимость владения: не только цена GPU, но и электричество, амортизация, зарплаты инженеров и стоимость простоя недозагруженных карт. Именно TCO сравнивают со стоимостью API.",
   "category": "infra",
   "topics": [
    {
     "id": "local-vs-saas",
     "title": "Локальные модели против SaaS и API"
    }
   ]
  },
  {
   "slug": "temporal-attention",
   "term": "Temporal attention",
   "en": "temporal attention",
   "def": "Внимание по оси времени: участок сцены смотрит на себя в соседних кадрах. Вместе с пространственным вниманием образует пространственно-временное (3D) внимание видео-моделей.",
   "category": "multimodal",
   "topics": [
    {
     "id": "video-models",
     "title": "Видео-модели: генерация с временной согласованностью"
    }
   ]
  },
  {
   "slug": "temporal-consistency",
   "term": "Temporal consistency",
   "en": "temporal consistency",
   "def": "Временная согласованность видео: объекты сохраняют форму, цвет и плавную траекторию от кадра к кадру. Главная проблема видео-генерации — сама собой согласованность не возникает.",
   "category": "multimodal",
   "topics": [
    {
     "id": "video-models",
     "title": "Видео-модели: генерация с временной согласованностью"
    }
   ]
  },
  {
   "slug": "tensor-parallelism",
   "term": "Tensor parallelism",
   "en": "tensor parallelism",
   "def": "Разрез модели «поперёк»: каждая матрица слоя делится между GPU, карты считают слой сообща и обмениваются активациями внутри каждого слоя. Из-за частых обменов живёт только на NVLink внутри узла.",
   "category": "infra",
   "topics": [
    {
     "id": "distributed-training",
     "title": "Распределённое обучение: DP, TP, PP и ZeRO"
    }
   ]
  },
  {
   "slug": "test-time-compute",
   "term": "Test-time compute",
   "en": "test-time compute",
   "def": "Третья ось масштабирования после данных и параметров: точность растёт за счёт дополнительных вычислений в момент инференса — длинного рассуждения или нескольких параллельных попыток.",
   "category": "llm",
   "topics": [
    {
     "id": "reasoning-models",
     "title": "Reasoning-модели и test-time compute"
    }
   ]
  },
  {
   "slug": "thinking-budget",
   "term": "Thinking budget",
   "en": "thinking budget",
   "def": "Регулируемый параметр инференса reasoning-модели — сколько токенов рассуждения ей разрешено. Точность растёт с насыщением, а цена и латентность — линейно, поэтому после «колена» кривой бюджет тратится впустую.",
   "category": "llm",
   "topics": [
    {
     "id": "reasoning-models",
     "title": "Reasoning-модели и test-time compute"
    }
   ]
  },
  {
   "slug": "thinking-tokens",
   "term": "Thinking-токены",
   "en": "thinking tokens",
   "def": "Токены рассуждения, которые reasoning-модель генерирует отдельным блоком до финального ответа. Провайдер может скрывать их от пользователя, но оплачиваются они как обычные выходные токены.",
   "category": "llm",
   "topics": [
    {
     "id": "reasoning-models",
     "title": "Reasoning-модели и test-time compute"
    }
   ]
  },
  {
   "slug": "tiling",
   "term": "Tiling",
   "en": "tiling",
   "def": "Обработка изображения высокого разрешения по частям: картинка режется на фрагменты стандартного размера плюс уменьшенная глобальная копия. Деталей видно больше, но визуальных токенов кратно больше.",
   "category": "multimodal",
   "topics": [
    {
     "id": "multimodal-llm",
     "title": "Как LLM видят изображения"
    }
   ]
  },
  {
   "slug": "tool-calling",
   "term": "Tool calling",
   "en": "tool calling",
   "def": "Механизм, при котором LLM генерирует структурированный JSON-запрос на вызов внешней функции, а код приложения исполняет его и возвращает результат в контекст. Сама модель ничего не исполняет — только «просит».",
   "category": "agents",
   "topics": [
    {
     "id": "tool-calling",
     "title": "Tool calling: как модель вызывает инструменты"
    }
   ]
  },
  {
   "slug": "top-k-retrieval",
   "term": "Top-k",
   "en": "top-k retrieval",
   "def": "Число ближайших фрагментов, которые поиск отдаёт модели в промпт. Мало — риск не захватить нужный, много — шум и лишние токены; значение подбирают эмпирически по метрикам поиска.",
   "category": "rag",
   "topics": [
    {
     "id": "rag-basics",
     "title": "Что такое RAG и зачем он нужен"
    },
    {
     "id": "sampling",
     "title": "Сэмплирование: temperature, top-k, top-p"
    }
   ]
  },
  {
   "slug": "nucleus-sampling",
   "term": "Top-p",
   "en": "nucleus sampling",
   "def": "Адаптивное отсечение хвоста: остаётся минимальный набор токенов с суммарной вероятностью не ниже p. У уверенной модели «ядро» — 1–2 токена, у неуверенной — десятки; поэтому top-p почти вытеснил top-k.",
   "category": "llm",
   "topics": [
    {
     "id": "sampling",
     "title": "Сэмплирование: temperature, top-k, top-p"
    }
   ]
  },
  {
   "slug": "time-to-first-token",
   "term": "TTFT",
   "en": "time to first token",
   "def": "Время до первого токена ответа — ключевая метрика сервинга LLM: сколько пользователь ждёт начала генерации. В основном определяется фазой prefill и очередью запросов; скорость дальше меряют в tokens/s.",
   "category": "llm",
   "topics": [
    {
     "id": "inference",
     "title": "Инференс: KV-cache, квантизация, спекулятивный декодинг"
    }
   ]
  },
  {
   "slug": "text-to-speech",
   "term": "TTS",
   "en": "text-to-speech",
   "def": "Синтез речи: конвейер «текст → мел-спектрограмма → волна», где последний шаг выполняет отдельная сеть — вокодер.",
   "category": "multimodal",
   "topics": [
    {
     "id": "audio-models",
     "title": "Звук: распознавание и синтез речи"
    }
   ]
  },
  {
   "slug": "two-tower-model",
   "term": "Two-tower",
   "en": "two-tower model",
   "def": "Модель retrieval-этапа рекомендаций: две «башни»-энкодера кодируют пользователя и объект в общее векторное пространство. Векторы объектов предвычислены и лежат в ANN-индексе — отбор за миллисекунды.",
   "category": "production",
   "topics": [
    {
     "id": "recsys",
     "title": "Рекомендательные системы"
    }
   ]
  },
  {
   "slug": "u-net",
   "term": "U-Net",
   "en": "u-net",
   "def": "Свёрточная архитектура «энкодер–декодер», исторически основная сеть предсказания шума в диффузионных моделях; в новых моделях вытеснена диффузионным трансформером.",
   "category": "multimodal",
   "topics": [
    {
     "id": "diffusion-models",
     "title": "Диффузионные модели: как рисует Stable Diffusion"
    }
   ]
  },
  {
   "slug": "variational-autoencoder",
   "term": "VAE",
   "en": "variational autoencoder",
   "def": "Автоэнкодер, где энкодер предсказывает распределение (среднее и разброс) вместо точки, а KL-штраф прижимает латент к нормальному — пространство становится гладким и пригодным для сэмплирования.",
   "category": "multimodal",
   "topics": [
    {
     "id": "vae-gan",
     "title": "VAE и GAN: генерация до диффузии"
    }
   ]
  },
  {
   "slug": "vendor-lock-in",
   "term": "Vendor lock-in",
   "en": "vendor lock-in",
   "def": "Зависимость от провайдера: невозможность легко сменить API или модель, риск внезапных изменений модели и цен на стороне вендора.",
   "category": "infra",
   "topics": [
    {
     "id": "local-vs-saas",
     "title": "Локальные модели против SaaS и API"
    }
   ]
  },
  {
   "slug": "visual-instruction-tuning",
   "term": "Visual instruction tuning",
   "en": "visual instruction tuning",
   "def": "Дообучение VLM на диалогах с картинками («что на фото?», «прочитай таблицу»), после которого модель не просто подписывает изображения, а умеет разговаривать о них.",
   "category": "multimodal",
   "topics": [
    {
     "id": "multimodal-llm",
     "title": "Как LLM видят изображения"
    }
   ]
  },
  {
   "slug": "vision-transformer",
   "term": "ViT",
   "en": "vision transformer",
   "def": "Трансформер для изображений: картинка режется на патчи фиксированного размера, каждый линейно проецируется в вектор и получает позиционный эмбеддинг — дальше работает обычный механизм внимания.",
   "category": "multimodal",
   "topics": [
    {
     "id": "multimodal-llm",
     "title": "Как LLM видят изображения"
    },
    {
     "id": "cnn",
     "title": "Свёрточные сети (CNN)"
    }
   ]
  },
  {
   "slug": "visual-language-model",
   "term": "VLM",
   "en": "visual language model",
   "def": "Мультимодальная модель «текст + изображения»: vision-энкодер превращает картинку в визуальные токены, проектор выравнивает их с пространством LLM, и языковая модель отвечает на вопросы об изображении.",
   "category": "multimodal",
   "topics": [
    {
     "id": "multimodal-llm",
     "title": "Как LLM видят изображения"
    }
   ]
  },
  {
   "slug": "video-ram",
   "term": "VRAM",
   "en": "video ram",
   "def": "Видеопамять, распаянная рядом с чипом GPU. Ключевое свойство — пропускная способность порядка терабайт в секунду; веса модели должны помещаться в VRAM целиком, иначе скорость падает в разы.",
   "category": "infra",
   "topics": [
    {
     "id": "gpu-vram",
     "title": "Видеокарты и VRAM: железо для нейросетей"
    }
   ]
  },
  {
   "slug": "walk-forward-validation",
   "term": "Walk-forward валидация",
   "en": "walk-forward validation",
   "def": "Валидация рядов расширяющимся окном: обучение на данных до точки, прогноз следующего отрезка, сдвиг границы и усреднение ошибок. Честная замена random split, который подсматривает в будущее.",
   "category": "ml-basics",
   "topics": [
    {
     "id": "time-series",
     "title": "Временные ряды и прогнозирование"
    }
   ]
  },
  {
   "slug": "word-error-rate",
   "term": "WER",
   "en": "word error rate",
   "def": "Главная метрика качества распознавания речи: сумма замен, удалений и вставок слов, делённая на число слов в эталоне. Из-за вставок может превышать 100%.",
   "category": "multimodal",
   "topics": [
    {
     "id": "audio-models",
     "title": "Звук: распознавание и синтез речи"
    }
   ]
  },
  {
   "slug": "word2vec",
   "term": "Word2vec",
   "en": "word2vec",
   "def": "Метод обучения эмбеддингов: маленькая сеть учится предсказывать соседей слова, а полезный продукт — её матрица эмбеддингов, где похожие по смыслу слова оказываются рядом.",
   "category": "language-models",
   "topics": [
    {
     "id": "embeddings",
     "title": "Эмбеддинги и word2vec"
    }
   ]
  },
  {
   "slug": "wordpiece",
   "term": "WordPiece",
   "en": "wordpiece",
   "def": "Подсловный токенизатор BERT: сливает не самую частую пару, а ту, что сильнее всего увеличивает правдоподобие корпуса; куски внутри слова помечаются специальным префиксом.",
   "category": "language-models",
   "topics": [
    {
     "id": "tokenization",
     "title": "Токенизация и BPE"
    }
   ]
  },
  {
   "slug": "world-model",
   "term": "World model",
   "en": "world model",
   "def": "Модель, предсказывающая развитие сцены («что будет, если»): видео-модель как симулятор среды, в котором агент или робот может прокрутить последствия действий до реального шага.",
   "category": "multimodal",
   "topics": [
    {
     "id": "video-models",
     "title": "Видео-модели: генерация с временной согласованностью"
    }
   ]
  },
  {
   "slug": "zero-redundancy-optimizer",
   "term": "ZeRO",
   "en": "zero redundancy optimizer",
   "def": "Устранение избыточности data parallelism шардированием состояний по картам: стадия 1 — состояния оптимизатора, 2 — плюс градиенты, 3 — плюс сами веса. Память на карту падает почти в число карт раз.",
   "category": "infra",
   "topics": [
    {
     "id": "distributed-training",
     "title": "Распределённое обучение: DP, TP, PP и ZeRO"
    }
   ]
  },
  {
   "slug": "zero-shot-classification",
   "term": "Zero-shot классификация",
   "en": "zero-shot classification",
   "def": "Классификация без дообучения: эмбеддинг картинки сравнивается с эмбеддингами текстовых описаний классов («фото кошки», «фото собаки»), и выбирается ближайший.",
   "category": "multimodal",
   "topics": [
    {
     "id": "multimodal-llm",
     "title": "Как LLM видят изображения"
    }
   ]
  }
 ]
}