LLM推理原理详解
·29 阅读
一. 总览

二. 整体流程

- Tokenizer:切分token,参考模型中的
tokenizer.json和tokenzer_config.json(词表和配置 - Embedding:根据token_id,hash查表的方式获取对应的行。
- Transformer:QKV的attention计算+FNN。(后面细讲)
- LM Head(Linear):可以和Embedding共享参数,把Hidden_states变为词表中每个token的分数,再通过Softmax转为概率分布。
- Sampling(采样):
- greedy:直接去概率最大的那个。
- top-k:前k个中任选一个。
- top-p:p为分位值,比如5%,相当于按概率排序,前5%中任选一个。
- Temperature:控制多样性,数值越大,多样性越高。
三. 模型参数
主要由以下几个部分组成:
- Attention中的q_proj、k_proj、v_proj、o_proj(也就是attention中的Wk、Wq、Wv、Wo这几个权重矩阵,维度一般为[dmodel, dmodel])
- FNN中的up_proj、gate_proj、down_proj,其中前两个一般为[dmodel, 4dmodel],后者为[4dmodel, dmodel]。(占整个模型权重的大部分)
- Embeding中的[vocab_size, dmodel]。