Keras 3 API 文件 / KerasNLP / 建模層 / AlibiBias 層

AlibiBias 層

[來源]

AlibiBias 類別

keras_nlp.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:將 transformer 的多頭注意力層的查詢和鍵值相乘的結果,以向其添加 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_nlp.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)

參考文獻