← Вернуться к списку

Понимаю ли я правильно, что при прямой передаче (forward pass) для трансформеров учитываются FLOPs, связанные с ISL/OSL?

Краткое содержание

Я пытаюсь провести учет общей производительности FLOPs для однозапроса с длиной последовательностей ввода/вывода$ISL$и$OSL$, соответственно. В частности, я стремлюсь учесть дополнительные FLOPs, возникающие из-за операций dot-product attention. Мое интуитивное предположение заключается в разделении этапов prefill и decode и последующем их суммировании. Для prefill мое понимание такова, что$T = S$, и мы можем игнорировать размерность$B$, поскольку мы рассматриваем только один запрос. Следовательно, общая производительность FLOPs для prefill составляет: $$ \text{FLOPs}_{\text{prefill}} = 4 \cdot ISL \cdot ISL \cdot N \cdot H = 4 \cdot (ISL)^2 \cdot N \cdot H \cdot L $$ А для decode мы генерируем токены авторегрессивно, по одному токену за раз. Таким образом, у нас$T = 1$, и тогда мы получим: \begin{align} \text{FLOPs}_{\text{decode}} &= 4 \cdot 1 \cdot \left(\sum_{i = 1}^{OSL} (ISL + i)\right) \cdot N \cdot H \\ &= 4 \cdot N \cdot H \cdot \left(\sum_{i = 1}^{OSL} ISL + \sum_{i = 1}^{OSL} i\right) \\ &= 4 \cdot N \cdot H \cdot \left(OSL \cdot ISL + \frac{OSL (OSL+1)}{2}\right) \end{align}

Полный текст статьи пока не загружен.