MaskedLMHead 类keras_hub.layers.MaskedLMHead(
vocabulary_size=None,
token_embedding=None,
intermediate_activation="relu",
activation=None,
layer_norm_epsilon=1e-05,
kernel_initializer="glorot_uniform",
bias_initializer="zeros",
**kwargs
)
掩码语言模型(MaskedLM)头。
该层接收两个输入
inputs:应为编码后的token张量,形状为 (batch_size, sequence_length, hidden_dim)。mask_positions:应为整数位置张量,用于预测,形状为 (batch_size, masks_per_sequence)。Token编码通常应该是编码器模型的最后一个输出,而掩码位置应该是您想要为MaskedLM任务预测的整数位置。
该层首先会收集掩码位置的token编码。这些收集到的token将通过一个与编码维度相同的密集层,然后转换为与输入词汇表大小相同的预测。该层将产生一个形状为 (batch_size, masks_per_sequence, vocabulary_size) 的单一输出,可用于计算MaskedLM损失函数。
该层通常会与 keras_hub.layers.MaskedLMMaskGenerator 配对使用,以帮助准备MaskedLM任务的输入。
参数
keras_hub.layers.ReversibleEmbedding 实例。如果传入,该层将用于将模型的 hidden_dim 投影到输出 vocabulary_size。None(返回logits),或者 "softmax"(返回概率)。1e-5。keras.initializers 初始化器。全连接层和多头注意力层的核初始化器。默认为 "glorot_uniform"。keras.initializers 初始化器。全连接层和多头注意力层的偏置初始化器。默认为 "zeros"。keras.layers.Layer 的其他关键字参数,包括 name、trainable、dtype 等。示例
batch_size = 16
vocab_size = 100
hidden_dim = 32
seq_length = 50
# Generate random inputs.
token_ids = np.random.randint(vocab_size, size=(batch_size, seq_length))
# Choose random positions as the masked inputs.
mask_positions = np.random.randint(seq_length, size=(batch_size, 5))
# Embed tokens in a `hidden_dim` feature space.
token_embedding = keras_hub.layers.ReversibleEmbedding(
vocab_size,
hidden_dim,
)
hidden_states = token_embedding(token_ids)
preds = keras_hub.layers.MaskedLMHead(
vocabulary_size=vocab_size,
token_embedding=token_embedding,
activation="softmax",
)(hidden_states, mask_positions)
参考文献