Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

Спекулятивное декодирование

Узнайте, как спекулятивное декодирование ускоряет вычисления ИИ в 2–3 раза. Узнайте, как эта техника оптимизирует LLM и Ultralytics для более быстрого и эффективного вывода результатов.

Спекулятивное декодирование — это передовой метод оптимизации, используемый в основном в больших языковых моделях (LLM) и других задачах последовательного генерации для значительного ускорения вывода без ущерба для качества результатов. В традиционном авторегрессионном генераторе модель генерирует по одному токену за раз, причем каждый шаг ожидает завершения предыдущего . Этот процесс может быть медленным, особенно на мощном оборудовании, где узким местом часто становится пропускная способность памяти, а не скорость вычислений. Спекулятивное декодирование решает эту проблему за счет использования более компактной и быстрой «черновой» модели для параллельного прогнозирования последовательности будущих токенов, которые затем проверяются за один проход более крупной и точной «целевой» моделью. Если черновая модель верна, система принимает несколько токенов одновременно, эффективно продвигаясь вперед в процессе генерации.

Как работает спекулятивное декодирование

Основной механизм основан на наблюдении, что многие токены в последовательности, такие как функциональные слова, например «the», «and» или очевидные завершения, легко предсказать и не требуют полной вычислительной мощности массивной модели. Перекладывая эти простые предсказания на легкую прокси-модель, система сокращает количество вызовов тяжелой модели.

Когда целевая модель проверяет составленную последовательность, она использует параллельный этап верификации. Поскольку графические процессоры высоко оптимизированы для пакетной обработки, проверка пяти составленных токенов одновременно занимает примерно столько же времени, сколько генерация одного токена. Если целевая модель согласна с черновиком, эти токены финализируются. Если она не согласна в любой момент, последовательность усекается, вставляется правильный токен, и процесс повторяется. Этот метод гарантирует, что конечный результат математически идентичен тому, что целевая модель произвела бы самостоятельно, сохраняя точность и одновременно увеличивая скорость в 2–3 раза во многих сценариях.

Применение в реальном мире

Эта технология меняет подход к внедрению генеративного ИИ в различных отраслях, особенно там, где задержка имеет критическое значение.

  • Автодополнение кода в реальном времени: в интегрированных средах разработки (IDE) помощники по кодированию с ИИ должны мгновенно предлагать варианты по мере ввода текста разработчиком. Спекулятивное декодирование позволяет этим помощникам составлять черновые варианты целых строк кода с помощью небольшой модели, в то время как большая базовая модель проверяет синтаксис и логику в фоновом режиме. Это обеспечивает быструю и бесперебойную работу, которая напоминает ввод текста в реальном времени, а не ожидание ответа сервера.
  • Интерактивные чат-боты на периферийных устройствах: Запуск мощных LLM на смартфонах или ноутбуках является сложной задачей из-за ограниченных аппаратных ресурсов. Используя спекулятивное декодирование, устройство может запускать квантованную, крошечную модель локально для составления ответов, периодически запрашивая более крупную модель (облачную или более тяжелую локальную модель) для проверки. Этот гибридный подход обеспечивает высокое качество взаимодействия виртуального помощника с минимальной задержкой, делая пограничный ИИ более пригодным для сложных задач.

Связь с другими концепциями

Важно отличать спекулятивное декодирование от аналогичных стратегий оптимизации.

  • Квантование модели: хотя квантование снижает точность весов модели (например, с FP16 до INT8) для экономии памяти и ускорения вычислений, оно необратимо изменяет модель и может немного ухудшить производительность. Спекулятивное декодирование, напротив, не изменяет веса целевой модели и гарантирует такое же распределение выходных данных.
  • Дистилляция знаний: Это включает в себя обучение меньшей ученической модели для имитации большей учительской модели. Ученическая модель полностью заменяет учительскую. В спекулятивном декодировании маленькая модель (составитель) и большая модель (верификатор) работают в тандеме во время вывода, а не заменяют друг друга .

Пример реализации

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

import torch


def verify_candidate_sequence(model, input_ids, candidate_ids):
    """Simulates the verification step where a target model checks candidate tokens."""
    # Concatenate input with candidates for parallel processing
    full_sequence = torch.cat([input_ids, candidate_ids], dim=1)

    with torch.no_grad():
        logits = model(full_sequence)  # Single forward pass for all tokens

    # Get the model's actual predictions (greedy decoding for simplicity)
    predictions = torch.argmax(logits, dim=-1)

    # In a real scenario, we check if predictions match candidate_ids
    return predictions


# Example tensor setup (conceptual)
# input_ids = torch.tensor([[101, 2054, 2003]])
# candidate_ids = torch.tensor([[1037, 3024]])
# verify_candidate_sequence(my_model, input_ids, candidate_ids)

Влияние на будущее развитие ИИ

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

В настоящее время исследователи изучают способы применения аналогичных спекулятивных принципов к задачам компьютерного зрения. Например, при генерации видео легкая модель может создавать черновые версии будущих кадров, которые впоследствии уточняются с помощью высокоточной диффузионной модели. По мере того как такие фреймворки, как PyTorch и TensorFlow интегрируют эти оптимизации изначально, разработчики могут рассчитывать на более быструю задержку вывода по более широкому спектру модальностей, от текста до сложных визуальных данных, обрабатываемых передовыми архитектурами, такими как Ultralytics .

Для тех, кто управляет жизненным циклом таких моделей, использование таких инструментов, как Ultralytics , гарантирует надежность базовых наборов данных и конвейеров обучения , что обеспечивает прочную основу для передовых методов инференции. Независимо от того, работаете ли вы с большими языковыми моделями или современными методами обнаружения объектов, оптимизация конвейера инференции остается ключевым шагом на пути от прототипа к производству.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас