×

Справка по использованию генератора

Теоретические основы и параметры генерации

  1. Формальная модель Марковской цепи
    Пусть Xt — дискретная случайная величина, представляющая токен в позиции t. Для цепи порядка k (где k = sampleSize - 1) выполняется свойство:
    P(Xt | Xt-1, Xt-2, ..., Xt-k) = P(Xt | St-1),
    где St-1 = (Xt-1, ..., Xt-k) — состояние цепи.
  2. Параметры генерации
    • Длина текста (wordsCount):
      Определяет энтропию выходной последовательности H = -Σ P(x) log P(x). Большие значения увеличивают вероятность попадания в поглощающее состояние, требующее рестарта цепи.
    • Размер выборки (sampleSize):
      Задает длину k-грамм, формирующих ключи переходной матрицы T: S → P(X). Оптимален при k ≈ log2(N), где N — размер корпуса.
    • Температура (temperature):
      Модифицирует распределение выходных вероятностей через преобразование:
      PT(x) = P(x)1/T / Z(T),
      где Z(T) = Σ P(x)1/T — нормировочная константа.
      При T → 0 реализуется жадный выбор (argmax), при T → ∞ — равномерное распределение.
    • Закон распределения:
      1. Взвешенное: P(x) ∝ count(x) (максимальное правдоподобие)
      2. Равномерное: P(x) = 1/|V|, где V — множество уникальных токенов
      3. Экспоненциальное: P(x) ∝ exp(count(x)/T) (Boltzmann-распределение)
    • Seed:
      Инициализирует детерминированный ГПСЧ с уравнением:
      Xn+1 = (aXn + c) mod m,
      где a=1664525, c=1013904223, m=231 (LCG алгоритм).
  3. Эргодичность и сходимость
    Для обеспечения свойства эргодичности:
    • Добавляется ε-вероятность перехода в случайное состояние: P'(x) = (1-ε)P(x) + ε/|V|
    • Используется метод откатов (backoff) при отсутствии переходов: S' = S1:t-1
  4. Оптимизация алгоритма
    • Сложность построения матрицы: O(Nk)
    • Генерация текста: O(Lk), где L — длина выхода
    • Использование хеш-таблиц для хранения переходов: средний O(1) на запрос

Ограничения модели

  • Невозможность учета дальних зависимостей (>k токенов)
  • Экспоненциальный рост размера матрицы при увеличении k
  • Локальная оптимизация: модель максимизирует правдоподобие для k-грамм, но не глобальную связность текста

Для нематематиков: практическое руководство

  1. Подготовка данных
    • Используйте тексты одного стиля (например, только прозу или технические статьи)
    • Для быстрого старта — загрузите готовый датасет (Корпус 1-3)
    • ❗ Всегда нажимайте «Обучить модель» после изменения текста
  2. Базовые настройки
    • Длина текста:
      Стартовые значения — 150-300 слов. Слишком длинные тексты (>500) могут терять связность
    • Размер выборки (ключевой параметр!):
      • Художественные тексты: 3-4
      • Технические/научные: 4-5
      • Поэзия: 2-3
  3. Тонкая настройка
    • Температура:
      • 0.1-0.8 — предсказуемый текст (повторяет исходник)
      • 0.8-1.2 — оптимальный баланс
      • 1.2-2.0 — креативность (риск бессмыслицы)
    • Закон распределения:
      • Взвешенное — по умолчанию
      • Равномерное — для экспериментов
      • Экспоненциальное — если нужны редкие сочетания
    • Seed:
      Введите любое число, чтобы воспроизвести понравившийся результат
  4. Советы
    • Для генерации диалогов: используйте начальную фразу в кавычках
    • Если текст обрывается — увеличьте температуру или уменьшите размер выборки
    • Не используйте текст короче 200 слов — модель будет плохо обучаться
×

О программе

Генератор текста на основе цепей Маркова

Версия: 1.1

Разработчик: Vyachiq

Благодарности: основано на исходном коде Саши Беспоясова. Репозиторий проекта.