各層 ℓ=1,…,L について、これまでに処理した位置のキーとバリューの列 (ks(ℓ),vs(ℓ))s≤t を保存したものを KV キャッシュといいます。キャッシュつきの生成は、新しいトークン xt が決まるたびに、ℓ=1,…,L の順に次を行います。
- ht(ℓ−1) から kt(ℓ),vt(ℓ),qt(ℓ) を計算し、kt(ℓ),vt(ℓ) を層 ℓ のキャッシュの末尾に足す。
- キャッシュにある s≤t のキーとバリューを使って αts(ℓ) と ht(ℓ) を計算する。
位置 t の 1 行だけを計算し、過去の位置の hs(ℓ)(s<t)は計算し直しません。