沈阳网站建设工作,外贸线上推广,网页设计实训总结三百字,网站服务器租用价格表文章目录 前言一、数据进入LlamaForCausalLM(LlamaPreTrainedModel)类二、数据进入LlamaModel(LlamaPreTrainedModel)类1、input_ids的embedding编码2、position_ids位置获取3、causal_mask因果mask构建1、causal_mask调用2、因果mask代码解读(_update_causal_mask)4、hidden_s… 文章目录 前言一、数据进入LlamaForCausalLM(LlamaPreTrainedModel)类二、数据进入LlamaModel(LlamaPreTrainedModel)类1、input_ids的embedding编码2、position_ids位置获取3、causal_mask因果mask构建1、causal_mask调用2、因果mask代码解读(_update_causal_mask) 4、hidden_states获取5、decoder_layers解码 三、数据进入LlamaDecoderLayer(nn.Module)类1、LlamaDecoderLayer类源码解读2、input_layernorm结构处理hidden_states输入 四、数据进入LlamaSdpaAttention(LlamaAttention)类1、LlamaSdpaAttention类源码解读2、qkv获取3、位置rotary_emb编码1、位置编码调用2、位置编码源码 4、位置编码应用1、位置编码应用调用方法2、位置编码apply_rotary_pos_emb应用 5、past_key_value更新6、key与value重复7、因果关系处理8、attention实现方法torch.nn.functional.scaled_dot_product_attention9、attn_output进行线性10、返回值 五、数据再次进入LlamaDecoderLayer(nn.Module)类1、hidden_states返回值处理2、FFN操作3、输出内容outputs 六、数据再次进入LlamaModel类1、获取hidden_states内容2、hidden_states的norm方法3、后续源码 七、数据再次进入LlamaForCausalLM类1、lm_head加工2、loss计算?和返回内容 前言
如果只是简单构建训练与推理的大语言模型,还是比较简单,直接使用huggignface调用即可。然而,理解其源码或内部原理是比较麻烦的,尽管我在之前文章给出了很多解释,但我还是想通过数据流走向来解读模型整个流程与源码内部机理。这样,我们可方便更深入的理解大语言模型! 一、数据进入LlamaForCausalLM(LlamaPreTrainedModel)类
数据转成input_ids与attention_mask后该如何转换,我们首先看到原始数据会进入到下面调用方法self.model,其如下图: 我们知道input_ids与attention_mask是[1,96],是未进行embedding!
二、数据进入LlamaModel(LlamaPreTrainedModel)类
1、input_ids的embedding