torch:masked-fill
(torch:masked-fill a mask value)
微分可能なマスク埋め (linalg:where による torch.masked_fill) です。mask が非ゼロの位置ではスカラー value、ゼロの位置では a の要素になります。mask (0/1 配列、比較マスク、またはテンソル) と value は定数で勾配は流れず、a の勾配は埋められた位置でゼロです。torch:softmax の前にアテンションスコアを -infinity で埋めるのがマスク付きアテンションのイディオムです。value が数で、mask が a の形にブロードキャストできるとき、結果は ビュー です。何かがデータを読むまで何も計算されず、その上の torch:softmax は埋めを自身のパスに畳み込みます。