Llama3大模型原理代码精讲与部署微调评估实战

woaidaqipaiqiu1122 · · 176 次点击 · · 开始浏览    
Llama3大模型原理代码精讲与部署微调评估实战 Llama 3 大模型 使用的是 标准的 仅解码 Decoder-Only 式的 Transformer 架构 ; 与之相对的 ChatGPT 使用的是 GPT ( Generative Pre-trained Transformer ) 架构 , 包含了编码器 ( Encoder ) 和 解码器 ( Decoder ) 的特性 ; Llama 3已经在多种行业基准测试上展现了最先进的性能,提供了包括改进的推理能力在内的新功能,是目前市场上最好的开源大模型。 在架构层面,Llama3选择了标准的仅解码(decoder-only)式Transformer架构,采用包含128K token词汇表的分词器。Llama 3在Meta自制的两个24K GPU集群上进行预训练,使用了超过15T的公开数据,其中5%为非英文数据,涵盖30多种语言,训练数据量是前代Llama 2的七倍,包含的代码数量是Llama 2的四倍。 llama2和llama3有什么区别? llama3与llama2的模型架构完全相同,只是model的一些配置(主要是维度)有些不同,llama2推理的工程基本可以无缝支持llama3。在meta官方的代码库,模型计算部分的代码是一模一样的,也就是主干decoder only,用到了RoPE、SwiGLU、GQA等具体技术。 通过对比huggingface模型中的config.json,首先可以看出,模型都是 LlamaForCausalLM 这个类,模型结构不变。具体差别在于: ① vocab_size:32000 ->128256。词汇表的扩大,导致embedding参数的增大 (128256-32000)*4096*2 Byte=752MB,另外模型最后一层lm_head的输出维度就是vocab_size,所以lm_head的参数同样增大752MB,总计带来模型增大1504MB; ② max_position_embeddings:4096->8192。也即context window扩大了,训练时输入的序列长度增大,推理能支持的序列长度增大,没有实际计算的差别。 ③num_key_value_heads:32 -> 8。即使用了GQA,因为num_attention_heads维持32,也就是计算时key、value要复制 4份。参数量会下降,K_proj、V_proj的参数矩阵会降为llama2-7B的1/4,共计减少 32*4096*4096*2*2/4*3 Byte(1536MB) ④ intermediate_size:11008->14336。只是FFN时的中间维度变了,计算范式不变。参数量增大:32*4096*(14336-11008)*3*2/1024/1024 Byte (2496MB) LLaMA是开源模型的顶流,众多国内的大型模型均源于它的构建!它通过人类反馈的强化学习 (RLHF) 进行了微调。它是一种生成文本模型,可以用作聊天机器人,并且可以适应各种自然语言生成任务,包括编程任务。从其分享的基准测试可以看出,Llama 3 400B+ 的实力几乎媲美 Claude 超大杯以及新版 GPT-4 Turbo,虽然仍有一定的差距,但足以证明其在顶尖大模型中占有一席之地。![QQ截图20241018172041.png](http://static.itsharecircle.com/241021/57faa0f767ee82bb604564c9aa204455.png)
176 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传