mindtext.modules.encoder.bart¶
class mindtext.modules.encoder.bart.BartConfig (max_sent_len=5, vocab_size=50265, max_position_embeddings=1024, encoder_layers=12, encoder_ffn_dim=4096, encoder_attention_heads=16, decoder_layers=12, decoder_ffn_dim=4096, decoder_attention_heads=16, encoder_layerdrop=1.0, decoder_layerdrop=1.0, activation_function=”gelu”, d_model=1024, dropout=0.9, attention_dropout=1.0, activation_dropout=1.0, init_std=0.02, classifier_dropout=1.0, scale_embedding=False, gradient_checkpointing=False, use_cache=True, num_labels=3, pad_token_id=1, bos_token_id=0, eos_token_id=2, is_encoder_decoder=True, decoder_start_token_id=2, forced_eos_token_id=2)
这是一个配置类用来保存模型的配置信息,用来初始化BART模型,定义模型结构。
init (max_sent_len=5, vocab_size=50265, max_position_embeddings=1024, encoder_layers=12, encoder_ffn_dim=4096, encoder_attention_heads=16, decoder_layers=12, decoder_ffn_dim=4096, decoder_attention_heads=16, encoder_layerdrop=1.0, decoder_layerdrop=1.0, activation_function=”gelu”, d_model=1024, dropout=0.9, attention_dropout=1.0, activation_dropout=1.0, init_std=0.02, classifier_dropout=1.0, scale_embedding=False, gradient_checkpointing=False, use_cache=True, num_labels=3, pad_token_id=1, bos_token_id=0, eos_token_id=2, is_encoder_decoder=True, decoder_start_token_id=2, forced_eos_token_id=2)
参数
_vocab_size (int): BART模型的词典大小,默认为50265。
d_model (int): 层和池化层的维度,默认为1024。
encoder_layers (int): 编码器的数量,默认为12。
decoder_layers (int): 解码器的数量,默认为12。
encoder_attention_heads (int): 在Transformer编码器里面每一个attention层的注意力头数量,默认为16。
decoder_attention_heads (int): 在Transformer解码器里面每一个attention层的注意力头数量,默认为16。
decoder_ffn_dim (int): 解码器中间层的维度,默认为4096。
encoder_ffn_dim (int): 编码器中间层的维度,默认为4096。
activation_function (str): 激活函数。
dropout (float): 全部在embeddings,encoder,pooler的全连接层dropout的大小,默认为0.1。
attention_dropout (float): attention的dropout大小,默认为0.0。
activation_dropout (float): 全连接层内部的激活函数的dropout,默认为0.0。
classifier_dropout (float): 分类器的dropout大小,默认为0.0。
max_position_embeddings (int): 模型可用的最大序列长度,建议设置较大数值(e.g., 512 or 1024 or 2048),默认为1024。
init_std (float): 初始化权重矩阵所用的截断正态分布的标准差,默认为0.02。
encoder_layerdrop (float): 编码层的drop概率,默认为0.0,详情见https://arxiv.org/abs/1909.11556。
decoder_layerdrop (float): 解码层的drop概率,默认为0.0,详情见https://arxiv.org/abs/1909.11556。
gradient_checkpointing (bool): 如果为真,使用梯度保存来保存expense of slower backward pass,默认为False。
scale_embedding (bool): Scale embeddings by diving by sqrt(d_model),默认为False。
use_cache (float): 是否模型返回最行的key/value attention,默认为True。
num_labels (int): 在class:transformers.BartForSequenceClassification中labels的数量,默认为3。
forced_eos_token_id (int): 当达到最大长度,token的id被强制为最后一个token。默认为2。
shift_tokens_right (input_ids: mindspore.Tensor, pad_token_id: int, decoder_start_token_id: int)
将输入的ids转移到右边
参数
input_ids (mindspore.Tensor): 输入的ids。
pad_token_id (int): 用来填充的token id。
返回
shifted_input_ids (mindspore.Tensor):返回的向量。
class mindtext.modules.encoder.bart.BartLearnedPositionalEmbedding (num_embeddings: int, embedding_dim: int)
通过被修整后的最大size学习位置编码
init (num_embeddings: int, embedding_dim: int)
参数
num_embeddings (int): embedding的数量。
embedding_dim (int): embedding的维度。
construct (input_ids_shape: mindspore.Tensor.shape, past_key_values_length: int = 0)
参数
返回
class mindtext.modules.encoder.bart.BartAttention (embed_dim: int, num_heads: int, dropout: float = 0.0, is_decoder: bool = False, bias: bool = True)
多头注意力机制
init (embed_dim: int, num_heads: int, dropout: float = 0.0, is_decoder: bool = False, bias: bool = True)
参数
embed_dim (int): embedding的维度。
num_heads (int): 注意力头的数量。
dropout (float): dropout的大小,默认为0.0。
bias (bool): 是否使用偏置,默认为True。
construct (hidden_states: mindspore.Tensor, key_value_states: Optional[mindspore.Tensor] = None, past_key_value: Optional[Tuple[mindspore.Tensor]] = None, attention_mask: Optional[mindspore.Tensor] = None)
参数
hidden_states (mindspore.Tensor):
key_value_states (_ Optional[mindspore.Tensor]_):
past_key_value (Optional[Tuple[mindspore.Tensor]]):
embed_dim (Optional[mindspore.Tensor]):
返回
attn_output (mindspore.Tensor): embedding的维度。
past_key_value (_ Optional[mindspore.Tensor]_): 缓存过去key and value projection的隐藏状态。
class mindtext.modules.encoder.bart.BartEncoderLayer (config: BartConfig)
编码层
init (config: BartConfig)
参数
config (BartConfig): BART模型的配置。
construct (hidden_states: mindspore.Tensor, attention_mask: mindspore.Tensor)
参数
hidden_states (mindspore.Tensor): 输入向量,shape为(seq_len, batch, embed_dim)。
attention_mask (_ Optional[mindspore.Tensor]_): attention mask的size(batch, 1, tgt_len, src_len),其中填充元素通过非常大的负数来表明。
返回
outputs (mindspore.Tensor):
class mindtext.modules.encoder.bart.BartDecoderLayer (config: BartConfig)
解码层
init (config: BartConfig)
参数
config (BartConfig): BART模型的配置。
construct (hidden_states: mindspore.Tensor, attention_mask: Optional[mindspore.Tensor] = None, encoder_hidden_states: Optional[mindspore.Tensor] = None, encoder_attention_mask: Optional[mindspore.Tensor] = None, past_key_value: Optional[Tuple[mindspore.Tensor]] = None)
参数
hidden_states (mindspore.Tensor): 输入向量,shape为(seq_len, batch, embed_dim)。
attention_mask (_ Optional[mindspore.Tensor]_): attention mask的size(batch, 1, tgt_len, src_len),其中填充元素通过非常大的负数来表明。
encoder_hidden_states (mindspore.Tensor): 通过attention到该层的shape(seq_len, batch, embed_dim)。
encoder_hidden_mask (mindspore.Tensor): attention mask的size(batch, 1, tgt_len, src_len),其中填充元素通过非常大的负数来表明。
past_key_value (mindspore.Tensor): 缓存过去key and value projection的隐藏状态。
返回
outputs (mindspore.Tensor):
class mindtext.modules.encoder.bart.BartClassificationHead (input_dim: int, inner_dim: int, num_classes: int, pooler_dropout: float)
句子级别分类任务的头
init (input_dim: int, inner_dim: int, num_classes: int, pooler_dropout: float)
参数
input_dim (int): 输入的维度。
inner_dim (int):
num_classes (int): 分类的数量。
pooler_dropout (float): pooler的dropout的大小。
construct (hidden_states: mindspore.Tensor)
参数
hidden_states (mindspore.Tensor):
返回
hidden_states (mindspore.Tensor):
class mindtext.modules.encoder.bart.BartPretrainedModel (module)
BART预训练模型
class mindtext.modules.encoder.bart.BartEncoder (config: BartConfig, embed_tokens: Optional[nn.Embedding] = None)
Transformer的encoder包含config.encoder_layers self attention layers,每一层都是class:`BartEncoderLayer
init (config: BartConfig, embed_tokens: Optional[nn.Embedding] = None)
参数
config (BartConfig): BartConfig。
embed_tokens (mindspore.nn.Embedding):输出的embedding
construct (input_ids=None, attention_mask=None)
参数
input_ids (mindspore.Tensor): 输入在字典里面的索引,填充会被默认忽略,需要提供填充。
attention_mask (mindspore.Tensor): attention mask,值是0/1
返回
hidden_states (mindspore.Tensor):
class mindtext.modules.encoder.bart.BartDecoder (config: BartConfig, embed_tokens: Optional[nn.Embedding] = None)
Transformer的dncoder包含config.encoder_layers self attention layers,每一层都是class:`BartEncoderLayer
init (config: BartConfig, embed_tokens: Optional[nn.Embedding] = None)
参数
config (BartConfig): BartConfig。
embed_tokens (mindspore.nn.Embedding):输出的embedding
construct (input_ids=None, attention_mask=None, encoder_hidden_states=None, encoder_attention_mask=None, past_key_values=None)
参数
input_ids (mindspore.Tensor): 输入在字典里面的索引,填充会被默认忽略,需要提供填充。。
attention_mask (_ Optional[mindspore.Tensor]_): attention mask,值是0/1。
encoder_hidden_states (mindspore.Tensor): 编码层的最后一层的输出隐藏状态。
encoder_hidden_mask (mindspore.Tensor): attention mask,值是0/1。
past_key_value (mindspore.Tensor): 包含注意块的预计算键和值隐藏状态。可以用来加速 解码。
返回
hidden_states (mindspore.Tensor):
class mindtext.modules.encoder.bart.BartModel (config: BartConfig)
BART模型
init (config: BartConfig)
参数
config (BartConfig): BartConfig。
construct (input_ids=None, attention_mask=None, decoder_input_ids=None, decoder_attention_mask=None, past_key_values=None)
参数
input_ids (mindspore.Tensor): 输入在字典里面的索引,填充会被默认忽略,需要提供填充。。
attention_mask (_ Optional[mindspore.Tensor]_): attention mask,值是0/1。
decoder_input_ids (mindspore.Tensor):
decoder_attention_mask (mindspore.Tensor): attention mask,值是0/1。
past_key_value (mindspore.Tensor): 包含注意块的预计算键和值隐藏状态。可以用来加速 解码。
返回
hidden_states (mindspore.Tensor):
class mindtext.modules.encoder.bart.BartForConditionalGeneration (config: BartConfig)
BART模型
init (config: BartConfig)
参数
config (BartConfig): BartConfig。
construct (input_ids=None, attention_mask=None, labels=None, decoder_attention_mask=None, past_key_values=None)
参数
input_ids (mindspore.Tensor): 输入在字典里面的索引,填充会被默认忽略,需要提供填充。。
attention_mask (_ Optional[mindspore.Tensor]_): attention mask,值是0/1。
labels (mindspore.Tensor): 语言掩盖模型计算loss的标签。
decoder_attention_mask (mindspore.Tensor): attention mask,值是0/1。
past_key_value (mindspore.Tensor): 包含注意块的预计算键和值隐藏状态。可以用来加速 解码。
返回
class mindtext.modules.encoder.bart.BartForConditionalGenerationOneStep (net, optimizer, sens=1.0)
BartForConditionalGenerationOneStep
init (net, optimizer, sens=1.0)
参数
net (BartConfig): BartConfig。
optimizer (BartConfig): BartConfig。
sens=1.0 (BartConfig): BartConfig。
construct (nput_ids, attention_mask=None, labels=None)
参数
input_ids (mindspore.Tensor): 输入在字典里面的索引,填充会被默认忽略,需要提供填充。。
attention_mask (_ Optional[mindspore.Tensor]_): attention mask,值是0/1。
labels (mindspore.Tensor): 语言掩盖模型计算loss的标签。
返回