Пропускная способность памяти 936,2 ГБ/с делает NVIDIA RTX 3090 весьма производительной для обработки запросов и генерации токенов, однако 24 ГБ видеопамяти несколько ограничивают ее возможности. Один разработчик, запустивший Qwen3.8-27B на этом GPU, достиг скорости 82 токена/с, но после выпуска и использования собственного движка инференса эта скорость увеличилась до 382 токенов/с, что привело к почти 5-кратному приросту генерации токенов благодаря оптимизациям. В процессе возникли некоторые трудности, подробности которых описаны ниже.
Скорость генерации токенов увеличивается в несколько раз, когда Qwen3.8-27B уже повторяет ранее сгенерированный текст
Чтобы понять, почему генерация текста ИИ работает медленно, необходимо разобраться, как функционируют большие языковые модели (LLM). Модель генерирует один токен за раз, и каждый последующий зависит от предыдущего. Для каждого токена RTX 3090 приходится извлекать из памяти огромный набор хранимых знаний модели, известных как веса. Именно этот процесс извлечения, а не само вычисление, является узким местом, поэтому вычислительная мощность видеокарты большую часть времени простаивает.
Осознав эту проблему, пользователь Reddit «u/iamMess» решил ее с помощью спекулятивного декодирования. Быстрый «черновик» предсказывает несколько будущих токенов, а основная модель проверяет их все за один проход, сохраняя правильные и отбрасывая остальные. Проще говоря, вместо проверки одного слова проверяется целое предложение. Кроме того, поскольку основная модель всегда имеет последнее слово, выходные данные идентичны тому, что она сгенерировала бы в любом случае, а разработчик сообщает, что точность на математическом тесте осталась на уровне 96,5 процента.
Скорость генерации токенов постепенно росла. Настройка встроенного в Qwen3.8-27B механизма многотокеновой предикции (MTP), позволяющего модели самостоятельно угадывать следующие несколько токенов, увеличила скорость для одного пользователя примерно до 114 токенов/с. Затем разработчик добавил второй метод черновика под названием «DFlash2», который предлагает семь токенов за раз, а также «lookup»-черновик, который сканирует уже имеющийся в диалоге текст на предмет совпадения с только что написанным и предполагает, что те же слова будут следовать дальше.
«Lookup»-черновик помог увеличить скорость генерации токенов до 138 токенов/с. Разработчик предполагал, что шаг проверки должен быть таким же, как и у 7-токенового предположения DFlash2, но это оказалось не так. Lookup-черновик мог бесплатно заполнять дополнительные слоты, поэтому теперь движок проверяет 16 токенов за шаг. Когда Qwen3.8-27B цитирует документ, примерно 15 из этих 16 предположений принимаются, что позволило увеличить скорость выполнения задачи на документе объемом 25 000 токенов с 260 до 382 токенов в секунду. В обычном чате то же изменение дало около 133 токенов/с.
Кроме того, разработчик использовал этот подход для увеличения контекстного окна до 138 696 токенов, сохраняя рабочую память модели в более компактном формате. Очевидно, что все это не является каким-то серьезным трюком и имеет свои недостатки. Более длительный шаг проверки использует половину слотов запросов и 8000 токенов контекста, поэтому он является необязательным. Что касается компактного формата памяти, он удваивает время, необходимое для загрузки документа в начале, поэтому подходит для случаев, когда вы загружаете документ один раз и задаете много вопросов.
Вне задач, связанных с повторением текста, этот режим работает примерно вдвое медленнее, чем обычный MTP. Для повседневного общения вы можете ожидать около 133 токенов/с, что по-прежнему является значительным улучшением по сравнению с предыдущими 82 токенами/с. Однако, поскольку мы не проверяли эту информацию независимо, лучше пока относиться к ней с долей скептицизма.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Omar Sohail




