AlibiBias 層

[原始碼]

AlibiBias 類別

keras_hub.layers.AlibiBias(alibi_bias_max=8, **kwargs)

一個將 alibi bias (阿里比偏差) 加入注意力分數的層。

此層將 alibi bias (阿里比偏差) 加入注意力分數。Alibi bias (阿里比偏差) 是一種線性、非學習的偏差。定義並在 Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation 中正式闡述。

此層以注意力分數作為輸入,並在加入 alibi bias (阿里比偏差) 後傳回注意力分數。輸出將具有與輸入相同的形狀。

參數

  • alibi_bias_max: int。此值將用於計算每個頭的斜率。頭的斜率是一個幾何序列,起始於 2**(-alibi_bias_max/num_heads),並以相同的值作為其比率。預設為 8。
  • **kwargs: 傳遞給 keras.layers.Layer 的其他關鍵字參數,包括 nametrainabledtype 等。

呼叫參數

  • attention_scores: 將轉換器多頭注意力層的查詢和鍵相乘的結果,以便將 alibi bias (阿里比偏差) 加入其中。形狀為 (batch_size, num_heads, query_length, key_length)

範例

query_length = 10
key_length = 10
num_heads = 4
batch_size = 2
hidden_dim = 8

# Create new alibi layer.
alibi_layer = keras_hub.layers.AlibiBias()

query = np.zeros((batch_size, num_heads, query_length, hidden_dim))
key = np.zeros((batch_size, num_heads, hidden_dim, key_length))

attention_scores = keras.ops.matmul(query, key)

# Add alibi bias to attention scores.
attention_scores = alibi_layer(attention_scores)

參考文獻